From 07e37003e7d6da8f5dd06acab5d2851011467d6a Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 9 Aug 2021 22:51:54 -0700 Subject: [PATCH 1/5] use java9 and antlr4 --- java2python/lang/Java.tokens | 280 - java2python/lang/Java9Lexer.g4 | 517 + java2python/lang/Java9Lexer.interp | 417 + java2python/lang/Java9Lexer.py | 810 + java2python/lang/Java9Lexer.tokens | 227 + java2python/lang/Java9Parser.g4 | 1431 ++ java2python/lang/Java9Parser.interp | 492 + java2python/lang/Java9Parser.py | 20880 +++++++++++++++++ java2python/lang/Java9Parser.tokens | 227 + java2python/lang/Java9ParserListener.py | 2215 ++ java2python/lang/JavaLexer.py | 5285 ----- java2python/lang/JavaParser.py | 23337 -------------------- java2python/lang/JavadocLexer.g4 | 79 + java2python/lang/JavadocLexer.interp | 53 + java2python/lang/JavadocLexer.py | 124 + java2python/lang/JavadocLexer.tokens | 18 + java2python/lang/JavadocParser.g4 | 149 + java2python/lang/JavadocParser.interp | 57 + java2python/lang/JavadocParser.py | 1717 ++ java2python/lang/JavadocParser.tokens | 18 + java2python/lang/JavadocParserListener.py | 208 + java2python/lang/Makefile | 10 +- 22 files changed, 29644 insertions(+), 28907 deletions(-) delete mode 100644 java2python/lang/Java.tokens create mode 100644 java2python/lang/Java9Lexer.g4 create mode 100644 java2python/lang/Java9Lexer.interp create mode 100644 java2python/lang/Java9Lexer.py create mode 100644 java2python/lang/Java9Lexer.tokens create mode 100644 java2python/lang/Java9Parser.g4 create mode 100644 java2python/lang/Java9Parser.interp create mode 100644 java2python/lang/Java9Parser.py create mode 100644 java2python/lang/Java9Parser.tokens create mode 100644 java2python/lang/Java9ParserListener.py delete mode 100644 java2python/lang/JavaLexer.py delete mode 100644 java2python/lang/JavaParser.py create mode 100644 java2python/lang/JavadocLexer.g4 create mode 100644 java2python/lang/JavadocLexer.interp create mode 100644 java2python/lang/JavadocLexer.py create mode 100644 java2python/lang/JavadocLexer.tokens create mode 100644 java2python/lang/JavadocParser.g4 create mode 100644 java2python/lang/JavadocParser.interp create mode 100644 java2python/lang/JavadocParser.py create mode 100644 java2python/lang/JavadocParser.tokens create mode 100644 java2python/lang/JavadocParserListener.py diff --git a/java2python/lang/Java.tokens b/java2python/lang/Java.tokens deleted file mode 100644 index 9adec21..0000000 --- a/java2python/lang/Java.tokens +++ /dev/null @@ -1,280 +0,0 @@ -PACKAGE=84 -EXPONENT=173 -STAR=49 -WHILE=103 -MOD=32 -MOD_ASSIGN=33 -CASE=58 -CHAR=60 -NEW=82 -DO=64 -GENERIC_TYPE_PARAM_LIST=138 -CLASS_INSTANCE_INITIALIZER=121 -ARRAY_ELEMENT_ACCESS=115 -FOR_CONDITION=129 -NOT=34 -VAR_DECLARATION=160 -ANNOTATION_METHOD_DECL=109 -DIV_ASSIGN=14 -LOGICAL_AND=26 -BREAK=56 -UNARY_PLUS=159 -BIT_SHIFT_RIGHT_ASSIGN=9 -TYPE=157 -RPAREN=43 -INC=21 -FINAL=70 -IMPORT=78 -STRING_LITERAL=170 -FOR_UPDATE=132 -FLOATING_POINT_LITERAL=168 -CAST_EXPR=118 -NOT_EQUAL=35 -VOID_METHOD_DECL=163 -THIS=95 -RETURN=88 -DOUBLE=65 -ENUM_TOP_LEVEL_SCOPE=125 -VOID=101 -SUPER=92 -COMMENT=181 -ANNOTATION_INIT_KEY_LIST=107 -JAVA_ID_START=178 -FLOAT_TYPE_SUFFIX=174 -PRE_DEC=149 -RBRACK=41 -IMPLEMENTS_CLAUSE=140 -SWITCH_BLOCK_LABEL_LIST=154 -LINE_COMMENT=182 -PRIVATE=85 -STATIC=90 -BLOCK_SCOPE=117 -ANNOTATION_INIT_DEFAULT_KEY=106 -SWITCH=93 -NULL=83 -VAR_DECLARATOR=161 -MINUS_ASSIGN=31 -ELSE=66 -STRICTFP=91 -CHARACTER_LITERAL=169 -PRE_INC=150 -ANNOTATION_LIST=108 -ELLIPSIS=17 -NATIVE=81 -OCTAL_ESCAPE=177 -UNARY_MINUS=158 -THROWS=97 -LCURLY=23 -INT=79 -FORMAL_PARAM_VARARG_DECL=135 -METHOD_CALL=144 -ASSERT=54 -TRY=100 -INTERFACE_TOP_LEVEL_SCOPE=139 -SHIFT_LEFT=45 -WS=180 -SHIFT_RIGHT=47 -FORMAL_PARAM_STD_DECL=134 -LOCAL_MODIFIER_LIST=142 -OR=36 -LESS_THAN=25 -SHIFT_RIGHT_ASSIGN=48 -EXTENDS_BOUND_LIST=127 -JAVA_SOURCE=143 -CATCH=59 -FALSE=69 -INTEGER_TYPE_SUFFIX=172 -DECIMAL_LITERAL=167 -THROW=96 -FOR_INIT=131 -DEC=12 -PROTECTED=86 -CLASS=61 -LBRACK=22 -BIT_SHIFT_RIGHT=8 -THROWS_CLAUSE=156 -GREATER_OR_EQUAL=19 -FOR=73 -THIS_CONSTRUCTOR_CALL=155 -LOGICAL_NOT=27 -JAVADOC_COMMENT=183 -FLOAT=72 -ABSTRACT=53 -AND=4 -POST_DEC=147 -AND_ASSIGN=5 -STATIC_ARRAY_CREATOR=152 -MODIFIER_LIST=145 -ANNOTATION_SCOPE=110 -LPAREN=29 -IF=74 -AT=7 -ESCAPE_SEQUENCE=175 -CONSTRUCTOR_DECL=124 -LABELED_STATEMENT=141 -UNICODE_ESCAPE=176 -EXPR=126 -SYNCHRONIZED=94 -BOOLEAN=55 -CLASS_TOP_LEVEL_SCOPE=123 -IMPLEMENTS=75 -CONTINUE=62 -COMMA=11 -TRANSIENT=98 -EQUAL=18 -XOR_ASSIGN=52 -LOGICAL_OR=28 -IDENT=164 -QUALIFIED_TYPE_IDENT=151 -ARGUMENT_LIST=112 -PLUS=38 -HEX_LITERAL=165 -ANNOTATION_INIT_BLOCK=105 -DOT=15 -SHIFT_LEFT_ASSIGN=46 -FORMAL_PARAM_LIST=133 -GENERIC_TYPE_ARG_LIST=137 -ANNOTATION_TOP_LEVEL_SCOPE=111 -DOTSTAR=16 -BYTE=57 -XOR=51 -JAVA_ID_PART=179 -GREATER_THAN=20 -VOLATILE=102 -PARENTESIZED_EXPR=146 -CLASS_STATIC_INITIALIZER=122 -ARRAY_DECLARATOR_LIST=114 -LESS_OR_EQUAL=24 -DEFAULT=63 -OCTAL_LITERAL=166 -HEX_DIGIT=171 -SHORT=89 -INSTANCEOF=76 -MINUS=30 -EXTENDS_CLAUSE=128 -TRUE=99 -SEMI=44 -STAR_ASSIGN=50 -VAR_DECLARATOR_LIST=162 -ARRAY_DECLARATOR=113 -COLON=10 -OR_ASSIGN=37 -ENUM=67 -QUESTION=40 -FINALLY=71 -RCURLY=42 -PLUS_ASSIGN=39 -ASSIGN=6 -ANNOTATION_INIT_ARRAY_ELEMENT=104 -FUNCTION_METHOD_DECL=136 -INTERFACE=77 -POST_INC=148 -DIV=13 -CLASS_CONSTRUCTOR_CALL=120 -LONG=80 -FOR_EACH=130 -EXTENDS=68 -PUBLIC=87 -ARRAY_INITIALIZER=116 -CATCH_CLAUSE_LIST=119 -SUPER_CONSTRUCTOR_CALL=153 -'>='=19 -'=='=18 -'implements'=75 -'this'=95 -'volatile'=102 -';'=44 -'return'=88 -'for'=73 -'protected'=86 -'^'=51 -'>>'=47 -'static'=90 -'catch'=59 -'extends'=68 -'{'=23 -'package'=84 -'try'=100 -'&='=5 -'('=29 -':'=10 -'synchronized'=94 -'default'=63 -'public'=87 -'<<='=46 -']'=41 -'>>>'=8 -'enum'=67 -'transient'=98 -'assert'=54 -'finally'=71 -'new'=82 -'|='=37 -'throws'=97 -'.*'=16 -'='=6 -'%'=32 -'super'=92 -'case'=58 -'boolean'=55 -'<<'=45 -'<='=24 -'!='=35 -'continue'=62 -'--'=12 -'<'=25 -'['=22 -'&'=4 -'instanceof'=76 -'~'=34 -'/'=13 -'/='=14 -'switch'=93 -'%='=33 -'>'=20 -'||'=28 -'&&'=26 -'+'=38 -'.'=15 -'byte'=57 -'import'=78 -'++'=21 -'true'=99 -'else'=66 -'final'=70 -'^='=52 -'+='=39 -'native'=81 -'break'=56 -'...'=17 -'>>='=48 -'void'=101 -'>>>='=9 -'?'=40 -'private'=85 -'int'=79 -'if'=74 -'while'=103 -'-'=30 -','=11 -'-='=31 -'short'=89 -'long'=80 -'!'=27 -'|'=36 -'class'=61 -'null'=83 -'@'=7 -'throw'=96 -')'=43 -'*='=50 -'do'=64 -'char'=60 -'strictfp'=91 -'float'=72 -'}'=42 -'abstract'=53 -'double'=65 -'false'=69 -'*'=49 -'interface'=77 diff --git a/java2python/lang/Java9Lexer.g4 b/java2python/lang/Java9Lexer.g4 new file mode 100644 index 0000000..ceac274 --- /dev/null +++ b/java2python/lang/Java9Lexer.g4 @@ -0,0 +1,517 @@ +/* + * [The "BSD license"] + * Copyright (c) 2014 Terence Parr + * Copyright (c) 2014 Sam Harwell + * Copyright (c) 2017 Chan Chung Kwong + * 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 9 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 Java9.g4 + * $ javac *.java + * $ grun Java9 compilationUnit *.java + * + * Or, +~/antlr/code/grammars-v4/java9 $ java Test . +/Users/parrt/antlr/code/grammars-v4/java9/./Java9BaseListener.java +/Users/parrt/antlr/code/grammars-v4/java9/./Java9Lexer.java +/Users/parrt/antlr/code/grammars-v4/java9/./Java9Listener.java +/Users/parrt/antlr/code/grammars-v4/java9/./Java9Parser.java +/Users/parrt/antlr/code/grammars-v4/java9/./Test.java +Total lexer+parser time 30844ms. +~/antlr/code/grammars-v4/java9 $ java Test examples/module-info.java +/home/kwong/projects/grammars-v4/java9/examples/module-info.java +Total lexer+parser time 914ms. +~/antlr/code/grammars-v4/java9 $ java Test examples/TryWithResourceDemo.java +/home/kwong/projects/grammars-v4/java9/examples/TryWithResourceDemo.java +Total lexer+parser time 3634ms. +~/antlr/code/grammars-v4/java9 $ java Test examples/helloworld.java +/home/kwong/projects/grammars-v4/java9/examples/helloworld.java +Total lexer+parser time 2497ms. + + */ +lexer grammar Java9Lexer; + +options +{ + superClass = Java9LexerBase; +} + +// 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'; +EXPORTS : 'exports'; +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'; +MODULE : 'module'; +NATIVE : 'native'; +NEW : 'new'; +OPEN : 'open'; +OPERNS : 'opens'; +PACKAGE : 'package'; +PRIVATE : 'private'; +PROTECTED : 'protected'; +PROVIDES : 'provides'; +PUBLIC : 'public'; +REQUIRES : 'requires'; +RETURN : 'return'; +SHORT : 'short'; +STATIC : 'static'; +STRICTFP : 'strictfp'; +SUPER : 'super'; +SWITCH : 'switch'; +SYNCHRONIZED : 'synchronized'; +THIS : 'this'; +THROW : 'throw'; +THROWS : 'throws'; +TO : 'to'; +TRANSIENT : 'transient'; +TRANSITIVE : 'transitive'; +TRY : 'try'; +USES : 'uses'; +VOID : 'void'; +VOLATILE : 'volatile'; +WHILE : 'while'; +WITH : 'with'; +UNDER_SCORE : '_';//Introduced in Java 9 + +// §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 + : '\\' [btnfr"'\\] + | OctalEscape + | UnicodeEscape // This is not in the spec but prevents having to preprocess the input + ; + +fragment +OctalEscape + : '\\' OctalDigit + | '\\' OctalDigit OctalDigit + | '\\' 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 : '.'; +ELLIPSIS : '...'; +AT : '@'; +COLONCOLON : '::'; + + +// §3.12 Operators + +ASSIGN : '='; +GT : '>'; +LT : '<'; +BANG : '!'; +TILDE : '~'; +QUESTION : '?'; +COLON : ':'; +ARROW : '->'; +EQUAL : '=='; +LE : '<='; +GE : '>='; +NOTEQUAL : '!='; +AND : '&&'; +OR : '||'; +INC : '++'; +DEC : '--'; +ADD : '+'; +SUB : '-'; +MUL : '*'; +DIV : '/'; +BITAND : '&'; +BITOR : '|'; +CARET : '^'; +MOD : '%'; +//LSHIFT : '<<'; +//RSHIFT : '>>'; +//URSHIFT : '>>>'; + +ADD_ASSIGN : '+='; +SUB_ASSIGN : '-='; +MUL_ASSIGN : '*='; +DIV_ASSIGN : '/='; +AND_ASSIGN : '&='; +OR_ASSIGN : '|='; +XOR_ASSIGN : '^='; +MOD_ASSIGN : '%='; +LSHIFT_ASSIGN : '<<='; +RSHIFT_ASSIGN : '>>='; +URSHIFT_ASSIGN : '>>>='; + +// §3.8 Identifiers (must appear after all keywords in the grammar) + +Identifier + : JavaLetter JavaLetterOrDigit* + ; + +fragment +JavaLetter + : [a-zA-Z$_] // these are the "java letters" below 0x7F + | // covers all characters above 0x7F which are not a surrogate + ~[\u0000-\u007F\uD800-\uDBFF] + { Check1() }? + | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF + [\uD800-\uDBFF] [\uDC00-\uDFFF] + { Check2() }? + ; + +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] + { Check3() }? + | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF + [\uD800-\uDBFF] [\uDC00-\uDFFF] + { Check4() }? + ; + +// +// Whitespace and comments +// + +WS : [ \t\r\n\u000C]+ -> skip + ; + +COMMENT + : '/*' .*? '*/' -> channel(HIDDEN) + ; + +LINE_COMMENT + : '//' ~[\r\n]* -> channel(HIDDEN) + ; diff --git a/java2python/lang/Java9Lexer.interp b/java2python/lang/Java9Lexer.interp new file mode 100644 index 0000000..baf60bd --- /dev/null +++ b/java2python/lang/Java9Lexer.interp @@ -0,0 +1,417 @@ +token literal names: +null +'abstract' +'assert' +'boolean' +'break' +'byte' +'case' +'catch' +'char' +'class' +'const' +'continue' +'default' +'do' +'double' +'else' +'enum' +'exports' +'extends' +'final' +'finally' +'float' +'for' +'if' +'goto' +'implements' +'import' +'instanceof' +'int' +'interface' +'long' +'module' +'native' +'new' +'open' +'opens' +'package' +'private' +'protected' +'provides' +'public' +'requires' +'return' +'short' +'static' +'strictfp' +'super' +'switch' +'synchronized' +'this' +'throw' +'throws' +'to' +'transient' +'transitive' +'try' +'uses' +'void' +'volatile' +'while' +'with' +'_' +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 +EXPORTS +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +MODULE +NATIVE +NEW +OPEN +OPERNS +PACKAGE +PRIVATE +PROTECTED +PROVIDES +PUBLIC +REQUIRES +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TO +TRANSIENT +TRANSITIVE +TRY +USES +VOID +VOLATILE +WHILE +WITH +UNDER_SCORE +IntegerLiteral +FloatingPointLiteral +BooleanLiteral +CharacterLiteral +StringLiteral +NullLiteral +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ELLIPSIS +AT +COLONCOLON +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +ARROW +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +Identifier +WS +COMMENT +LINE_COMMENT + +rule names: +ABSTRACT +ASSERT +BOOLEAN +BREAK +BYTE +CASE +CATCH +CHAR +CLASS +CONST +CONTINUE +DEFAULT +DO +DOUBLE +ELSE +ENUM +EXPORTS +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +MODULE +NATIVE +NEW +OPEN +OPERNS +PACKAGE +PRIVATE +PROTECTED +PROVIDES +PUBLIC +REQUIRES +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TO +TRANSIENT +TRANSITIVE +TRY +USES +VOID +VOLATILE +WHILE +WITH +UNDER_SCORE +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 +ELLIPSIS +AT +COLONCOLON +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +ARROW +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +Identifier +JavaLetter +JavaLetterOrDigit +WS +COMMENT +LINE_COMMENT + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 120, 1192, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 745, 10, 63, 3, 64, 3, 64, 5, 64, 749, 10, 64, 3, 65, 3, 65, 5, 65, 753, 10, 65, 3, 66, 3, 66, 5, 66, 757, 10, 66, 3, 67, 3, 67, 5, 67, 761, 10, 67, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 5, 69, 768, 10, 69, 3, 69, 3, 69, 3, 69, 5, 69, 773, 10, 69, 5, 69, 775, 10, 69, 3, 70, 3, 70, 5, 70, 779, 10, 70, 3, 70, 5, 70, 782, 10, 70, 3, 71, 3, 71, 5, 71, 786, 10, 71, 3, 72, 3, 72, 3, 73, 6, 73, 791, 10, 73, 13, 73, 14, 73, 792, 3, 74, 3, 74, 5, 74, 797, 10, 74, 3, 75, 6, 75, 800, 10, 75, 13, 75, 14, 75, 801, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 5, 77, 810, 10, 77, 3, 77, 5, 77, 813, 10, 77, 3, 78, 3, 78, 3, 79, 6, 79, 818, 10, 79, 13, 79, 14, 79, 819, 3, 80, 3, 80, 5, 80, 824, 10, 80, 3, 81, 3, 81, 5, 81, 828, 10, 81, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 834, 10, 82, 3, 82, 5, 82, 837, 10, 82, 3, 83, 3, 83, 3, 84, 6, 84, 842, 10, 84, 13, 84, 14, 84, 843, 3, 85, 3, 85, 5, 85, 848, 10, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 5, 87, 856, 10, 87, 3, 87, 5, 87, 859, 10, 87, 3, 88, 3, 88, 3, 89, 6, 89, 864, 10, 89, 13, 89, 14, 89, 865, 3, 90, 3, 90, 5, 90, 870, 10, 90, 3, 91, 3, 91, 5, 91, 874, 10, 91, 3, 92, 3, 92, 3, 92, 5, 92, 879, 10, 92, 3, 92, 5, 92, 882, 10, 92, 3, 92, 5, 92, 885, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 890, 10, 92, 3, 92, 5, 92, 893, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 898, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 903, 10, 92, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 95, 5, 95, 911, 10, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 5, 98, 922, 10, 98, 3, 99, 3, 99, 5, 99, 926, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 931, 10, 99, 3, 99, 3, 99, 5, 99, 935, 10, 99, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 5, 102, 951, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 961, 10, 103, 3, 104, 3, 104, 3, 105, 3, 105, 5, 105, 967, 10, 105, 3, 105, 3, 105, 3, 106, 6, 106, 972, 10, 106, 13, 106, 14, 106, 973, 3, 107, 3, 107, 5, 107, 978, 10, 107, 3, 108, 3, 108, 3, 108, 3, 108, 5, 108, 984, 10, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 5, 109, 997, 10, 109, 3, 110, 3, 110, 3, 111, 3, 111, 6, 111, 1003, 10, 111, 13, 111, 14, 111, 1004, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 114, 3, 114, 3, 115, 3, 115, 3, 116, 3, 116, 3, 117, 3, 117, 3, 118, 3, 118, 3, 119, 3, 119, 3, 120, 3, 120, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 126, 3, 126, 3, 127, 3, 127, 3, 128, 3, 128, 3, 129, 3, 129, 3, 130, 3, 130, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 142, 3, 142, 3, 143, 3, 143, 3, 144, 3, 144, 3, 145, 3, 145, 3, 146, 3, 146, 3, 147, 3, 147, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 7, 160, 1140, 10, 160, 12, 160, 14, 160, 1143, 11, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 1151, 10, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 5, 162, 1159, 10, 162, 3, 163, 6, 163, 1162, 10, 163, 13, 163, 14, 163, 1163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 7, 164, 1172, 10, 164, 12, 164, 14, 164, 1175, 11, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 7, 165, 1186, 10, 165, 12, 165, 14, 165, 1189, 11, 165, 3, 165, 3, 165, 3, 1173, 2, 166, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 2, 129, 2, 131, 2, 133, 2, 135, 2, 137, 2, 139, 2, 141, 2, 143, 2, 145, 2, 147, 2, 149, 2, 151, 2, 153, 2, 155, 2, 157, 2, 159, 2, 161, 2, 163, 2, 165, 2, 167, 2, 169, 2, 171, 2, 173, 2, 175, 2, 177, 2, 179, 2, 181, 65, 183, 2, 185, 2, 187, 2, 189, 2, 191, 2, 193, 2, 195, 2, 197, 2, 199, 2, 201, 2, 203, 66, 205, 67, 207, 2, 209, 68, 211, 2, 213, 2, 215, 2, 217, 2, 219, 2, 221, 2, 223, 69, 225, 70, 227, 71, 229, 72, 231, 73, 233, 74, 235, 75, 237, 76, 239, 77, 241, 78, 243, 79, 245, 80, 247, 81, 249, 82, 251, 83, 253, 84, 255, 85, 257, 86, 259, 87, 261, 88, 263, 89, 265, 90, 267, 91, 269, 92, 271, 93, 273, 94, 275, 95, 277, 96, 279, 97, 281, 98, 283, 99, 285, 100, 287, 101, 289, 102, 291, 103, 293, 104, 295, 105, 297, 106, 299, 107, 301, 108, 303, 109, 305, 110, 307, 111, 309, 112, 311, 113, 313, 114, 315, 115, 317, 116, 319, 117, 321, 2, 323, 2, 325, 118, 327, 119, 329, 120, 3, 2, 24, 4, 2, 78, 78, 110, 110, 3, 2, 51, 59, 4, 2, 90, 90, 122, 122, 5, 2, 50, 59, 67, 72, 99, 104, 3, 2, 50, 57, 4, 2, 68, 68, 100, 100, 3, 2, 50, 51, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 6, 2, 70, 70, 72, 72, 102, 102, 104, 104, 4, 2, 82, 82, 114, 114, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 10, 2, 36, 36, 41, 41, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 3, 2, 50, 53, 6, 2, 38, 38, 67, 92, 97, 97, 99, 124, 4, 2, 2, 129, 55298, 56321, 3, 2, 55298, 56321, 3, 2, 56322, 57345, 7, 2, 38, 38, 50, 59, 67, 92, 97, 97, 99, 124, 5, 2, 11, 12, 14, 15, 34, 34, 4, 2, 12, 12, 15, 15, 2, 1207, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 3, 331, 3, 2, 2, 2, 5, 340, 3, 2, 2, 2, 7, 347, 3, 2, 2, 2, 9, 355, 3, 2, 2, 2, 11, 361, 3, 2, 2, 2, 13, 366, 3, 2, 2, 2, 15, 371, 3, 2, 2, 2, 17, 377, 3, 2, 2, 2, 19, 382, 3, 2, 2, 2, 21, 388, 3, 2, 2, 2, 23, 394, 3, 2, 2, 2, 25, 403, 3, 2, 2, 2, 27, 411, 3, 2, 2, 2, 29, 414, 3, 2, 2, 2, 31, 421, 3, 2, 2, 2, 33, 426, 3, 2, 2, 2, 35, 431, 3, 2, 2, 2, 37, 439, 3, 2, 2, 2, 39, 447, 3, 2, 2, 2, 41, 453, 3, 2, 2, 2, 43, 461, 3, 2, 2, 2, 45, 467, 3, 2, 2, 2, 47, 471, 3, 2, 2, 2, 49, 474, 3, 2, 2, 2, 51, 479, 3, 2, 2, 2, 53, 490, 3, 2, 2, 2, 55, 497, 3, 2, 2, 2, 57, 508, 3, 2, 2, 2, 59, 512, 3, 2, 2, 2, 61, 522, 3, 2, 2, 2, 63, 527, 3, 2, 2, 2, 65, 534, 3, 2, 2, 2, 67, 541, 3, 2, 2, 2, 69, 545, 3, 2, 2, 2, 71, 550, 3, 2, 2, 2, 73, 556, 3, 2, 2, 2, 75, 564, 3, 2, 2, 2, 77, 572, 3, 2, 2, 2, 79, 582, 3, 2, 2, 2, 81, 591, 3, 2, 2, 2, 83, 598, 3, 2, 2, 2, 85, 607, 3, 2, 2, 2, 87, 614, 3, 2, 2, 2, 89, 620, 3, 2, 2, 2, 91, 627, 3, 2, 2, 2, 93, 636, 3, 2, 2, 2, 95, 642, 3, 2, 2, 2, 97, 649, 3, 2, 2, 2, 99, 662, 3, 2, 2, 2, 101, 667, 3, 2, 2, 2, 103, 673, 3, 2, 2, 2, 105, 680, 3, 2, 2, 2, 107, 683, 3, 2, 2, 2, 109, 693, 3, 2, 2, 2, 111, 704, 3, 2, 2, 2, 113, 708, 3, 2, 2, 2, 115, 713, 3, 2, 2, 2, 117, 718, 3, 2, 2, 2, 119, 727, 3, 2, 2, 2, 121, 733, 3, 2, 2, 2, 123, 738, 3, 2, 2, 2, 125, 744, 3, 2, 2, 2, 127, 746, 3, 2, 2, 2, 129, 750, 3, 2, 2, 2, 131, 754, 3, 2, 2, 2, 133, 758, 3, 2, 2, 2, 135, 762, 3, 2, 2, 2, 137, 774, 3, 2, 2, 2, 139, 776, 3, 2, 2, 2, 141, 785, 3, 2, 2, 2, 143, 787, 3, 2, 2, 2, 145, 790, 3, 2, 2, 2, 147, 796, 3, 2, 2, 2, 149, 799, 3, 2, 2, 2, 151, 803, 3, 2, 2, 2, 153, 807, 3, 2, 2, 2, 155, 814, 3, 2, 2, 2, 157, 817, 3, 2, 2, 2, 159, 823, 3, 2, 2, 2, 161, 825, 3, 2, 2, 2, 163, 831, 3, 2, 2, 2, 165, 838, 3, 2, 2, 2, 167, 841, 3, 2, 2, 2, 169, 847, 3, 2, 2, 2, 171, 849, 3, 2, 2, 2, 173, 853, 3, 2, 2, 2, 175, 860, 3, 2, 2, 2, 177, 863, 3, 2, 2, 2, 179, 869, 3, 2, 2, 2, 181, 873, 3, 2, 2, 2, 183, 902, 3, 2, 2, 2, 185, 904, 3, 2, 2, 2, 187, 907, 3, 2, 2, 2, 189, 910, 3, 2, 2, 2, 191, 914, 3, 2, 2, 2, 193, 916, 3, 2, 2, 2, 195, 918, 3, 2, 2, 2, 197, 934, 3, 2, 2, 2, 199, 936, 3, 2, 2, 2, 201, 939, 3, 2, 2, 2, 203, 950, 3, 2, 2, 2, 205, 960, 3, 2, 2, 2, 207, 962, 3, 2, 2, 2, 209, 964, 3, 2, 2, 2, 211, 971, 3, 2, 2, 2, 213, 977, 3, 2, 2, 2, 215, 983, 3, 2, 2, 2, 217, 996, 3, 2, 2, 2, 219, 998, 3, 2, 2, 2, 221, 1000, 3, 2, 2, 2, 223, 1011, 3, 2, 2, 2, 225, 1016, 3, 2, 2, 2, 227, 1018, 3, 2, 2, 2, 229, 1020, 3, 2, 2, 2, 231, 1022, 3, 2, 2, 2, 233, 1024, 3, 2, 2, 2, 235, 1026, 3, 2, 2, 2, 237, 1028, 3, 2, 2, 2, 239, 1030, 3, 2, 2, 2, 241, 1032, 3, 2, 2, 2, 243, 1034, 3, 2, 2, 2, 245, 1038, 3, 2, 2, 2, 247, 1040, 3, 2, 2, 2, 249, 1043, 3, 2, 2, 2, 251, 1045, 3, 2, 2, 2, 253, 1047, 3, 2, 2, 2, 255, 1049, 3, 2, 2, 2, 257, 1051, 3, 2, 2, 2, 259, 1053, 3, 2, 2, 2, 261, 1055, 3, 2, 2, 2, 263, 1057, 3, 2, 2, 2, 265, 1060, 3, 2, 2, 2, 267, 1063, 3, 2, 2, 2, 269, 1066, 3, 2, 2, 2, 271, 1069, 3, 2, 2, 2, 273, 1072, 3, 2, 2, 2, 275, 1075, 3, 2, 2, 2, 277, 1078, 3, 2, 2, 2, 279, 1081, 3, 2, 2, 2, 281, 1084, 3, 2, 2, 2, 283, 1086, 3, 2, 2, 2, 285, 1088, 3, 2, 2, 2, 287, 1090, 3, 2, 2, 2, 289, 1092, 3, 2, 2, 2, 291, 1094, 3, 2, 2, 2, 293, 1096, 3, 2, 2, 2, 295, 1098, 3, 2, 2, 2, 297, 1100, 3, 2, 2, 2, 299, 1103, 3, 2, 2, 2, 301, 1106, 3, 2, 2, 2, 303, 1109, 3, 2, 2, 2, 305, 1112, 3, 2, 2, 2, 307, 1115, 3, 2, 2, 2, 309, 1118, 3, 2, 2, 2, 311, 1121, 3, 2, 2, 2, 313, 1124, 3, 2, 2, 2, 315, 1128, 3, 2, 2, 2, 317, 1132, 3, 2, 2, 2, 319, 1137, 3, 2, 2, 2, 321, 1150, 3, 2, 2, 2, 323, 1158, 3, 2, 2, 2, 325, 1161, 3, 2, 2, 2, 327, 1167, 3, 2, 2, 2, 329, 1181, 3, 2, 2, 2, 331, 332, 7, 99, 2, 2, 332, 333, 7, 100, 2, 2, 333, 334, 7, 117, 2, 2, 334, 335, 7, 118, 2, 2, 335, 336, 7, 116, 2, 2, 336, 337, 7, 99, 2, 2, 337, 338, 7, 101, 2, 2, 338, 339, 7, 118, 2, 2, 339, 4, 3, 2, 2, 2, 340, 341, 7, 99, 2, 2, 341, 342, 7, 117, 2, 2, 342, 343, 7, 117, 2, 2, 343, 344, 7, 103, 2, 2, 344, 345, 7, 116, 2, 2, 345, 346, 7, 118, 2, 2, 346, 6, 3, 2, 2, 2, 347, 348, 7, 100, 2, 2, 348, 349, 7, 113, 2, 2, 349, 350, 7, 113, 2, 2, 350, 351, 7, 110, 2, 2, 351, 352, 7, 103, 2, 2, 352, 353, 7, 99, 2, 2, 353, 354, 7, 112, 2, 2, 354, 8, 3, 2, 2, 2, 355, 356, 7, 100, 2, 2, 356, 357, 7, 116, 2, 2, 357, 358, 7, 103, 2, 2, 358, 359, 7, 99, 2, 2, 359, 360, 7, 109, 2, 2, 360, 10, 3, 2, 2, 2, 361, 362, 7, 100, 2, 2, 362, 363, 7, 123, 2, 2, 363, 364, 7, 118, 2, 2, 364, 365, 7, 103, 2, 2, 365, 12, 3, 2, 2, 2, 366, 367, 7, 101, 2, 2, 367, 368, 7, 99, 2, 2, 368, 369, 7, 117, 2, 2, 369, 370, 7, 103, 2, 2, 370, 14, 3, 2, 2, 2, 371, 372, 7, 101, 2, 2, 372, 373, 7, 99, 2, 2, 373, 374, 7, 118, 2, 2, 374, 375, 7, 101, 2, 2, 375, 376, 7, 106, 2, 2, 376, 16, 3, 2, 2, 2, 377, 378, 7, 101, 2, 2, 378, 379, 7, 106, 2, 2, 379, 380, 7, 99, 2, 2, 380, 381, 7, 116, 2, 2, 381, 18, 3, 2, 2, 2, 382, 383, 7, 101, 2, 2, 383, 384, 7, 110, 2, 2, 384, 385, 7, 99, 2, 2, 385, 386, 7, 117, 2, 2, 386, 387, 7, 117, 2, 2, 387, 20, 3, 2, 2, 2, 388, 389, 7, 101, 2, 2, 389, 390, 7, 113, 2, 2, 390, 391, 7, 112, 2, 2, 391, 392, 7, 117, 2, 2, 392, 393, 7, 118, 2, 2, 393, 22, 3, 2, 2, 2, 394, 395, 7, 101, 2, 2, 395, 396, 7, 113, 2, 2, 396, 397, 7, 112, 2, 2, 397, 398, 7, 118, 2, 2, 398, 399, 7, 107, 2, 2, 399, 400, 7, 112, 2, 2, 400, 401, 7, 119, 2, 2, 401, 402, 7, 103, 2, 2, 402, 24, 3, 2, 2, 2, 403, 404, 7, 102, 2, 2, 404, 405, 7, 103, 2, 2, 405, 406, 7, 104, 2, 2, 406, 407, 7, 99, 2, 2, 407, 408, 7, 119, 2, 2, 408, 409, 7, 110, 2, 2, 409, 410, 7, 118, 2, 2, 410, 26, 3, 2, 2, 2, 411, 412, 7, 102, 2, 2, 412, 413, 7, 113, 2, 2, 413, 28, 3, 2, 2, 2, 414, 415, 7, 102, 2, 2, 415, 416, 7, 113, 2, 2, 416, 417, 7, 119, 2, 2, 417, 418, 7, 100, 2, 2, 418, 419, 7, 110, 2, 2, 419, 420, 7, 103, 2, 2, 420, 30, 3, 2, 2, 2, 421, 422, 7, 103, 2, 2, 422, 423, 7, 110, 2, 2, 423, 424, 7, 117, 2, 2, 424, 425, 7, 103, 2, 2, 425, 32, 3, 2, 2, 2, 426, 427, 7, 103, 2, 2, 427, 428, 7, 112, 2, 2, 428, 429, 7, 119, 2, 2, 429, 430, 7, 111, 2, 2, 430, 34, 3, 2, 2, 2, 431, 432, 7, 103, 2, 2, 432, 433, 7, 122, 2, 2, 433, 434, 7, 114, 2, 2, 434, 435, 7, 113, 2, 2, 435, 436, 7, 116, 2, 2, 436, 437, 7, 118, 2, 2, 437, 438, 7, 117, 2, 2, 438, 36, 3, 2, 2, 2, 439, 440, 7, 103, 2, 2, 440, 441, 7, 122, 2, 2, 441, 442, 7, 118, 2, 2, 442, 443, 7, 103, 2, 2, 443, 444, 7, 112, 2, 2, 444, 445, 7, 102, 2, 2, 445, 446, 7, 117, 2, 2, 446, 38, 3, 2, 2, 2, 447, 448, 7, 104, 2, 2, 448, 449, 7, 107, 2, 2, 449, 450, 7, 112, 2, 2, 450, 451, 7, 99, 2, 2, 451, 452, 7, 110, 2, 2, 452, 40, 3, 2, 2, 2, 453, 454, 7, 104, 2, 2, 454, 455, 7, 107, 2, 2, 455, 456, 7, 112, 2, 2, 456, 457, 7, 99, 2, 2, 457, 458, 7, 110, 2, 2, 458, 459, 7, 110, 2, 2, 459, 460, 7, 123, 2, 2, 460, 42, 3, 2, 2, 2, 461, 462, 7, 104, 2, 2, 462, 463, 7, 110, 2, 2, 463, 464, 7, 113, 2, 2, 464, 465, 7, 99, 2, 2, 465, 466, 7, 118, 2, 2, 466, 44, 3, 2, 2, 2, 467, 468, 7, 104, 2, 2, 468, 469, 7, 113, 2, 2, 469, 470, 7, 116, 2, 2, 470, 46, 3, 2, 2, 2, 471, 472, 7, 107, 2, 2, 472, 473, 7, 104, 2, 2, 473, 48, 3, 2, 2, 2, 474, 475, 7, 105, 2, 2, 475, 476, 7, 113, 2, 2, 476, 477, 7, 118, 2, 2, 477, 478, 7, 113, 2, 2, 478, 50, 3, 2, 2, 2, 479, 480, 7, 107, 2, 2, 480, 481, 7, 111, 2, 2, 481, 482, 7, 114, 2, 2, 482, 483, 7, 110, 2, 2, 483, 484, 7, 103, 2, 2, 484, 485, 7, 111, 2, 2, 485, 486, 7, 103, 2, 2, 486, 487, 7, 112, 2, 2, 487, 488, 7, 118, 2, 2, 488, 489, 7, 117, 2, 2, 489, 52, 3, 2, 2, 2, 490, 491, 7, 107, 2, 2, 491, 492, 7, 111, 2, 2, 492, 493, 7, 114, 2, 2, 493, 494, 7, 113, 2, 2, 494, 495, 7, 116, 2, 2, 495, 496, 7, 118, 2, 2, 496, 54, 3, 2, 2, 2, 497, 498, 7, 107, 2, 2, 498, 499, 7, 112, 2, 2, 499, 500, 7, 117, 2, 2, 500, 501, 7, 118, 2, 2, 501, 502, 7, 99, 2, 2, 502, 503, 7, 112, 2, 2, 503, 504, 7, 101, 2, 2, 504, 505, 7, 103, 2, 2, 505, 506, 7, 113, 2, 2, 506, 507, 7, 104, 2, 2, 507, 56, 3, 2, 2, 2, 508, 509, 7, 107, 2, 2, 509, 510, 7, 112, 2, 2, 510, 511, 7, 118, 2, 2, 511, 58, 3, 2, 2, 2, 512, 513, 7, 107, 2, 2, 513, 514, 7, 112, 2, 2, 514, 515, 7, 118, 2, 2, 515, 516, 7, 103, 2, 2, 516, 517, 7, 116, 2, 2, 517, 518, 7, 104, 2, 2, 518, 519, 7, 99, 2, 2, 519, 520, 7, 101, 2, 2, 520, 521, 7, 103, 2, 2, 521, 60, 3, 2, 2, 2, 522, 523, 7, 110, 2, 2, 523, 524, 7, 113, 2, 2, 524, 525, 7, 112, 2, 2, 525, 526, 7, 105, 2, 2, 526, 62, 3, 2, 2, 2, 527, 528, 7, 111, 2, 2, 528, 529, 7, 113, 2, 2, 529, 530, 7, 102, 2, 2, 530, 531, 7, 119, 2, 2, 531, 532, 7, 110, 2, 2, 532, 533, 7, 103, 2, 2, 533, 64, 3, 2, 2, 2, 534, 535, 7, 112, 2, 2, 535, 536, 7, 99, 2, 2, 536, 537, 7, 118, 2, 2, 537, 538, 7, 107, 2, 2, 538, 539, 7, 120, 2, 2, 539, 540, 7, 103, 2, 2, 540, 66, 3, 2, 2, 2, 541, 542, 7, 112, 2, 2, 542, 543, 7, 103, 2, 2, 543, 544, 7, 121, 2, 2, 544, 68, 3, 2, 2, 2, 545, 546, 7, 113, 2, 2, 546, 547, 7, 114, 2, 2, 547, 548, 7, 103, 2, 2, 548, 549, 7, 112, 2, 2, 549, 70, 3, 2, 2, 2, 550, 551, 7, 113, 2, 2, 551, 552, 7, 114, 2, 2, 552, 553, 7, 103, 2, 2, 553, 554, 7, 112, 2, 2, 554, 555, 7, 117, 2, 2, 555, 72, 3, 2, 2, 2, 556, 557, 7, 114, 2, 2, 557, 558, 7, 99, 2, 2, 558, 559, 7, 101, 2, 2, 559, 560, 7, 109, 2, 2, 560, 561, 7, 99, 2, 2, 561, 562, 7, 105, 2, 2, 562, 563, 7, 103, 2, 2, 563, 74, 3, 2, 2, 2, 564, 565, 7, 114, 2, 2, 565, 566, 7, 116, 2, 2, 566, 567, 7, 107, 2, 2, 567, 568, 7, 120, 2, 2, 568, 569, 7, 99, 2, 2, 569, 570, 7, 118, 2, 2, 570, 571, 7, 103, 2, 2, 571, 76, 3, 2, 2, 2, 572, 573, 7, 114, 2, 2, 573, 574, 7, 116, 2, 2, 574, 575, 7, 113, 2, 2, 575, 576, 7, 118, 2, 2, 576, 577, 7, 103, 2, 2, 577, 578, 7, 101, 2, 2, 578, 579, 7, 118, 2, 2, 579, 580, 7, 103, 2, 2, 580, 581, 7, 102, 2, 2, 581, 78, 3, 2, 2, 2, 582, 583, 7, 114, 2, 2, 583, 584, 7, 116, 2, 2, 584, 585, 7, 113, 2, 2, 585, 586, 7, 120, 2, 2, 586, 587, 7, 107, 2, 2, 587, 588, 7, 102, 2, 2, 588, 589, 7, 103, 2, 2, 589, 590, 7, 117, 2, 2, 590, 80, 3, 2, 2, 2, 591, 592, 7, 114, 2, 2, 592, 593, 7, 119, 2, 2, 593, 594, 7, 100, 2, 2, 594, 595, 7, 110, 2, 2, 595, 596, 7, 107, 2, 2, 596, 597, 7, 101, 2, 2, 597, 82, 3, 2, 2, 2, 598, 599, 7, 116, 2, 2, 599, 600, 7, 103, 2, 2, 600, 601, 7, 115, 2, 2, 601, 602, 7, 119, 2, 2, 602, 603, 7, 107, 2, 2, 603, 604, 7, 116, 2, 2, 604, 605, 7, 103, 2, 2, 605, 606, 7, 117, 2, 2, 606, 84, 3, 2, 2, 2, 607, 608, 7, 116, 2, 2, 608, 609, 7, 103, 2, 2, 609, 610, 7, 118, 2, 2, 610, 611, 7, 119, 2, 2, 611, 612, 7, 116, 2, 2, 612, 613, 7, 112, 2, 2, 613, 86, 3, 2, 2, 2, 614, 615, 7, 117, 2, 2, 615, 616, 7, 106, 2, 2, 616, 617, 7, 113, 2, 2, 617, 618, 7, 116, 2, 2, 618, 619, 7, 118, 2, 2, 619, 88, 3, 2, 2, 2, 620, 621, 7, 117, 2, 2, 621, 622, 7, 118, 2, 2, 622, 623, 7, 99, 2, 2, 623, 624, 7, 118, 2, 2, 624, 625, 7, 107, 2, 2, 625, 626, 7, 101, 2, 2, 626, 90, 3, 2, 2, 2, 627, 628, 7, 117, 2, 2, 628, 629, 7, 118, 2, 2, 629, 630, 7, 116, 2, 2, 630, 631, 7, 107, 2, 2, 631, 632, 7, 101, 2, 2, 632, 633, 7, 118, 2, 2, 633, 634, 7, 104, 2, 2, 634, 635, 7, 114, 2, 2, 635, 92, 3, 2, 2, 2, 636, 637, 7, 117, 2, 2, 637, 638, 7, 119, 2, 2, 638, 639, 7, 114, 2, 2, 639, 640, 7, 103, 2, 2, 640, 641, 7, 116, 2, 2, 641, 94, 3, 2, 2, 2, 642, 643, 7, 117, 2, 2, 643, 644, 7, 121, 2, 2, 644, 645, 7, 107, 2, 2, 645, 646, 7, 118, 2, 2, 646, 647, 7, 101, 2, 2, 647, 648, 7, 106, 2, 2, 648, 96, 3, 2, 2, 2, 649, 650, 7, 117, 2, 2, 650, 651, 7, 123, 2, 2, 651, 652, 7, 112, 2, 2, 652, 653, 7, 101, 2, 2, 653, 654, 7, 106, 2, 2, 654, 655, 7, 116, 2, 2, 655, 656, 7, 113, 2, 2, 656, 657, 7, 112, 2, 2, 657, 658, 7, 107, 2, 2, 658, 659, 7, 124, 2, 2, 659, 660, 7, 103, 2, 2, 660, 661, 7, 102, 2, 2, 661, 98, 3, 2, 2, 2, 662, 663, 7, 118, 2, 2, 663, 664, 7, 106, 2, 2, 664, 665, 7, 107, 2, 2, 665, 666, 7, 117, 2, 2, 666, 100, 3, 2, 2, 2, 667, 668, 7, 118, 2, 2, 668, 669, 7, 106, 2, 2, 669, 670, 7, 116, 2, 2, 670, 671, 7, 113, 2, 2, 671, 672, 7, 121, 2, 2, 672, 102, 3, 2, 2, 2, 673, 674, 7, 118, 2, 2, 674, 675, 7, 106, 2, 2, 675, 676, 7, 116, 2, 2, 676, 677, 7, 113, 2, 2, 677, 678, 7, 121, 2, 2, 678, 679, 7, 117, 2, 2, 679, 104, 3, 2, 2, 2, 680, 681, 7, 118, 2, 2, 681, 682, 7, 113, 2, 2, 682, 106, 3, 2, 2, 2, 683, 684, 7, 118, 2, 2, 684, 685, 7, 116, 2, 2, 685, 686, 7, 99, 2, 2, 686, 687, 7, 112, 2, 2, 687, 688, 7, 117, 2, 2, 688, 689, 7, 107, 2, 2, 689, 690, 7, 103, 2, 2, 690, 691, 7, 112, 2, 2, 691, 692, 7, 118, 2, 2, 692, 108, 3, 2, 2, 2, 693, 694, 7, 118, 2, 2, 694, 695, 7, 116, 2, 2, 695, 696, 7, 99, 2, 2, 696, 697, 7, 112, 2, 2, 697, 698, 7, 117, 2, 2, 698, 699, 7, 107, 2, 2, 699, 700, 7, 118, 2, 2, 700, 701, 7, 107, 2, 2, 701, 702, 7, 120, 2, 2, 702, 703, 7, 103, 2, 2, 703, 110, 3, 2, 2, 2, 704, 705, 7, 118, 2, 2, 705, 706, 7, 116, 2, 2, 706, 707, 7, 123, 2, 2, 707, 112, 3, 2, 2, 2, 708, 709, 7, 119, 2, 2, 709, 710, 7, 117, 2, 2, 710, 711, 7, 103, 2, 2, 711, 712, 7, 117, 2, 2, 712, 114, 3, 2, 2, 2, 713, 714, 7, 120, 2, 2, 714, 715, 7, 113, 2, 2, 715, 716, 7, 107, 2, 2, 716, 717, 7, 102, 2, 2, 717, 116, 3, 2, 2, 2, 718, 719, 7, 120, 2, 2, 719, 720, 7, 113, 2, 2, 720, 721, 7, 110, 2, 2, 721, 722, 7, 99, 2, 2, 722, 723, 7, 118, 2, 2, 723, 724, 7, 107, 2, 2, 724, 725, 7, 110, 2, 2, 725, 726, 7, 103, 2, 2, 726, 118, 3, 2, 2, 2, 727, 728, 7, 121, 2, 2, 728, 729, 7, 106, 2, 2, 729, 730, 7, 107, 2, 2, 730, 731, 7, 110, 2, 2, 731, 732, 7, 103, 2, 2, 732, 120, 3, 2, 2, 2, 733, 734, 7, 121, 2, 2, 734, 735, 7, 107, 2, 2, 735, 736, 7, 118, 2, 2, 736, 737, 7, 106, 2, 2, 737, 122, 3, 2, 2, 2, 738, 739, 7, 97, 2, 2, 739, 124, 3, 2, 2, 2, 740, 745, 5, 127, 64, 2, 741, 745, 5, 129, 65, 2, 742, 745, 5, 131, 66, 2, 743, 745, 5, 133, 67, 2, 744, 740, 3, 2, 2, 2, 744, 741, 3, 2, 2, 2, 744, 742, 3, 2, 2, 2, 744, 743, 3, 2, 2, 2, 745, 126, 3, 2, 2, 2, 746, 748, 5, 137, 69, 2, 747, 749, 5, 135, 68, 2, 748, 747, 3, 2, 2, 2, 748, 749, 3, 2, 2, 2, 749, 128, 3, 2, 2, 2, 750, 752, 5, 151, 76, 2, 751, 753, 5, 135, 68, 2, 752, 751, 3, 2, 2, 2, 752, 753, 3, 2, 2, 2, 753, 130, 3, 2, 2, 2, 754, 756, 5, 161, 81, 2, 755, 757, 5, 135, 68, 2, 756, 755, 3, 2, 2, 2, 756, 757, 3, 2, 2, 2, 757, 132, 3, 2, 2, 2, 758, 760, 5, 171, 86, 2, 759, 761, 5, 135, 68, 2, 760, 759, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 134, 3, 2, 2, 2, 762, 763, 9, 2, 2, 2, 763, 136, 3, 2, 2, 2, 764, 775, 7, 50, 2, 2, 765, 772, 5, 143, 72, 2, 766, 768, 5, 139, 70, 2, 767, 766, 3, 2, 2, 2, 767, 768, 3, 2, 2, 2, 768, 773, 3, 2, 2, 2, 769, 770, 5, 149, 75, 2, 770, 771, 5, 139, 70, 2, 771, 773, 3, 2, 2, 2, 772, 767, 3, 2, 2, 2, 772, 769, 3, 2, 2, 2, 773, 775, 3, 2, 2, 2, 774, 764, 3, 2, 2, 2, 774, 765, 3, 2, 2, 2, 775, 138, 3, 2, 2, 2, 776, 781, 5, 141, 71, 2, 777, 779, 5, 145, 73, 2, 778, 777, 3, 2, 2, 2, 778, 779, 3, 2, 2, 2, 779, 780, 3, 2, 2, 2, 780, 782, 5, 141, 71, 2, 781, 778, 3, 2, 2, 2, 781, 782, 3, 2, 2, 2, 782, 140, 3, 2, 2, 2, 783, 786, 7, 50, 2, 2, 784, 786, 5, 143, 72, 2, 785, 783, 3, 2, 2, 2, 785, 784, 3, 2, 2, 2, 786, 142, 3, 2, 2, 2, 787, 788, 9, 3, 2, 2, 788, 144, 3, 2, 2, 2, 789, 791, 5, 147, 74, 2, 790, 789, 3, 2, 2, 2, 791, 792, 3, 2, 2, 2, 792, 790, 3, 2, 2, 2, 792, 793, 3, 2, 2, 2, 793, 146, 3, 2, 2, 2, 794, 797, 5, 141, 71, 2, 795, 797, 7, 97, 2, 2, 796, 794, 3, 2, 2, 2, 796, 795, 3, 2, 2, 2, 797, 148, 3, 2, 2, 2, 798, 800, 7, 97, 2, 2, 799, 798, 3, 2, 2, 2, 800, 801, 3, 2, 2, 2, 801, 799, 3, 2, 2, 2, 801, 802, 3, 2, 2, 2, 802, 150, 3, 2, 2, 2, 803, 804, 7, 50, 2, 2, 804, 805, 9, 4, 2, 2, 805, 806, 5, 153, 77, 2, 806, 152, 3, 2, 2, 2, 807, 812, 5, 155, 78, 2, 808, 810, 5, 157, 79, 2, 809, 808, 3, 2, 2, 2, 809, 810, 3, 2, 2, 2, 810, 811, 3, 2, 2, 2, 811, 813, 5, 155, 78, 2, 812, 809, 3, 2, 2, 2, 812, 813, 3, 2, 2, 2, 813, 154, 3, 2, 2, 2, 814, 815, 9, 5, 2, 2, 815, 156, 3, 2, 2, 2, 816, 818, 5, 159, 80, 2, 817, 816, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 817, 3, 2, 2, 2, 819, 820, 3, 2, 2, 2, 820, 158, 3, 2, 2, 2, 821, 824, 5, 155, 78, 2, 822, 824, 7, 97, 2, 2, 823, 821, 3, 2, 2, 2, 823, 822, 3, 2, 2, 2, 824, 160, 3, 2, 2, 2, 825, 827, 7, 50, 2, 2, 826, 828, 5, 149, 75, 2, 827, 826, 3, 2, 2, 2, 827, 828, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2, 829, 830, 5, 163, 82, 2, 830, 162, 3, 2, 2, 2, 831, 836, 5, 165, 83, 2, 832, 834, 5, 167, 84, 2, 833, 832, 3, 2, 2, 2, 833, 834, 3, 2, 2, 2, 834, 835, 3, 2, 2, 2, 835, 837, 5, 165, 83, 2, 836, 833, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 164, 3, 2, 2, 2, 838, 839, 9, 6, 2, 2, 839, 166, 3, 2, 2, 2, 840, 842, 5, 169, 85, 2, 841, 840, 3, 2, 2, 2, 842, 843, 3, 2, 2, 2, 843, 841, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 168, 3, 2, 2, 2, 845, 848, 5, 165, 83, 2, 846, 848, 7, 97, 2, 2, 847, 845, 3, 2, 2, 2, 847, 846, 3, 2, 2, 2, 848, 170, 3, 2, 2, 2, 849, 850, 7, 50, 2, 2, 850, 851, 9, 7, 2, 2, 851, 852, 5, 173, 87, 2, 852, 172, 3, 2, 2, 2, 853, 858, 5, 175, 88, 2, 854, 856, 5, 177, 89, 2, 855, 854, 3, 2, 2, 2, 855, 856, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 859, 5, 175, 88, 2, 858, 855, 3, 2, 2, 2, 858, 859, 3, 2, 2, 2, 859, 174, 3, 2, 2, 2, 860, 861, 9, 8, 2, 2, 861, 176, 3, 2, 2, 2, 862, 864, 5, 179, 90, 2, 863, 862, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 863, 3, 2, 2, 2, 865, 866, 3, 2, 2, 2, 866, 178, 3, 2, 2, 2, 867, 870, 5, 175, 88, 2, 868, 870, 7, 97, 2, 2, 869, 867, 3, 2, 2, 2, 869, 868, 3, 2, 2, 2, 870, 180, 3, 2, 2, 2, 871, 874, 5, 183, 92, 2, 872, 874, 5, 195, 98, 2, 873, 871, 3, 2, 2, 2, 873, 872, 3, 2, 2, 2, 874, 182, 3, 2, 2, 2, 875, 876, 5, 139, 70, 2, 876, 878, 7, 48, 2, 2, 877, 879, 5, 139, 70, 2, 878, 877, 3, 2, 2, 2, 878, 879, 3, 2, 2, 2, 879, 881, 3, 2, 2, 2, 880, 882, 5, 185, 93, 2, 881, 880, 3, 2, 2, 2, 881, 882, 3, 2, 2, 2, 882, 884, 3, 2, 2, 2, 883, 885, 5, 193, 97, 2, 884, 883, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 903, 3, 2, 2, 2, 886, 887, 7, 48, 2, 2, 887, 889, 5, 139, 70, 2, 888, 890, 5, 185, 93, 2, 889, 888, 3, 2, 2, 2, 889, 890, 3, 2, 2, 2, 890, 892, 3, 2, 2, 2, 891, 893, 5, 193, 97, 2, 892, 891, 3, 2, 2, 2, 892, 893, 3, 2, 2, 2, 893, 903, 3, 2, 2, 2, 894, 895, 5, 139, 70, 2, 895, 897, 5, 185, 93, 2, 896, 898, 5, 193, 97, 2, 897, 896, 3, 2, 2, 2, 897, 898, 3, 2, 2, 2, 898, 903, 3, 2, 2, 2, 899, 900, 5, 139, 70, 2, 900, 901, 5, 193, 97, 2, 901, 903, 3, 2, 2, 2, 902, 875, 3, 2, 2, 2, 902, 886, 3, 2, 2, 2, 902, 894, 3, 2, 2, 2, 902, 899, 3, 2, 2, 2, 903, 184, 3, 2, 2, 2, 904, 905, 5, 187, 94, 2, 905, 906, 5, 189, 95, 2, 906, 186, 3, 2, 2, 2, 907, 908, 9, 9, 2, 2, 908, 188, 3, 2, 2, 2, 909, 911, 5, 191, 96, 2, 910, 909, 3, 2, 2, 2, 910, 911, 3, 2, 2, 2, 911, 912, 3, 2, 2, 2, 912, 913, 5, 139, 70, 2, 913, 190, 3, 2, 2, 2, 914, 915, 9, 10, 2, 2, 915, 192, 3, 2, 2, 2, 916, 917, 9, 11, 2, 2, 917, 194, 3, 2, 2, 2, 918, 919, 5, 197, 99, 2, 919, 921, 5, 199, 100, 2, 920, 922, 5, 193, 97, 2, 921, 920, 3, 2, 2, 2, 921, 922, 3, 2, 2, 2, 922, 196, 3, 2, 2, 2, 923, 925, 5, 151, 76, 2, 924, 926, 7, 48, 2, 2, 925, 924, 3, 2, 2, 2, 925, 926, 3, 2, 2, 2, 926, 935, 3, 2, 2, 2, 927, 928, 7, 50, 2, 2, 928, 930, 9, 4, 2, 2, 929, 931, 5, 153, 77, 2, 930, 929, 3, 2, 2, 2, 930, 931, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 933, 7, 48, 2, 2, 933, 935, 5, 153, 77, 2, 934, 923, 3, 2, 2, 2, 934, 927, 3, 2, 2, 2, 935, 198, 3, 2, 2, 2, 936, 937, 5, 201, 101, 2, 937, 938, 5, 189, 95, 2, 938, 200, 3, 2, 2, 2, 939, 940, 9, 12, 2, 2, 940, 202, 3, 2, 2, 2, 941, 942, 7, 118, 2, 2, 942, 943, 7, 116, 2, 2, 943, 944, 7, 119, 2, 2, 944, 951, 7, 103, 2, 2, 945, 946, 7, 104, 2, 2, 946, 947, 7, 99, 2, 2, 947, 948, 7, 110, 2, 2, 948, 949, 7, 117, 2, 2, 949, 951, 7, 103, 2, 2, 950, 941, 3, 2, 2, 2, 950, 945, 3, 2, 2, 2, 951, 204, 3, 2, 2, 2, 952, 953, 7, 41, 2, 2, 953, 954, 5, 207, 104, 2, 954, 955, 7, 41, 2, 2, 955, 961, 3, 2, 2, 2, 956, 957, 7, 41, 2, 2, 957, 958, 5, 215, 108, 2, 958, 959, 7, 41, 2, 2, 959, 961, 3, 2, 2, 2, 960, 952, 3, 2, 2, 2, 960, 956, 3, 2, 2, 2, 961, 206, 3, 2, 2, 2, 962, 963, 10, 13, 2, 2, 963, 208, 3, 2, 2, 2, 964, 966, 7, 36, 2, 2, 965, 967, 5, 211, 106, 2, 966, 965, 3, 2, 2, 2, 966, 967, 3, 2, 2, 2, 967, 968, 3, 2, 2, 2, 968, 969, 7, 36, 2, 2, 969, 210, 3, 2, 2, 2, 970, 972, 5, 213, 107, 2, 971, 970, 3, 2, 2, 2, 972, 973, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 973, 974, 3, 2, 2, 2, 974, 212, 3, 2, 2, 2, 975, 978, 10, 14, 2, 2, 976, 978, 5, 215, 108, 2, 977, 975, 3, 2, 2, 2, 977, 976, 3, 2, 2, 2, 978, 214, 3, 2, 2, 2, 979, 980, 7, 94, 2, 2, 980, 984, 9, 15, 2, 2, 981, 984, 5, 217, 109, 2, 982, 984, 5, 221, 111, 2, 983, 979, 3, 2, 2, 2, 983, 981, 3, 2, 2, 2, 983, 982, 3, 2, 2, 2, 984, 216, 3, 2, 2, 2, 985, 986, 7, 94, 2, 2, 986, 997, 5, 165, 83, 2, 987, 988, 7, 94, 2, 2, 988, 989, 5, 165, 83, 2, 989, 990, 5, 165, 83, 2, 990, 997, 3, 2, 2, 2, 991, 992, 7, 94, 2, 2, 992, 993, 5, 219, 110, 2, 993, 994, 5, 165, 83, 2, 994, 995, 5, 165, 83, 2, 995, 997, 3, 2, 2, 2, 996, 985, 3, 2, 2, 2, 996, 987, 3, 2, 2, 2, 996, 991, 3, 2, 2, 2, 997, 218, 3, 2, 2, 2, 998, 999, 9, 16, 2, 2, 999, 220, 3, 2, 2, 2, 1000, 1002, 7, 94, 2, 2, 1001, 1003, 7, 119, 2, 2, 1002, 1001, 3, 2, 2, 2, 1003, 1004, 3, 2, 2, 2, 1004, 1002, 3, 2, 2, 2, 1004, 1005, 3, 2, 2, 2, 1005, 1006, 3, 2, 2, 2, 1006, 1007, 5, 155, 78, 2, 1007, 1008, 5, 155, 78, 2, 1008, 1009, 5, 155, 78, 2, 1009, 1010, 5, 155, 78, 2, 1010, 222, 3, 2, 2, 2, 1011, 1012, 7, 112, 2, 2, 1012, 1013, 7, 119, 2, 2, 1013, 1014, 7, 110, 2, 2, 1014, 1015, 7, 110, 2, 2, 1015, 224, 3, 2, 2, 2, 1016, 1017, 7, 42, 2, 2, 1017, 226, 3, 2, 2, 2, 1018, 1019, 7, 43, 2, 2, 1019, 228, 3, 2, 2, 2, 1020, 1021, 7, 125, 2, 2, 1021, 230, 3, 2, 2, 2, 1022, 1023, 7, 127, 2, 2, 1023, 232, 3, 2, 2, 2, 1024, 1025, 7, 93, 2, 2, 1025, 234, 3, 2, 2, 2, 1026, 1027, 7, 95, 2, 2, 1027, 236, 3, 2, 2, 2, 1028, 1029, 7, 61, 2, 2, 1029, 238, 3, 2, 2, 2, 1030, 1031, 7, 46, 2, 2, 1031, 240, 3, 2, 2, 2, 1032, 1033, 7, 48, 2, 2, 1033, 242, 3, 2, 2, 2, 1034, 1035, 7, 48, 2, 2, 1035, 1036, 7, 48, 2, 2, 1036, 1037, 7, 48, 2, 2, 1037, 244, 3, 2, 2, 2, 1038, 1039, 7, 66, 2, 2, 1039, 246, 3, 2, 2, 2, 1040, 1041, 7, 60, 2, 2, 1041, 1042, 7, 60, 2, 2, 1042, 248, 3, 2, 2, 2, 1043, 1044, 7, 63, 2, 2, 1044, 250, 3, 2, 2, 2, 1045, 1046, 7, 64, 2, 2, 1046, 252, 3, 2, 2, 2, 1047, 1048, 7, 62, 2, 2, 1048, 254, 3, 2, 2, 2, 1049, 1050, 7, 35, 2, 2, 1050, 256, 3, 2, 2, 2, 1051, 1052, 7, 128, 2, 2, 1052, 258, 3, 2, 2, 2, 1053, 1054, 7, 65, 2, 2, 1054, 260, 3, 2, 2, 2, 1055, 1056, 7, 60, 2, 2, 1056, 262, 3, 2, 2, 2, 1057, 1058, 7, 47, 2, 2, 1058, 1059, 7, 64, 2, 2, 1059, 264, 3, 2, 2, 2, 1060, 1061, 7, 63, 2, 2, 1061, 1062, 7, 63, 2, 2, 1062, 266, 3, 2, 2, 2, 1063, 1064, 7, 62, 2, 2, 1064, 1065, 7, 63, 2, 2, 1065, 268, 3, 2, 2, 2, 1066, 1067, 7, 64, 2, 2, 1067, 1068, 7, 63, 2, 2, 1068, 270, 3, 2, 2, 2, 1069, 1070, 7, 35, 2, 2, 1070, 1071, 7, 63, 2, 2, 1071, 272, 3, 2, 2, 2, 1072, 1073, 7, 40, 2, 2, 1073, 1074, 7, 40, 2, 2, 1074, 274, 3, 2, 2, 2, 1075, 1076, 7, 126, 2, 2, 1076, 1077, 7, 126, 2, 2, 1077, 276, 3, 2, 2, 2, 1078, 1079, 7, 45, 2, 2, 1079, 1080, 7, 45, 2, 2, 1080, 278, 3, 2, 2, 2, 1081, 1082, 7, 47, 2, 2, 1082, 1083, 7, 47, 2, 2, 1083, 280, 3, 2, 2, 2, 1084, 1085, 7, 45, 2, 2, 1085, 282, 3, 2, 2, 2, 1086, 1087, 7, 47, 2, 2, 1087, 284, 3, 2, 2, 2, 1088, 1089, 7, 44, 2, 2, 1089, 286, 3, 2, 2, 2, 1090, 1091, 7, 49, 2, 2, 1091, 288, 3, 2, 2, 2, 1092, 1093, 7, 40, 2, 2, 1093, 290, 3, 2, 2, 2, 1094, 1095, 7, 126, 2, 2, 1095, 292, 3, 2, 2, 2, 1096, 1097, 7, 96, 2, 2, 1097, 294, 3, 2, 2, 2, 1098, 1099, 7, 39, 2, 2, 1099, 296, 3, 2, 2, 2, 1100, 1101, 7, 45, 2, 2, 1101, 1102, 7, 63, 2, 2, 1102, 298, 3, 2, 2, 2, 1103, 1104, 7, 47, 2, 2, 1104, 1105, 7, 63, 2, 2, 1105, 300, 3, 2, 2, 2, 1106, 1107, 7, 44, 2, 2, 1107, 1108, 7, 63, 2, 2, 1108, 302, 3, 2, 2, 2, 1109, 1110, 7, 49, 2, 2, 1110, 1111, 7, 63, 2, 2, 1111, 304, 3, 2, 2, 2, 1112, 1113, 7, 40, 2, 2, 1113, 1114, 7, 63, 2, 2, 1114, 306, 3, 2, 2, 2, 1115, 1116, 7, 126, 2, 2, 1116, 1117, 7, 63, 2, 2, 1117, 308, 3, 2, 2, 2, 1118, 1119, 7, 96, 2, 2, 1119, 1120, 7, 63, 2, 2, 1120, 310, 3, 2, 2, 2, 1121, 1122, 7, 39, 2, 2, 1122, 1123, 7, 63, 2, 2, 1123, 312, 3, 2, 2, 2, 1124, 1125, 7, 62, 2, 2, 1125, 1126, 7, 62, 2, 2, 1126, 1127, 7, 63, 2, 2, 1127, 314, 3, 2, 2, 2, 1128, 1129, 7, 64, 2, 2, 1129, 1130, 7, 64, 2, 2, 1130, 1131, 7, 63, 2, 2, 1131, 316, 3, 2, 2, 2, 1132, 1133, 7, 64, 2, 2, 1133, 1134, 7, 64, 2, 2, 1134, 1135, 7, 64, 2, 2, 1135, 1136, 7, 63, 2, 2, 1136, 318, 3, 2, 2, 2, 1137, 1141, 5, 321, 161, 2, 1138, 1140, 5, 323, 162, 2, 1139, 1138, 3, 2, 2, 2, 1140, 1143, 3, 2, 2, 2, 1141, 1139, 3, 2, 2, 2, 1141, 1142, 3, 2, 2, 2, 1142, 320, 3, 2, 2, 2, 1143, 1141, 3, 2, 2, 2, 1144, 1151, 9, 17, 2, 2, 1145, 1146, 10, 18, 2, 2, 1146, 1151, 6, 161, 2, 2, 1147, 1148, 9, 19, 2, 2, 1148, 1149, 9, 20, 2, 2, 1149, 1151, 6, 161, 3, 2, 1150, 1144, 3, 2, 2, 2, 1150, 1145, 3, 2, 2, 2, 1150, 1147, 3, 2, 2, 2, 1151, 322, 3, 2, 2, 2, 1152, 1159, 9, 21, 2, 2, 1153, 1154, 10, 18, 2, 2, 1154, 1159, 6, 162, 4, 2, 1155, 1156, 9, 19, 2, 2, 1156, 1157, 9, 20, 2, 2, 1157, 1159, 6, 162, 5, 2, 1158, 1152, 3, 2, 2, 2, 1158, 1153, 3, 2, 2, 2, 1158, 1155, 3, 2, 2, 2, 1159, 324, 3, 2, 2, 2, 1160, 1162, 9, 22, 2, 2, 1161, 1160, 3, 2, 2, 2, 1162, 1163, 3, 2, 2, 2, 1163, 1161, 3, 2, 2, 2, 1163, 1164, 3, 2, 2, 2, 1164, 1165, 3, 2, 2, 2, 1165, 1166, 8, 163, 2, 2, 1166, 326, 3, 2, 2, 2, 1167, 1168, 7, 49, 2, 2, 1168, 1169, 7, 44, 2, 2, 1169, 1173, 3, 2, 2, 2, 1170, 1172, 11, 2, 2, 2, 1171, 1170, 3, 2, 2, 2, 1172, 1175, 3, 2, 2, 2, 1173, 1174, 3, 2, 2, 2, 1173, 1171, 3, 2, 2, 2, 1174, 1176, 3, 2, 2, 2, 1175, 1173, 3, 2, 2, 2, 1176, 1177, 7, 44, 2, 2, 1177, 1178, 7, 49, 2, 2, 1178, 1179, 3, 2, 2, 2, 1179, 1180, 8, 164, 3, 2, 1180, 328, 3, 2, 2, 2, 1181, 1182, 7, 49, 2, 2, 1182, 1183, 7, 49, 2, 2, 1183, 1187, 3, 2, 2, 2, 1184, 1186, 10, 23, 2, 2, 1185, 1184, 3, 2, 2, 2, 1186, 1189, 3, 2, 2, 2, 1187, 1185, 3, 2, 2, 2, 1187, 1188, 3, 2, 2, 2, 1188, 1190, 3, 2, 2, 2, 1189, 1187, 3, 2, 2, 2, 1190, 1191, 8, 165, 3, 2, 1191, 330, 3, 2, 2, 2, 57, 2, 744, 748, 752, 756, 760, 767, 772, 774, 778, 781, 785, 792, 796, 801, 809, 812, 819, 823, 827, 833, 836, 843, 847, 855, 858, 865, 869, 873, 878, 881, 884, 889, 892, 897, 902, 910, 921, 925, 930, 934, 950, 960, 966, 973, 977, 983, 996, 1004, 1141, 1150, 1158, 1163, 1173, 1187, 4, 8, 2, 2, 2, 3, 2] \ No newline at end of file diff --git a/java2python/lang/Java9Lexer.py b/java2python/lang/Java9Lexer.py new file mode 100644 index 0000000..d8048bc --- /dev/null +++ b/java2python/lang/Java9Lexer.py @@ -0,0 +1,810 @@ +# Generated from Java9Lexer.g4 by ANTLR 4.7.2 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + + +if __name__ is not None and "." in __name__: + from .Java9LexerBase import Java9LexerBase +else: + from Java9LexerBase import Java9LexerBase + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2x") + buf.write("\u04a8\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") + buf.write("\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r") + buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23") + buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30") + buf.write("\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36") + buf.write("\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%") + buf.write("\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.") + buf.write("\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64") + buf.write("\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:") + buf.write("\4;\t;\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\t") + buf.write("C\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\t") + buf.write("L\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\t") + buf.write("U\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4") + buf.write("^\t^\4_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4") + buf.write("g\tg\4h\th\4i\ti\4j\tj\4k\tk\4l\tl\4m\tm\4n\tn\4o\to\4") + buf.write("p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4w\tw\4x\tx\4") + buf.write("y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080") + buf.write("\t\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083") + buf.write("\4\u0084\t\u0084\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087") + buf.write("\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089\4\u008a\t\u008a") + buf.write("\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e") + buf.write("\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091") + buf.write("\4\u0092\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095") + buf.write("\t\u0095\4\u0096\t\u0096\4\u0097\t\u0097\4\u0098\t\u0098") + buf.write("\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b\4\u009c") + buf.write("\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f") + buf.write("\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3") + buf.write("\t\u00a3\4\u00a4\t\u00a4\4\u00a5\t\u00a5\3\2\3\2\3\2\3") + buf.write("\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4") + buf.write("\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3") + buf.write("\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b") + buf.write("\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3") + buf.write("\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3") + buf.write("\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3") + buf.write("\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20") + buf.write("\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22") + buf.write("\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23") + buf.write("\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25") + buf.write("\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\27") + buf.write("\3\27\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31") + buf.write("\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32") + buf.write("\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34") + buf.write("\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35") + buf.write("\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37") + buf.write("\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3 \3!\3!\3!\3!") + buf.write("\3!\3!\3!\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3$\3$\3$\3$\3") + buf.write("$\3$\3%\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3&\3") + buf.write("\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(") + buf.write("\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3") + buf.write("*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3-\3-\3") + buf.write("-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3") + buf.write("/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61\3\61\3\61") + buf.write("\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\62") + buf.write("\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64") + buf.write("\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\66\3\66") + buf.write("\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67") + buf.write("\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\38\38\38\38\3") + buf.write("9\39\39\39\39\3:\3:\3:\3:\3:\3;\3;\3;\3;\3;\3;\3;\3;\3") + buf.write(";\3<\3<\3<\3<\3<\3<\3=\3=\3=\3=\3=\3>\3>\3?\3?\3?\3?\5") + buf.write("?\u02e9\n?\3@\3@\5@\u02ed\n@\3A\3A\5A\u02f1\nA\3B\3B\5") + buf.write("B\u02f5\nB\3C\3C\5C\u02f9\nC\3D\3D\3E\3E\3E\5E\u0300\n") + buf.write("E\3E\3E\3E\5E\u0305\nE\5E\u0307\nE\3F\3F\5F\u030b\nF\3") + buf.write("F\5F\u030e\nF\3G\3G\5G\u0312\nG\3H\3H\3I\6I\u0317\nI\r") + buf.write("I\16I\u0318\3J\3J\5J\u031d\nJ\3K\6K\u0320\nK\rK\16K\u0321") + buf.write("\3L\3L\3L\3L\3M\3M\5M\u032a\nM\3M\5M\u032d\nM\3N\3N\3") + buf.write("O\6O\u0332\nO\rO\16O\u0333\3P\3P\5P\u0338\nP\3Q\3Q\5Q") + buf.write("\u033c\nQ\3Q\3Q\3R\3R\5R\u0342\nR\3R\5R\u0345\nR\3S\3") + buf.write("S\3T\6T\u034a\nT\rT\16T\u034b\3U\3U\5U\u0350\nU\3V\3V") + buf.write("\3V\3V\3W\3W\5W\u0358\nW\3W\5W\u035b\nW\3X\3X\3Y\6Y\u0360") + buf.write("\nY\rY\16Y\u0361\3Z\3Z\5Z\u0366\nZ\3[\3[\5[\u036a\n[\3") + buf.write("\\\3\\\3\\\5\\\u036f\n\\\3\\\5\\\u0372\n\\\3\\\5\\\u0375") + buf.write("\n\\\3\\\3\\\3\\\5\\\u037a\n\\\3\\\5\\\u037d\n\\\3\\\3") + buf.write("\\\3\\\5\\\u0382\n\\\3\\\3\\\3\\\5\\\u0387\n\\\3]\3]\3") + buf.write("]\3^\3^\3_\5_\u038f\n_\3_\3_\3`\3`\3a\3a\3b\3b\3b\5b\u039a") + buf.write("\nb\3c\3c\5c\u039e\nc\3c\3c\3c\5c\u03a3\nc\3c\3c\5c\u03a7") + buf.write("\nc\3d\3d\3d\3e\3e\3f\3f\3f\3f\3f\3f\3f\3f\3f\5f\u03b7") + buf.write("\nf\3g\3g\3g\3g\3g\3g\3g\3g\5g\u03c1\ng\3h\3h\3i\3i\5") + buf.write("i\u03c7\ni\3i\3i\3j\6j\u03cc\nj\rj\16j\u03cd\3k\3k\5k") + buf.write("\u03d2\nk\3l\3l\3l\3l\5l\u03d8\nl\3m\3m\3m\3m\3m\3m\3") + buf.write("m\3m\3m\3m\3m\5m\u03e5\nm\3n\3n\3o\3o\6o\u03eb\no\ro\16") + buf.write("o\u03ec\3o\3o\3o\3o\3o\3p\3p\3p\3p\3p\3q\3q\3r\3r\3s\3") + buf.write("s\3t\3t\3u\3u\3v\3v\3w\3w\3x\3x\3y\3y\3z\3z\3z\3z\3{\3") + buf.write("{\3|\3|\3|\3}\3}\3~\3~\3\177\3\177\3\u0080\3\u0080\3\u0081") + buf.write("\3\u0081\3\u0082\3\u0082\3\u0083\3\u0083\3\u0084\3\u0084") + buf.write("\3\u0084\3\u0085\3\u0085\3\u0085\3\u0086\3\u0086\3\u0086") + buf.write("\3\u0087\3\u0087\3\u0087\3\u0088\3\u0088\3\u0088\3\u0089") + buf.write("\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b") + buf.write("\3\u008b\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008e") + buf.write("\3\u008e\3\u008f\3\u008f\3\u0090\3\u0090\3\u0091\3\u0091") + buf.write("\3\u0092\3\u0092\3\u0093\3\u0093\3\u0094\3\u0094\3\u0095") + buf.write("\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097") + buf.write("\3\u0097\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099") + buf.write("\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b\3\u009c") + buf.write("\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d\3\u009e") + buf.write("\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f\3\u009f") + buf.write("\3\u009f\3\u00a0\3\u00a0\7\u00a0\u0474\n\u00a0\f\u00a0") + buf.write("\16\u00a0\u0477\13\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1") + buf.write("\3\u00a1\3\u00a1\5\u00a1\u047f\n\u00a1\3\u00a2\3\u00a2") + buf.write("\3\u00a2\3\u00a2\3\u00a2\3\u00a2\5\u00a2\u0487\n\u00a2") + buf.write("\3\u00a3\6\u00a3\u048a\n\u00a3\r\u00a3\16\u00a3\u048b") + buf.write("\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4\7\u00a4") + buf.write("\u0494\n\u00a4\f\u00a4\16\u00a4\u0497\13\u00a4\3\u00a4") + buf.write("\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5") + buf.write("\3\u00a5\7\u00a5\u04a2\n\u00a5\f\u00a5\16\u00a5\u04a5") + buf.write("\13\u00a5\3\u00a5\3\u00a5\3\u0495\2\u00a6\3\3\5\4\7\5") + buf.write("\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35") + buf.write("\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33") + buf.write("\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[") + buf.write("/]\60_\61a\62c\63e\64g\65i\66k\67m8o9q:s;u{?}@\177") + buf.write("\2\u0081\2\u0083\2\u0085\2\u0087\2\u0089\2\u008b\2\u008d") + buf.write("\2\u008f\2\u0091\2\u0093\2\u0095\2\u0097\2\u0099\2\u009b") + buf.write("\2\u009d\2\u009f\2\u00a1\2\u00a3\2\u00a5\2\u00a7\2\u00a9") + buf.write("\2\u00ab\2\u00ad\2\u00af\2\u00b1\2\u00b3\2\u00b5A\u00b7") + buf.write("\2\u00b9\2\u00bb\2\u00bd\2\u00bf\2\u00c1\2\u00c3\2\u00c5") + buf.write("\2\u00c7\2\u00c9\2\u00cbB\u00cdC\u00cf\2\u00d1D\u00d3") + buf.write("\2\u00d5\2\u00d7\2\u00d9\2\u00db\2\u00dd\2\u00dfE\u00e1") + buf.write("F\u00e3G\u00e5H\u00e7I\u00e9J\u00ebK\u00edL\u00efM\u00f1") + buf.write("N\u00f3O\u00f5P\u00f7Q\u00f9R\u00fbS\u00fdT\u00ffU\u0101") + buf.write("V\u0103W\u0105X\u0107Y\u0109Z\u010b[\u010d\\\u010f]\u0111") + buf.write("^\u0113_\u0115`\u0117a\u0119b\u011bc\u011dd\u011fe\u0121") + buf.write("f\u0123g\u0125h\u0127i\u0129j\u012bk\u012dl\u012fm\u0131") + buf.write("n\u0133o\u0135p\u0137q\u0139r\u013bs\u013dt\u013fu\u0141") + buf.write("\2\u0143\2\u0145v\u0147w\u0149x\3\2\30\4\2NNnn\3\2\63") + buf.write(";\4\2ZZzz\5\2\62;CHch\3\2\629\4\2DDdd\3\2\62\63\4\2GG") + buf.write("gg\4\2--//\6\2FFHHffhh\4\2RRrr\6\2\f\f\17\17))^^\6\2\f") + buf.write("\f\17\17$$^^\n\2$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aa") + buf.write("c|\4\2\2\u0081\ud802\udc01\3\2\ud802\udc01\3\2\udc02\ue001") + buf.write("\7\2&&\62;C\\aac|\5\2\13\f\16\17\"\"\4\2\f\f\17\17\2\u04b7") + buf.write("\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13") + buf.write("\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3") + buf.write("\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2") + buf.write("\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2") + buf.write("%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2") + buf.write("\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67") + buf.write("\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2") + buf.write("A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2") + buf.write("\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2") + buf.write("\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2") + buf.write("\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3") + buf.write("\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q") + buf.write("\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2") + buf.write("{\3\2\2\2\2}\3\2\2\2\2\u00b5\3\2\2\2\2\u00cb\3\2\2\2\2") + buf.write("\u00cd\3\2\2\2\2\u00d1\3\2\2\2\2\u00df\3\2\2\2\2\u00e1") + buf.write("\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7\3\2\2") + buf.write("\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef") + buf.write("\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2") + buf.write("\2\2\u00f7\3\2\2\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd") + buf.write("\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2\2\2\u0103\3\2\2") + buf.write("\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b") + buf.write("\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2") + buf.write("\2\2\u0113\3\2\2\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119") + buf.write("\3\2\2\2\2\u011b\3\2\2\2\2\u011d\3\2\2\2\2\u011f\3\2\2") + buf.write("\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u0127") + buf.write("\3\2\2\2\2\u0129\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2") + buf.write("\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133\3\2\2\2\2\u0135") + buf.write("\3\2\2\2\2\u0137\3\2\2\2\2\u0139\3\2\2\2\2\u013b\3\2\2") + buf.write("\2\2\u013d\3\2\2\2\2\u013f\3\2\2\2\2\u0145\3\2\2\2\2\u0147") + buf.write("\3\2\2\2\2\u0149\3\2\2\2\3\u014b\3\2\2\2\5\u0154\3\2\2") + buf.write("\2\7\u015b\3\2\2\2\t\u0163\3\2\2\2\13\u0169\3\2\2\2\r") + buf.write("\u016e\3\2\2\2\17\u0173\3\2\2\2\21\u0179\3\2\2\2\23\u017e") + buf.write("\3\2\2\2\25\u0184\3\2\2\2\27\u018a\3\2\2\2\31\u0193\3") + buf.write("\2\2\2\33\u019b\3\2\2\2\35\u019e\3\2\2\2\37\u01a5\3\2") + buf.write("\2\2!\u01aa\3\2\2\2#\u01af\3\2\2\2%\u01b7\3\2\2\2\'\u01bf") + buf.write("\3\2\2\2)\u01c5\3\2\2\2+\u01cd\3\2\2\2-\u01d3\3\2\2\2") + buf.write("/\u01d7\3\2\2\2\61\u01da\3\2\2\2\63\u01df\3\2\2\2\65\u01ea") + buf.write("\3\2\2\2\67\u01f1\3\2\2\29\u01fc\3\2\2\2;\u0200\3\2\2") + buf.write("\2=\u020a\3\2\2\2?\u020f\3\2\2\2A\u0216\3\2\2\2C\u021d") + buf.write("\3\2\2\2E\u0221\3\2\2\2G\u0226\3\2\2\2I\u022c\3\2\2\2") + buf.write("K\u0234\3\2\2\2M\u023c\3\2\2\2O\u0246\3\2\2\2Q\u024f\3") + buf.write("\2\2\2S\u0256\3\2\2\2U\u025f\3\2\2\2W\u0266\3\2\2\2Y\u026c") + buf.write("\3\2\2\2[\u0273\3\2\2\2]\u027c\3\2\2\2_\u0282\3\2\2\2") + buf.write("a\u0289\3\2\2\2c\u0296\3\2\2\2e\u029b\3\2\2\2g\u02a1\3") + buf.write("\2\2\2i\u02a8\3\2\2\2k\u02ab\3\2\2\2m\u02b5\3\2\2\2o\u02c0") + buf.write("\3\2\2\2q\u02c4\3\2\2\2s\u02c9\3\2\2\2u\u02ce\3\2\2\2") + buf.write("w\u02d7\3\2\2\2y\u02dd\3\2\2\2{\u02e2\3\2\2\2}\u02e8\3") + buf.write("\2\2\2\177\u02ea\3\2\2\2\u0081\u02ee\3\2\2\2\u0083\u02f2") + buf.write("\3\2\2\2\u0085\u02f6\3\2\2\2\u0087\u02fa\3\2\2\2\u0089") + buf.write("\u0306\3\2\2\2\u008b\u0308\3\2\2\2\u008d\u0311\3\2\2\2") + buf.write("\u008f\u0313\3\2\2\2\u0091\u0316\3\2\2\2\u0093\u031c\3") + buf.write("\2\2\2\u0095\u031f\3\2\2\2\u0097\u0323\3\2\2\2\u0099\u0327") + buf.write("\3\2\2\2\u009b\u032e\3\2\2\2\u009d\u0331\3\2\2\2\u009f") + buf.write("\u0337\3\2\2\2\u00a1\u0339\3\2\2\2\u00a3\u033f\3\2\2\2") + buf.write("\u00a5\u0346\3\2\2\2\u00a7\u0349\3\2\2\2\u00a9\u034f\3") + buf.write("\2\2\2\u00ab\u0351\3\2\2\2\u00ad\u0355\3\2\2\2\u00af\u035c") + buf.write("\3\2\2\2\u00b1\u035f\3\2\2\2\u00b3\u0365\3\2\2\2\u00b5") + buf.write("\u0369\3\2\2\2\u00b7\u0386\3\2\2\2\u00b9\u0388\3\2\2\2") + buf.write("\u00bb\u038b\3\2\2\2\u00bd\u038e\3\2\2\2\u00bf\u0392\3") + buf.write("\2\2\2\u00c1\u0394\3\2\2\2\u00c3\u0396\3\2\2\2\u00c5\u03a6") + buf.write("\3\2\2\2\u00c7\u03a8\3\2\2\2\u00c9\u03ab\3\2\2\2\u00cb") + buf.write("\u03b6\3\2\2\2\u00cd\u03c0\3\2\2\2\u00cf\u03c2\3\2\2\2") + buf.write("\u00d1\u03c4\3\2\2\2\u00d3\u03cb\3\2\2\2\u00d5\u03d1\3") + buf.write("\2\2\2\u00d7\u03d7\3\2\2\2\u00d9\u03e4\3\2\2\2\u00db\u03e6") + buf.write("\3\2\2\2\u00dd\u03e8\3\2\2\2\u00df\u03f3\3\2\2\2\u00e1") + buf.write("\u03f8\3\2\2\2\u00e3\u03fa\3\2\2\2\u00e5\u03fc\3\2\2\2") + buf.write("\u00e7\u03fe\3\2\2\2\u00e9\u0400\3\2\2\2\u00eb\u0402\3") + buf.write("\2\2\2\u00ed\u0404\3\2\2\2\u00ef\u0406\3\2\2\2\u00f1\u0408") + buf.write("\3\2\2\2\u00f3\u040a\3\2\2\2\u00f5\u040e\3\2\2\2\u00f7") + buf.write("\u0410\3\2\2\2\u00f9\u0413\3\2\2\2\u00fb\u0415\3\2\2\2") + buf.write("\u00fd\u0417\3\2\2\2\u00ff\u0419\3\2\2\2\u0101\u041b\3") + buf.write("\2\2\2\u0103\u041d\3\2\2\2\u0105\u041f\3\2\2\2\u0107\u0421") + buf.write("\3\2\2\2\u0109\u0424\3\2\2\2\u010b\u0427\3\2\2\2\u010d") + buf.write("\u042a\3\2\2\2\u010f\u042d\3\2\2\2\u0111\u0430\3\2\2\2") + buf.write("\u0113\u0433\3\2\2\2\u0115\u0436\3\2\2\2\u0117\u0439\3") + buf.write("\2\2\2\u0119\u043c\3\2\2\2\u011b\u043e\3\2\2\2\u011d\u0440") + buf.write("\3\2\2\2\u011f\u0442\3\2\2\2\u0121\u0444\3\2\2\2\u0123") + buf.write("\u0446\3\2\2\2\u0125\u0448\3\2\2\2\u0127\u044a\3\2\2\2") + buf.write("\u0129\u044c\3\2\2\2\u012b\u044f\3\2\2\2\u012d\u0452\3") + buf.write("\2\2\2\u012f\u0455\3\2\2\2\u0131\u0458\3\2\2\2\u0133\u045b") + buf.write("\3\2\2\2\u0135\u045e\3\2\2\2\u0137\u0461\3\2\2\2\u0139") + buf.write("\u0464\3\2\2\2\u013b\u0468\3\2\2\2\u013d\u046c\3\2\2\2") + buf.write("\u013f\u0471\3\2\2\2\u0141\u047e\3\2\2\2\u0143\u0486\3") + buf.write("\2\2\2\u0145\u0489\3\2\2\2\u0147\u048f\3\2\2\2\u0149\u049d") + buf.write("\3\2\2\2\u014b\u014c\7c\2\2\u014c\u014d\7d\2\2\u014d\u014e") + buf.write("\7u\2\2\u014e\u014f\7v\2\2\u014f\u0150\7t\2\2\u0150\u0151") + buf.write("\7c\2\2\u0151\u0152\7e\2\2\u0152\u0153\7v\2\2\u0153\4") + buf.write("\3\2\2\2\u0154\u0155\7c\2\2\u0155\u0156\7u\2\2\u0156\u0157") + buf.write("\7u\2\2\u0157\u0158\7g\2\2\u0158\u0159\7t\2\2\u0159\u015a") + buf.write("\7v\2\2\u015a\6\3\2\2\2\u015b\u015c\7d\2\2\u015c\u015d") + buf.write("\7q\2\2\u015d\u015e\7q\2\2\u015e\u015f\7n\2\2\u015f\u0160") + buf.write("\7g\2\2\u0160\u0161\7c\2\2\u0161\u0162\7p\2\2\u0162\b") + buf.write("\3\2\2\2\u0163\u0164\7d\2\2\u0164\u0165\7t\2\2\u0165\u0166") + buf.write("\7g\2\2\u0166\u0167\7c\2\2\u0167\u0168\7m\2\2\u0168\n") + buf.write("\3\2\2\2\u0169\u016a\7d\2\2\u016a\u016b\7{\2\2\u016b\u016c") + buf.write("\7v\2\2\u016c\u016d\7g\2\2\u016d\f\3\2\2\2\u016e\u016f") + buf.write("\7e\2\2\u016f\u0170\7c\2\2\u0170\u0171\7u\2\2\u0171\u0172") + buf.write("\7g\2\2\u0172\16\3\2\2\2\u0173\u0174\7e\2\2\u0174\u0175") + buf.write("\7c\2\2\u0175\u0176\7v\2\2\u0176\u0177\7e\2\2\u0177\u0178") + buf.write("\7j\2\2\u0178\20\3\2\2\2\u0179\u017a\7e\2\2\u017a\u017b") + buf.write("\7j\2\2\u017b\u017c\7c\2\2\u017c\u017d\7t\2\2\u017d\22") + buf.write("\3\2\2\2\u017e\u017f\7e\2\2\u017f\u0180\7n\2\2\u0180\u0181") + buf.write("\7c\2\2\u0181\u0182\7u\2\2\u0182\u0183\7u\2\2\u0183\24") + buf.write("\3\2\2\2\u0184\u0185\7e\2\2\u0185\u0186\7q\2\2\u0186\u0187") + buf.write("\7p\2\2\u0187\u0188\7u\2\2\u0188\u0189\7v\2\2\u0189\26") + buf.write("\3\2\2\2\u018a\u018b\7e\2\2\u018b\u018c\7q\2\2\u018c\u018d") + buf.write("\7p\2\2\u018d\u018e\7v\2\2\u018e\u018f\7k\2\2\u018f\u0190") + buf.write("\7p\2\2\u0190\u0191\7w\2\2\u0191\u0192\7g\2\2\u0192\30") + buf.write("\3\2\2\2\u0193\u0194\7f\2\2\u0194\u0195\7g\2\2\u0195\u0196") + buf.write("\7h\2\2\u0196\u0197\7c\2\2\u0197\u0198\7w\2\2\u0198\u0199") + buf.write("\7n\2\2\u0199\u019a\7v\2\2\u019a\32\3\2\2\2\u019b\u019c") + buf.write("\7f\2\2\u019c\u019d\7q\2\2\u019d\34\3\2\2\2\u019e\u019f") + buf.write("\7f\2\2\u019f\u01a0\7q\2\2\u01a0\u01a1\7w\2\2\u01a1\u01a2") + buf.write("\7d\2\2\u01a2\u01a3\7n\2\2\u01a3\u01a4\7g\2\2\u01a4\36") + buf.write("\3\2\2\2\u01a5\u01a6\7g\2\2\u01a6\u01a7\7n\2\2\u01a7\u01a8") + buf.write("\7u\2\2\u01a8\u01a9\7g\2\2\u01a9 \3\2\2\2\u01aa\u01ab") + buf.write("\7g\2\2\u01ab\u01ac\7p\2\2\u01ac\u01ad\7w\2\2\u01ad\u01ae") + buf.write("\7o\2\2\u01ae\"\3\2\2\2\u01af\u01b0\7g\2\2\u01b0\u01b1") + buf.write("\7z\2\2\u01b1\u01b2\7r\2\2\u01b2\u01b3\7q\2\2\u01b3\u01b4") + buf.write("\7t\2\2\u01b4\u01b5\7v\2\2\u01b5\u01b6\7u\2\2\u01b6$\3") + buf.write("\2\2\2\u01b7\u01b8\7g\2\2\u01b8\u01b9\7z\2\2\u01b9\u01ba") + buf.write("\7v\2\2\u01ba\u01bb\7g\2\2\u01bb\u01bc\7p\2\2\u01bc\u01bd") + buf.write("\7f\2\2\u01bd\u01be\7u\2\2\u01be&\3\2\2\2\u01bf\u01c0") + buf.write("\7h\2\2\u01c0\u01c1\7k\2\2\u01c1\u01c2\7p\2\2\u01c2\u01c3") + buf.write("\7c\2\2\u01c3\u01c4\7n\2\2\u01c4(\3\2\2\2\u01c5\u01c6") + buf.write("\7h\2\2\u01c6\u01c7\7k\2\2\u01c7\u01c8\7p\2\2\u01c8\u01c9") + buf.write("\7c\2\2\u01c9\u01ca\7n\2\2\u01ca\u01cb\7n\2\2\u01cb\u01cc") + buf.write("\7{\2\2\u01cc*\3\2\2\2\u01cd\u01ce\7h\2\2\u01ce\u01cf") + buf.write("\7n\2\2\u01cf\u01d0\7q\2\2\u01d0\u01d1\7c\2\2\u01d1\u01d2") + buf.write("\7v\2\2\u01d2,\3\2\2\2\u01d3\u01d4\7h\2\2\u01d4\u01d5") + buf.write("\7q\2\2\u01d5\u01d6\7t\2\2\u01d6.\3\2\2\2\u01d7\u01d8") + buf.write("\7k\2\2\u01d8\u01d9\7h\2\2\u01d9\60\3\2\2\2\u01da\u01db") + buf.write("\7i\2\2\u01db\u01dc\7q\2\2\u01dc\u01dd\7v\2\2\u01dd\u01de") + buf.write("\7q\2\2\u01de\62\3\2\2\2\u01df\u01e0\7k\2\2\u01e0\u01e1") + buf.write("\7o\2\2\u01e1\u01e2\7r\2\2\u01e2\u01e3\7n\2\2\u01e3\u01e4") + buf.write("\7g\2\2\u01e4\u01e5\7o\2\2\u01e5\u01e6\7g\2\2\u01e6\u01e7") + buf.write("\7p\2\2\u01e7\u01e8\7v\2\2\u01e8\u01e9\7u\2\2\u01e9\64") + buf.write("\3\2\2\2\u01ea\u01eb\7k\2\2\u01eb\u01ec\7o\2\2\u01ec\u01ed") + buf.write("\7r\2\2\u01ed\u01ee\7q\2\2\u01ee\u01ef\7t\2\2\u01ef\u01f0") + buf.write("\7v\2\2\u01f0\66\3\2\2\2\u01f1\u01f2\7k\2\2\u01f2\u01f3") + buf.write("\7p\2\2\u01f3\u01f4\7u\2\2\u01f4\u01f5\7v\2\2\u01f5\u01f6") + buf.write("\7c\2\2\u01f6\u01f7\7p\2\2\u01f7\u01f8\7e\2\2\u01f8\u01f9") + buf.write("\7g\2\2\u01f9\u01fa\7q\2\2\u01fa\u01fb\7h\2\2\u01fb8\3") + buf.write("\2\2\2\u01fc\u01fd\7k\2\2\u01fd\u01fe\7p\2\2\u01fe\u01ff") + buf.write("\7v\2\2\u01ff:\3\2\2\2\u0200\u0201\7k\2\2\u0201\u0202") + buf.write("\7p\2\2\u0202\u0203\7v\2\2\u0203\u0204\7g\2\2\u0204\u0205") + buf.write("\7t\2\2\u0205\u0206\7h\2\2\u0206\u0207\7c\2\2\u0207\u0208") + buf.write("\7e\2\2\u0208\u0209\7g\2\2\u0209<\3\2\2\2\u020a\u020b") + buf.write("\7n\2\2\u020b\u020c\7q\2\2\u020c\u020d\7p\2\2\u020d\u020e") + buf.write("\7i\2\2\u020e>\3\2\2\2\u020f\u0210\7o\2\2\u0210\u0211") + buf.write("\7q\2\2\u0211\u0212\7f\2\2\u0212\u0213\7w\2\2\u0213\u0214") + buf.write("\7n\2\2\u0214\u0215\7g\2\2\u0215@\3\2\2\2\u0216\u0217") + buf.write("\7p\2\2\u0217\u0218\7c\2\2\u0218\u0219\7v\2\2\u0219\u021a") + buf.write("\7k\2\2\u021a\u021b\7x\2\2\u021b\u021c\7g\2\2\u021cB\3") + buf.write("\2\2\2\u021d\u021e\7p\2\2\u021e\u021f\7g\2\2\u021f\u0220") + buf.write("\7y\2\2\u0220D\3\2\2\2\u0221\u0222\7q\2\2\u0222\u0223") + buf.write("\7r\2\2\u0223\u0224\7g\2\2\u0224\u0225\7p\2\2\u0225F\3") + buf.write("\2\2\2\u0226\u0227\7q\2\2\u0227\u0228\7r\2\2\u0228\u0229") + buf.write("\7g\2\2\u0229\u022a\7p\2\2\u022a\u022b\7u\2\2\u022bH\3") + buf.write("\2\2\2\u022c\u022d\7r\2\2\u022d\u022e\7c\2\2\u022e\u022f") + buf.write("\7e\2\2\u022f\u0230\7m\2\2\u0230\u0231\7c\2\2\u0231\u0232") + buf.write("\7i\2\2\u0232\u0233\7g\2\2\u0233J\3\2\2\2\u0234\u0235") + buf.write("\7r\2\2\u0235\u0236\7t\2\2\u0236\u0237\7k\2\2\u0237\u0238") + buf.write("\7x\2\2\u0238\u0239\7c\2\2\u0239\u023a\7v\2\2\u023a\u023b") + buf.write("\7g\2\2\u023bL\3\2\2\2\u023c\u023d\7r\2\2\u023d\u023e") + buf.write("\7t\2\2\u023e\u023f\7q\2\2\u023f\u0240\7v\2\2\u0240\u0241") + buf.write("\7g\2\2\u0241\u0242\7e\2\2\u0242\u0243\7v\2\2\u0243\u0244") + buf.write("\7g\2\2\u0244\u0245\7f\2\2\u0245N\3\2\2\2\u0246\u0247") + buf.write("\7r\2\2\u0247\u0248\7t\2\2\u0248\u0249\7q\2\2\u0249\u024a") + buf.write("\7x\2\2\u024a\u024b\7k\2\2\u024b\u024c\7f\2\2\u024c\u024d") + buf.write("\7g\2\2\u024d\u024e\7u\2\2\u024eP\3\2\2\2\u024f\u0250") + buf.write("\7r\2\2\u0250\u0251\7w\2\2\u0251\u0252\7d\2\2\u0252\u0253") + buf.write("\7n\2\2\u0253\u0254\7k\2\2\u0254\u0255\7e\2\2\u0255R\3") + buf.write("\2\2\2\u0256\u0257\7t\2\2\u0257\u0258\7g\2\2\u0258\u0259") + buf.write("\7s\2\2\u0259\u025a\7w\2\2\u025a\u025b\7k\2\2\u025b\u025c") + buf.write("\7t\2\2\u025c\u025d\7g\2\2\u025d\u025e\7u\2\2\u025eT\3") + buf.write("\2\2\2\u025f\u0260\7t\2\2\u0260\u0261\7g\2\2\u0261\u0262") + buf.write("\7v\2\2\u0262\u0263\7w\2\2\u0263\u0264\7t\2\2\u0264\u0265") + buf.write("\7p\2\2\u0265V\3\2\2\2\u0266\u0267\7u\2\2\u0267\u0268") + buf.write("\7j\2\2\u0268\u0269\7q\2\2\u0269\u026a\7t\2\2\u026a\u026b") + buf.write("\7v\2\2\u026bX\3\2\2\2\u026c\u026d\7u\2\2\u026d\u026e") + buf.write("\7v\2\2\u026e\u026f\7c\2\2\u026f\u0270\7v\2\2\u0270\u0271") + buf.write("\7k\2\2\u0271\u0272\7e\2\2\u0272Z\3\2\2\2\u0273\u0274") + buf.write("\7u\2\2\u0274\u0275\7v\2\2\u0275\u0276\7t\2\2\u0276\u0277") + buf.write("\7k\2\2\u0277\u0278\7e\2\2\u0278\u0279\7v\2\2\u0279\u027a") + buf.write("\7h\2\2\u027a\u027b\7r\2\2\u027b\\\3\2\2\2\u027c\u027d") + buf.write("\7u\2\2\u027d\u027e\7w\2\2\u027e\u027f\7r\2\2\u027f\u0280") + buf.write("\7g\2\2\u0280\u0281\7t\2\2\u0281^\3\2\2\2\u0282\u0283") + buf.write("\7u\2\2\u0283\u0284\7y\2\2\u0284\u0285\7k\2\2\u0285\u0286") + buf.write("\7v\2\2\u0286\u0287\7e\2\2\u0287\u0288\7j\2\2\u0288`\3") + buf.write("\2\2\2\u0289\u028a\7u\2\2\u028a\u028b\7{\2\2\u028b\u028c") + buf.write("\7p\2\2\u028c\u028d\7e\2\2\u028d\u028e\7j\2\2\u028e\u028f") + buf.write("\7t\2\2\u028f\u0290\7q\2\2\u0290\u0291\7p\2\2\u0291\u0292") + buf.write("\7k\2\2\u0292\u0293\7|\2\2\u0293\u0294\7g\2\2\u0294\u0295") + buf.write("\7f\2\2\u0295b\3\2\2\2\u0296\u0297\7v\2\2\u0297\u0298") + buf.write("\7j\2\2\u0298\u0299\7k\2\2\u0299\u029a\7u\2\2\u029ad\3") + buf.write("\2\2\2\u029b\u029c\7v\2\2\u029c\u029d\7j\2\2\u029d\u029e") + buf.write("\7t\2\2\u029e\u029f\7q\2\2\u029f\u02a0\7y\2\2\u02a0f\3") + buf.write("\2\2\2\u02a1\u02a2\7v\2\2\u02a2\u02a3\7j\2\2\u02a3\u02a4") + buf.write("\7t\2\2\u02a4\u02a5\7q\2\2\u02a5\u02a6\7y\2\2\u02a6\u02a7") + buf.write("\7u\2\2\u02a7h\3\2\2\2\u02a8\u02a9\7v\2\2\u02a9\u02aa") + buf.write("\7q\2\2\u02aaj\3\2\2\2\u02ab\u02ac\7v\2\2\u02ac\u02ad") + buf.write("\7t\2\2\u02ad\u02ae\7c\2\2\u02ae\u02af\7p\2\2\u02af\u02b0") + buf.write("\7u\2\2\u02b0\u02b1\7k\2\2\u02b1\u02b2\7g\2\2\u02b2\u02b3") + buf.write("\7p\2\2\u02b3\u02b4\7v\2\2\u02b4l\3\2\2\2\u02b5\u02b6") + buf.write("\7v\2\2\u02b6\u02b7\7t\2\2\u02b7\u02b8\7c\2\2\u02b8\u02b9") + buf.write("\7p\2\2\u02b9\u02ba\7u\2\2\u02ba\u02bb\7k\2\2\u02bb\u02bc") + buf.write("\7v\2\2\u02bc\u02bd\7k\2\2\u02bd\u02be\7x\2\2\u02be\u02bf") + buf.write("\7g\2\2\u02bfn\3\2\2\2\u02c0\u02c1\7v\2\2\u02c1\u02c2") + buf.write("\7t\2\2\u02c2\u02c3\7{\2\2\u02c3p\3\2\2\2\u02c4\u02c5") + buf.write("\7w\2\2\u02c5\u02c6\7u\2\2\u02c6\u02c7\7g\2\2\u02c7\u02c8") + buf.write("\7u\2\2\u02c8r\3\2\2\2\u02c9\u02ca\7x\2\2\u02ca\u02cb") + buf.write("\7q\2\2\u02cb\u02cc\7k\2\2\u02cc\u02cd\7f\2\2\u02cdt\3") + buf.write("\2\2\2\u02ce\u02cf\7x\2\2\u02cf\u02d0\7q\2\2\u02d0\u02d1") + buf.write("\7n\2\2\u02d1\u02d2\7c\2\2\u02d2\u02d3\7v\2\2\u02d3\u02d4") + buf.write("\7k\2\2\u02d4\u02d5\7n\2\2\u02d5\u02d6\7g\2\2\u02d6v\3") + buf.write("\2\2\2\u02d7\u02d8\7y\2\2\u02d8\u02d9\7j\2\2\u02d9\u02da") + buf.write("\7k\2\2\u02da\u02db\7n\2\2\u02db\u02dc\7g\2\2\u02dcx\3") + buf.write("\2\2\2\u02dd\u02de\7y\2\2\u02de\u02df\7k\2\2\u02df\u02e0") + buf.write("\7v\2\2\u02e0\u02e1\7j\2\2\u02e1z\3\2\2\2\u02e2\u02e3") + buf.write("\7a\2\2\u02e3|\3\2\2\2\u02e4\u02e9\5\177@\2\u02e5\u02e9") + buf.write("\5\u0081A\2\u02e6\u02e9\5\u0083B\2\u02e7\u02e9\5\u0085") + buf.write("C\2\u02e8\u02e4\3\2\2\2\u02e8\u02e5\3\2\2\2\u02e8\u02e6") + buf.write("\3\2\2\2\u02e8\u02e7\3\2\2\2\u02e9~\3\2\2\2\u02ea\u02ec") + buf.write("\5\u0089E\2\u02eb\u02ed\5\u0087D\2\u02ec\u02eb\3\2\2\2") + buf.write("\u02ec\u02ed\3\2\2\2\u02ed\u0080\3\2\2\2\u02ee\u02f0\5") + buf.write("\u0097L\2\u02ef\u02f1\5\u0087D\2\u02f0\u02ef\3\2\2\2\u02f0") + buf.write("\u02f1\3\2\2\2\u02f1\u0082\3\2\2\2\u02f2\u02f4\5\u00a1") + buf.write("Q\2\u02f3\u02f5\5\u0087D\2\u02f4\u02f3\3\2\2\2\u02f4\u02f5") + buf.write("\3\2\2\2\u02f5\u0084\3\2\2\2\u02f6\u02f8\5\u00abV\2\u02f7") + buf.write("\u02f9\5\u0087D\2\u02f8\u02f7\3\2\2\2\u02f8\u02f9\3\2") + buf.write("\2\2\u02f9\u0086\3\2\2\2\u02fa\u02fb\t\2\2\2\u02fb\u0088") + buf.write("\3\2\2\2\u02fc\u0307\7\62\2\2\u02fd\u0304\5\u008fH\2\u02fe") + buf.write("\u0300\5\u008bF\2\u02ff\u02fe\3\2\2\2\u02ff\u0300\3\2") + buf.write("\2\2\u0300\u0305\3\2\2\2\u0301\u0302\5\u0095K\2\u0302") + buf.write("\u0303\5\u008bF\2\u0303\u0305\3\2\2\2\u0304\u02ff\3\2") + buf.write("\2\2\u0304\u0301\3\2\2\2\u0305\u0307\3\2\2\2\u0306\u02fc") + buf.write("\3\2\2\2\u0306\u02fd\3\2\2\2\u0307\u008a\3\2\2\2\u0308") + buf.write("\u030d\5\u008dG\2\u0309\u030b\5\u0091I\2\u030a\u0309\3") + buf.write("\2\2\2\u030a\u030b\3\2\2\2\u030b\u030c\3\2\2\2\u030c\u030e") + buf.write("\5\u008dG\2\u030d\u030a\3\2\2\2\u030d\u030e\3\2\2\2\u030e") + buf.write("\u008c\3\2\2\2\u030f\u0312\7\62\2\2\u0310\u0312\5\u008f") + buf.write("H\2\u0311\u030f\3\2\2\2\u0311\u0310\3\2\2\2\u0312\u008e") + buf.write("\3\2\2\2\u0313\u0314\t\3\2\2\u0314\u0090\3\2\2\2\u0315") + buf.write("\u0317\5\u0093J\2\u0316\u0315\3\2\2\2\u0317\u0318\3\2") + buf.write("\2\2\u0318\u0316\3\2\2\2\u0318\u0319\3\2\2\2\u0319\u0092") + buf.write("\3\2\2\2\u031a\u031d\5\u008dG\2\u031b\u031d\7a\2\2\u031c") + buf.write("\u031a\3\2\2\2\u031c\u031b\3\2\2\2\u031d\u0094\3\2\2\2") + buf.write("\u031e\u0320\7a\2\2\u031f\u031e\3\2\2\2\u0320\u0321\3") + buf.write("\2\2\2\u0321\u031f\3\2\2\2\u0321\u0322\3\2\2\2\u0322\u0096") + buf.write("\3\2\2\2\u0323\u0324\7\62\2\2\u0324\u0325\t\4\2\2\u0325") + buf.write("\u0326\5\u0099M\2\u0326\u0098\3\2\2\2\u0327\u032c\5\u009b") + buf.write("N\2\u0328\u032a\5\u009dO\2\u0329\u0328\3\2\2\2\u0329\u032a") + buf.write("\3\2\2\2\u032a\u032b\3\2\2\2\u032b\u032d\5\u009bN\2\u032c") + buf.write("\u0329\3\2\2\2\u032c\u032d\3\2\2\2\u032d\u009a\3\2\2\2") + buf.write("\u032e\u032f\t\5\2\2\u032f\u009c\3\2\2\2\u0330\u0332\5") + buf.write("\u009fP\2\u0331\u0330\3\2\2\2\u0332\u0333\3\2\2\2\u0333") + buf.write("\u0331\3\2\2\2\u0333\u0334\3\2\2\2\u0334\u009e\3\2\2\2") + buf.write("\u0335\u0338\5\u009bN\2\u0336\u0338\7a\2\2\u0337\u0335") + buf.write("\3\2\2\2\u0337\u0336\3\2\2\2\u0338\u00a0\3\2\2\2\u0339") + buf.write("\u033b\7\62\2\2\u033a\u033c\5\u0095K\2\u033b\u033a\3\2") + buf.write("\2\2\u033b\u033c\3\2\2\2\u033c\u033d\3\2\2\2\u033d\u033e") + buf.write("\5\u00a3R\2\u033e\u00a2\3\2\2\2\u033f\u0344\5\u00a5S\2") + buf.write("\u0340\u0342\5\u00a7T\2\u0341\u0340\3\2\2\2\u0341\u0342") + buf.write("\3\2\2\2\u0342\u0343\3\2\2\2\u0343\u0345\5\u00a5S\2\u0344") + buf.write("\u0341\3\2\2\2\u0344\u0345\3\2\2\2\u0345\u00a4\3\2\2\2") + buf.write("\u0346\u0347\t\6\2\2\u0347\u00a6\3\2\2\2\u0348\u034a\5") + buf.write("\u00a9U\2\u0349\u0348\3\2\2\2\u034a\u034b\3\2\2\2\u034b") + buf.write("\u0349\3\2\2\2\u034b\u034c\3\2\2\2\u034c\u00a8\3\2\2\2") + buf.write("\u034d\u0350\5\u00a5S\2\u034e\u0350\7a\2\2\u034f\u034d") + buf.write("\3\2\2\2\u034f\u034e\3\2\2\2\u0350\u00aa\3\2\2\2\u0351") + buf.write("\u0352\7\62\2\2\u0352\u0353\t\7\2\2\u0353\u0354\5\u00ad") + buf.write("W\2\u0354\u00ac\3\2\2\2\u0355\u035a\5\u00afX\2\u0356\u0358") + buf.write("\5\u00b1Y\2\u0357\u0356\3\2\2\2\u0357\u0358\3\2\2\2\u0358") + buf.write("\u0359\3\2\2\2\u0359\u035b\5\u00afX\2\u035a\u0357\3\2") + buf.write("\2\2\u035a\u035b\3\2\2\2\u035b\u00ae\3\2\2\2\u035c\u035d") + buf.write("\t\b\2\2\u035d\u00b0\3\2\2\2\u035e\u0360\5\u00b3Z\2\u035f") + buf.write("\u035e\3\2\2\2\u0360\u0361\3\2\2\2\u0361\u035f\3\2\2\2") + buf.write("\u0361\u0362\3\2\2\2\u0362\u00b2\3\2\2\2\u0363\u0366\5") + buf.write("\u00afX\2\u0364\u0366\7a\2\2\u0365\u0363\3\2\2\2\u0365") + buf.write("\u0364\3\2\2\2\u0366\u00b4\3\2\2\2\u0367\u036a\5\u00b7") + buf.write("\\\2\u0368\u036a\5\u00c3b\2\u0369\u0367\3\2\2\2\u0369") + buf.write("\u0368\3\2\2\2\u036a\u00b6\3\2\2\2\u036b\u036c\5\u008b") + buf.write("F\2\u036c\u036e\7\60\2\2\u036d\u036f\5\u008bF\2\u036e") + buf.write("\u036d\3\2\2\2\u036e\u036f\3\2\2\2\u036f\u0371\3\2\2\2") + buf.write("\u0370\u0372\5\u00b9]\2\u0371\u0370\3\2\2\2\u0371\u0372") + buf.write("\3\2\2\2\u0372\u0374\3\2\2\2\u0373\u0375\5\u00c1a\2\u0374") + buf.write("\u0373\3\2\2\2\u0374\u0375\3\2\2\2\u0375\u0387\3\2\2\2") + buf.write("\u0376\u0377\7\60\2\2\u0377\u0379\5\u008bF\2\u0378\u037a") + buf.write("\5\u00b9]\2\u0379\u0378\3\2\2\2\u0379\u037a\3\2\2\2\u037a") + buf.write("\u037c\3\2\2\2\u037b\u037d\5\u00c1a\2\u037c\u037b\3\2") + buf.write("\2\2\u037c\u037d\3\2\2\2\u037d\u0387\3\2\2\2\u037e\u037f") + buf.write("\5\u008bF\2\u037f\u0381\5\u00b9]\2\u0380\u0382\5\u00c1") + buf.write("a\2\u0381\u0380\3\2\2\2\u0381\u0382\3\2\2\2\u0382\u0387") + buf.write("\3\2\2\2\u0383\u0384\5\u008bF\2\u0384\u0385\5\u00c1a\2") + buf.write("\u0385\u0387\3\2\2\2\u0386\u036b\3\2\2\2\u0386\u0376\3") + buf.write("\2\2\2\u0386\u037e\3\2\2\2\u0386\u0383\3\2\2\2\u0387\u00b8") + buf.write("\3\2\2\2\u0388\u0389\5\u00bb^\2\u0389\u038a\5\u00bd_\2") + buf.write("\u038a\u00ba\3\2\2\2\u038b\u038c\t\t\2\2\u038c\u00bc\3") + buf.write("\2\2\2\u038d\u038f\5\u00bf`\2\u038e\u038d\3\2\2\2\u038e") + buf.write("\u038f\3\2\2\2\u038f\u0390\3\2\2\2\u0390\u0391\5\u008b") + buf.write("F\2\u0391\u00be\3\2\2\2\u0392\u0393\t\n\2\2\u0393\u00c0") + buf.write("\3\2\2\2\u0394\u0395\t\13\2\2\u0395\u00c2\3\2\2\2\u0396") + buf.write("\u0397\5\u00c5c\2\u0397\u0399\5\u00c7d\2\u0398\u039a\5") + buf.write("\u00c1a\2\u0399\u0398\3\2\2\2\u0399\u039a\3\2\2\2\u039a") + buf.write("\u00c4\3\2\2\2\u039b\u039d\5\u0097L\2\u039c\u039e\7\60") + buf.write("\2\2\u039d\u039c\3\2\2\2\u039d\u039e\3\2\2\2\u039e\u03a7") + buf.write("\3\2\2\2\u039f\u03a0\7\62\2\2\u03a0\u03a2\t\4\2\2\u03a1") + buf.write("\u03a3\5\u0099M\2\u03a2\u03a1\3\2\2\2\u03a2\u03a3\3\2") + buf.write("\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a5\7\60\2\2\u03a5\u03a7") + buf.write("\5\u0099M\2\u03a6\u039b\3\2\2\2\u03a6\u039f\3\2\2\2\u03a7") + buf.write("\u00c6\3\2\2\2\u03a8\u03a9\5\u00c9e\2\u03a9\u03aa\5\u00bd") + buf.write("_\2\u03aa\u00c8\3\2\2\2\u03ab\u03ac\t\f\2\2\u03ac\u00ca") + buf.write("\3\2\2\2\u03ad\u03ae\7v\2\2\u03ae\u03af\7t\2\2\u03af\u03b0") + buf.write("\7w\2\2\u03b0\u03b7\7g\2\2\u03b1\u03b2\7h\2\2\u03b2\u03b3") + buf.write("\7c\2\2\u03b3\u03b4\7n\2\2\u03b4\u03b5\7u\2\2\u03b5\u03b7") + buf.write("\7g\2\2\u03b6\u03ad\3\2\2\2\u03b6\u03b1\3\2\2\2\u03b7") + buf.write("\u00cc\3\2\2\2\u03b8\u03b9\7)\2\2\u03b9\u03ba\5\u00cf") + buf.write("h\2\u03ba\u03bb\7)\2\2\u03bb\u03c1\3\2\2\2\u03bc\u03bd") + buf.write("\7)\2\2\u03bd\u03be\5\u00d7l\2\u03be\u03bf\7)\2\2\u03bf") + buf.write("\u03c1\3\2\2\2\u03c0\u03b8\3\2\2\2\u03c0\u03bc\3\2\2\2") + buf.write("\u03c1\u00ce\3\2\2\2\u03c2\u03c3\n\r\2\2\u03c3\u00d0\3") + buf.write("\2\2\2\u03c4\u03c6\7$\2\2\u03c5\u03c7\5\u00d3j\2\u03c6") + buf.write("\u03c5\3\2\2\2\u03c6\u03c7\3\2\2\2\u03c7\u03c8\3\2\2\2") + buf.write("\u03c8\u03c9\7$\2\2\u03c9\u00d2\3\2\2\2\u03ca\u03cc\5") + buf.write("\u00d5k\2\u03cb\u03ca\3\2\2\2\u03cc\u03cd\3\2\2\2\u03cd") + buf.write("\u03cb\3\2\2\2\u03cd\u03ce\3\2\2\2\u03ce\u00d4\3\2\2\2") + buf.write("\u03cf\u03d2\n\16\2\2\u03d0\u03d2\5\u00d7l\2\u03d1\u03cf") + buf.write("\3\2\2\2\u03d1\u03d0\3\2\2\2\u03d2\u00d6\3\2\2\2\u03d3") + buf.write("\u03d4\7^\2\2\u03d4\u03d8\t\17\2\2\u03d5\u03d8\5\u00d9") + buf.write("m\2\u03d6\u03d8\5\u00ddo\2\u03d7\u03d3\3\2\2\2\u03d7\u03d5") + buf.write("\3\2\2\2\u03d7\u03d6\3\2\2\2\u03d8\u00d8\3\2\2\2\u03d9") + buf.write("\u03da\7^\2\2\u03da\u03e5\5\u00a5S\2\u03db\u03dc\7^\2") + buf.write("\2\u03dc\u03dd\5\u00a5S\2\u03dd\u03de\5\u00a5S\2\u03de") + buf.write("\u03e5\3\2\2\2\u03df\u03e0\7^\2\2\u03e0\u03e1\5\u00db") + buf.write("n\2\u03e1\u03e2\5\u00a5S\2\u03e2\u03e3\5\u00a5S\2\u03e3") + buf.write("\u03e5\3\2\2\2\u03e4\u03d9\3\2\2\2\u03e4\u03db\3\2\2\2") + buf.write("\u03e4\u03df\3\2\2\2\u03e5\u00da\3\2\2\2\u03e6\u03e7\t") + buf.write("\20\2\2\u03e7\u00dc\3\2\2\2\u03e8\u03ea\7^\2\2\u03e9\u03eb") + buf.write("\7w\2\2\u03ea\u03e9\3\2\2\2\u03eb\u03ec\3\2\2\2\u03ec") + buf.write("\u03ea\3\2\2\2\u03ec\u03ed\3\2\2\2\u03ed\u03ee\3\2\2\2") + buf.write("\u03ee\u03ef\5\u009bN\2\u03ef\u03f0\5\u009bN\2\u03f0\u03f1") + buf.write("\5\u009bN\2\u03f1\u03f2\5\u009bN\2\u03f2\u00de\3\2\2\2") + buf.write("\u03f3\u03f4\7p\2\2\u03f4\u03f5\7w\2\2\u03f5\u03f6\7n") + buf.write("\2\2\u03f6\u03f7\7n\2\2\u03f7\u00e0\3\2\2\2\u03f8\u03f9") + buf.write("\7*\2\2\u03f9\u00e2\3\2\2\2\u03fa\u03fb\7+\2\2\u03fb\u00e4") + buf.write("\3\2\2\2\u03fc\u03fd\7}\2\2\u03fd\u00e6\3\2\2\2\u03fe") + buf.write("\u03ff\7\177\2\2\u03ff\u00e8\3\2\2\2\u0400\u0401\7]\2") + buf.write("\2\u0401\u00ea\3\2\2\2\u0402\u0403\7_\2\2\u0403\u00ec") + buf.write("\3\2\2\2\u0404\u0405\7=\2\2\u0405\u00ee\3\2\2\2\u0406") + buf.write("\u0407\7.\2\2\u0407\u00f0\3\2\2\2\u0408\u0409\7\60\2\2") + buf.write("\u0409\u00f2\3\2\2\2\u040a\u040b\7\60\2\2\u040b\u040c") + buf.write("\7\60\2\2\u040c\u040d\7\60\2\2\u040d\u00f4\3\2\2\2\u040e") + buf.write("\u040f\7B\2\2\u040f\u00f6\3\2\2\2\u0410\u0411\7<\2\2\u0411") + buf.write("\u0412\7<\2\2\u0412\u00f8\3\2\2\2\u0413\u0414\7?\2\2\u0414") + buf.write("\u00fa\3\2\2\2\u0415\u0416\7@\2\2\u0416\u00fc\3\2\2\2") + buf.write("\u0417\u0418\7>\2\2\u0418\u00fe\3\2\2\2\u0419\u041a\7") + buf.write("#\2\2\u041a\u0100\3\2\2\2\u041b\u041c\7\u0080\2\2\u041c") + buf.write("\u0102\3\2\2\2\u041d\u041e\7A\2\2\u041e\u0104\3\2\2\2") + buf.write("\u041f\u0420\7<\2\2\u0420\u0106\3\2\2\2\u0421\u0422\7") + buf.write("/\2\2\u0422\u0423\7@\2\2\u0423\u0108\3\2\2\2\u0424\u0425") + buf.write("\7?\2\2\u0425\u0426\7?\2\2\u0426\u010a\3\2\2\2\u0427\u0428") + buf.write("\7>\2\2\u0428\u0429\7?\2\2\u0429\u010c\3\2\2\2\u042a\u042b") + buf.write("\7@\2\2\u042b\u042c\7?\2\2\u042c\u010e\3\2\2\2\u042d\u042e") + buf.write("\7#\2\2\u042e\u042f\7?\2\2\u042f\u0110\3\2\2\2\u0430\u0431") + buf.write("\7(\2\2\u0431\u0432\7(\2\2\u0432\u0112\3\2\2\2\u0433\u0434") + buf.write("\7~\2\2\u0434\u0435\7~\2\2\u0435\u0114\3\2\2\2\u0436\u0437") + buf.write("\7-\2\2\u0437\u0438\7-\2\2\u0438\u0116\3\2\2\2\u0439\u043a") + buf.write("\7/\2\2\u043a\u043b\7/\2\2\u043b\u0118\3\2\2\2\u043c\u043d") + buf.write("\7-\2\2\u043d\u011a\3\2\2\2\u043e\u043f\7/\2\2\u043f\u011c") + buf.write("\3\2\2\2\u0440\u0441\7,\2\2\u0441\u011e\3\2\2\2\u0442") + buf.write("\u0443\7\61\2\2\u0443\u0120\3\2\2\2\u0444\u0445\7(\2\2") + buf.write("\u0445\u0122\3\2\2\2\u0446\u0447\7~\2\2\u0447\u0124\3") + buf.write("\2\2\2\u0448\u0449\7`\2\2\u0449\u0126\3\2\2\2\u044a\u044b") + buf.write("\7\'\2\2\u044b\u0128\3\2\2\2\u044c\u044d\7-\2\2\u044d") + buf.write("\u044e\7?\2\2\u044e\u012a\3\2\2\2\u044f\u0450\7/\2\2\u0450") + buf.write("\u0451\7?\2\2\u0451\u012c\3\2\2\2\u0452\u0453\7,\2\2\u0453") + buf.write("\u0454\7?\2\2\u0454\u012e\3\2\2\2\u0455\u0456\7\61\2\2") + buf.write("\u0456\u0457\7?\2\2\u0457\u0130\3\2\2\2\u0458\u0459\7") + buf.write("(\2\2\u0459\u045a\7?\2\2\u045a\u0132\3\2\2\2\u045b\u045c") + buf.write("\7~\2\2\u045c\u045d\7?\2\2\u045d\u0134\3\2\2\2\u045e\u045f") + buf.write("\7`\2\2\u045f\u0460\7?\2\2\u0460\u0136\3\2\2\2\u0461\u0462") + buf.write("\7\'\2\2\u0462\u0463\7?\2\2\u0463\u0138\3\2\2\2\u0464") + buf.write("\u0465\7>\2\2\u0465\u0466\7>\2\2\u0466\u0467\7?\2\2\u0467") + buf.write("\u013a\3\2\2\2\u0468\u0469\7@\2\2\u0469\u046a\7@\2\2\u046a") + buf.write("\u046b\7?\2\2\u046b\u013c\3\2\2\2\u046c\u046d\7@\2\2\u046d") + buf.write("\u046e\7@\2\2\u046e\u046f\7@\2\2\u046f\u0470\7?\2\2\u0470") + buf.write("\u013e\3\2\2\2\u0471\u0475\5\u0141\u00a1\2\u0472\u0474") + buf.write("\5\u0143\u00a2\2\u0473\u0472\3\2\2\2\u0474\u0477\3\2\2") + buf.write("\2\u0475\u0473\3\2\2\2\u0475\u0476\3\2\2\2\u0476\u0140") + buf.write("\3\2\2\2\u0477\u0475\3\2\2\2\u0478\u047f\t\21\2\2\u0479") + buf.write("\u047a\n\22\2\2\u047a\u047f\6\u00a1\2\2\u047b\u047c\t") + buf.write("\23\2\2\u047c\u047d\t\24\2\2\u047d\u047f\6\u00a1\3\2\u047e") + buf.write("\u0478\3\2\2\2\u047e\u0479\3\2\2\2\u047e\u047b\3\2\2\2") + buf.write("\u047f\u0142\3\2\2\2\u0480\u0487\t\25\2\2\u0481\u0482") + buf.write("\n\22\2\2\u0482\u0487\6\u00a2\4\2\u0483\u0484\t\23\2\2") + buf.write("\u0484\u0485\t\24\2\2\u0485\u0487\6\u00a2\5\2\u0486\u0480") + buf.write("\3\2\2\2\u0486\u0481\3\2\2\2\u0486\u0483\3\2\2\2\u0487") + buf.write("\u0144\3\2\2\2\u0488\u048a\t\26\2\2\u0489\u0488\3\2\2") + buf.write("\2\u048a\u048b\3\2\2\2\u048b\u0489\3\2\2\2\u048b\u048c") + buf.write("\3\2\2\2\u048c\u048d\3\2\2\2\u048d\u048e\b\u00a3\2\2\u048e") + buf.write("\u0146\3\2\2\2\u048f\u0490\7\61\2\2\u0490\u0491\7,\2\2") + buf.write("\u0491\u0495\3\2\2\2\u0492\u0494\13\2\2\2\u0493\u0492") + buf.write("\3\2\2\2\u0494\u0497\3\2\2\2\u0495\u0496\3\2\2\2\u0495") + buf.write("\u0493\3\2\2\2\u0496\u0498\3\2\2\2\u0497\u0495\3\2\2\2") + buf.write("\u0498\u0499\7,\2\2\u0499\u049a\7\61\2\2\u049a\u049b\3") + buf.write("\2\2\2\u049b\u049c\b\u00a4\3\2\u049c\u0148\3\2\2\2\u049d") + buf.write("\u049e\7\61\2\2\u049e\u049f\7\61\2\2\u049f\u04a3\3\2\2") + buf.write("\2\u04a0\u04a2\n\27\2\2\u04a1\u04a0\3\2\2\2\u04a2\u04a5") + buf.write("\3\2\2\2\u04a3\u04a1\3\2\2\2\u04a3\u04a4\3\2\2\2\u04a4") + buf.write("\u04a6\3\2\2\2\u04a5\u04a3\3\2\2\2\u04a6\u04a7\b\u00a5") + buf.write("\3\2\u04a7\u014a\3\2\2\29\2\u02e8\u02ec\u02f0\u02f4\u02f8") + buf.write("\u02ff\u0304\u0306\u030a\u030d\u0311\u0318\u031c\u0321") + buf.write("\u0329\u032c\u0333\u0337\u033b\u0341\u0344\u034b\u034f") + buf.write("\u0357\u035a\u0361\u0365\u0369\u036e\u0371\u0374\u0379") + buf.write("\u037c\u0381\u0386\u038e\u0399\u039d\u03a2\u03a6\u03b6") + buf.write("\u03c0\u03c6\u03cd\u03d1\u03d7\u03e4\u03ec\u0475\u047e") + buf.write("\u0486\u048b\u0495\u04a3\4\b\2\2\2\3\2") + return buf.getvalue() + + +class Java9Lexer(Java9LexerBase): + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + 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 + EXPORTS = 17 + EXTENDS = 18 + FINAL = 19 + FINALLY = 20 + FLOAT = 21 + FOR = 22 + IF = 23 + GOTO = 24 + IMPLEMENTS = 25 + IMPORT = 26 + INSTANCEOF = 27 + INT = 28 + INTERFACE = 29 + LONG = 30 + MODULE = 31 + NATIVE = 32 + NEW = 33 + OPEN = 34 + OPERNS = 35 + PACKAGE = 36 + PRIVATE = 37 + PROTECTED = 38 + PROVIDES = 39 + PUBLIC = 40 + REQUIRES = 41 + RETURN = 42 + SHORT = 43 + STATIC = 44 + STRICTFP = 45 + SUPER = 46 + SWITCH = 47 + SYNCHRONIZED = 48 + THIS = 49 + THROW = 50 + THROWS = 51 + TO = 52 + TRANSIENT = 53 + TRANSITIVE = 54 + TRY = 55 + USES = 56 + VOID = 57 + VOLATILE = 58 + WHILE = 59 + WITH = 60 + UNDER_SCORE = 61 + IntegerLiteral = 62 + FloatingPointLiteral = 63 + BooleanLiteral = 64 + CharacterLiteral = 65 + StringLiteral = 66 + NullLiteral = 67 + LPAREN = 68 + RPAREN = 69 + LBRACE = 70 + RBRACE = 71 + LBRACK = 72 + RBRACK = 73 + SEMI = 74 + COMMA = 75 + DOT = 76 + ELLIPSIS = 77 + AT = 78 + COLONCOLON = 79 + ASSIGN = 80 + GT = 81 + LT = 82 + BANG = 83 + TILDE = 84 + QUESTION = 85 + COLON = 86 + ARROW = 87 + EQUAL = 88 + LE = 89 + GE = 90 + NOTEQUAL = 91 + AND = 92 + OR = 93 + INC = 94 + DEC = 95 + ADD = 96 + SUB = 97 + MUL = 98 + DIV = 99 + BITAND = 100 + BITOR = 101 + CARET = 102 + MOD = 103 + ADD_ASSIGN = 104 + SUB_ASSIGN = 105 + MUL_ASSIGN = 106 + DIV_ASSIGN = 107 + AND_ASSIGN = 108 + OR_ASSIGN = 109 + XOR_ASSIGN = 110 + MOD_ASSIGN = 111 + LSHIFT_ASSIGN = 112 + RSHIFT_ASSIGN = 113 + URSHIFT_ASSIGN = 114 + Identifier = 115 + WS = 116 + COMMENT = 117 + LINE_COMMENT = 118 + + channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] + + modeNames = [ "DEFAULT_MODE" ] + + literalNames = [ "", + "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", + "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", + "'default'", "'do'", "'double'", "'else'", "'enum'", "'exports'", + "'extends'", "'final'", "'finally'", "'float'", "'for'", "'if'", + "'goto'", "'implements'", "'import'", "'instanceof'", "'int'", + "'interface'", "'long'", "'module'", "'native'", "'new'", "'open'", + "'opens'", "'package'", "'private'", "'protected'", "'provides'", + "'public'", "'requires'", "'return'", "'short'", "'static'", + "'strictfp'", "'super'", "'switch'", "'synchronized'", "'this'", + "'throw'", "'throws'", "'to'", "'transient'", "'transitive'", + "'try'", "'uses'", "'void'", "'volatile'", "'while'", "'with'", + "'_'", "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", "';'", + "','", "'.'", "'...'", "'@'", "'::'", "'='", "'>'", "'<'", "'!'", + "'~'", "'?'", "':'", "'->'", "'=='", "'<='", "'>='", "'!='", + "'&&'", "'||'", "'++'", "'--'", "'+'", "'-'", "'*'", "'/'", + "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", "'/='", + "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", "'>>>='" ] + + symbolicNames = [ "", + "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", + "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", + "ELSE", "ENUM", "EXPORTS", "EXTENDS", "FINAL", "FINALLY", "FLOAT", + "FOR", "IF", "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", + "INTERFACE", "LONG", "MODULE", "NATIVE", "NEW", "OPEN", "OPERNS", + "PACKAGE", "PRIVATE", "PROTECTED", "PROVIDES", "PUBLIC", "REQUIRES", + "RETURN", "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", + "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TO", "TRANSIENT", + "TRANSITIVE", "TRY", "USES", "VOID", "VOLATILE", "WHILE", "WITH", + "UNDER_SCORE", "IntegerLiteral", "FloatingPointLiteral", "BooleanLiteral", + "CharacterLiteral", "StringLiteral", "NullLiteral", "LPAREN", + "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", + "DOT", "ELLIPSIS", "AT", "COLONCOLON", "ASSIGN", "GT", "LT", + "BANG", "TILDE", "QUESTION", "COLON", "ARROW", "EQUAL", "LE", + "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", + "DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", + "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", + "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", + "Identifier", "WS", "COMMENT", "LINE_COMMENT" ] + + ruleNames = [ "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", + "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", + "DO", "DOUBLE", "ELSE", "ENUM", "EXPORTS", "EXTENDS", + "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", + "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "MODULE", + "NATIVE", "NEW", "OPEN", "OPERNS", "PACKAGE", "PRIVATE", + "PROTECTED", "PROVIDES", "PUBLIC", "REQUIRES", "RETURN", + "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", + "THIS", "THROW", "THROWS", "TO", "TRANSIENT", "TRANSITIVE", + "TRY", "USES", "VOID", "VOLATILE", "WHILE", "WITH", "UNDER_SCORE", + "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", "ELLIPSIS", + "AT", "COLONCOLON", "ASSIGN", "GT", "LT", "BANG", "TILDE", + "QUESTION", "COLON", "ARROW", "EQUAL", "LE", "GE", "NOTEQUAL", + "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", "DIV", + "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", + "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", + "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", + "URSHIFT_ASSIGN", "Identifier", "JavaLetter", "JavaLetterOrDigit", + "WS", "COMMENT", "LINE_COMMENT" ] + + grammarFileName = "Java9Lexer.g4" + + def __init__(self, input=None, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._actions = None + self._predicates = None + + + def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): + if self._predicates is None: + preds = dict() + preds[159] = self.JavaLetter_sempred + preds[160] = self.JavaLetterOrDigit_sempred + self._predicates = preds + pred = self._predicates.get(ruleIndex, None) + if pred is not None: + return pred(localctx, predIndex) + else: + raise Exception("No registered predicate for:" + str(ruleIndex)) + + def JavaLetter_sempred(self, localctx:RuleContext, predIndex:int): + if predIndex == 0: + return Check1() + + + if predIndex == 1: + return Check2() + + + def JavaLetterOrDigit_sempred(self, localctx:RuleContext, predIndex:int): + if predIndex == 2: + return Check3() + + + if predIndex == 3: + return Check4() + + + diff --git a/java2python/lang/Java9Lexer.tokens b/java2python/lang/Java9Lexer.tokens new file mode 100644 index 0000000..9c8b31a --- /dev/null +++ b/java2python/lang/Java9Lexer.tokens @@ -0,0 +1,227 @@ +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 +EXPORTS=17 +EXTENDS=18 +FINAL=19 +FINALLY=20 +FLOAT=21 +FOR=22 +IF=23 +GOTO=24 +IMPLEMENTS=25 +IMPORT=26 +INSTANCEOF=27 +INT=28 +INTERFACE=29 +LONG=30 +MODULE=31 +NATIVE=32 +NEW=33 +OPEN=34 +OPERNS=35 +PACKAGE=36 +PRIVATE=37 +PROTECTED=38 +PROVIDES=39 +PUBLIC=40 +REQUIRES=41 +RETURN=42 +SHORT=43 +STATIC=44 +STRICTFP=45 +SUPER=46 +SWITCH=47 +SYNCHRONIZED=48 +THIS=49 +THROW=50 +THROWS=51 +TO=52 +TRANSIENT=53 +TRANSITIVE=54 +TRY=55 +USES=56 +VOID=57 +VOLATILE=58 +WHILE=59 +WITH=60 +UNDER_SCORE=61 +IntegerLiteral=62 +FloatingPointLiteral=63 +BooleanLiteral=64 +CharacterLiteral=65 +StringLiteral=66 +NullLiteral=67 +LPAREN=68 +RPAREN=69 +LBRACE=70 +RBRACE=71 +LBRACK=72 +RBRACK=73 +SEMI=74 +COMMA=75 +DOT=76 +ELLIPSIS=77 +AT=78 +COLONCOLON=79 +ASSIGN=80 +GT=81 +LT=82 +BANG=83 +TILDE=84 +QUESTION=85 +COLON=86 +ARROW=87 +EQUAL=88 +LE=89 +GE=90 +NOTEQUAL=91 +AND=92 +OR=93 +INC=94 +DEC=95 +ADD=96 +SUB=97 +MUL=98 +DIV=99 +BITAND=100 +BITOR=101 +CARET=102 +MOD=103 +ADD_ASSIGN=104 +SUB_ASSIGN=105 +MUL_ASSIGN=106 +DIV_ASSIGN=107 +AND_ASSIGN=108 +OR_ASSIGN=109 +XOR_ASSIGN=110 +MOD_ASSIGN=111 +LSHIFT_ASSIGN=112 +RSHIFT_ASSIGN=113 +URSHIFT_ASSIGN=114 +Identifier=115 +WS=116 +COMMENT=117 +LINE_COMMENT=118 +'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 +'exports'=17 +'extends'=18 +'final'=19 +'finally'=20 +'float'=21 +'for'=22 +'if'=23 +'goto'=24 +'implements'=25 +'import'=26 +'instanceof'=27 +'int'=28 +'interface'=29 +'long'=30 +'module'=31 +'native'=32 +'new'=33 +'open'=34 +'opens'=35 +'package'=36 +'private'=37 +'protected'=38 +'provides'=39 +'public'=40 +'requires'=41 +'return'=42 +'short'=43 +'static'=44 +'strictfp'=45 +'super'=46 +'switch'=47 +'synchronized'=48 +'this'=49 +'throw'=50 +'throws'=51 +'to'=52 +'transient'=53 +'transitive'=54 +'try'=55 +'uses'=56 +'void'=57 +'volatile'=58 +'while'=59 +'with'=60 +'_'=61 +'null'=67 +'('=68 +')'=69 +'{'=70 +'}'=71 +'['=72 +']'=73 +';'=74 +','=75 +'.'=76 +'...'=77 +'@'=78 +'::'=79 +'='=80 +'>'=81 +'<'=82 +'!'=83 +'~'=84 +'?'=85 +':'=86 +'->'=87 +'=='=88 +'<='=89 +'>='=90 +'!='=91 +'&&'=92 +'||'=93 +'++'=94 +'--'=95 +'+'=96 +'-'=97 +'*'=98 +'/'=99 +'&'=100 +'|'=101 +'^'=102 +'%'=103 +'+='=104 +'-='=105 +'*='=106 +'/='=107 +'&='=108 +'|='=109 +'^='=110 +'%='=111 +'<<='=112 +'>>='=113 +'>>>='=114 diff --git a/java2python/lang/Java9Parser.g4 b/java2python/lang/Java9Parser.g4 new file mode 100644 index 0000000..65972c3 --- /dev/null +++ b/java2python/lang/Java9Parser.g4 @@ -0,0 +1,1431 @@ +/* + * [The "BSD license"] + * Copyright (c) 2014 Terence Parr + * Copyright (c) 2014 Sam Harwell + * Copyright (c) 2017 Chan Chung Kwong + * 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 9 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 Java9.g4 + * $ javac *.java + * $ grun Java9 compilationUnit *.java + * + * Or, +~/antlr/code/grammars-v4/java9 $ java Test . +/Users/parrt/antlr/code/grammars-v4/java9/./Java9BaseListener.java +/Users/parrt/antlr/code/grammars-v4/java9/./Java9Lexer.java +/Users/parrt/antlr/code/grammars-v4/java9/./Java9Listener.java +/Users/parrt/antlr/code/grammars-v4/java9/./Java9Parser.java +/Users/parrt/antlr/code/grammars-v4/java9/./Test.java +Total lexer+parser time 30844ms. +~/antlr/code/grammars-v4/java9 $ java Test examples/module-info.java +/home/kwong/projects/grammars-v4/java9/examples/module-info.java +Total lexer+parser time 914ms. +~/antlr/code/grammars-v4/java9 $ java Test examples/TryWithResourceDemo.java +/home/kwong/projects/grammars-v4/java9/examples/TryWithResourceDemo.java +Total lexer+parser time 3634ms. +~/antlr/code/grammars-v4/java9 $ java Test examples/helloworld.java +/home/kwong/projects/grammars-v4/java9/examples/helloworld.java +Total lexer+parser time 2497ms. + + */ +parser grammar Java9Parser; + +options +{ + tokenVocab = Java9Lexer; +} + +/* + * 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 + | interfaceType + ; +*/ +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) + */ + +moduleName + : identifier + | moduleName '.' identifier + ; + +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 + : ordinaryCompilation + | modularCompilation + ; + +ordinaryCompilation + : packageDeclaration? importDeclaration* typeDeclaration* EOF + ; + +modularCompilation + : importDeclaration* moduleDeclaration + ; + +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 + | ';' + ; + +moduleDeclaration + : annotation* 'open'? 'module' moduleName '{' moduleDirective* '}' + ; + +moduleDirective + : 'requires' requiresModifier* moduleName ';' + | 'exports' packageName ('to' moduleName (',' moduleName)*)? ';' + | 'opens' packageName ('to' moduleName (',' moduleName)*)? ';' + | 'uses' typeName ';' + | 'provides' typeName 'with' typeName (',' typeName)* ';' + ; + +requiresModifier + : 'transitive' + | 'static' + ; + +/* + * 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 + | unannInterfaceType + ; +*/ + +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 + : formalParameters ',' lastFormalParameter + | lastFormalParameter + | receiverParameter + ; + +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' + | 'private'//Introduced in Java 9 + | '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 + : '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 + : '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 + | variableAccess//Introduced in Java 9 + ; + +variableAccess + : expressionName + | fieldAccess + ; + +/* + * Productions from §15 (Expressions) + */ + +/*primary + : primaryNoNewArray + | arrayCreationExpression + ; +*/ + +primary + : ( primaryNoNewArray_lfno_primary + | arrayCreationExpression + ) + ( primaryNoNewArray_lf_primary + )* + ; + +primaryNoNewArray + : literal + | classLiteral + | '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 + ; + +classLiteral + : (typeName|numericType|'boolean') ('[' ']')* '.' 'class' + | 'void' '.' 'class' + ; + +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 '[' expression ']' + ; +*/ + +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 + : 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|lambdaExpression) + ; + +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 + | postDecrementExpression + ; +*/ + +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 + ; + +identifier : Identifier | 'to' | 'module' | 'open' | 'with' | 'provides' | 'uses' | 'opens' | 'requires' | 'exports'; + diff --git a/java2python/lang/Java9Parser.interp b/java2python/lang/Java9Parser.interp new file mode 100644 index 0000000..3670872 --- /dev/null +++ b/java2python/lang/Java9Parser.interp @@ -0,0 +1,492 @@ +token literal names: +null +'abstract' +'assert' +'boolean' +'break' +'byte' +'case' +'catch' +'char' +'class' +'const' +'continue' +'default' +'do' +'double' +'else' +'enum' +'exports' +'extends' +'final' +'finally' +'float' +'for' +'if' +'goto' +'implements' +'import' +'instanceof' +'int' +'interface' +'long' +'module' +'native' +'new' +'open' +'opens' +'package' +'private' +'protected' +'provides' +'public' +'requires' +'return' +'short' +'static' +'strictfp' +'super' +'switch' +'synchronized' +'this' +'throw' +'throws' +'to' +'transient' +'transitive' +'try' +'uses' +'void' +'volatile' +'while' +'with' +'_' +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 +EXPORTS +EXTENDS +FINAL +FINALLY +FLOAT +FOR +IF +GOTO +IMPLEMENTS +IMPORT +INSTANCEOF +INT +INTERFACE +LONG +MODULE +NATIVE +NEW +OPEN +OPERNS +PACKAGE +PRIVATE +PROTECTED +PROVIDES +PUBLIC +REQUIRES +RETURN +SHORT +STATIC +STRICTFP +SUPER +SWITCH +SYNCHRONIZED +THIS +THROW +THROWS +TO +TRANSIENT +TRANSITIVE +TRY +USES +VOID +VOLATILE +WHILE +WITH +UNDER_SCORE +IntegerLiteral +FloatingPointLiteral +BooleanLiteral +CharacterLiteral +StringLiteral +NullLiteral +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ELLIPSIS +AT +COLONCOLON +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +ARROW +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +Identifier +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 +moduleName +packageName +typeName +packageOrTypeName +expressionName +methodName +ambiguousName +compilationUnit +ordinaryCompilation +modularCompilation +packageDeclaration +packageModifier +importDeclaration +singleTypeImportDeclaration +typeImportOnDemandDeclaration +singleStaticImportDeclaration +staticImportOnDemandDeclaration +typeDeclaration +moduleDeclaration +moduleDirective +requiresModifier +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 +variableAccess +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 +classLiteral +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 +identifier + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 120, 2983, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 3, 2, 3, 2, 3, 3, 7, 3, 496, 10, 3, 12, 3, 14, 3, 499, 11, 3, 3, 3, 3, 3, 7, 3, 503, 10, 3, 12, 3, 14, 3, 506, 11, 3, 3, 3, 5, 3, 509, 10, 3, 3, 4, 3, 4, 5, 4, 513, 10, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 5, 7, 522, 10, 7, 3, 8, 3, 8, 5, 8, 526, 10, 8, 3, 8, 3, 8, 7, 8, 530, 10, 8, 12, 8, 14, 8, 533, 11, 8, 3, 9, 7, 9, 536, 10, 9, 12, 9, 14, 9, 539, 11, 9, 3, 9, 3, 9, 5, 9, 543, 10, 9, 3, 9, 3, 9, 3, 9, 7, 9, 548, 10, 9, 12, 9, 14, 9, 551, 11, 9, 3, 9, 3, 9, 5, 9, 555, 10, 9, 5, 9, 557, 10, 9, 3, 10, 3, 10, 7, 10, 561, 10, 10, 12, 10, 14, 10, 564, 11, 10, 3, 10, 3, 10, 5, 10, 568, 10, 10, 3, 11, 7, 11, 571, 10, 11, 12, 11, 14, 11, 574, 11, 11, 3, 11, 3, 11, 5, 11, 578, 10, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 7, 15, 587, 10, 15, 12, 15, 14, 15, 590, 11, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 603, 10, 16, 3, 17, 7, 17, 606, 10, 17, 12, 17, 14, 17, 609, 11, 17, 3, 17, 3, 17, 3, 17, 7, 17, 614, 10, 17, 12, 17, 14, 17, 617, 11, 17, 3, 17, 3, 17, 7, 17, 621, 10, 17, 12, 17, 14, 17, 624, 11, 17, 3, 18, 7, 18, 627, 10, 18, 12, 18, 14, 18, 630, 11, 18, 3, 18, 3, 18, 5, 18, 634, 10, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 643, 10, 20, 12, 20, 14, 20, 646, 11, 20, 5, 20, 648, 10, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 7, 23, 660, 10, 23, 12, 23, 14, 23, 663, 11, 23, 3, 24, 3, 24, 5, 24, 667, 10, 24, 3, 25, 7, 25, 670, 10, 25, 12, 25, 14, 25, 673, 11, 25, 3, 25, 3, 25, 5, 25, 677, 10, 25, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 683, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 691, 10, 27, 12, 27, 14, 27, 694, 11, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 7, 28, 702, 10, 28, 12, 28, 14, 28, 705, 11, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 712, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 720, 10, 30, 12, 30, 14, 30, 723, 11, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 730, 10, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 740, 10, 33, 12, 33, 14, 33, 743, 11, 33, 3, 34, 3, 34, 5, 34, 747, 10, 34, 3, 35, 5, 35, 750, 10, 35, 3, 35, 7, 35, 753, 10, 35, 12, 35, 14, 35, 756, 11, 35, 3, 35, 7, 35, 759, 10, 35, 12, 35, 14, 35, 762, 11, 35, 3, 35, 3, 35, 3, 36, 7, 36, 767, 10, 36, 12, 36, 14, 36, 770, 11, 36, 3, 36, 3, 36, 3, 37, 7, 37, 775, 10, 37, 12, 37, 14, 37, 778, 11, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 5, 39, 790, 10, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 5, 44, 819, 10, 44, 3, 45, 7, 45, 822, 10, 45, 12, 45, 14, 45, 825, 11, 45, 3, 45, 5, 45, 828, 10, 45, 3, 45, 3, 45, 3, 45, 3, 45, 7, 45, 834, 10, 45, 12, 45, 14, 45, 837, 11, 45, 3, 45, 3, 45, 3, 46, 3, 46, 7, 46, 843, 10, 46, 12, 46, 14, 46, 846, 11, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 7, 46, 857, 10, 46, 12, 46, 14, 46, 860, 11, 46, 5, 46, 862, 10, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 7, 46, 872, 10, 46, 12, 46, 14, 46, 875, 11, 46, 5, 46, 877, 10, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 7, 46, 891, 10, 46, 12, 46, 14, 46, 894, 11, 46, 3, 46, 3, 46, 5, 46, 898, 10, 46, 3, 47, 3, 47, 3, 48, 3, 48, 5, 48, 904, 10, 48, 3, 49, 7, 49, 907, 10, 49, 12, 49, 14, 49, 910, 11, 49, 3, 49, 3, 49, 3, 49, 5, 49, 915, 10, 49, 3, 49, 5, 49, 918, 10, 49, 3, 49, 5, 49, 921, 10, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 933, 10, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 7, 52, 942, 10, 52, 12, 52, 14, 52, 945, 11, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 7, 55, 956, 10, 55, 12, 55, 14, 55, 959, 11, 55, 3, 56, 3, 56, 7, 56, 963, 10, 56, 12, 56, 14, 56, 966, 11, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 5, 57, 974, 10, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 981, 10, 58, 3, 59, 7, 59, 984, 10, 59, 12, 59, 14, 59, 987, 11, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1001, 10, 60, 3, 61, 3, 61, 3, 61, 7, 61, 1006, 10, 61, 12, 61, 14, 61, 1009, 11, 61, 3, 62, 3, 62, 3, 62, 5, 62, 1014, 10, 62, 3, 63, 3, 63, 5, 63, 1018, 10, 63, 3, 64, 3, 64, 5, 64, 1022, 10, 64, 3, 65, 3, 65, 5, 65, 1026, 10, 65, 3, 66, 3, 66, 5, 66, 1030, 10, 66, 3, 67, 3, 67, 3, 67, 5, 67, 1035, 10, 67, 3, 68, 3, 68, 5, 68, 1039, 10, 68, 3, 68, 3, 68, 7, 68, 1043, 10, 68, 12, 68, 14, 68, 1046, 11, 68, 3, 69, 3, 69, 5, 69, 1050, 10, 69, 3, 69, 3, 69, 3, 69, 7, 69, 1055, 10, 69, 12, 69, 14, 69, 1058, 11, 69, 3, 69, 3, 69, 5, 69, 1062, 10, 69, 5, 69, 1064, 10, 69, 3, 70, 3, 70, 7, 70, 1068, 10, 70, 12, 70, 14, 70, 1071, 11, 70, 3, 70, 3, 70, 5, 70, 1075, 10, 70, 3, 71, 3, 71, 5, 71, 1079, 10, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 5, 76, 1098, 10, 76, 3, 77, 7, 77, 1101, 10, 77, 12, 77, 14, 77, 1104, 11, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 1119, 10, 78, 3, 79, 3, 79, 3, 79, 5, 79, 1124, 10, 79, 3, 79, 3, 79, 7, 79, 1128, 10, 79, 12, 79, 14, 79, 1131, 11, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1136, 10, 79, 5, 79, 1138, 10, 79, 3, 80, 3, 80, 5, 80, 1142, 10, 80, 3, 81, 3, 81, 3, 81, 5, 81, 1147, 10, 81, 3, 81, 3, 81, 5, 81, 1151, 10, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1159, 10, 82, 3, 83, 3, 83, 3, 83, 7, 83, 1164, 10, 83, 12, 83, 14, 83, 1167, 11, 83, 3, 83, 3, 83, 3, 83, 7, 83, 1172, 10, 83, 12, 83, 14, 83, 1175, 11, 83, 5, 83, 1177, 10, 83, 3, 84, 7, 84, 1180, 10, 84, 12, 84, 14, 84, 1183, 11, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 5, 85, 1190, 10, 85, 3, 86, 7, 86, 1193, 10, 86, 12, 86, 14, 86, 1196, 11, 86, 3, 86, 3, 86, 7, 86, 1200, 10, 86, 12, 86, 14, 86, 1203, 11, 86, 3, 86, 3, 86, 3, 86, 3, 86, 5, 86, 1209, 10, 86, 3, 87, 7, 87, 1212, 10, 87, 12, 87, 14, 87, 1215, 11, 87, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 1221, 10, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 7, 89, 1231, 10, 89, 12, 89, 14, 89, 1234, 11, 89, 3, 90, 3, 90, 5, 90, 1238, 10, 90, 3, 91, 3, 91, 5, 91, 1242, 10, 91, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 94, 7, 94, 1250, 10, 94, 12, 94, 14, 94, 1253, 11, 94, 3, 94, 3, 94, 5, 94, 1257, 10, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 5, 95, 1265, 10, 95, 3, 96, 5, 96, 1268, 10, 96, 3, 96, 3, 96, 3, 96, 5, 96, 1273, 10, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 98, 3, 98, 5, 98, 1281, 10, 98, 3, 98, 5, 98, 1284, 10, 98, 3, 98, 3, 98, 3, 99, 5, 99, 1289, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1294, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1299, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1304, 10, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1311, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1316, 10, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1324, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1329, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1334, 10, 99, 3, 100, 7, 100, 1337, 10, 100, 12, 100, 14, 100, 1340, 11, 100, 3, 100, 3, 100, 3, 100, 5, 100, 1345, 10, 100, 3, 100, 3, 100, 3, 101, 3, 101, 5, 101, 1351, 10, 101, 3, 101, 5, 101, 1354, 10, 101, 3, 101, 5, 101, 1357, 10, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 7, 102, 1364, 10, 102, 12, 102, 14, 102, 1367, 11, 102, 3, 103, 7, 103, 1370, 10, 103, 12, 103, 14, 103, 1373, 11, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1378, 10, 103, 3, 103, 5, 103, 1381, 10, 103, 3, 103, 5, 103, 1384, 10, 103, 3, 104, 3, 104, 3, 105, 3, 105, 7, 105, 1390, 10, 105, 12, 105, 14, 105, 1393, 11, 105, 3, 106, 3, 106, 5, 106, 1397, 10, 106, 3, 107, 7, 107, 1400, 10, 107, 12, 107, 14, 107, 1403, 11, 107, 3, 107, 3, 107, 3, 107, 5, 107, 1408, 10, 107, 3, 107, 5, 107, 1411, 10, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 5, 108, 1422, 10, 108, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 7, 110, 1429, 10, 110, 12, 110, 14, 110, 1432, 11, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 5, 111, 1441, 10, 111, 3, 112, 7, 112, 1444, 10, 112, 12, 112, 14, 112, 1447, 11, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 5, 113, 1457, 10, 113, 3, 114, 7, 114, 1460, 10, 114, 12, 114, 14, 114, 1463, 11, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 5, 115, 1475, 10, 115, 3, 116, 7, 116, 1478, 10, 116, 12, 116, 14, 116, 1481, 11, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 7, 117, 1490, 10, 117, 12, 117, 14, 117, 1493, 11, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 5, 118, 1502, 10, 118, 3, 119, 7, 119, 1505, 10, 119, 12, 119, 14, 119, 1508, 11, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 1515, 10, 119, 3, 119, 5, 119, 1518, 10, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 5, 120, 1525, 10, 120, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 5, 122, 1533, 10, 122, 3, 123, 3, 123, 3, 123, 3, 123, 5, 123, 1539, 10, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 7, 124, 1546, 10, 124, 12, 124, 14, 124, 1549, 11, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 5, 126, 1558, 10, 126, 3, 127, 3, 127, 5, 127, 1562, 10, 127, 3, 127, 5, 127, 1565, 10, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 7, 128, 1572, 10, 128, 12, 128, 14, 128, 1575, 11, 128, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 5, 131, 1588, 10, 131, 3, 131, 5, 131, 1591, 10, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 7, 132, 1598, 10, 132, 12, 132, 14, 132, 1601, 11, 132, 3, 133, 3, 133, 5, 133, 1605, 10, 133, 3, 133, 3, 133, 3, 134, 6, 134, 1610, 10, 134, 13, 134, 14, 134, 1611, 3, 135, 3, 135, 3, 135, 5, 135, 1617, 10, 135, 3, 136, 3, 136, 3, 136, 3, 137, 7, 137, 1623, 10, 137, 12, 137, 14, 137, 1626, 11, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 1637, 10, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 1644, 10, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 1658, 10, 140, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 1680, 10, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 5, 149, 1714, 10, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 7, 151, 1724, 10, 151, 12, 151, 14, 151, 1727, 11, 151, 3, 151, 7, 151, 1730, 10, 151, 12, 151, 14, 151, 1733, 11, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 6, 153, 1741, 10, 153, 13, 153, 14, 153, 1742, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 1755, 10, 154, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 5, 159, 1781, 10, 159, 3, 160, 3, 160, 5, 160, 1785, 10, 160, 3, 161, 3, 161, 3, 161, 5, 161, 1790, 10, 161, 3, 161, 3, 161, 5, 161, 1794, 10, 161, 3, 161, 3, 161, 5, 161, 1798, 10, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 5, 162, 1806, 10, 162, 3, 162, 3, 162, 5, 162, 1810, 10, 162, 3, 162, 3, 162, 5, 162, 1814, 10, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 5, 163, 1821, 10, 163, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 7, 165, 1828, 10, 165, 12, 165, 14, 165, 1831, 11, 165, 3, 166, 3, 166, 3, 166, 7, 166, 1836, 10, 166, 12, 166, 14, 166, 1839, 11, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 7, 167, 1851, 10, 167, 12, 167, 14, 167, 1854, 11, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 5, 168, 1865, 10, 168, 3, 168, 3, 168, 3, 169, 3, 169, 5, 169, 1871, 10, 169, 3, 169, 3, 169, 3, 170, 3, 170, 5, 170, 1877, 10, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 1898, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 1903, 10, 173, 3, 174, 6, 174, 1906, 10, 174, 13, 174, 14, 174, 1907, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 7, 176, 1917, 10, 176, 12, 176, 14, 176, 1920, 11, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 7, 177, 1928, 10, 177, 12, 177, 14, 177, 1931, 11, 177, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 1940, 10, 179, 3, 179, 5, 179, 1943, 10, 179, 3, 180, 3, 180, 3, 180, 5, 180, 1948, 10, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 7, 181, 1955, 10, 181, 12, 181, 14, 181, 1958, 11, 181, 3, 182, 7, 182, 1961, 10, 182, 12, 182, 14, 182, 1964, 11, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 5, 182, 1972, 10, 182, 3, 183, 3, 183, 5, 183, 1976, 10, 183, 3, 184, 3, 184, 5, 184, 1980, 10, 184, 3, 184, 7, 184, 1983, 10, 184, 12, 184, 14, 184, 1986, 11, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2004, 10, 185, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 7, 187, 2012, 10, 187, 12, 187, 14, 187, 2015, 11, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2036, 10, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 2043, 10, 188, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 5, 190, 2051, 10, 190, 3, 191, 3, 191, 3, 191, 3, 191, 7, 191, 2057, 10, 191, 12, 191, 14, 191, 2060, 11, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 7, 191, 2068, 10, 191, 12, 191, 14, 191, 2071, 11, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 2093, 10, 191, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2101, 10, 193, 12, 193, 14, 193, 2104, 11, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2112, 10, 193, 12, 193, 14, 193, 2115, 11, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 2136, 10, 193, 3, 194, 3, 194, 3, 194, 5, 194, 2141, 10, 194, 3, 194, 3, 194, 7, 194, 2145, 10, 194, 12, 194, 14, 194, 2148, 11, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 5, 194, 2155, 10, 194, 3, 195, 3, 195, 5, 195, 2159, 10, 195, 3, 195, 7, 195, 2162, 10, 195, 12, 195, 14, 195, 2165, 11, 195, 3, 195, 3, 195, 3, 195, 7, 195, 2170, 10, 195, 12, 195, 14, 195, 2173, 11, 195, 3, 195, 7, 195, 2176, 10, 195, 12, 195, 14, 195, 2179, 11, 195, 3, 195, 5, 195, 2182, 10, 195, 3, 195, 3, 195, 5, 195, 2186, 10, 195, 3, 195, 3, 195, 5, 195, 2190, 10, 195, 3, 195, 3, 195, 3, 195, 3, 195, 5, 195, 2196, 10, 195, 3, 195, 7, 195, 2199, 10, 195, 12, 195, 14, 195, 2202, 11, 195, 3, 195, 3, 195, 5, 195, 2206, 10, 195, 3, 195, 3, 195, 5, 195, 2210, 10, 195, 3, 195, 3, 195, 5, 195, 2214, 10, 195, 3, 195, 3, 195, 3, 195, 3, 195, 5, 195, 2220, 10, 195, 3, 195, 7, 195, 2223, 10, 195, 12, 195, 14, 195, 2226, 11, 195, 3, 195, 3, 195, 5, 195, 2230, 10, 195, 3, 195, 3, 195, 5, 195, 2234, 10, 195, 3, 195, 3, 195, 5, 195, 2238, 10, 195, 5, 195, 2240, 10, 195, 3, 196, 3, 196, 3, 196, 5, 196, 2245, 10, 196, 3, 196, 7, 196, 2248, 10, 196, 12, 196, 14, 196, 2251, 11, 196, 3, 196, 3, 196, 5, 196, 2255, 10, 196, 3, 196, 3, 196, 5, 196, 2259, 10, 196, 3, 196, 3, 196, 5, 196, 2263, 10, 196, 3, 197, 3, 197, 5, 197, 2267, 10, 197, 3, 197, 7, 197, 2270, 10, 197, 12, 197, 14, 197, 2273, 11, 197, 3, 197, 3, 197, 3, 197, 7, 197, 2278, 10, 197, 12, 197, 14, 197, 2281, 11, 197, 3, 197, 7, 197, 2284, 10, 197, 12, 197, 14, 197, 2287, 11, 197, 3, 197, 5, 197, 2290, 10, 197, 3, 197, 3, 197, 5, 197, 2294, 10, 197, 3, 197, 3, 197, 5, 197, 2298, 10, 197, 3, 197, 3, 197, 3, 197, 3, 197, 5, 197, 2304, 10, 197, 3, 197, 7, 197, 2307, 10, 197, 12, 197, 14, 197, 2310, 11, 197, 3, 197, 3, 197, 5, 197, 2314, 10, 197, 3, 197, 3, 197, 5, 197, 2318, 10, 197, 3, 197, 3, 197, 5, 197, 2322, 10, 197, 5, 197, 2324, 10, 197, 3, 198, 3, 198, 3, 198, 5, 198, 2329, 10, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 5, 199, 2344, 10, 199, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 2358, 10, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 2370, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 7, 202, 2377, 10, 202, 12, 202, 14, 202, 2380, 11, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 7, 203, 2392, 10, 203, 12, 203, 14, 203, 2395, 11, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 2407, 10, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 7, 204, 2414, 10, 204, 12, 204, 14, 204, 2417, 11, 204, 3, 205, 3, 205, 3, 205, 5, 205, 2422, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2429, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2434, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2441, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2446, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2453, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2458, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2465, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2470, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2479, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2484, 10, 205, 3, 205, 3, 205, 5, 205, 2488, 10, 205, 3, 206, 3, 206, 5, 206, 2492, 10, 206, 3, 206, 3, 206, 3, 206, 5, 206, 2497, 10, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 5, 207, 2504, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2511, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2516, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2523, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2528, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2535, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2540, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2549, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2554, 10, 207, 3, 207, 3, 207, 5, 207, 2558, 10, 207, 3, 208, 3, 208, 3, 208, 7, 208, 2563, 10, 208, 12, 208, 14, 208, 2566, 11, 208, 3, 209, 3, 209, 3, 209, 5, 209, 2571, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2578, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2585, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2592, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2600, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2607, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2615, 10, 209, 3, 210, 3, 210, 5, 210, 2619, 10, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 5, 211, 2626, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2633, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2640, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2648, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2655, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2663, 10, 211, 3, 212, 3, 212, 3, 212, 3, 212, 5, 212, 2669, 10, 212, 3, 212, 3, 212, 3, 212, 3, 212, 5, 212, 2675, 10, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 5, 212, 2687, 10, 212, 3, 213, 6, 213, 2690, 10, 213, 13, 213, 14, 213, 2691, 3, 214, 7, 214, 2695, 10, 214, 12, 214, 14, 214, 2698, 11, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 216, 3, 216, 5, 216, 2708, 10, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 5, 218, 2717, 10, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 2724, 10, 218, 3, 219, 3, 219, 3, 219, 7, 219, 2729, 10, 219, 12, 219, 14, 219, 2732, 11, 219, 3, 220, 3, 220, 5, 220, 2736, 10, 220, 3, 221, 3, 221, 5, 221, 2740, 10, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 5, 223, 2749, 10, 223, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 5, 225, 2760, 10, 225, 5, 225, 2762, 10, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 7, 226, 2770, 10, 226, 12, 226, 14, 226, 2773, 11, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 7, 227, 2781, 10, 227, 12, 227, 14, 227, 2784, 11, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 7, 228, 2792, 10, 228, 12, 228, 14, 228, 2795, 11, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 7, 229, 2803, 10, 229, 12, 229, 14, 229, 2806, 11, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 7, 230, 2814, 10, 230, 12, 230, 14, 230, 2817, 11, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 7, 231, 2828, 10, 231, 12, 231, 14, 231, 2831, 11, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 7, 232, 2851, 10, 232, 12, 232, 14, 232, 2854, 11, 232, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 7, 233, 2872, 10, 233, 12, 233, 14, 233, 2875, 11, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 7, 234, 2886, 10, 234, 12, 234, 14, 234, 2889, 11, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 7, 235, 2903, 10, 235, 12, 235, 14, 235, 2906, 11, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 5, 236, 2915, 10, 236, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 5, 239, 2929, 10, 239, 3, 240, 3, 240, 5, 240, 2933, 10, 240, 3, 240, 3, 240, 7, 240, 2937, 10, 240, 12, 240, 14, 240, 2940, 11, 240, 3, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 7, 245, 2960, 10, 245, 12, 245, 14, 245, 2963, 11, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 7, 245, 2971, 10, 245, 12, 245, 14, 245, 2974, 11, 245, 3, 245, 3, 245, 3, 245, 5, 245, 2979, 10, 245, 3, 246, 3, 246, 3, 246, 2, 16, 52, 54, 58, 64, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 247, 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, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 2, 8, 3, 2, 64, 69, 7, 2, 7, 7, 10, 10, 30, 30, 32, 32, 45, 45, 4, 2, 16, 16, 23, 23, 4, 2, 46, 46, 56, 56, 4, 2, 82, 82, 106, 116, 11, 2, 19, 19, 33, 33, 36, 37, 41, 41, 43, 43, 54, 54, 58, 58, 62, 62, 117, 117, 2, 3237, 2, 492, 3, 2, 2, 2, 4, 508, 3, 2, 2, 2, 6, 512, 3, 2, 2, 2, 8, 514, 3, 2, 2, 2, 10, 516, 3, 2, 2, 2, 12, 521, 3, 2, 2, 2, 14, 525, 3, 2, 2, 2, 16, 556, 3, 2, 2, 2, 18, 558, 3, 2, 2, 2, 20, 572, 3, 2, 2, 2, 22, 579, 3, 2, 2, 2, 24, 581, 3, 2, 2, 2, 26, 583, 3, 2, 2, 2, 28, 588, 3, 2, 2, 2, 30, 602, 3, 2, 2, 2, 32, 607, 3, 2, 2, 2, 34, 628, 3, 2, 2, 2, 36, 635, 3, 2, 2, 2, 38, 647, 3, 2, 2, 2, 40, 649, 3, 2, 2, 2, 42, 652, 3, 2, 2, 2, 44, 656, 3, 2, 2, 2, 46, 666, 3, 2, 2, 2, 48, 671, 3, 2, 2, 2, 50, 682, 3, 2, 2, 2, 52, 684, 3, 2, 2, 2, 54, 695, 3, 2, 2, 2, 56, 711, 3, 2, 2, 2, 58, 713, 3, 2, 2, 2, 60, 729, 3, 2, 2, 2, 62, 731, 3, 2, 2, 2, 64, 733, 3, 2, 2, 2, 66, 746, 3, 2, 2, 2, 68, 749, 3, 2, 2, 2, 70, 768, 3, 2, 2, 2, 72, 776, 3, 2, 2, 2, 74, 783, 3, 2, 2, 2, 76, 789, 3, 2, 2, 2, 78, 791, 3, 2, 2, 2, 80, 795, 3, 2, 2, 2, 82, 801, 3, 2, 2, 2, 84, 808, 3, 2, 2, 2, 86, 818, 3, 2, 2, 2, 88, 823, 3, 2, 2, 2, 90, 897, 3, 2, 2, 2, 92, 899, 3, 2, 2, 2, 94, 903, 3, 2, 2, 2, 96, 908, 3, 2, 2, 2, 98, 932, 3, 2, 2, 2, 100, 934, 3, 2, 2, 2, 102, 938, 3, 2, 2, 2, 104, 946, 3, 2, 2, 2, 106, 949, 3, 2, 2, 2, 108, 952, 3, 2, 2, 2, 110, 960, 3, 2, 2, 2, 112, 973, 3, 2, 2, 2, 114, 980, 3, 2, 2, 2, 116, 985, 3, 2, 2, 2, 118, 1000, 3, 2, 2, 2, 120, 1002, 3, 2, 2, 2, 122, 1010, 3, 2, 2, 2, 124, 1015, 3, 2, 2, 2, 126, 1021, 3, 2, 2, 2, 128, 1025, 3, 2, 2, 2, 130, 1029, 3, 2, 2, 2, 132, 1034, 3, 2, 2, 2, 134, 1038, 3, 2, 2, 2, 136, 1063, 3, 2, 2, 2, 138, 1065, 3, 2, 2, 2, 140, 1076, 3, 2, 2, 2, 142, 1080, 3, 2, 2, 2, 144, 1082, 3, 2, 2, 2, 146, 1084, 3, 2, 2, 2, 148, 1086, 3, 2, 2, 2, 150, 1097, 3, 2, 2, 2, 152, 1102, 3, 2, 2, 2, 154, 1118, 3, 2, 2, 2, 156, 1137, 3, 2, 2, 2, 158, 1141, 3, 2, 2, 2, 160, 1143, 3, 2, 2, 2, 162, 1158, 3, 2, 2, 2, 164, 1176, 3, 2, 2, 2, 166, 1181, 3, 2, 2, 2, 168, 1189, 3, 2, 2, 2, 170, 1208, 3, 2, 2, 2, 172, 1213, 3, 2, 2, 2, 174, 1224, 3, 2, 2, 2, 176, 1227, 3, 2, 2, 2, 178, 1237, 3, 2, 2, 2, 180, 1241, 3, 2, 2, 2, 182, 1243, 3, 2, 2, 2, 184, 1245, 3, 2, 2, 2, 186, 1251, 3, 2, 2, 2, 188, 1264, 3, 2, 2, 2, 190, 1267, 3, 2, 2, 2, 192, 1276, 3, 2, 2, 2, 194, 1278, 3, 2, 2, 2, 196, 1333, 3, 2, 2, 2, 198, 1338, 3, 2, 2, 2, 200, 1348, 3, 2, 2, 2, 202, 1360, 3, 2, 2, 2, 204, 1371, 3, 2, 2, 2, 206, 1385, 3, 2, 2, 2, 208, 1387, 3, 2, 2, 2, 210, 1396, 3, 2, 2, 2, 212, 1401, 3, 2, 2, 2, 214, 1421, 3, 2, 2, 2, 216, 1423, 3, 2, 2, 2, 218, 1426, 3, 2, 2, 2, 220, 1440, 3, 2, 2, 2, 222, 1445, 3, 2, 2, 2, 224, 1456, 3, 2, 2, 2, 226, 1461, 3, 2, 2, 2, 228, 1474, 3, 2, 2, 2, 230, 1479, 3, 2, 2, 2, 232, 1487, 3, 2, 2, 2, 234, 1501, 3, 2, 2, 2, 236, 1506, 3, 2, 2, 2, 238, 1524, 3, 2, 2, 2, 240, 1526, 3, 2, 2, 2, 242, 1532, 3, 2, 2, 2, 244, 1534, 3, 2, 2, 2, 246, 1542, 3, 2, 2, 2, 248, 1550, 3, 2, 2, 2, 250, 1557, 3, 2, 2, 2, 252, 1559, 3, 2, 2, 2, 254, 1568, 3, 2, 2, 2, 256, 1576, 3, 2, 2, 2, 258, 1579, 3, 2, 2, 2, 260, 1585, 3, 2, 2, 2, 262, 1594, 3, 2, 2, 2, 264, 1602, 3, 2, 2, 2, 266, 1609, 3, 2, 2, 2, 268, 1616, 3, 2, 2, 2, 270, 1618, 3, 2, 2, 2, 272, 1624, 3, 2, 2, 2, 274, 1636, 3, 2, 2, 2, 276, 1643, 3, 2, 2, 2, 278, 1657, 3, 2, 2, 2, 280, 1659, 3, 2, 2, 2, 282, 1661, 3, 2, 2, 2, 284, 1665, 3, 2, 2, 2, 286, 1669, 3, 2, 2, 2, 288, 1679, 3, 2, 2, 2, 290, 1681, 3, 2, 2, 2, 292, 1687, 3, 2, 2, 2, 294, 1695, 3, 2, 2, 2, 296, 1713, 3, 2, 2, 2, 298, 1715, 3, 2, 2, 2, 300, 1721, 3, 2, 2, 2, 302, 1736, 3, 2, 2, 2, 304, 1740, 3, 2, 2, 2, 306, 1754, 3, 2, 2, 2, 308, 1756, 3, 2, 2, 2, 310, 1758, 3, 2, 2, 2, 312, 1764, 3, 2, 2, 2, 314, 1770, 3, 2, 2, 2, 316, 1780, 3, 2, 2, 2, 318, 1784, 3, 2, 2, 2, 320, 1786, 3, 2, 2, 2, 322, 1802, 3, 2, 2, 2, 324, 1820, 3, 2, 2, 2, 326, 1822, 3, 2, 2, 2, 328, 1824, 3, 2, 2, 2, 330, 1832, 3, 2, 2, 2, 332, 1847, 3, 2, 2, 2, 334, 1862, 3, 2, 2, 2, 336, 1868, 3, 2, 2, 2, 338, 1874, 3, 2, 2, 2, 340, 1880, 3, 2, 2, 2, 342, 1884, 3, 2, 2, 2, 344, 1902, 3, 2, 2, 2, 346, 1905, 3, 2, 2, 2, 348, 1909, 3, 2, 2, 2, 350, 1918, 3, 2, 2, 2, 352, 1924, 3, 2, 2, 2, 354, 1932, 3, 2, 2, 2, 356, 1935, 3, 2, 2, 2, 358, 1944, 3, 2, 2, 2, 360, 1951, 3, 2, 2, 2, 362, 1971, 3, 2, 2, 2, 364, 1975, 3, 2, 2, 2, 366, 1979, 3, 2, 2, 2, 368, 2003, 3, 2, 2, 2, 370, 2005, 3, 2, 2, 2, 372, 2035, 3, 2, 2, 2, 374, 2042, 3, 2, 2, 2, 376, 2044, 3, 2, 2, 2, 378, 2050, 3, 2, 2, 2, 380, 2092, 3, 2, 2, 2, 382, 2094, 3, 2, 2, 2, 384, 2135, 3, 2, 2, 2, 386, 2154, 3, 2, 2, 2, 388, 2239, 3, 2, 2, 2, 390, 2241, 3, 2, 2, 2, 392, 2323, 3, 2, 2, 2, 394, 2328, 3, 2, 2, 2, 396, 2343, 3, 2, 2, 2, 398, 2345, 3, 2, 2, 2, 400, 2357, 3, 2, 2, 2, 402, 2369, 3, 2, 2, 2, 404, 2381, 3, 2, 2, 2, 406, 2406, 3, 2, 2, 2, 408, 2487, 3, 2, 2, 2, 410, 2489, 3, 2, 2, 2, 412, 2557, 3, 2, 2, 2, 414, 2559, 3, 2, 2, 2, 416, 2614, 3, 2, 2, 2, 418, 2616, 3, 2, 2, 2, 420, 2662, 3, 2, 2, 2, 422, 2686, 3, 2, 2, 2, 424, 2689, 3, 2, 2, 2, 426, 2696, 3, 2, 2, 2, 428, 2703, 3, 2, 2, 2, 430, 2707, 3, 2, 2, 2, 432, 2709, 3, 2, 2, 2, 434, 2723, 3, 2, 2, 2, 436, 2725, 3, 2, 2, 2, 438, 2735, 3, 2, 2, 2, 440, 2739, 3, 2, 2, 2, 442, 2741, 3, 2, 2, 2, 444, 2748, 3, 2, 2, 2, 446, 2750, 3, 2, 2, 2, 448, 2761, 3, 2, 2, 2, 450, 2763, 3, 2, 2, 2, 452, 2774, 3, 2, 2, 2, 454, 2785, 3, 2, 2, 2, 456, 2796, 3, 2, 2, 2, 458, 2807, 3, 2, 2, 2, 460, 2818, 3, 2, 2, 2, 462, 2832, 3, 2, 2, 2, 464, 2855, 3, 2, 2, 2, 466, 2876, 3, 2, 2, 2, 468, 2890, 3, 2, 2, 2, 470, 2914, 3, 2, 2, 2, 472, 2916, 3, 2, 2, 2, 474, 2919, 3, 2, 2, 2, 476, 2928, 3, 2, 2, 2, 478, 2932, 3, 2, 2, 2, 480, 2941, 3, 2, 2, 2, 482, 2944, 3, 2, 2, 2, 484, 2946, 3, 2, 2, 2, 486, 2949, 3, 2, 2, 2, 488, 2978, 3, 2, 2, 2, 490, 2980, 3, 2, 2, 2, 492, 493, 9, 2, 2, 2, 493, 3, 3, 2, 2, 2, 494, 496, 5, 242, 122, 2, 495, 494, 3, 2, 2, 2, 496, 499, 3, 2, 2, 2, 497, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 500, 3, 2, 2, 2, 499, 497, 3, 2, 2, 2, 500, 509, 5, 6, 4, 2, 501, 503, 5, 242, 122, 2, 502, 501, 3, 2, 2, 2, 503, 506, 3, 2, 2, 2, 504, 502, 3, 2, 2, 2, 504, 505, 3, 2, 2, 2, 505, 507, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 507, 509, 7, 5, 2, 2, 508, 497, 3, 2, 2, 2, 508, 504, 3, 2, 2, 2, 509, 5, 3, 2, 2, 2, 510, 513, 5, 8, 5, 2, 511, 513, 5, 10, 6, 2, 512, 510, 3, 2, 2, 2, 512, 511, 3, 2, 2, 2, 513, 7, 3, 2, 2, 2, 514, 515, 9, 3, 2, 2, 515, 9, 3, 2, 2, 2, 516, 517, 9, 4, 2, 2, 517, 11, 3, 2, 2, 2, 518, 522, 5, 14, 8, 2, 519, 522, 5, 28, 15, 2, 520, 522, 5, 30, 16, 2, 521, 518, 3, 2, 2, 2, 521, 519, 3, 2, 2, 2, 521, 520, 3, 2, 2, 2, 522, 13, 3, 2, 2, 2, 523, 526, 5, 20, 11, 2, 524, 526, 5, 26, 14, 2, 525, 523, 3, 2, 2, 2, 525, 524, 3, 2, 2, 2, 526, 531, 3, 2, 2, 2, 527, 530, 5, 18, 10, 2, 528, 530, 5, 24, 13, 2, 529, 527, 3, 2, 2, 2, 529, 528, 3, 2, 2, 2, 530, 533, 3, 2, 2, 2, 531, 529, 3, 2, 2, 2, 531, 532, 3, 2, 2, 2, 532, 15, 3, 2, 2, 2, 533, 531, 3, 2, 2, 2, 534, 536, 5, 242, 122, 2, 535, 534, 3, 2, 2, 2, 536, 539, 3, 2, 2, 2, 537, 535, 3, 2, 2, 2, 537, 538, 3, 2, 2, 2, 538, 540, 3, 2, 2, 2, 539, 537, 3, 2, 2, 2, 540, 542, 5, 490, 246, 2, 541, 543, 5, 42, 22, 2, 542, 541, 3, 2, 2, 2, 542, 543, 3, 2, 2, 2, 543, 557, 3, 2, 2, 2, 544, 545, 5, 14, 8, 2, 545, 549, 7, 78, 2, 2, 546, 548, 5, 242, 122, 2, 547, 546, 3, 2, 2, 2, 548, 551, 3, 2, 2, 2, 549, 547, 3, 2, 2, 2, 549, 550, 3, 2, 2, 2, 550, 552, 3, 2, 2, 2, 551, 549, 3, 2, 2, 2, 552, 554, 5, 490, 246, 2, 553, 555, 5, 42, 22, 2, 554, 553, 3, 2, 2, 2, 554, 555, 3, 2, 2, 2, 555, 557, 3, 2, 2, 2, 556, 537, 3, 2, 2, 2, 556, 544, 3, 2, 2, 2, 557, 17, 3, 2, 2, 2, 558, 562, 7, 78, 2, 2, 559, 561, 5, 242, 122, 2, 560, 559, 3, 2, 2, 2, 561, 564, 3, 2, 2, 2, 562, 560, 3, 2, 2, 2, 562, 563, 3, 2, 2, 2, 563, 565, 3, 2, 2, 2, 564, 562, 3, 2, 2, 2, 565, 567, 5, 490, 246, 2, 566, 568, 5, 42, 22, 2, 567, 566, 3, 2, 2, 2, 567, 568, 3, 2, 2, 2, 568, 19, 3, 2, 2, 2, 569, 571, 5, 242, 122, 2, 570, 569, 3, 2, 2, 2, 571, 574, 3, 2, 2, 2, 572, 570, 3, 2, 2, 2, 572, 573, 3, 2, 2, 2, 573, 575, 3, 2, 2, 2, 574, 572, 3, 2, 2, 2, 575, 577, 5, 490, 246, 2, 576, 578, 5, 42, 22, 2, 577, 576, 3, 2, 2, 2, 577, 578, 3, 2, 2, 2, 578, 21, 3, 2, 2, 2, 579, 580, 5, 16, 9, 2, 580, 23, 3, 2, 2, 2, 581, 582, 5, 18, 10, 2, 582, 25, 3, 2, 2, 2, 583, 584, 5, 20, 11, 2, 584, 27, 3, 2, 2, 2, 585, 587, 5, 242, 122, 2, 586, 585, 3, 2, 2, 2, 587, 590, 3, 2, 2, 2, 588, 586, 3, 2, 2, 2, 588, 589, 3, 2, 2, 2, 589, 591, 3, 2, 2, 2, 590, 588, 3, 2, 2, 2, 591, 592, 5, 490, 246, 2, 592, 29, 3, 2, 2, 2, 593, 594, 5, 4, 3, 2, 594, 595, 5, 32, 17, 2, 595, 603, 3, 2, 2, 2, 596, 597, 5, 14, 8, 2, 597, 598, 5, 32, 17, 2, 598, 603, 3, 2, 2, 2, 599, 600, 5, 28, 15, 2, 600, 601, 5, 32, 17, 2, 601, 603, 3, 2, 2, 2, 602, 593, 3, 2, 2, 2, 602, 596, 3, 2, 2, 2, 602, 599, 3, 2, 2, 2, 603, 31, 3, 2, 2, 2, 604, 606, 5, 242, 122, 2, 605, 604, 3, 2, 2, 2, 606, 609, 3, 2, 2, 2, 607, 605, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 610, 3, 2, 2, 2, 609, 607, 3, 2, 2, 2, 610, 611, 7, 74, 2, 2, 611, 622, 7, 75, 2, 2, 612, 614, 5, 242, 122, 2, 613, 612, 3, 2, 2, 2, 614, 617, 3, 2, 2, 2, 615, 613, 3, 2, 2, 2, 615, 616, 3, 2, 2, 2, 616, 618, 3, 2, 2, 2, 617, 615, 3, 2, 2, 2, 618, 619, 7, 74, 2, 2, 619, 621, 7, 75, 2, 2, 620, 615, 3, 2, 2, 2, 621, 624, 3, 2, 2, 2, 622, 620, 3, 2, 2, 2, 622, 623, 3, 2, 2, 2, 623, 33, 3, 2, 2, 2, 624, 622, 3, 2, 2, 2, 625, 627, 5, 36, 19, 2, 626, 625, 3, 2, 2, 2, 627, 630, 3, 2, 2, 2, 628, 626, 3, 2, 2, 2, 628, 629, 3, 2, 2, 2, 629, 631, 3, 2, 2, 2, 630, 628, 3, 2, 2, 2, 631, 633, 5, 490, 246, 2, 632, 634, 5, 38, 20, 2, 633, 632, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 35, 3, 2, 2, 2, 635, 636, 5, 242, 122, 2, 636, 37, 3, 2, 2, 2, 637, 638, 7, 20, 2, 2, 638, 648, 5, 28, 15, 2, 639, 640, 7, 20, 2, 2, 640, 644, 5, 14, 8, 2, 641, 643, 5, 40, 21, 2, 642, 641, 3, 2, 2, 2, 643, 646, 3, 2, 2, 2, 644, 642, 3, 2, 2, 2, 644, 645, 3, 2, 2, 2, 645, 648, 3, 2, 2, 2, 646, 644, 3, 2, 2, 2, 647, 637, 3, 2, 2, 2, 647, 639, 3, 2, 2, 2, 648, 39, 3, 2, 2, 2, 649, 650, 7, 102, 2, 2, 650, 651, 5, 22, 12, 2, 651, 41, 3, 2, 2, 2, 652, 653, 7, 84, 2, 2, 653, 654, 5, 44, 23, 2, 654, 655, 7, 83, 2, 2, 655, 43, 3, 2, 2, 2, 656, 661, 5, 46, 24, 2, 657, 658, 7, 77, 2, 2, 658, 660, 5, 46, 24, 2, 659, 657, 3, 2, 2, 2, 660, 663, 3, 2, 2, 2, 661, 659, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 662, 45, 3, 2, 2, 2, 663, 661, 3, 2, 2, 2, 664, 667, 5, 12, 7, 2, 665, 667, 5, 48, 25, 2, 666, 664, 3, 2, 2, 2, 666, 665, 3, 2, 2, 2, 667, 47, 3, 2, 2, 2, 668, 670, 5, 242, 122, 2, 669, 668, 3, 2, 2, 2, 670, 673, 3, 2, 2, 2, 671, 669, 3, 2, 2, 2, 671, 672, 3, 2, 2, 2, 672, 674, 3, 2, 2, 2, 673, 671, 3, 2, 2, 2, 674, 676, 7, 87, 2, 2, 675, 677, 5, 50, 26, 2, 676, 675, 3, 2, 2, 2, 676, 677, 3, 2, 2, 2, 677, 49, 3, 2, 2, 2, 678, 679, 7, 20, 2, 2, 679, 683, 5, 12, 7, 2, 680, 681, 7, 48, 2, 2, 681, 683, 5, 12, 7, 2, 682, 678, 3, 2, 2, 2, 682, 680, 3, 2, 2, 2, 683, 51, 3, 2, 2, 2, 684, 685, 8, 27, 1, 2, 685, 686, 5, 490, 246, 2, 686, 692, 3, 2, 2, 2, 687, 688, 12, 3, 2, 2, 688, 689, 7, 78, 2, 2, 689, 691, 5, 490, 246, 2, 690, 687, 3, 2, 2, 2, 691, 694, 3, 2, 2, 2, 692, 690, 3, 2, 2, 2, 692, 693, 3, 2, 2, 2, 693, 53, 3, 2, 2, 2, 694, 692, 3, 2, 2, 2, 695, 696, 8, 28, 1, 2, 696, 697, 5, 490, 246, 2, 697, 703, 3, 2, 2, 2, 698, 699, 12, 3, 2, 2, 699, 700, 7, 78, 2, 2, 700, 702, 5, 490, 246, 2, 701, 698, 3, 2, 2, 2, 702, 705, 3, 2, 2, 2, 703, 701, 3, 2, 2, 2, 703, 704, 3, 2, 2, 2, 704, 55, 3, 2, 2, 2, 705, 703, 3, 2, 2, 2, 706, 712, 5, 490, 246, 2, 707, 708, 5, 58, 30, 2, 708, 709, 7, 78, 2, 2, 709, 710, 5, 490, 246, 2, 710, 712, 3, 2, 2, 2, 711, 706, 3, 2, 2, 2, 711, 707, 3, 2, 2, 2, 712, 57, 3, 2, 2, 2, 713, 714, 8, 30, 1, 2, 714, 715, 5, 490, 246, 2, 715, 721, 3, 2, 2, 2, 716, 717, 12, 3, 2, 2, 717, 718, 7, 78, 2, 2, 718, 720, 5, 490, 246, 2, 719, 716, 3, 2, 2, 2, 720, 723, 3, 2, 2, 2, 721, 719, 3, 2, 2, 2, 721, 722, 3, 2, 2, 2, 722, 59, 3, 2, 2, 2, 723, 721, 3, 2, 2, 2, 724, 730, 5, 490, 246, 2, 725, 726, 5, 64, 33, 2, 726, 727, 7, 78, 2, 2, 727, 728, 5, 490, 246, 2, 728, 730, 3, 2, 2, 2, 729, 724, 3, 2, 2, 2, 729, 725, 3, 2, 2, 2, 730, 61, 3, 2, 2, 2, 731, 732, 5, 490, 246, 2, 732, 63, 3, 2, 2, 2, 733, 734, 8, 33, 1, 2, 734, 735, 5, 490, 246, 2, 735, 741, 3, 2, 2, 2, 736, 737, 12, 3, 2, 2, 737, 738, 7, 78, 2, 2, 738, 740, 5, 490, 246, 2, 739, 736, 3, 2, 2, 2, 740, 743, 3, 2, 2, 2, 741, 739, 3, 2, 2, 2, 741, 742, 3, 2, 2, 2, 742, 65, 3, 2, 2, 2, 743, 741, 3, 2, 2, 2, 744, 747, 5, 68, 35, 2, 745, 747, 5, 70, 36, 2, 746, 744, 3, 2, 2, 2, 746, 745, 3, 2, 2, 2, 747, 67, 3, 2, 2, 2, 748, 750, 5, 72, 37, 2, 749, 748, 3, 2, 2, 2, 749, 750, 3, 2, 2, 2, 750, 754, 3, 2, 2, 2, 751, 753, 5, 76, 39, 2, 752, 751, 3, 2, 2, 2, 753, 756, 3, 2, 2, 2, 754, 752, 3, 2, 2, 2, 754, 755, 3, 2, 2, 2, 755, 760, 3, 2, 2, 2, 756, 754, 3, 2, 2, 2, 757, 759, 5, 86, 44, 2, 758, 757, 3, 2, 2, 2, 759, 762, 3, 2, 2, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 763, 3, 2, 2, 2, 762, 760, 3, 2, 2, 2, 763, 764, 7, 2, 2, 3, 764, 69, 3, 2, 2, 2, 765, 767, 5, 76, 39, 2, 766, 765, 3, 2, 2, 2, 767, 770, 3, 2, 2, 2, 768, 766, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 771, 3, 2, 2, 2, 770, 768, 3, 2, 2, 2, 771, 772, 5, 88, 45, 2, 772, 71, 3, 2, 2, 2, 773, 775, 5, 74, 38, 2, 774, 773, 3, 2, 2, 2, 775, 778, 3, 2, 2, 2, 776, 774, 3, 2, 2, 2, 776, 777, 3, 2, 2, 2, 777, 779, 3, 2, 2, 2, 778, 776, 3, 2, 2, 2, 779, 780, 7, 38, 2, 2, 780, 781, 5, 54, 28, 2, 781, 782, 7, 76, 2, 2, 782, 73, 3, 2, 2, 2, 783, 784, 5, 242, 122, 2, 784, 75, 3, 2, 2, 2, 785, 790, 5, 78, 40, 2, 786, 790, 5, 80, 41, 2, 787, 790, 5, 82, 42, 2, 788, 790, 5, 84, 43, 2, 789, 785, 3, 2, 2, 2, 789, 786, 3, 2, 2, 2, 789, 787, 3, 2, 2, 2, 789, 788, 3, 2, 2, 2, 790, 77, 3, 2, 2, 2, 791, 792, 7, 28, 2, 2, 792, 793, 5, 56, 29, 2, 793, 794, 7, 76, 2, 2, 794, 79, 3, 2, 2, 2, 795, 796, 7, 28, 2, 2, 796, 797, 5, 58, 30, 2, 797, 798, 7, 78, 2, 2, 798, 799, 7, 100, 2, 2, 799, 800, 7, 76, 2, 2, 800, 81, 3, 2, 2, 2, 801, 802, 7, 28, 2, 2, 802, 803, 7, 46, 2, 2, 803, 804, 5, 56, 29, 2, 804, 805, 7, 78, 2, 2, 805, 806, 5, 490, 246, 2, 806, 807, 7, 76, 2, 2, 807, 83, 3, 2, 2, 2, 808, 809, 7, 28, 2, 2, 809, 810, 7, 46, 2, 2, 810, 811, 5, 56, 29, 2, 811, 812, 7, 78, 2, 2, 812, 813, 7, 100, 2, 2, 813, 814, 7, 76, 2, 2, 814, 85, 3, 2, 2, 2, 815, 819, 5, 94, 48, 2, 816, 819, 5, 210, 106, 2, 817, 819, 7, 76, 2, 2, 818, 815, 3, 2, 2, 2, 818, 816, 3, 2, 2, 2, 818, 817, 3, 2, 2, 2, 819, 87, 3, 2, 2, 2, 820, 822, 5, 242, 122, 2, 821, 820, 3, 2, 2, 2, 822, 825, 3, 2, 2, 2, 823, 821, 3, 2, 2, 2, 823, 824, 3, 2, 2, 2, 824, 827, 3, 2, 2, 2, 825, 823, 3, 2, 2, 2, 826, 828, 7, 36, 2, 2, 827, 826, 3, 2, 2, 2, 827, 828, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2, 829, 830, 7, 33, 2, 2, 830, 831, 5, 52, 27, 2, 831, 835, 7, 72, 2, 2, 832, 834, 5, 90, 46, 2, 833, 832, 3, 2, 2, 2, 834, 837, 3, 2, 2, 2, 835, 833, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 838, 3, 2, 2, 2, 837, 835, 3, 2, 2, 2, 838, 839, 7, 73, 2, 2, 839, 89, 3, 2, 2, 2, 840, 844, 7, 43, 2, 2, 841, 843, 5, 92, 47, 2, 842, 841, 3, 2, 2, 2, 843, 846, 3, 2, 2, 2, 844, 842, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 847, 3, 2, 2, 2, 846, 844, 3, 2, 2, 2, 847, 848, 5, 52, 27, 2, 848, 849, 7, 76, 2, 2, 849, 898, 3, 2, 2, 2, 850, 851, 7, 19, 2, 2, 851, 861, 5, 54, 28, 2, 852, 853, 7, 54, 2, 2, 853, 858, 5, 52, 27, 2, 854, 855, 7, 77, 2, 2, 855, 857, 5, 52, 27, 2, 856, 854, 3, 2, 2, 2, 857, 860, 3, 2, 2, 2, 858, 856, 3, 2, 2, 2, 858, 859, 3, 2, 2, 2, 859, 862, 3, 2, 2, 2, 860, 858, 3, 2, 2, 2, 861, 852, 3, 2, 2, 2, 861, 862, 3, 2, 2, 2, 862, 863, 3, 2, 2, 2, 863, 864, 7, 76, 2, 2, 864, 898, 3, 2, 2, 2, 865, 866, 7, 37, 2, 2, 866, 876, 5, 54, 28, 2, 867, 868, 7, 54, 2, 2, 868, 873, 5, 52, 27, 2, 869, 870, 7, 77, 2, 2, 870, 872, 5, 52, 27, 2, 871, 869, 3, 2, 2, 2, 872, 875, 3, 2, 2, 2, 873, 871, 3, 2, 2, 2, 873, 874, 3, 2, 2, 2, 874, 877, 3, 2, 2, 2, 875, 873, 3, 2, 2, 2, 876, 867, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 878, 3, 2, 2, 2, 878, 879, 7, 76, 2, 2, 879, 898, 3, 2, 2, 2, 880, 881, 7, 58, 2, 2, 881, 882, 5, 56, 29, 2, 882, 883, 7, 76, 2, 2, 883, 898, 3, 2, 2, 2, 884, 885, 7, 41, 2, 2, 885, 886, 5, 56, 29, 2, 886, 887, 7, 62, 2, 2, 887, 892, 5, 56, 29, 2, 888, 889, 7, 77, 2, 2, 889, 891, 5, 56, 29, 2, 890, 888, 3, 2, 2, 2, 891, 894, 3, 2, 2, 2, 892, 890, 3, 2, 2, 2, 892, 893, 3, 2, 2, 2, 893, 895, 3, 2, 2, 2, 894, 892, 3, 2, 2, 2, 895, 896, 7, 76, 2, 2, 896, 898, 3, 2, 2, 2, 897, 840, 3, 2, 2, 2, 897, 850, 3, 2, 2, 2, 897, 865, 3, 2, 2, 2, 897, 880, 3, 2, 2, 2, 897, 884, 3, 2, 2, 2, 898, 91, 3, 2, 2, 2, 899, 900, 9, 5, 2, 2, 900, 93, 3, 2, 2, 2, 901, 904, 5, 96, 49, 2, 902, 904, 5, 198, 100, 2, 903, 901, 3, 2, 2, 2, 903, 902, 3, 2, 2, 2, 904, 95, 3, 2, 2, 2, 905, 907, 5, 98, 50, 2, 906, 905, 3, 2, 2, 2, 907, 910, 3, 2, 2, 2, 908, 906, 3, 2, 2, 2, 908, 909, 3, 2, 2, 2, 909, 911, 3, 2, 2, 2, 910, 908, 3, 2, 2, 2, 911, 912, 7, 11, 2, 2, 912, 914, 5, 490, 246, 2, 913, 915, 5, 100, 51, 2, 914, 913, 3, 2, 2, 2, 914, 915, 3, 2, 2, 2, 915, 917, 3, 2, 2, 2, 916, 918, 5, 104, 53, 2, 917, 916, 3, 2, 2, 2, 917, 918, 3, 2, 2, 2, 918, 920, 3, 2, 2, 2, 919, 921, 5, 106, 54, 2, 920, 919, 3, 2, 2, 2, 920, 921, 3, 2, 2, 2, 921, 922, 3, 2, 2, 2, 922, 923, 5, 110, 56, 2, 923, 97, 3, 2, 2, 2, 924, 933, 5, 242, 122, 2, 925, 933, 7, 42, 2, 2, 926, 933, 7, 40, 2, 2, 927, 933, 7, 39, 2, 2, 928, 933, 7, 3, 2, 2, 929, 933, 7, 46, 2, 2, 930, 933, 7, 21, 2, 2, 931, 933, 7, 47, 2, 2, 932, 924, 3, 2, 2, 2, 932, 925, 3, 2, 2, 2, 932, 926, 3, 2, 2, 2, 932, 927, 3, 2, 2, 2, 932, 928, 3, 2, 2, 2, 932, 929, 3, 2, 2, 2, 932, 930, 3, 2, 2, 2, 932, 931, 3, 2, 2, 2, 933, 99, 3, 2, 2, 2, 934, 935, 7, 84, 2, 2, 935, 936, 5, 102, 52, 2, 936, 937, 7, 83, 2, 2, 937, 101, 3, 2, 2, 2, 938, 943, 5, 34, 18, 2, 939, 940, 7, 77, 2, 2, 940, 942, 5, 34, 18, 2, 941, 939, 3, 2, 2, 2, 942, 945, 3, 2, 2, 2, 943, 941, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 103, 3, 2, 2, 2, 945, 943, 3, 2, 2, 2, 946, 947, 7, 20, 2, 2, 947, 948, 5, 16, 9, 2, 948, 105, 3, 2, 2, 2, 949, 950, 7, 27, 2, 2, 950, 951, 5, 108, 55, 2, 951, 107, 3, 2, 2, 2, 952, 957, 5, 22, 12, 2, 953, 954, 7, 77, 2, 2, 954, 956, 5, 22, 12, 2, 955, 953, 3, 2, 2, 2, 956, 959, 3, 2, 2, 2, 957, 955, 3, 2, 2, 2, 957, 958, 3, 2, 2, 2, 958, 109, 3, 2, 2, 2, 959, 957, 3, 2, 2, 2, 960, 964, 7, 72, 2, 2, 961, 963, 5, 112, 57, 2, 962, 961, 3, 2, 2, 2, 963, 966, 3, 2, 2, 2, 964, 962, 3, 2, 2, 2, 964, 965, 3, 2, 2, 2, 965, 967, 3, 2, 2, 2, 966, 964, 3, 2, 2, 2, 967, 968, 7, 73, 2, 2, 968, 111, 3, 2, 2, 2, 969, 974, 5, 114, 58, 2, 970, 974, 5, 182, 92, 2, 971, 974, 5, 184, 93, 2, 972, 974, 5, 186, 94, 2, 973, 969, 3, 2, 2, 2, 973, 970, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 973, 972, 3, 2, 2, 2, 974, 113, 3, 2, 2, 2, 975, 981, 5, 116, 59, 2, 976, 981, 5, 152, 77, 2, 977, 981, 5, 94, 48, 2, 978, 981, 5, 210, 106, 2, 979, 981, 7, 76, 2, 2, 980, 975, 3, 2, 2, 2, 980, 976, 3, 2, 2, 2, 980, 977, 3, 2, 2, 2, 980, 978, 3, 2, 2, 2, 980, 979, 3, 2, 2, 2, 981, 115, 3, 2, 2, 2, 982, 984, 5, 118, 60, 2, 983, 982, 3, 2, 2, 2, 984, 987, 3, 2, 2, 2, 985, 983, 3, 2, 2, 2, 985, 986, 3, 2, 2, 2, 986, 988, 3, 2, 2, 2, 987, 985, 3, 2, 2, 2, 988, 989, 5, 128, 65, 2, 989, 990, 5, 120, 61, 2, 990, 991, 7, 76, 2, 2, 991, 117, 3, 2, 2, 2, 992, 1001, 5, 242, 122, 2, 993, 1001, 7, 42, 2, 2, 994, 1001, 7, 40, 2, 2, 995, 1001, 7, 39, 2, 2, 996, 1001, 7, 46, 2, 2, 997, 1001, 7, 21, 2, 2, 998, 1001, 7, 55, 2, 2, 999, 1001, 7, 60, 2, 2, 1000, 992, 3, 2, 2, 2, 1000, 993, 3, 2, 2, 2, 1000, 994, 3, 2, 2, 2, 1000, 995, 3, 2, 2, 2, 1000, 996, 3, 2, 2, 2, 1000, 997, 3, 2, 2, 2, 1000, 998, 3, 2, 2, 2, 1000, 999, 3, 2, 2, 2, 1001, 119, 3, 2, 2, 2, 1002, 1007, 5, 122, 62, 2, 1003, 1004, 7, 77, 2, 2, 1004, 1006, 5, 122, 62, 2, 1005, 1003, 3, 2, 2, 2, 1006, 1009, 3, 2, 2, 2, 1007, 1005, 3, 2, 2, 2, 1007, 1008, 3, 2, 2, 2, 1008, 121, 3, 2, 2, 2, 1009, 1007, 3, 2, 2, 2, 1010, 1013, 5, 124, 63, 2, 1011, 1012, 7, 82, 2, 2, 1012, 1014, 5, 126, 64, 2, 1013, 1011, 3, 2, 2, 2, 1013, 1014, 3, 2, 2, 2, 1014, 123, 3, 2, 2, 2, 1015, 1017, 5, 490, 246, 2, 1016, 1018, 5, 32, 17, 2, 1017, 1016, 3, 2, 2, 2, 1017, 1018, 3, 2, 2, 2, 1018, 125, 3, 2, 2, 2, 1019, 1022, 5, 430, 216, 2, 1020, 1022, 5, 260, 131, 2, 1021, 1019, 3, 2, 2, 2, 1021, 1020, 3, 2, 2, 2, 1022, 127, 3, 2, 2, 2, 1023, 1026, 5, 130, 66, 2, 1024, 1026, 5, 132, 67, 2, 1025, 1023, 3, 2, 2, 2, 1025, 1024, 3, 2, 2, 2, 1026, 129, 3, 2, 2, 2, 1027, 1030, 5, 6, 4, 2, 1028, 1030, 7, 5, 2, 2, 1029, 1027, 3, 2, 2, 2, 1029, 1028, 3, 2, 2, 2, 1030, 131, 3, 2, 2, 2, 1031, 1035, 5, 134, 68, 2, 1032, 1035, 5, 148, 75, 2, 1033, 1035, 5, 150, 76, 2, 1034, 1031, 3, 2, 2, 2, 1034, 1032, 3, 2, 2, 2, 1034, 1033, 3, 2, 2, 2, 1035, 133, 3, 2, 2, 2, 1036, 1039, 5, 140, 71, 2, 1037, 1039, 5, 146, 74, 2, 1038, 1036, 3, 2, 2, 2, 1038, 1037, 3, 2, 2, 2, 1039, 1044, 3, 2, 2, 2, 1040, 1043, 5, 138, 70, 2, 1041, 1043, 5, 144, 73, 2, 1042, 1040, 3, 2, 2, 2, 1042, 1041, 3, 2, 2, 2, 1043, 1046, 3, 2, 2, 2, 1044, 1042, 3, 2, 2, 2, 1044, 1045, 3, 2, 2, 2, 1045, 135, 3, 2, 2, 2, 1046, 1044, 3, 2, 2, 2, 1047, 1049, 5, 490, 246, 2, 1048, 1050, 5, 42, 22, 2, 1049, 1048, 3, 2, 2, 2, 1049, 1050, 3, 2, 2, 2, 1050, 1064, 3, 2, 2, 2, 1051, 1052, 5, 134, 68, 2, 1052, 1056, 7, 78, 2, 2, 1053, 1055, 5, 242, 122, 2, 1054, 1053, 3, 2, 2, 2, 1055, 1058, 3, 2, 2, 2, 1056, 1054, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1059, 3, 2, 2, 2, 1058, 1056, 3, 2, 2, 2, 1059, 1061, 5, 490, 246, 2, 1060, 1062, 5, 42, 22, 2, 1061, 1060, 3, 2, 2, 2, 1061, 1062, 3, 2, 2, 2, 1062, 1064, 3, 2, 2, 2, 1063, 1047, 3, 2, 2, 2, 1063, 1051, 3, 2, 2, 2, 1064, 137, 3, 2, 2, 2, 1065, 1069, 7, 78, 2, 2, 1066, 1068, 5, 242, 122, 2, 1067, 1066, 3, 2, 2, 2, 1068, 1071, 3, 2, 2, 2, 1069, 1067, 3, 2, 2, 2, 1069, 1070, 3, 2, 2, 2, 1070, 1072, 3, 2, 2, 2, 1071, 1069, 3, 2, 2, 2, 1072, 1074, 5, 490, 246, 2, 1073, 1075, 5, 42, 22, 2, 1074, 1073, 3, 2, 2, 2, 1074, 1075, 3, 2, 2, 2, 1075, 139, 3, 2, 2, 2, 1076, 1078, 5, 490, 246, 2, 1077, 1079, 5, 42, 22, 2, 1078, 1077, 3, 2, 2, 2, 1078, 1079, 3, 2, 2, 2, 1079, 141, 3, 2, 2, 2, 1080, 1081, 5, 136, 69, 2, 1081, 143, 3, 2, 2, 2, 1082, 1083, 5, 138, 70, 2, 1083, 145, 3, 2, 2, 2, 1084, 1085, 5, 140, 71, 2, 1085, 147, 3, 2, 2, 2, 1086, 1087, 5, 490, 246, 2, 1087, 149, 3, 2, 2, 2, 1088, 1089, 5, 130, 66, 2, 1089, 1090, 5, 32, 17, 2, 1090, 1098, 3, 2, 2, 2, 1091, 1092, 5, 134, 68, 2, 1092, 1093, 5, 32, 17, 2, 1093, 1098, 3, 2, 2, 2, 1094, 1095, 5, 148, 75, 2, 1095, 1096, 5, 32, 17, 2, 1096, 1098, 3, 2, 2, 2, 1097, 1088, 3, 2, 2, 2, 1097, 1091, 3, 2, 2, 2, 1097, 1094, 3, 2, 2, 2, 1098, 151, 3, 2, 2, 2, 1099, 1101, 5, 154, 78, 2, 1100, 1099, 3, 2, 2, 2, 1101, 1104, 3, 2, 2, 2, 1102, 1100, 3, 2, 2, 2, 1102, 1103, 3, 2, 2, 2, 1103, 1105, 3, 2, 2, 2, 1104, 1102, 3, 2, 2, 2, 1105, 1106, 5, 156, 79, 2, 1106, 1107, 5, 180, 91, 2, 1107, 153, 3, 2, 2, 2, 1108, 1119, 5, 242, 122, 2, 1109, 1119, 7, 42, 2, 2, 1110, 1119, 7, 40, 2, 2, 1111, 1119, 7, 39, 2, 2, 1112, 1119, 7, 3, 2, 2, 1113, 1119, 7, 46, 2, 2, 1114, 1119, 7, 21, 2, 2, 1115, 1119, 7, 50, 2, 2, 1116, 1119, 7, 34, 2, 2, 1117, 1119, 7, 47, 2, 2, 1118, 1108, 3, 2, 2, 2, 1118, 1109, 3, 2, 2, 2, 1118, 1110, 3, 2, 2, 2, 1118, 1111, 3, 2, 2, 2, 1118, 1112, 3, 2, 2, 2, 1118, 1113, 3, 2, 2, 2, 1118, 1114, 3, 2, 2, 2, 1118, 1115, 3, 2, 2, 2, 1118, 1116, 3, 2, 2, 2, 1118, 1117, 3, 2, 2, 2, 1119, 155, 3, 2, 2, 2, 1120, 1121, 5, 158, 80, 2, 1121, 1123, 5, 160, 81, 2, 1122, 1124, 5, 174, 88, 2, 1123, 1122, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 1138, 3, 2, 2, 2, 1125, 1129, 5, 100, 51, 2, 1126, 1128, 5, 242, 122, 2, 1127, 1126, 3, 2, 2, 2, 1128, 1131, 3, 2, 2, 2, 1129, 1127, 3, 2, 2, 2, 1129, 1130, 3, 2, 2, 2, 1130, 1132, 3, 2, 2, 2, 1131, 1129, 3, 2, 2, 2, 1132, 1133, 5, 158, 80, 2, 1133, 1135, 5, 160, 81, 2, 1134, 1136, 5, 174, 88, 2, 1135, 1134, 3, 2, 2, 2, 1135, 1136, 3, 2, 2, 2, 1136, 1138, 3, 2, 2, 2, 1137, 1120, 3, 2, 2, 2, 1137, 1125, 3, 2, 2, 2, 1138, 157, 3, 2, 2, 2, 1139, 1142, 5, 128, 65, 2, 1140, 1142, 7, 59, 2, 2, 1141, 1139, 3, 2, 2, 2, 1141, 1140, 3, 2, 2, 2, 1142, 159, 3, 2, 2, 2, 1143, 1144, 5, 490, 246, 2, 1144, 1146, 7, 70, 2, 2, 1145, 1147, 5, 162, 82, 2, 1146, 1145, 3, 2, 2, 2, 1146, 1147, 3, 2, 2, 2, 1147, 1148, 3, 2, 2, 2, 1148, 1150, 7, 71, 2, 2, 1149, 1151, 5, 32, 17, 2, 1150, 1149, 3, 2, 2, 2, 1150, 1151, 3, 2, 2, 2, 1151, 161, 3, 2, 2, 2, 1152, 1153, 5, 164, 83, 2, 1153, 1154, 7, 77, 2, 2, 1154, 1155, 5, 170, 86, 2, 1155, 1159, 3, 2, 2, 2, 1156, 1159, 5, 170, 86, 2, 1157, 1159, 5, 172, 87, 2, 1158, 1152, 3, 2, 2, 2, 1158, 1156, 3, 2, 2, 2, 1158, 1157, 3, 2, 2, 2, 1159, 163, 3, 2, 2, 2, 1160, 1165, 5, 166, 84, 2, 1161, 1162, 7, 77, 2, 2, 1162, 1164, 5, 166, 84, 2, 1163, 1161, 3, 2, 2, 2, 1164, 1167, 3, 2, 2, 2, 1165, 1163, 3, 2, 2, 2, 1165, 1166, 3, 2, 2, 2, 1166, 1177, 3, 2, 2, 2, 1167, 1165, 3, 2, 2, 2, 1168, 1173, 5, 172, 87, 2, 1169, 1170, 7, 77, 2, 2, 1170, 1172, 5, 166, 84, 2, 1171, 1169, 3, 2, 2, 2, 1172, 1175, 3, 2, 2, 2, 1173, 1171, 3, 2, 2, 2, 1173, 1174, 3, 2, 2, 2, 1174, 1177, 3, 2, 2, 2, 1175, 1173, 3, 2, 2, 2, 1176, 1160, 3, 2, 2, 2, 1176, 1168, 3, 2, 2, 2, 1177, 165, 3, 2, 2, 2, 1178, 1180, 5, 168, 85, 2, 1179, 1178, 3, 2, 2, 2, 1180, 1183, 3, 2, 2, 2, 1181, 1179, 3, 2, 2, 2, 1181, 1182, 3, 2, 2, 2, 1182, 1184, 3, 2, 2, 2, 1183, 1181, 3, 2, 2, 2, 1184, 1185, 5, 128, 65, 2, 1185, 1186, 5, 124, 63, 2, 1186, 167, 3, 2, 2, 2, 1187, 1190, 5, 242, 122, 2, 1188, 1190, 7, 21, 2, 2, 1189, 1187, 3, 2, 2, 2, 1189, 1188, 3, 2, 2, 2, 1190, 169, 3, 2, 2, 2, 1191, 1193, 5, 168, 85, 2, 1192, 1191, 3, 2, 2, 2, 1193, 1196, 3, 2, 2, 2, 1194, 1192, 3, 2, 2, 2, 1194, 1195, 3, 2, 2, 2, 1195, 1197, 3, 2, 2, 2, 1196, 1194, 3, 2, 2, 2, 1197, 1201, 5, 128, 65, 2, 1198, 1200, 5, 242, 122, 2, 1199, 1198, 3, 2, 2, 2, 1200, 1203, 3, 2, 2, 2, 1201, 1199, 3, 2, 2, 2, 1201, 1202, 3, 2, 2, 2, 1202, 1204, 3, 2, 2, 2, 1203, 1201, 3, 2, 2, 2, 1204, 1205, 7, 79, 2, 2, 1205, 1206, 5, 124, 63, 2, 1206, 1209, 3, 2, 2, 2, 1207, 1209, 5, 166, 84, 2, 1208, 1194, 3, 2, 2, 2, 1208, 1207, 3, 2, 2, 2, 1209, 171, 3, 2, 2, 2, 1210, 1212, 5, 242, 122, 2, 1211, 1210, 3, 2, 2, 2, 1212, 1215, 3, 2, 2, 2, 1213, 1211, 3, 2, 2, 2, 1213, 1214, 3, 2, 2, 2, 1214, 1216, 3, 2, 2, 2, 1215, 1213, 3, 2, 2, 2, 1216, 1220, 5, 128, 65, 2, 1217, 1218, 5, 490, 246, 2, 1218, 1219, 7, 78, 2, 2, 1219, 1221, 3, 2, 2, 2, 1220, 1217, 3, 2, 2, 2, 1220, 1221, 3, 2, 2, 2, 1221, 1222, 3, 2, 2, 2, 1222, 1223, 7, 51, 2, 2, 1223, 173, 3, 2, 2, 2, 1224, 1225, 7, 53, 2, 2, 1225, 1226, 5, 176, 89, 2, 1226, 175, 3, 2, 2, 2, 1227, 1232, 5, 178, 90, 2, 1228, 1229, 7, 77, 2, 2, 1229, 1231, 5, 178, 90, 2, 1230, 1228, 3, 2, 2, 2, 1231, 1234, 3, 2, 2, 2, 1232, 1230, 3, 2, 2, 2, 1232, 1233, 3, 2, 2, 2, 1233, 177, 3, 2, 2, 2, 1234, 1232, 3, 2, 2, 2, 1235, 1238, 5, 16, 9, 2, 1236, 1238, 5, 28, 15, 2, 1237, 1235, 3, 2, 2, 2, 1237, 1236, 3, 2, 2, 2, 1238, 179, 3, 2, 2, 2, 1239, 1242, 5, 264, 133, 2, 1240, 1242, 7, 76, 2, 2, 1241, 1239, 3, 2, 2, 2, 1241, 1240, 3, 2, 2, 2, 1242, 181, 3, 2, 2, 2, 1243, 1244, 5, 264, 133, 2, 1244, 183, 3, 2, 2, 2, 1245, 1246, 7, 46, 2, 2, 1246, 1247, 5, 264, 133, 2, 1247, 185, 3, 2, 2, 2, 1248, 1250, 5, 188, 95, 2, 1249, 1248, 3, 2, 2, 2, 1250, 1253, 3, 2, 2, 2, 1251, 1249, 3, 2, 2, 2, 1251, 1252, 3, 2, 2, 2, 1252, 1254, 3, 2, 2, 2, 1253, 1251, 3, 2, 2, 2, 1254, 1256, 5, 190, 96, 2, 1255, 1257, 5, 174, 88, 2, 1256, 1255, 3, 2, 2, 2, 1256, 1257, 3, 2, 2, 2, 1257, 1258, 3, 2, 2, 2, 1258, 1259, 5, 194, 98, 2, 1259, 187, 3, 2, 2, 2, 1260, 1265, 5, 242, 122, 2, 1261, 1265, 7, 42, 2, 2, 1262, 1265, 7, 40, 2, 2, 1263, 1265, 7, 39, 2, 2, 1264, 1260, 3, 2, 2, 2, 1264, 1261, 3, 2, 2, 2, 1264, 1262, 3, 2, 2, 2, 1264, 1263, 3, 2, 2, 2, 1265, 189, 3, 2, 2, 2, 1266, 1268, 5, 100, 51, 2, 1267, 1266, 3, 2, 2, 2, 1267, 1268, 3, 2, 2, 2, 1268, 1269, 3, 2, 2, 2, 1269, 1270, 5, 192, 97, 2, 1270, 1272, 7, 70, 2, 2, 1271, 1273, 5, 162, 82, 2, 1272, 1271, 3, 2, 2, 2, 1272, 1273, 3, 2, 2, 2, 1273, 1274, 3, 2, 2, 2, 1274, 1275, 7, 71, 2, 2, 1275, 191, 3, 2, 2, 2, 1276, 1277, 5, 490, 246, 2, 1277, 193, 3, 2, 2, 2, 1278, 1280, 7, 72, 2, 2, 1279, 1281, 5, 196, 99, 2, 1280, 1279, 3, 2, 2, 2, 1280, 1281, 3, 2, 2, 2, 1281, 1283, 3, 2, 2, 2, 1282, 1284, 5, 266, 134, 2, 1283, 1282, 3, 2, 2, 2, 1283, 1284, 3, 2, 2, 2, 1284, 1285, 3, 2, 2, 2, 1285, 1286, 7, 73, 2, 2, 1286, 195, 3, 2, 2, 2, 1287, 1289, 5, 42, 22, 2, 1288, 1287, 3, 2, 2, 2, 1288, 1289, 3, 2, 2, 2, 1289, 1290, 3, 2, 2, 2, 1290, 1291, 7, 51, 2, 2, 1291, 1293, 7, 70, 2, 2, 1292, 1294, 5, 414, 208, 2, 1293, 1292, 3, 2, 2, 2, 1293, 1294, 3, 2, 2, 2, 1294, 1295, 3, 2, 2, 2, 1295, 1296, 7, 71, 2, 2, 1296, 1334, 7, 76, 2, 2, 1297, 1299, 5, 42, 22, 2, 1298, 1297, 3, 2, 2, 2, 1298, 1299, 3, 2, 2, 2, 1299, 1300, 3, 2, 2, 2, 1300, 1301, 7, 48, 2, 2, 1301, 1303, 7, 70, 2, 2, 1302, 1304, 5, 414, 208, 2, 1303, 1302, 3, 2, 2, 2, 1303, 1304, 3, 2, 2, 2, 1304, 1305, 3, 2, 2, 2, 1305, 1306, 7, 71, 2, 2, 1306, 1334, 7, 76, 2, 2, 1307, 1308, 5, 60, 31, 2, 1308, 1310, 7, 78, 2, 2, 1309, 1311, 5, 42, 22, 2, 1310, 1309, 3, 2, 2, 2, 1310, 1311, 3, 2, 2, 2, 1311, 1312, 3, 2, 2, 2, 1312, 1313, 7, 48, 2, 2, 1313, 1315, 7, 70, 2, 2, 1314, 1316, 5, 414, 208, 2, 1315, 1314, 3, 2, 2, 2, 1315, 1316, 3, 2, 2, 2, 1316, 1317, 3, 2, 2, 2, 1317, 1318, 7, 71, 2, 2, 1318, 1319, 7, 76, 2, 2, 1319, 1334, 3, 2, 2, 2, 1320, 1321, 5, 366, 184, 2, 1321, 1323, 7, 78, 2, 2, 1322, 1324, 5, 42, 22, 2, 1323, 1322, 3, 2, 2, 2, 1323, 1324, 3, 2, 2, 2, 1324, 1325, 3, 2, 2, 2, 1325, 1326, 7, 48, 2, 2, 1326, 1328, 7, 70, 2, 2, 1327, 1329, 5, 414, 208, 2, 1328, 1327, 3, 2, 2, 2, 1328, 1329, 3, 2, 2, 2, 1329, 1330, 3, 2, 2, 2, 1330, 1331, 7, 71, 2, 2, 1331, 1332, 7, 76, 2, 2, 1332, 1334, 3, 2, 2, 2, 1333, 1288, 3, 2, 2, 2, 1333, 1298, 3, 2, 2, 2, 1333, 1307, 3, 2, 2, 2, 1333, 1320, 3, 2, 2, 2, 1334, 197, 3, 2, 2, 2, 1335, 1337, 5, 98, 50, 2, 1336, 1335, 3, 2, 2, 2, 1337, 1340, 3, 2, 2, 2, 1338, 1336, 3, 2, 2, 2, 1338, 1339, 3, 2, 2, 2, 1339, 1341, 3, 2, 2, 2, 1340, 1338, 3, 2, 2, 2, 1341, 1342, 7, 18, 2, 2, 1342, 1344, 5, 490, 246, 2, 1343, 1345, 5, 106, 54, 2, 1344, 1343, 3, 2, 2, 2, 1344, 1345, 3, 2, 2, 2, 1345, 1346, 3, 2, 2, 2, 1346, 1347, 5, 200, 101, 2, 1347, 199, 3, 2, 2, 2, 1348, 1350, 7, 72, 2, 2, 1349, 1351, 5, 202, 102, 2, 1350, 1349, 3, 2, 2, 2, 1350, 1351, 3, 2, 2, 2, 1351, 1353, 3, 2, 2, 2, 1352, 1354, 7, 77, 2, 2, 1353, 1352, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1356, 3, 2, 2, 2, 1355, 1357, 5, 208, 105, 2, 1356, 1355, 3, 2, 2, 2, 1356, 1357, 3, 2, 2, 2, 1357, 1358, 3, 2, 2, 2, 1358, 1359, 7, 73, 2, 2, 1359, 201, 3, 2, 2, 2, 1360, 1365, 5, 204, 103, 2, 1361, 1362, 7, 77, 2, 2, 1362, 1364, 5, 204, 103, 2, 1363, 1361, 3, 2, 2, 2, 1364, 1367, 3, 2, 2, 2, 1365, 1363, 3, 2, 2, 2, 1365, 1366, 3, 2, 2, 2, 1366, 203, 3, 2, 2, 2, 1367, 1365, 3, 2, 2, 2, 1368, 1370, 5, 206, 104, 2, 1369, 1368, 3, 2, 2, 2, 1370, 1373, 3, 2, 2, 2, 1371, 1369, 3, 2, 2, 2, 1371, 1372, 3, 2, 2, 2, 1372, 1374, 3, 2, 2, 2, 1373, 1371, 3, 2, 2, 2, 1374, 1380, 5, 490, 246, 2, 1375, 1377, 7, 70, 2, 2, 1376, 1378, 5, 414, 208, 2, 1377, 1376, 3, 2, 2, 2, 1377, 1378, 3, 2, 2, 2, 1378, 1379, 3, 2, 2, 2, 1379, 1381, 7, 71, 2, 2, 1380, 1375, 3, 2, 2, 2, 1380, 1381, 3, 2, 2, 2, 1381, 1383, 3, 2, 2, 2, 1382, 1384, 5, 110, 56, 2, 1383, 1382, 3, 2, 2, 2, 1383, 1384, 3, 2, 2, 2, 1384, 205, 3, 2, 2, 2, 1385, 1386, 5, 242, 122, 2, 1386, 207, 3, 2, 2, 2, 1387, 1391, 7, 76, 2, 2, 1388, 1390, 5, 112, 57, 2, 1389, 1388, 3, 2, 2, 2, 1390, 1393, 3, 2, 2, 2, 1391, 1389, 3, 2, 2, 2, 1391, 1392, 3, 2, 2, 2, 1392, 209, 3, 2, 2, 2, 1393, 1391, 3, 2, 2, 2, 1394, 1397, 5, 212, 107, 2, 1395, 1397, 5, 230, 116, 2, 1396, 1394, 3, 2, 2, 2, 1396, 1395, 3, 2, 2, 2, 1397, 211, 3, 2, 2, 2, 1398, 1400, 5, 214, 108, 2, 1399, 1398, 3, 2, 2, 2, 1400, 1403, 3, 2, 2, 2, 1401, 1399, 3, 2, 2, 2, 1401, 1402, 3, 2, 2, 2, 1402, 1404, 3, 2, 2, 2, 1403, 1401, 3, 2, 2, 2, 1404, 1405, 7, 31, 2, 2, 1405, 1407, 5, 490, 246, 2, 1406, 1408, 5, 100, 51, 2, 1407, 1406, 3, 2, 2, 2, 1407, 1408, 3, 2, 2, 2, 1408, 1410, 3, 2, 2, 2, 1409, 1411, 5, 216, 109, 2, 1410, 1409, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1412, 3, 2, 2, 2, 1412, 1413, 5, 218, 110, 2, 1413, 213, 3, 2, 2, 2, 1414, 1422, 5, 242, 122, 2, 1415, 1422, 7, 42, 2, 2, 1416, 1422, 7, 40, 2, 2, 1417, 1422, 7, 39, 2, 2, 1418, 1422, 7, 3, 2, 2, 1419, 1422, 7, 46, 2, 2, 1420, 1422, 7, 47, 2, 2, 1421, 1414, 3, 2, 2, 2, 1421, 1415, 3, 2, 2, 2, 1421, 1416, 3, 2, 2, 2, 1421, 1417, 3, 2, 2, 2, 1421, 1418, 3, 2, 2, 2, 1421, 1419, 3, 2, 2, 2, 1421, 1420, 3, 2, 2, 2, 1422, 215, 3, 2, 2, 2, 1423, 1424, 7, 20, 2, 2, 1424, 1425, 5, 108, 55, 2, 1425, 217, 3, 2, 2, 2, 1426, 1430, 7, 72, 2, 2, 1427, 1429, 5, 220, 111, 2, 1428, 1427, 3, 2, 2, 2, 1429, 1432, 3, 2, 2, 2, 1430, 1428, 3, 2, 2, 2, 1430, 1431, 3, 2, 2, 2, 1431, 1433, 3, 2, 2, 2, 1432, 1430, 3, 2, 2, 2, 1433, 1434, 7, 73, 2, 2, 1434, 219, 3, 2, 2, 2, 1435, 1441, 5, 222, 112, 2, 1436, 1441, 5, 226, 114, 2, 1437, 1441, 5, 94, 48, 2, 1438, 1441, 5, 210, 106, 2, 1439, 1441, 7, 76, 2, 2, 1440, 1435, 3, 2, 2, 2, 1440, 1436, 3, 2, 2, 2, 1440, 1437, 3, 2, 2, 2, 1440, 1438, 3, 2, 2, 2, 1440, 1439, 3, 2, 2, 2, 1441, 221, 3, 2, 2, 2, 1442, 1444, 5, 224, 113, 2, 1443, 1442, 3, 2, 2, 2, 1444, 1447, 3, 2, 2, 2, 1445, 1443, 3, 2, 2, 2, 1445, 1446, 3, 2, 2, 2, 1446, 1448, 3, 2, 2, 2, 1447, 1445, 3, 2, 2, 2, 1448, 1449, 5, 128, 65, 2, 1449, 1450, 5, 120, 61, 2, 1450, 1451, 7, 76, 2, 2, 1451, 223, 3, 2, 2, 2, 1452, 1457, 5, 242, 122, 2, 1453, 1457, 7, 42, 2, 2, 1454, 1457, 7, 46, 2, 2, 1455, 1457, 7, 21, 2, 2, 1456, 1452, 3, 2, 2, 2, 1456, 1453, 3, 2, 2, 2, 1456, 1454, 3, 2, 2, 2, 1456, 1455, 3, 2, 2, 2, 1457, 225, 3, 2, 2, 2, 1458, 1460, 5, 228, 115, 2, 1459, 1458, 3, 2, 2, 2, 1460, 1463, 3, 2, 2, 2, 1461, 1459, 3, 2, 2, 2, 1461, 1462, 3, 2, 2, 2, 1462, 1464, 3, 2, 2, 2, 1463, 1461, 3, 2, 2, 2, 1464, 1465, 5, 156, 79, 2, 1465, 1466, 5, 180, 91, 2, 1466, 227, 3, 2, 2, 2, 1467, 1475, 5, 242, 122, 2, 1468, 1475, 7, 42, 2, 2, 1469, 1475, 7, 39, 2, 2, 1470, 1475, 7, 3, 2, 2, 1471, 1475, 7, 14, 2, 2, 1472, 1475, 7, 46, 2, 2, 1473, 1475, 7, 47, 2, 2, 1474, 1467, 3, 2, 2, 2, 1474, 1468, 3, 2, 2, 2, 1474, 1469, 3, 2, 2, 2, 1474, 1470, 3, 2, 2, 2, 1474, 1471, 3, 2, 2, 2, 1474, 1472, 3, 2, 2, 2, 1474, 1473, 3, 2, 2, 2, 1475, 229, 3, 2, 2, 2, 1476, 1478, 5, 214, 108, 2, 1477, 1476, 3, 2, 2, 2, 1478, 1481, 3, 2, 2, 2, 1479, 1477, 3, 2, 2, 2, 1479, 1480, 3, 2, 2, 2, 1480, 1482, 3, 2, 2, 2, 1481, 1479, 3, 2, 2, 2, 1482, 1483, 7, 80, 2, 2, 1483, 1484, 7, 31, 2, 2, 1484, 1485, 5, 490, 246, 2, 1485, 1486, 5, 232, 117, 2, 1486, 231, 3, 2, 2, 2, 1487, 1491, 7, 72, 2, 2, 1488, 1490, 5, 234, 118, 2, 1489, 1488, 3, 2, 2, 2, 1490, 1493, 3, 2, 2, 2, 1491, 1489, 3, 2, 2, 2, 1491, 1492, 3, 2, 2, 2, 1492, 1494, 3, 2, 2, 2, 1493, 1491, 3, 2, 2, 2, 1494, 1495, 7, 73, 2, 2, 1495, 233, 3, 2, 2, 2, 1496, 1502, 5, 236, 119, 2, 1497, 1502, 5, 222, 112, 2, 1498, 1502, 5, 94, 48, 2, 1499, 1502, 5, 210, 106, 2, 1500, 1502, 7, 76, 2, 2, 1501, 1496, 3, 2, 2, 2, 1501, 1497, 3, 2, 2, 2, 1501, 1498, 3, 2, 2, 2, 1501, 1499, 3, 2, 2, 2, 1501, 1500, 3, 2, 2, 2, 1502, 235, 3, 2, 2, 2, 1503, 1505, 5, 238, 120, 2, 1504, 1503, 3, 2, 2, 2, 1505, 1508, 3, 2, 2, 2, 1506, 1504, 3, 2, 2, 2, 1506, 1507, 3, 2, 2, 2, 1507, 1509, 3, 2, 2, 2, 1508, 1506, 3, 2, 2, 2, 1509, 1510, 5, 128, 65, 2, 1510, 1511, 5, 490, 246, 2, 1511, 1512, 7, 70, 2, 2, 1512, 1514, 7, 71, 2, 2, 1513, 1515, 5, 32, 17, 2, 1514, 1513, 3, 2, 2, 2, 1514, 1515, 3, 2, 2, 2, 1515, 1517, 3, 2, 2, 2, 1516, 1518, 5, 240, 121, 2, 1517, 1516, 3, 2, 2, 2, 1517, 1518, 3, 2, 2, 2, 1518, 1519, 3, 2, 2, 2, 1519, 1520, 7, 76, 2, 2, 1520, 237, 3, 2, 2, 2, 1521, 1525, 5, 242, 122, 2, 1522, 1525, 7, 42, 2, 2, 1523, 1525, 7, 3, 2, 2, 1524, 1521, 3, 2, 2, 2, 1524, 1522, 3, 2, 2, 2, 1524, 1523, 3, 2, 2, 2, 1525, 239, 3, 2, 2, 2, 1526, 1527, 7, 14, 2, 2, 1527, 1528, 5, 250, 126, 2, 1528, 241, 3, 2, 2, 2, 1529, 1533, 5, 244, 123, 2, 1530, 1533, 5, 256, 129, 2, 1531, 1533, 5, 258, 130, 2, 1532, 1529, 3, 2, 2, 2, 1532, 1530, 3, 2, 2, 2, 1532, 1531, 3, 2, 2, 2, 1533, 243, 3, 2, 2, 2, 1534, 1535, 7, 80, 2, 2, 1535, 1536, 5, 56, 29, 2, 1536, 1538, 7, 70, 2, 2, 1537, 1539, 5, 246, 124, 2, 1538, 1537, 3, 2, 2, 2, 1538, 1539, 3, 2, 2, 2, 1539, 1540, 3, 2, 2, 2, 1540, 1541, 7, 71, 2, 2, 1541, 245, 3, 2, 2, 2, 1542, 1547, 5, 248, 125, 2, 1543, 1544, 7, 77, 2, 2, 1544, 1546, 5, 248, 125, 2, 1545, 1543, 3, 2, 2, 2, 1546, 1549, 3, 2, 2, 2, 1547, 1545, 3, 2, 2, 2, 1547, 1548, 3, 2, 2, 2, 1548, 247, 3, 2, 2, 2, 1549, 1547, 3, 2, 2, 2, 1550, 1551, 5, 490, 246, 2, 1551, 1552, 7, 82, 2, 2, 1552, 1553, 5, 250, 126, 2, 1553, 249, 3, 2, 2, 2, 1554, 1558, 5, 448, 225, 2, 1555, 1558, 5, 252, 127, 2, 1556, 1558, 5, 242, 122, 2, 1557, 1554, 3, 2, 2, 2, 1557, 1555, 3, 2, 2, 2, 1557, 1556, 3, 2, 2, 2, 1558, 251, 3, 2, 2, 2, 1559, 1561, 7, 72, 2, 2, 1560, 1562, 5, 254, 128, 2, 1561, 1560, 3, 2, 2, 2, 1561, 1562, 3, 2, 2, 2, 1562, 1564, 3, 2, 2, 2, 1563, 1565, 7, 77, 2, 2, 1564, 1563, 3, 2, 2, 2, 1564, 1565, 3, 2, 2, 2, 1565, 1566, 3, 2, 2, 2, 1566, 1567, 7, 73, 2, 2, 1567, 253, 3, 2, 2, 2, 1568, 1573, 5, 250, 126, 2, 1569, 1570, 7, 77, 2, 2, 1570, 1572, 5, 250, 126, 2, 1571, 1569, 3, 2, 2, 2, 1572, 1575, 3, 2, 2, 2, 1573, 1571, 3, 2, 2, 2, 1573, 1574, 3, 2, 2, 2, 1574, 255, 3, 2, 2, 2, 1575, 1573, 3, 2, 2, 2, 1576, 1577, 7, 80, 2, 2, 1577, 1578, 5, 56, 29, 2, 1578, 257, 3, 2, 2, 2, 1579, 1580, 7, 80, 2, 2, 1580, 1581, 5, 56, 29, 2, 1581, 1582, 7, 70, 2, 2, 1582, 1583, 5, 250, 126, 2, 1583, 1584, 7, 71, 2, 2, 1584, 259, 3, 2, 2, 2, 1585, 1587, 7, 72, 2, 2, 1586, 1588, 5, 262, 132, 2, 1587, 1586, 3, 2, 2, 2, 1587, 1588, 3, 2, 2, 2, 1588, 1590, 3, 2, 2, 2, 1589, 1591, 7, 77, 2, 2, 1590, 1589, 3, 2, 2, 2, 1590, 1591, 3, 2, 2, 2, 1591, 1592, 3, 2, 2, 2, 1592, 1593, 7, 73, 2, 2, 1593, 261, 3, 2, 2, 2, 1594, 1599, 5, 126, 64, 2, 1595, 1596, 7, 77, 2, 2, 1596, 1598, 5, 126, 64, 2, 1597, 1595, 3, 2, 2, 2, 1598, 1601, 3, 2, 2, 2, 1599, 1597, 3, 2, 2, 2, 1599, 1600, 3, 2, 2, 2, 1600, 263, 3, 2, 2, 2, 1601, 1599, 3, 2, 2, 2, 1602, 1604, 7, 72, 2, 2, 1603, 1605, 5, 266, 134, 2, 1604, 1603, 3, 2, 2, 2, 1604, 1605, 3, 2, 2, 2, 1605, 1606, 3, 2, 2, 2, 1606, 1607, 7, 73, 2, 2, 1607, 265, 3, 2, 2, 2, 1608, 1610, 5, 268, 135, 2, 1609, 1608, 3, 2, 2, 2, 1610, 1611, 3, 2, 2, 2, 1611, 1609, 3, 2, 2, 2, 1611, 1612, 3, 2, 2, 2, 1612, 267, 3, 2, 2, 2, 1613, 1617, 5, 270, 136, 2, 1614, 1617, 5, 94, 48, 2, 1615, 1617, 5, 274, 138, 2, 1616, 1613, 3, 2, 2, 2, 1616, 1614, 3, 2, 2, 2, 1616, 1615, 3, 2, 2, 2, 1617, 269, 3, 2, 2, 2, 1618, 1619, 5, 272, 137, 2, 1619, 1620, 7, 76, 2, 2, 1620, 271, 3, 2, 2, 2, 1621, 1623, 5, 168, 85, 2, 1622, 1621, 3, 2, 2, 2, 1623, 1626, 3, 2, 2, 2, 1624, 1622, 3, 2, 2, 2, 1624, 1625, 3, 2, 2, 2, 1625, 1627, 3, 2, 2, 2, 1626, 1624, 3, 2, 2, 2, 1627, 1628, 5, 128, 65, 2, 1628, 1629, 5, 120, 61, 2, 1629, 273, 3, 2, 2, 2, 1630, 1637, 5, 278, 140, 2, 1631, 1637, 5, 282, 142, 2, 1632, 1637, 5, 290, 146, 2, 1633, 1637, 5, 292, 147, 2, 1634, 1637, 5, 310, 156, 2, 1635, 1637, 5, 316, 159, 2, 1636, 1630, 3, 2, 2, 2, 1636, 1631, 3, 2, 2, 2, 1636, 1632, 3, 2, 2, 2, 1636, 1633, 3, 2, 2, 2, 1636, 1634, 3, 2, 2, 2, 1636, 1635, 3, 2, 2, 2, 1637, 275, 3, 2, 2, 2, 1638, 1644, 5, 278, 140, 2, 1639, 1644, 5, 284, 143, 2, 1640, 1644, 5, 294, 148, 2, 1641, 1644, 5, 312, 157, 2, 1642, 1644, 5, 318, 160, 2, 1643, 1638, 3, 2, 2, 2, 1643, 1639, 3, 2, 2, 2, 1643, 1640, 3, 2, 2, 2, 1643, 1641, 3, 2, 2, 2, 1643, 1642, 3, 2, 2, 2, 1644, 277, 3, 2, 2, 2, 1645, 1658, 5, 264, 133, 2, 1646, 1658, 5, 280, 141, 2, 1647, 1658, 5, 286, 144, 2, 1648, 1658, 5, 296, 149, 2, 1649, 1658, 5, 298, 150, 2, 1650, 1658, 5, 314, 158, 2, 1651, 1658, 5, 334, 168, 2, 1652, 1658, 5, 336, 169, 2, 1653, 1658, 5, 338, 170, 2, 1654, 1658, 5, 342, 172, 2, 1655, 1658, 5, 340, 171, 2, 1656, 1658, 5, 344, 173, 2, 1657, 1645, 3, 2, 2, 2, 1657, 1646, 3, 2, 2, 2, 1657, 1647, 3, 2, 2, 2, 1657, 1648, 3, 2, 2, 2, 1657, 1649, 3, 2, 2, 2, 1657, 1650, 3, 2, 2, 2, 1657, 1651, 3, 2, 2, 2, 1657, 1652, 3, 2, 2, 2, 1657, 1653, 3, 2, 2, 2, 1657, 1654, 3, 2, 2, 2, 1657, 1655, 3, 2, 2, 2, 1657, 1656, 3, 2, 2, 2, 1658, 279, 3, 2, 2, 2, 1659, 1660, 7, 76, 2, 2, 1660, 281, 3, 2, 2, 2, 1661, 1662, 5, 490, 246, 2, 1662, 1663, 7, 88, 2, 2, 1663, 1664, 5, 274, 138, 2, 1664, 283, 3, 2, 2, 2, 1665, 1666, 5, 490, 246, 2, 1666, 1667, 7, 88, 2, 2, 1667, 1668, 5, 276, 139, 2, 1668, 285, 3, 2, 2, 2, 1669, 1670, 5, 288, 145, 2, 1670, 1671, 7, 76, 2, 2, 1671, 287, 3, 2, 2, 2, 1672, 1680, 5, 442, 222, 2, 1673, 1680, 5, 472, 237, 2, 1674, 1680, 5, 474, 238, 2, 1675, 1680, 5, 480, 241, 2, 1676, 1680, 5, 484, 243, 2, 1677, 1680, 5, 408, 205, 2, 1678, 1680, 5, 388, 195, 2, 1679, 1672, 3, 2, 2, 2, 1679, 1673, 3, 2, 2, 2, 1679, 1674, 3, 2, 2, 2, 1679, 1675, 3, 2, 2, 2, 1679, 1676, 3, 2, 2, 2, 1679, 1677, 3, 2, 2, 2, 1679, 1678, 3, 2, 2, 2, 1680, 289, 3, 2, 2, 2, 1681, 1682, 7, 25, 2, 2, 1682, 1683, 7, 70, 2, 2, 1683, 1684, 5, 430, 216, 2, 1684, 1685, 7, 71, 2, 2, 1685, 1686, 5, 274, 138, 2, 1686, 291, 3, 2, 2, 2, 1687, 1688, 7, 25, 2, 2, 1688, 1689, 7, 70, 2, 2, 1689, 1690, 5, 430, 216, 2, 1690, 1691, 7, 71, 2, 2, 1691, 1692, 5, 276, 139, 2, 1692, 1693, 7, 17, 2, 2, 1693, 1694, 5, 274, 138, 2, 1694, 293, 3, 2, 2, 2, 1695, 1696, 7, 25, 2, 2, 1696, 1697, 7, 70, 2, 2, 1697, 1698, 5, 430, 216, 2, 1698, 1699, 7, 71, 2, 2, 1699, 1700, 5, 276, 139, 2, 1700, 1701, 7, 17, 2, 2, 1701, 1702, 5, 276, 139, 2, 1702, 295, 3, 2, 2, 2, 1703, 1704, 7, 4, 2, 2, 1704, 1705, 5, 430, 216, 2, 1705, 1706, 7, 76, 2, 2, 1706, 1714, 3, 2, 2, 2, 1707, 1708, 7, 4, 2, 2, 1708, 1709, 5, 430, 216, 2, 1709, 1710, 7, 88, 2, 2, 1710, 1711, 5, 430, 216, 2, 1711, 1712, 7, 76, 2, 2, 1712, 1714, 3, 2, 2, 2, 1713, 1703, 3, 2, 2, 2, 1713, 1707, 3, 2, 2, 2, 1714, 297, 3, 2, 2, 2, 1715, 1716, 7, 49, 2, 2, 1716, 1717, 7, 70, 2, 2, 1717, 1718, 5, 430, 216, 2, 1718, 1719, 7, 71, 2, 2, 1719, 1720, 5, 300, 151, 2, 1720, 299, 3, 2, 2, 2, 1721, 1725, 7, 72, 2, 2, 1722, 1724, 5, 302, 152, 2, 1723, 1722, 3, 2, 2, 2, 1724, 1727, 3, 2, 2, 2, 1725, 1723, 3, 2, 2, 2, 1725, 1726, 3, 2, 2, 2, 1726, 1731, 3, 2, 2, 2, 1727, 1725, 3, 2, 2, 2, 1728, 1730, 5, 306, 154, 2, 1729, 1728, 3, 2, 2, 2, 1730, 1733, 3, 2, 2, 2, 1731, 1729, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1734, 3, 2, 2, 2, 1733, 1731, 3, 2, 2, 2, 1734, 1735, 7, 73, 2, 2, 1735, 301, 3, 2, 2, 2, 1736, 1737, 5, 304, 153, 2, 1737, 1738, 5, 266, 134, 2, 1738, 303, 3, 2, 2, 2, 1739, 1741, 5, 306, 154, 2, 1740, 1739, 3, 2, 2, 2, 1741, 1742, 3, 2, 2, 2, 1742, 1740, 3, 2, 2, 2, 1742, 1743, 3, 2, 2, 2, 1743, 305, 3, 2, 2, 2, 1744, 1745, 7, 8, 2, 2, 1745, 1746, 5, 428, 215, 2, 1746, 1747, 7, 88, 2, 2, 1747, 1755, 3, 2, 2, 2, 1748, 1749, 7, 8, 2, 2, 1749, 1750, 5, 308, 155, 2, 1750, 1751, 7, 88, 2, 2, 1751, 1755, 3, 2, 2, 2, 1752, 1753, 7, 14, 2, 2, 1753, 1755, 7, 88, 2, 2, 1754, 1744, 3, 2, 2, 2, 1754, 1748, 3, 2, 2, 2, 1754, 1752, 3, 2, 2, 2, 1755, 307, 3, 2, 2, 2, 1756, 1757, 5, 490, 246, 2, 1757, 309, 3, 2, 2, 2, 1758, 1759, 7, 61, 2, 2, 1759, 1760, 7, 70, 2, 2, 1760, 1761, 5, 430, 216, 2, 1761, 1762, 7, 71, 2, 2, 1762, 1763, 5, 274, 138, 2, 1763, 311, 3, 2, 2, 2, 1764, 1765, 7, 61, 2, 2, 1765, 1766, 7, 70, 2, 2, 1766, 1767, 5, 430, 216, 2, 1767, 1768, 7, 71, 2, 2, 1768, 1769, 5, 276, 139, 2, 1769, 313, 3, 2, 2, 2, 1770, 1771, 7, 15, 2, 2, 1771, 1772, 5, 274, 138, 2, 1772, 1773, 7, 61, 2, 2, 1773, 1774, 7, 70, 2, 2, 1774, 1775, 5, 430, 216, 2, 1775, 1776, 7, 71, 2, 2, 1776, 1777, 7, 76, 2, 2, 1777, 315, 3, 2, 2, 2, 1778, 1781, 5, 320, 161, 2, 1779, 1781, 5, 330, 166, 2, 1780, 1778, 3, 2, 2, 2, 1780, 1779, 3, 2, 2, 2, 1781, 317, 3, 2, 2, 2, 1782, 1785, 5, 322, 162, 2, 1783, 1785, 5, 332, 167, 2, 1784, 1782, 3, 2, 2, 2, 1784, 1783, 3, 2, 2, 2, 1785, 319, 3, 2, 2, 2, 1786, 1787, 7, 24, 2, 2, 1787, 1789, 7, 70, 2, 2, 1788, 1790, 5, 324, 163, 2, 1789, 1788, 3, 2, 2, 2, 1789, 1790, 3, 2, 2, 2, 1790, 1791, 3, 2, 2, 2, 1791, 1793, 7, 76, 2, 2, 1792, 1794, 5, 430, 216, 2, 1793, 1792, 3, 2, 2, 2, 1793, 1794, 3, 2, 2, 2, 1794, 1795, 3, 2, 2, 2, 1795, 1797, 7, 76, 2, 2, 1796, 1798, 5, 326, 164, 2, 1797, 1796, 3, 2, 2, 2, 1797, 1798, 3, 2, 2, 2, 1798, 1799, 3, 2, 2, 2, 1799, 1800, 7, 71, 2, 2, 1800, 1801, 5, 274, 138, 2, 1801, 321, 3, 2, 2, 2, 1802, 1803, 7, 24, 2, 2, 1803, 1805, 7, 70, 2, 2, 1804, 1806, 5, 324, 163, 2, 1805, 1804, 3, 2, 2, 2, 1805, 1806, 3, 2, 2, 2, 1806, 1807, 3, 2, 2, 2, 1807, 1809, 7, 76, 2, 2, 1808, 1810, 5, 430, 216, 2, 1809, 1808, 3, 2, 2, 2, 1809, 1810, 3, 2, 2, 2, 1810, 1811, 3, 2, 2, 2, 1811, 1813, 7, 76, 2, 2, 1812, 1814, 5, 326, 164, 2, 1813, 1812, 3, 2, 2, 2, 1813, 1814, 3, 2, 2, 2, 1814, 1815, 3, 2, 2, 2, 1815, 1816, 7, 71, 2, 2, 1816, 1817, 5, 276, 139, 2, 1817, 323, 3, 2, 2, 2, 1818, 1821, 5, 328, 165, 2, 1819, 1821, 5, 272, 137, 2, 1820, 1818, 3, 2, 2, 2, 1820, 1819, 3, 2, 2, 2, 1821, 325, 3, 2, 2, 2, 1822, 1823, 5, 328, 165, 2, 1823, 327, 3, 2, 2, 2, 1824, 1829, 5, 288, 145, 2, 1825, 1826, 7, 77, 2, 2, 1826, 1828, 5, 288, 145, 2, 1827, 1825, 3, 2, 2, 2, 1828, 1831, 3, 2, 2, 2, 1829, 1827, 3, 2, 2, 2, 1829, 1830, 3, 2, 2, 2, 1830, 329, 3, 2, 2, 2, 1831, 1829, 3, 2, 2, 2, 1832, 1833, 7, 24, 2, 2, 1833, 1837, 7, 70, 2, 2, 1834, 1836, 5, 168, 85, 2, 1835, 1834, 3, 2, 2, 2, 1836, 1839, 3, 2, 2, 2, 1837, 1835, 3, 2, 2, 2, 1837, 1838, 3, 2, 2, 2, 1838, 1840, 3, 2, 2, 2, 1839, 1837, 3, 2, 2, 2, 1840, 1841, 5, 128, 65, 2, 1841, 1842, 5, 124, 63, 2, 1842, 1843, 7, 88, 2, 2, 1843, 1844, 5, 430, 216, 2, 1844, 1845, 7, 71, 2, 2, 1845, 1846, 5, 274, 138, 2, 1846, 331, 3, 2, 2, 2, 1847, 1848, 7, 24, 2, 2, 1848, 1852, 7, 70, 2, 2, 1849, 1851, 5, 168, 85, 2, 1850, 1849, 3, 2, 2, 2, 1851, 1854, 3, 2, 2, 2, 1852, 1850, 3, 2, 2, 2, 1852, 1853, 3, 2, 2, 2, 1853, 1855, 3, 2, 2, 2, 1854, 1852, 3, 2, 2, 2, 1855, 1856, 5, 128, 65, 2, 1856, 1857, 5, 124, 63, 2, 1857, 1858, 7, 88, 2, 2, 1858, 1859, 5, 430, 216, 2, 1859, 1860, 7, 71, 2, 2, 1860, 1861, 5, 276, 139, 2, 1861, 333, 3, 2, 2, 2, 1862, 1864, 7, 6, 2, 2, 1863, 1865, 5, 490, 246, 2, 1864, 1863, 3, 2, 2, 2, 1864, 1865, 3, 2, 2, 2, 1865, 1866, 3, 2, 2, 2, 1866, 1867, 7, 76, 2, 2, 1867, 335, 3, 2, 2, 2, 1868, 1870, 7, 13, 2, 2, 1869, 1871, 5, 490, 246, 2, 1870, 1869, 3, 2, 2, 2, 1870, 1871, 3, 2, 2, 2, 1871, 1872, 3, 2, 2, 2, 1872, 1873, 7, 76, 2, 2, 1873, 337, 3, 2, 2, 2, 1874, 1876, 7, 44, 2, 2, 1875, 1877, 5, 430, 216, 2, 1876, 1875, 3, 2, 2, 2, 1876, 1877, 3, 2, 2, 2, 1877, 1878, 3, 2, 2, 2, 1878, 1879, 7, 76, 2, 2, 1879, 339, 3, 2, 2, 2, 1880, 1881, 7, 52, 2, 2, 1881, 1882, 5, 430, 216, 2, 1882, 1883, 7, 76, 2, 2, 1883, 341, 3, 2, 2, 2, 1884, 1885, 7, 50, 2, 2, 1885, 1886, 7, 70, 2, 2, 1886, 1887, 5, 430, 216, 2, 1887, 1888, 7, 71, 2, 2, 1888, 1889, 5, 264, 133, 2, 1889, 343, 3, 2, 2, 2, 1890, 1891, 7, 57, 2, 2, 1891, 1892, 5, 264, 133, 2, 1892, 1893, 5, 346, 174, 2, 1893, 1903, 3, 2, 2, 2, 1894, 1895, 7, 57, 2, 2, 1895, 1897, 5, 264, 133, 2, 1896, 1898, 5, 346, 174, 2, 1897, 1896, 3, 2, 2, 2, 1897, 1898, 3, 2, 2, 2, 1898, 1899, 3, 2, 2, 2, 1899, 1900, 5, 354, 178, 2, 1900, 1903, 3, 2, 2, 2, 1901, 1903, 5, 356, 179, 2, 1902, 1890, 3, 2, 2, 2, 1902, 1894, 3, 2, 2, 2, 1902, 1901, 3, 2, 2, 2, 1903, 345, 3, 2, 2, 2, 1904, 1906, 5, 348, 175, 2, 1905, 1904, 3, 2, 2, 2, 1906, 1907, 3, 2, 2, 2, 1907, 1905, 3, 2, 2, 2, 1907, 1908, 3, 2, 2, 2, 1908, 347, 3, 2, 2, 2, 1909, 1910, 7, 9, 2, 2, 1910, 1911, 7, 70, 2, 2, 1911, 1912, 5, 350, 176, 2, 1912, 1913, 7, 71, 2, 2, 1913, 1914, 5, 264, 133, 2, 1914, 349, 3, 2, 2, 2, 1915, 1917, 5, 168, 85, 2, 1916, 1915, 3, 2, 2, 2, 1917, 1920, 3, 2, 2, 2, 1918, 1916, 3, 2, 2, 2, 1918, 1919, 3, 2, 2, 2, 1919, 1921, 3, 2, 2, 2, 1920, 1918, 3, 2, 2, 2, 1921, 1922, 5, 352, 177, 2, 1922, 1923, 5, 124, 63, 2, 1923, 351, 3, 2, 2, 2, 1924, 1929, 5, 136, 69, 2, 1925, 1926, 7, 103, 2, 2, 1926, 1928, 5, 16, 9, 2, 1927, 1925, 3, 2, 2, 2, 1928, 1931, 3, 2, 2, 2, 1929, 1927, 3, 2, 2, 2, 1929, 1930, 3, 2, 2, 2, 1930, 353, 3, 2, 2, 2, 1931, 1929, 3, 2, 2, 2, 1932, 1933, 7, 22, 2, 2, 1933, 1934, 5, 264, 133, 2, 1934, 355, 3, 2, 2, 2, 1935, 1936, 7, 57, 2, 2, 1936, 1937, 5, 358, 180, 2, 1937, 1939, 5, 264, 133, 2, 1938, 1940, 5, 346, 174, 2, 1939, 1938, 3, 2, 2, 2, 1939, 1940, 3, 2, 2, 2, 1940, 1942, 3, 2, 2, 2, 1941, 1943, 5, 354, 178, 2, 1942, 1941, 3, 2, 2, 2, 1942, 1943, 3, 2, 2, 2, 1943, 357, 3, 2, 2, 2, 1944, 1945, 7, 70, 2, 2, 1945, 1947, 5, 360, 181, 2, 1946, 1948, 7, 76, 2, 2, 1947, 1946, 3, 2, 2, 2, 1947, 1948, 3, 2, 2, 2, 1948, 1949, 3, 2, 2, 2, 1949, 1950, 7, 71, 2, 2, 1950, 359, 3, 2, 2, 2, 1951, 1956, 5, 362, 182, 2, 1952, 1953, 7, 76, 2, 2, 1953, 1955, 5, 362, 182, 2, 1954, 1952, 3, 2, 2, 2, 1955, 1958, 3, 2, 2, 2, 1956, 1954, 3, 2, 2, 2, 1956, 1957, 3, 2, 2, 2, 1957, 361, 3, 2, 2, 2, 1958, 1956, 3, 2, 2, 2, 1959, 1961, 5, 168, 85, 2, 1960, 1959, 3, 2, 2, 2, 1961, 1964, 3, 2, 2, 2, 1962, 1960, 3, 2, 2, 2, 1962, 1963, 3, 2, 2, 2, 1963, 1965, 3, 2, 2, 2, 1964, 1962, 3, 2, 2, 2, 1965, 1966, 5, 128, 65, 2, 1966, 1967, 5, 124, 63, 2, 1967, 1968, 7, 82, 2, 2, 1968, 1969, 5, 430, 216, 2, 1969, 1972, 3, 2, 2, 2, 1970, 1972, 5, 364, 183, 2, 1971, 1962, 3, 2, 2, 2, 1971, 1970, 3, 2, 2, 2, 1972, 363, 3, 2, 2, 2, 1973, 1976, 5, 60, 31, 2, 1974, 1976, 5, 396, 199, 2, 1975, 1973, 3, 2, 2, 2, 1975, 1974, 3, 2, 2, 2, 1976, 365, 3, 2, 2, 2, 1977, 1980, 5, 380, 191, 2, 1978, 1980, 5, 422, 212, 2, 1979, 1977, 3, 2, 2, 2, 1979, 1978, 3, 2, 2, 2, 1980, 1984, 3, 2, 2, 2, 1981, 1983, 5, 374, 188, 2, 1982, 1981, 3, 2, 2, 2, 1983, 1986, 3, 2, 2, 2, 1984, 1982, 3, 2, 2, 2, 1984, 1985, 3, 2, 2, 2, 1985, 367, 3, 2, 2, 2, 1986, 1984, 3, 2, 2, 2, 1987, 2004, 5, 2, 2, 2, 1988, 2004, 5, 386, 194, 2, 1989, 2004, 7, 51, 2, 2, 1990, 1991, 5, 56, 29, 2, 1991, 1992, 7, 78, 2, 2, 1992, 1993, 7, 51, 2, 2, 1993, 2004, 3, 2, 2, 2, 1994, 1995, 7, 70, 2, 2, 1995, 1996, 5, 430, 216, 2, 1996, 1997, 7, 71, 2, 2, 1997, 2004, 3, 2, 2, 2, 1998, 2004, 5, 388, 195, 2, 1999, 2004, 5, 396, 199, 2, 2000, 2004, 5, 402, 202, 2, 2001, 2004, 5, 408, 205, 2, 2002, 2004, 5, 416, 209, 2, 2003, 1987, 3, 2, 2, 2, 2003, 1988, 3, 2, 2, 2, 2003, 1989, 3, 2, 2, 2, 2003, 1990, 3, 2, 2, 2, 2003, 1994, 3, 2, 2, 2, 2003, 1998, 3, 2, 2, 2, 2003, 1999, 3, 2, 2, 2, 2003, 2000, 3, 2, 2, 2, 2003, 2001, 3, 2, 2, 2, 2003, 2002, 3, 2, 2, 2, 2004, 369, 3, 2, 2, 2, 2005, 2006, 3, 2, 2, 2, 2006, 371, 3, 2, 2, 2, 2007, 2036, 5, 2, 2, 2, 2008, 2013, 5, 56, 29, 2, 2009, 2010, 7, 74, 2, 2, 2010, 2012, 7, 75, 2, 2, 2011, 2009, 3, 2, 2, 2, 2012, 2015, 3, 2, 2, 2, 2013, 2011, 3, 2, 2, 2, 2013, 2014, 3, 2, 2, 2, 2014, 2016, 3, 2, 2, 2, 2015, 2013, 3, 2, 2, 2, 2016, 2017, 7, 78, 2, 2, 2017, 2018, 7, 11, 2, 2, 2018, 2036, 3, 2, 2, 2, 2019, 2020, 7, 59, 2, 2, 2020, 2021, 7, 78, 2, 2, 2021, 2036, 7, 11, 2, 2, 2022, 2036, 7, 51, 2, 2, 2023, 2024, 5, 56, 29, 2, 2024, 2025, 7, 78, 2, 2, 2025, 2026, 7, 51, 2, 2, 2026, 2036, 3, 2, 2, 2, 2027, 2028, 7, 70, 2, 2, 2028, 2029, 5, 430, 216, 2, 2029, 2030, 7, 71, 2, 2, 2030, 2036, 3, 2, 2, 2, 2031, 2036, 5, 388, 195, 2, 2032, 2036, 5, 396, 199, 2, 2033, 2036, 5, 408, 205, 2, 2034, 2036, 5, 416, 209, 2, 2035, 2007, 3, 2, 2, 2, 2035, 2008, 3, 2, 2, 2, 2035, 2019, 3, 2, 2, 2, 2035, 2022, 3, 2, 2, 2, 2035, 2023, 3, 2, 2, 2, 2035, 2027, 3, 2, 2, 2, 2035, 2031, 3, 2, 2, 2, 2035, 2032, 3, 2, 2, 2, 2035, 2033, 3, 2, 2, 2, 2035, 2034, 3, 2, 2, 2, 2036, 373, 3, 2, 2, 2, 2037, 2043, 5, 390, 196, 2, 2038, 2043, 5, 398, 200, 2, 2039, 2043, 5, 404, 203, 2, 2040, 2043, 5, 410, 206, 2, 2041, 2043, 5, 418, 210, 2, 2042, 2037, 3, 2, 2, 2, 2042, 2038, 3, 2, 2, 2, 2042, 2039, 3, 2, 2, 2, 2042, 2040, 3, 2, 2, 2, 2042, 2041, 3, 2, 2, 2, 2043, 375, 3, 2, 2, 2, 2044, 2045, 3, 2, 2, 2, 2045, 377, 3, 2, 2, 2, 2046, 2051, 5, 390, 196, 2, 2047, 2051, 5, 398, 200, 2, 2048, 2051, 5, 410, 206, 2, 2049, 2051, 5, 418, 210, 2, 2050, 2046, 3, 2, 2, 2, 2050, 2047, 3, 2, 2, 2, 2050, 2048, 3, 2, 2, 2, 2050, 2049, 3, 2, 2, 2, 2051, 379, 3, 2, 2, 2, 2052, 2093, 5, 2, 2, 2, 2053, 2058, 5, 56, 29, 2, 2054, 2055, 7, 74, 2, 2, 2055, 2057, 7, 75, 2, 2, 2056, 2054, 3, 2, 2, 2, 2057, 2060, 3, 2, 2, 2, 2058, 2056, 3, 2, 2, 2, 2058, 2059, 3, 2, 2, 2, 2059, 2061, 3, 2, 2, 2, 2060, 2058, 3, 2, 2, 2, 2061, 2062, 7, 78, 2, 2, 2062, 2063, 7, 11, 2, 2, 2063, 2093, 3, 2, 2, 2, 2064, 2069, 5, 130, 66, 2, 2065, 2066, 7, 74, 2, 2, 2066, 2068, 7, 75, 2, 2, 2067, 2065, 3, 2, 2, 2, 2068, 2071, 3, 2, 2, 2, 2069, 2067, 3, 2, 2, 2, 2069, 2070, 3, 2, 2, 2, 2070, 2072, 3, 2, 2, 2, 2071, 2069, 3, 2, 2, 2, 2072, 2073, 7, 78, 2, 2, 2073, 2074, 7, 11, 2, 2, 2074, 2093, 3, 2, 2, 2, 2075, 2076, 7, 59, 2, 2, 2076, 2077, 7, 78, 2, 2, 2077, 2093, 7, 11, 2, 2, 2078, 2093, 7, 51, 2, 2, 2079, 2080, 5, 56, 29, 2, 2080, 2081, 7, 78, 2, 2, 2081, 2082, 7, 51, 2, 2, 2082, 2093, 3, 2, 2, 2, 2083, 2084, 7, 70, 2, 2, 2084, 2085, 5, 430, 216, 2, 2085, 2086, 7, 71, 2, 2, 2086, 2093, 3, 2, 2, 2, 2087, 2093, 5, 392, 197, 2, 2088, 2093, 5, 400, 201, 2, 2089, 2093, 5, 406, 204, 2, 2090, 2093, 5, 412, 207, 2, 2091, 2093, 5, 420, 211, 2, 2092, 2052, 3, 2, 2, 2, 2092, 2053, 3, 2, 2, 2, 2092, 2064, 3, 2, 2, 2, 2092, 2075, 3, 2, 2, 2, 2092, 2078, 3, 2, 2, 2, 2092, 2079, 3, 2, 2, 2, 2092, 2083, 3, 2, 2, 2, 2092, 2087, 3, 2, 2, 2, 2092, 2088, 3, 2, 2, 2, 2092, 2089, 3, 2, 2, 2, 2092, 2090, 3, 2, 2, 2, 2092, 2091, 3, 2, 2, 2, 2093, 381, 3, 2, 2, 2, 2094, 2095, 3, 2, 2, 2, 2095, 383, 3, 2, 2, 2, 2096, 2136, 5, 2, 2, 2, 2097, 2102, 5, 56, 29, 2, 2098, 2099, 7, 74, 2, 2, 2099, 2101, 7, 75, 2, 2, 2100, 2098, 3, 2, 2, 2, 2101, 2104, 3, 2, 2, 2, 2102, 2100, 3, 2, 2, 2, 2102, 2103, 3, 2, 2, 2, 2103, 2105, 3, 2, 2, 2, 2104, 2102, 3, 2, 2, 2, 2105, 2106, 7, 78, 2, 2, 2106, 2107, 7, 11, 2, 2, 2107, 2136, 3, 2, 2, 2, 2108, 2113, 5, 130, 66, 2, 2109, 2110, 7, 74, 2, 2, 2110, 2112, 7, 75, 2, 2, 2111, 2109, 3, 2, 2, 2, 2112, 2115, 3, 2, 2, 2, 2113, 2111, 3, 2, 2, 2, 2113, 2114, 3, 2, 2, 2, 2114, 2116, 3, 2, 2, 2, 2115, 2113, 3, 2, 2, 2, 2116, 2117, 7, 78, 2, 2, 2117, 2118, 7, 11, 2, 2, 2118, 2136, 3, 2, 2, 2, 2119, 2120, 7, 59, 2, 2, 2120, 2121, 7, 78, 2, 2, 2121, 2136, 7, 11, 2, 2, 2122, 2136, 7, 51, 2, 2, 2123, 2124, 5, 56, 29, 2, 2124, 2125, 7, 78, 2, 2, 2125, 2126, 7, 51, 2, 2, 2126, 2136, 3, 2, 2, 2, 2127, 2128, 7, 70, 2, 2, 2128, 2129, 5, 430, 216, 2, 2129, 2130, 7, 71, 2, 2, 2130, 2136, 3, 2, 2, 2, 2131, 2136, 5, 392, 197, 2, 2132, 2136, 5, 400, 201, 2, 2133, 2136, 5, 412, 207, 2, 2134, 2136, 5, 420, 211, 2, 2135, 2096, 3, 2, 2, 2, 2135, 2097, 3, 2, 2, 2, 2135, 2108, 3, 2, 2, 2, 2135, 2119, 3, 2, 2, 2, 2135, 2122, 3, 2, 2, 2, 2135, 2123, 3, 2, 2, 2, 2135, 2127, 3, 2, 2, 2, 2135, 2131, 3, 2, 2, 2, 2135, 2132, 3, 2, 2, 2, 2135, 2133, 3, 2, 2, 2, 2135, 2134, 3, 2, 2, 2, 2136, 385, 3, 2, 2, 2, 2137, 2141, 5, 56, 29, 2, 2138, 2141, 5, 6, 4, 2, 2139, 2141, 7, 5, 2, 2, 2140, 2137, 3, 2, 2, 2, 2140, 2138, 3, 2, 2, 2, 2140, 2139, 3, 2, 2, 2, 2141, 2146, 3, 2, 2, 2, 2142, 2143, 7, 74, 2, 2, 2143, 2145, 7, 75, 2, 2, 2144, 2142, 3, 2, 2, 2, 2145, 2148, 3, 2, 2, 2, 2146, 2144, 3, 2, 2, 2, 2146, 2147, 3, 2, 2, 2, 2147, 2149, 3, 2, 2, 2, 2148, 2146, 3, 2, 2, 2, 2149, 2150, 7, 78, 2, 2, 2150, 2155, 7, 11, 2, 2, 2151, 2152, 7, 59, 2, 2, 2152, 2153, 7, 78, 2, 2, 2153, 2155, 7, 11, 2, 2, 2154, 2140, 3, 2, 2, 2, 2154, 2151, 3, 2, 2, 2, 2155, 387, 3, 2, 2, 2, 2156, 2158, 7, 35, 2, 2, 2157, 2159, 5, 42, 22, 2, 2158, 2157, 3, 2, 2, 2, 2158, 2159, 3, 2, 2, 2, 2159, 2163, 3, 2, 2, 2, 2160, 2162, 5, 242, 122, 2, 2161, 2160, 3, 2, 2, 2, 2162, 2165, 3, 2, 2, 2, 2163, 2161, 3, 2, 2, 2, 2163, 2164, 3, 2, 2, 2, 2164, 2166, 3, 2, 2, 2, 2165, 2163, 3, 2, 2, 2, 2166, 2177, 5, 490, 246, 2, 2167, 2171, 7, 78, 2, 2, 2168, 2170, 5, 242, 122, 2, 2169, 2168, 3, 2, 2, 2, 2170, 2173, 3, 2, 2, 2, 2171, 2169, 3, 2, 2, 2, 2171, 2172, 3, 2, 2, 2, 2172, 2174, 3, 2, 2, 2, 2173, 2171, 3, 2, 2, 2, 2174, 2176, 5, 490, 246, 2, 2175, 2167, 3, 2, 2, 2, 2176, 2179, 3, 2, 2, 2, 2177, 2175, 3, 2, 2, 2, 2177, 2178, 3, 2, 2, 2, 2178, 2181, 3, 2, 2, 2, 2179, 2177, 3, 2, 2, 2, 2180, 2182, 5, 394, 198, 2, 2181, 2180, 3, 2, 2, 2, 2181, 2182, 3, 2, 2, 2, 2182, 2183, 3, 2, 2, 2, 2183, 2185, 7, 70, 2, 2, 2184, 2186, 5, 414, 208, 2, 2185, 2184, 3, 2, 2, 2, 2185, 2186, 3, 2, 2, 2, 2186, 2187, 3, 2, 2, 2, 2187, 2189, 7, 71, 2, 2, 2188, 2190, 5, 110, 56, 2, 2189, 2188, 3, 2, 2, 2, 2189, 2190, 3, 2, 2, 2, 2190, 2240, 3, 2, 2, 2, 2191, 2192, 5, 60, 31, 2, 2192, 2193, 7, 78, 2, 2, 2193, 2195, 7, 35, 2, 2, 2194, 2196, 5, 42, 22, 2, 2195, 2194, 3, 2, 2, 2, 2195, 2196, 3, 2, 2, 2, 2196, 2200, 3, 2, 2, 2, 2197, 2199, 5, 242, 122, 2, 2198, 2197, 3, 2, 2, 2, 2199, 2202, 3, 2, 2, 2, 2200, 2198, 3, 2, 2, 2, 2200, 2201, 3, 2, 2, 2, 2201, 2203, 3, 2, 2, 2, 2202, 2200, 3, 2, 2, 2, 2203, 2205, 5, 490, 246, 2, 2204, 2206, 5, 394, 198, 2, 2205, 2204, 3, 2, 2, 2, 2205, 2206, 3, 2, 2, 2, 2206, 2207, 3, 2, 2, 2, 2207, 2209, 7, 70, 2, 2, 2208, 2210, 5, 414, 208, 2, 2209, 2208, 3, 2, 2, 2, 2209, 2210, 3, 2, 2, 2, 2210, 2211, 3, 2, 2, 2, 2211, 2213, 7, 71, 2, 2, 2212, 2214, 5, 110, 56, 2, 2213, 2212, 3, 2, 2, 2, 2213, 2214, 3, 2, 2, 2, 2214, 2240, 3, 2, 2, 2, 2215, 2216, 5, 366, 184, 2, 2216, 2217, 7, 78, 2, 2, 2217, 2219, 7, 35, 2, 2, 2218, 2220, 5, 42, 22, 2, 2219, 2218, 3, 2, 2, 2, 2219, 2220, 3, 2, 2, 2, 2220, 2224, 3, 2, 2, 2, 2221, 2223, 5, 242, 122, 2, 2222, 2221, 3, 2, 2, 2, 2223, 2226, 3, 2, 2, 2, 2224, 2222, 3, 2, 2, 2, 2224, 2225, 3, 2, 2, 2, 2225, 2227, 3, 2, 2, 2, 2226, 2224, 3, 2, 2, 2, 2227, 2229, 5, 490, 246, 2, 2228, 2230, 5, 394, 198, 2, 2229, 2228, 3, 2, 2, 2, 2229, 2230, 3, 2, 2, 2, 2230, 2231, 3, 2, 2, 2, 2231, 2233, 7, 70, 2, 2, 2232, 2234, 5, 414, 208, 2, 2233, 2232, 3, 2, 2, 2, 2233, 2234, 3, 2, 2, 2, 2234, 2235, 3, 2, 2, 2, 2235, 2237, 7, 71, 2, 2, 2236, 2238, 5, 110, 56, 2, 2237, 2236, 3, 2, 2, 2, 2237, 2238, 3, 2, 2, 2, 2238, 2240, 3, 2, 2, 2, 2239, 2156, 3, 2, 2, 2, 2239, 2191, 3, 2, 2, 2, 2239, 2215, 3, 2, 2, 2, 2240, 389, 3, 2, 2, 2, 2241, 2242, 7, 78, 2, 2, 2242, 2244, 7, 35, 2, 2, 2243, 2245, 5, 42, 22, 2, 2244, 2243, 3, 2, 2, 2, 2244, 2245, 3, 2, 2, 2, 2245, 2249, 3, 2, 2, 2, 2246, 2248, 5, 242, 122, 2, 2247, 2246, 3, 2, 2, 2, 2248, 2251, 3, 2, 2, 2, 2249, 2247, 3, 2, 2, 2, 2249, 2250, 3, 2, 2, 2, 2250, 2252, 3, 2, 2, 2, 2251, 2249, 3, 2, 2, 2, 2252, 2254, 5, 490, 246, 2, 2253, 2255, 5, 394, 198, 2, 2254, 2253, 3, 2, 2, 2, 2254, 2255, 3, 2, 2, 2, 2255, 2256, 3, 2, 2, 2, 2256, 2258, 7, 70, 2, 2, 2257, 2259, 5, 414, 208, 2, 2258, 2257, 3, 2, 2, 2, 2258, 2259, 3, 2, 2, 2, 2259, 2260, 3, 2, 2, 2, 2260, 2262, 7, 71, 2, 2, 2261, 2263, 5, 110, 56, 2, 2262, 2261, 3, 2, 2, 2, 2262, 2263, 3, 2, 2, 2, 2263, 391, 3, 2, 2, 2, 2264, 2266, 7, 35, 2, 2, 2265, 2267, 5, 42, 22, 2, 2266, 2265, 3, 2, 2, 2, 2266, 2267, 3, 2, 2, 2, 2267, 2271, 3, 2, 2, 2, 2268, 2270, 5, 242, 122, 2, 2269, 2268, 3, 2, 2, 2, 2270, 2273, 3, 2, 2, 2, 2271, 2269, 3, 2, 2, 2, 2271, 2272, 3, 2, 2, 2, 2272, 2274, 3, 2, 2, 2, 2273, 2271, 3, 2, 2, 2, 2274, 2285, 5, 490, 246, 2, 2275, 2279, 7, 78, 2, 2, 2276, 2278, 5, 242, 122, 2, 2277, 2276, 3, 2, 2, 2, 2278, 2281, 3, 2, 2, 2, 2279, 2277, 3, 2, 2, 2, 2279, 2280, 3, 2, 2, 2, 2280, 2282, 3, 2, 2, 2, 2281, 2279, 3, 2, 2, 2, 2282, 2284, 5, 490, 246, 2, 2283, 2275, 3, 2, 2, 2, 2284, 2287, 3, 2, 2, 2, 2285, 2283, 3, 2, 2, 2, 2285, 2286, 3, 2, 2, 2, 2286, 2289, 3, 2, 2, 2, 2287, 2285, 3, 2, 2, 2, 2288, 2290, 5, 394, 198, 2, 2289, 2288, 3, 2, 2, 2, 2289, 2290, 3, 2, 2, 2, 2290, 2291, 3, 2, 2, 2, 2291, 2293, 7, 70, 2, 2, 2292, 2294, 5, 414, 208, 2, 2293, 2292, 3, 2, 2, 2, 2293, 2294, 3, 2, 2, 2, 2294, 2295, 3, 2, 2, 2, 2295, 2297, 7, 71, 2, 2, 2296, 2298, 5, 110, 56, 2, 2297, 2296, 3, 2, 2, 2, 2297, 2298, 3, 2, 2, 2, 2298, 2324, 3, 2, 2, 2, 2299, 2300, 5, 60, 31, 2, 2300, 2301, 7, 78, 2, 2, 2301, 2303, 7, 35, 2, 2, 2302, 2304, 5, 42, 22, 2, 2303, 2302, 3, 2, 2, 2, 2303, 2304, 3, 2, 2, 2, 2304, 2308, 3, 2, 2, 2, 2305, 2307, 5, 242, 122, 2, 2306, 2305, 3, 2, 2, 2, 2307, 2310, 3, 2, 2, 2, 2308, 2306, 3, 2, 2, 2, 2308, 2309, 3, 2, 2, 2, 2309, 2311, 3, 2, 2, 2, 2310, 2308, 3, 2, 2, 2, 2311, 2313, 5, 490, 246, 2, 2312, 2314, 5, 394, 198, 2, 2313, 2312, 3, 2, 2, 2, 2313, 2314, 3, 2, 2, 2, 2314, 2315, 3, 2, 2, 2, 2315, 2317, 7, 70, 2, 2, 2316, 2318, 5, 414, 208, 2, 2317, 2316, 3, 2, 2, 2, 2317, 2318, 3, 2, 2, 2, 2318, 2319, 3, 2, 2, 2, 2319, 2321, 7, 71, 2, 2, 2320, 2322, 5, 110, 56, 2, 2321, 2320, 3, 2, 2, 2, 2321, 2322, 3, 2, 2, 2, 2322, 2324, 3, 2, 2, 2, 2323, 2264, 3, 2, 2, 2, 2323, 2299, 3, 2, 2, 2, 2324, 393, 3, 2, 2, 2, 2325, 2329, 5, 42, 22, 2, 2326, 2327, 7, 84, 2, 2, 2327, 2329, 7, 83, 2, 2, 2328, 2325, 3, 2, 2, 2, 2328, 2326, 3, 2, 2, 2, 2329, 395, 3, 2, 2, 2, 2330, 2331, 5, 366, 184, 2, 2331, 2332, 7, 78, 2, 2, 2332, 2333, 5, 490, 246, 2, 2333, 2344, 3, 2, 2, 2, 2334, 2335, 7, 48, 2, 2, 2335, 2336, 7, 78, 2, 2, 2336, 2344, 5, 490, 246, 2, 2337, 2338, 5, 56, 29, 2, 2338, 2339, 7, 78, 2, 2, 2339, 2340, 7, 48, 2, 2, 2340, 2341, 7, 78, 2, 2, 2341, 2342, 5, 490, 246, 2, 2342, 2344, 3, 2, 2, 2, 2343, 2330, 3, 2, 2, 2, 2343, 2334, 3, 2, 2, 2, 2343, 2337, 3, 2, 2, 2, 2344, 397, 3, 2, 2, 2, 2345, 2346, 7, 78, 2, 2, 2346, 2347, 5, 490, 246, 2, 2347, 399, 3, 2, 2, 2, 2348, 2349, 7, 48, 2, 2, 2349, 2350, 7, 78, 2, 2, 2350, 2358, 5, 490, 246, 2, 2351, 2352, 5, 56, 29, 2, 2352, 2353, 7, 78, 2, 2, 2353, 2354, 7, 48, 2, 2, 2354, 2355, 7, 78, 2, 2, 2355, 2356, 5, 490, 246, 2, 2356, 2358, 3, 2, 2, 2, 2357, 2348, 3, 2, 2, 2, 2357, 2351, 3, 2, 2, 2, 2358, 401, 3, 2, 2, 2, 2359, 2360, 5, 60, 31, 2, 2360, 2361, 7, 74, 2, 2, 2361, 2362, 5, 430, 216, 2, 2362, 2363, 7, 75, 2, 2, 2363, 2370, 3, 2, 2, 2, 2364, 2365, 5, 372, 187, 2, 2365, 2366, 7, 74, 2, 2, 2366, 2367, 5, 430, 216, 2, 2367, 2368, 7, 75, 2, 2, 2368, 2370, 3, 2, 2, 2, 2369, 2359, 3, 2, 2, 2, 2369, 2364, 3, 2, 2, 2, 2370, 2378, 3, 2, 2, 2, 2371, 2372, 5, 370, 186, 2, 2372, 2373, 7, 74, 2, 2, 2373, 2374, 5, 430, 216, 2, 2374, 2375, 7, 75, 2, 2, 2375, 2377, 3, 2, 2, 2, 2376, 2371, 3, 2, 2, 2, 2377, 2380, 3, 2, 2, 2, 2378, 2376, 3, 2, 2, 2, 2378, 2379, 3, 2, 2, 2, 2379, 403, 3, 2, 2, 2, 2380, 2378, 3, 2, 2, 2, 2381, 2382, 5, 378, 190, 2, 2382, 2383, 7, 74, 2, 2, 2383, 2384, 5, 430, 216, 2, 2384, 2385, 7, 75, 2, 2, 2385, 2393, 3, 2, 2, 2, 2386, 2387, 5, 376, 189, 2, 2387, 2388, 7, 74, 2, 2, 2388, 2389, 5, 430, 216, 2, 2389, 2390, 7, 75, 2, 2, 2390, 2392, 3, 2, 2, 2, 2391, 2386, 3, 2, 2, 2, 2392, 2395, 3, 2, 2, 2, 2393, 2391, 3, 2, 2, 2, 2393, 2394, 3, 2, 2, 2, 2394, 405, 3, 2, 2, 2, 2395, 2393, 3, 2, 2, 2, 2396, 2397, 5, 60, 31, 2, 2397, 2398, 7, 74, 2, 2, 2398, 2399, 5, 430, 216, 2, 2399, 2400, 7, 75, 2, 2, 2400, 2407, 3, 2, 2, 2, 2401, 2402, 5, 384, 193, 2, 2402, 2403, 7, 74, 2, 2, 2403, 2404, 5, 430, 216, 2, 2404, 2405, 7, 75, 2, 2, 2405, 2407, 3, 2, 2, 2, 2406, 2396, 3, 2, 2, 2, 2406, 2401, 3, 2, 2, 2, 2407, 2415, 3, 2, 2, 2, 2408, 2409, 5, 382, 192, 2, 2409, 2410, 7, 74, 2, 2, 2410, 2411, 5, 430, 216, 2, 2411, 2412, 7, 75, 2, 2, 2412, 2414, 3, 2, 2, 2, 2413, 2408, 3, 2, 2, 2, 2414, 2417, 3, 2, 2, 2, 2415, 2413, 3, 2, 2, 2, 2415, 2416, 3, 2, 2, 2, 2416, 407, 3, 2, 2, 2, 2417, 2415, 3, 2, 2, 2, 2418, 2419, 5, 62, 32, 2, 2419, 2421, 7, 70, 2, 2, 2420, 2422, 5, 414, 208, 2, 2421, 2420, 3, 2, 2, 2, 2421, 2422, 3, 2, 2, 2, 2422, 2423, 3, 2, 2, 2, 2423, 2424, 7, 71, 2, 2, 2424, 2488, 3, 2, 2, 2, 2425, 2426, 5, 56, 29, 2, 2426, 2428, 7, 78, 2, 2, 2427, 2429, 5, 42, 22, 2, 2428, 2427, 3, 2, 2, 2, 2428, 2429, 3, 2, 2, 2, 2429, 2430, 3, 2, 2, 2, 2430, 2431, 5, 490, 246, 2, 2431, 2433, 7, 70, 2, 2, 2432, 2434, 5, 414, 208, 2, 2433, 2432, 3, 2, 2, 2, 2433, 2434, 3, 2, 2, 2, 2434, 2435, 3, 2, 2, 2, 2435, 2436, 7, 71, 2, 2, 2436, 2488, 3, 2, 2, 2, 2437, 2438, 5, 60, 31, 2, 2438, 2440, 7, 78, 2, 2, 2439, 2441, 5, 42, 22, 2, 2440, 2439, 3, 2, 2, 2, 2440, 2441, 3, 2, 2, 2, 2441, 2442, 3, 2, 2, 2, 2442, 2443, 5, 490, 246, 2, 2443, 2445, 7, 70, 2, 2, 2444, 2446, 5, 414, 208, 2, 2445, 2444, 3, 2, 2, 2, 2445, 2446, 3, 2, 2, 2, 2446, 2447, 3, 2, 2, 2, 2447, 2448, 7, 71, 2, 2, 2448, 2488, 3, 2, 2, 2, 2449, 2450, 5, 366, 184, 2, 2450, 2452, 7, 78, 2, 2, 2451, 2453, 5, 42, 22, 2, 2452, 2451, 3, 2, 2, 2, 2452, 2453, 3, 2, 2, 2, 2453, 2454, 3, 2, 2, 2, 2454, 2455, 5, 490, 246, 2, 2455, 2457, 7, 70, 2, 2, 2456, 2458, 5, 414, 208, 2, 2457, 2456, 3, 2, 2, 2, 2457, 2458, 3, 2, 2, 2, 2458, 2459, 3, 2, 2, 2, 2459, 2460, 7, 71, 2, 2, 2460, 2488, 3, 2, 2, 2, 2461, 2462, 7, 48, 2, 2, 2462, 2464, 7, 78, 2, 2, 2463, 2465, 5, 42, 22, 2, 2464, 2463, 3, 2, 2, 2, 2464, 2465, 3, 2, 2, 2, 2465, 2466, 3, 2, 2, 2, 2466, 2467, 5, 490, 246, 2, 2467, 2469, 7, 70, 2, 2, 2468, 2470, 5, 414, 208, 2, 2469, 2468, 3, 2, 2, 2, 2469, 2470, 3, 2, 2, 2, 2470, 2471, 3, 2, 2, 2, 2471, 2472, 7, 71, 2, 2, 2472, 2488, 3, 2, 2, 2, 2473, 2474, 5, 56, 29, 2, 2474, 2475, 7, 78, 2, 2, 2475, 2476, 7, 48, 2, 2, 2476, 2478, 7, 78, 2, 2, 2477, 2479, 5, 42, 22, 2, 2478, 2477, 3, 2, 2, 2, 2478, 2479, 3, 2, 2, 2, 2479, 2480, 3, 2, 2, 2, 2480, 2481, 5, 490, 246, 2, 2481, 2483, 7, 70, 2, 2, 2482, 2484, 5, 414, 208, 2, 2483, 2482, 3, 2, 2, 2, 2483, 2484, 3, 2, 2, 2, 2484, 2485, 3, 2, 2, 2, 2485, 2486, 7, 71, 2, 2, 2486, 2488, 3, 2, 2, 2, 2487, 2418, 3, 2, 2, 2, 2487, 2425, 3, 2, 2, 2, 2487, 2437, 3, 2, 2, 2, 2487, 2449, 3, 2, 2, 2, 2487, 2461, 3, 2, 2, 2, 2487, 2473, 3, 2, 2, 2, 2488, 409, 3, 2, 2, 2, 2489, 2491, 7, 78, 2, 2, 2490, 2492, 5, 42, 22, 2, 2491, 2490, 3, 2, 2, 2, 2491, 2492, 3, 2, 2, 2, 2492, 2493, 3, 2, 2, 2, 2493, 2494, 5, 490, 246, 2, 2494, 2496, 7, 70, 2, 2, 2495, 2497, 5, 414, 208, 2, 2496, 2495, 3, 2, 2, 2, 2496, 2497, 3, 2, 2, 2, 2497, 2498, 3, 2, 2, 2, 2498, 2499, 7, 71, 2, 2, 2499, 411, 3, 2, 2, 2, 2500, 2501, 5, 62, 32, 2, 2501, 2503, 7, 70, 2, 2, 2502, 2504, 5, 414, 208, 2, 2503, 2502, 3, 2, 2, 2, 2503, 2504, 3, 2, 2, 2, 2504, 2505, 3, 2, 2, 2, 2505, 2506, 7, 71, 2, 2, 2506, 2558, 3, 2, 2, 2, 2507, 2508, 5, 56, 29, 2, 2508, 2510, 7, 78, 2, 2, 2509, 2511, 5, 42, 22, 2, 2510, 2509, 3, 2, 2, 2, 2510, 2511, 3, 2, 2, 2, 2511, 2512, 3, 2, 2, 2, 2512, 2513, 5, 490, 246, 2, 2513, 2515, 7, 70, 2, 2, 2514, 2516, 5, 414, 208, 2, 2515, 2514, 3, 2, 2, 2, 2515, 2516, 3, 2, 2, 2, 2516, 2517, 3, 2, 2, 2, 2517, 2518, 7, 71, 2, 2, 2518, 2558, 3, 2, 2, 2, 2519, 2520, 5, 60, 31, 2, 2520, 2522, 7, 78, 2, 2, 2521, 2523, 5, 42, 22, 2, 2522, 2521, 3, 2, 2, 2, 2522, 2523, 3, 2, 2, 2, 2523, 2524, 3, 2, 2, 2, 2524, 2525, 5, 490, 246, 2, 2525, 2527, 7, 70, 2, 2, 2526, 2528, 5, 414, 208, 2, 2527, 2526, 3, 2, 2, 2, 2527, 2528, 3, 2, 2, 2, 2528, 2529, 3, 2, 2, 2, 2529, 2530, 7, 71, 2, 2, 2530, 2558, 3, 2, 2, 2, 2531, 2532, 7, 48, 2, 2, 2532, 2534, 7, 78, 2, 2, 2533, 2535, 5, 42, 22, 2, 2534, 2533, 3, 2, 2, 2, 2534, 2535, 3, 2, 2, 2, 2535, 2536, 3, 2, 2, 2, 2536, 2537, 5, 490, 246, 2, 2537, 2539, 7, 70, 2, 2, 2538, 2540, 5, 414, 208, 2, 2539, 2538, 3, 2, 2, 2, 2539, 2540, 3, 2, 2, 2, 2540, 2541, 3, 2, 2, 2, 2541, 2542, 7, 71, 2, 2, 2542, 2558, 3, 2, 2, 2, 2543, 2544, 5, 56, 29, 2, 2544, 2545, 7, 78, 2, 2, 2545, 2546, 7, 48, 2, 2, 2546, 2548, 7, 78, 2, 2, 2547, 2549, 5, 42, 22, 2, 2548, 2547, 3, 2, 2, 2, 2548, 2549, 3, 2, 2, 2, 2549, 2550, 3, 2, 2, 2, 2550, 2551, 5, 490, 246, 2, 2551, 2553, 7, 70, 2, 2, 2552, 2554, 5, 414, 208, 2, 2553, 2552, 3, 2, 2, 2, 2553, 2554, 3, 2, 2, 2, 2554, 2555, 3, 2, 2, 2, 2555, 2556, 7, 71, 2, 2, 2556, 2558, 3, 2, 2, 2, 2557, 2500, 3, 2, 2, 2, 2557, 2507, 3, 2, 2, 2, 2557, 2519, 3, 2, 2, 2, 2557, 2531, 3, 2, 2, 2, 2557, 2543, 3, 2, 2, 2, 2558, 413, 3, 2, 2, 2, 2559, 2564, 5, 430, 216, 2, 2560, 2561, 7, 77, 2, 2, 2561, 2563, 5, 430, 216, 2, 2562, 2560, 3, 2, 2, 2, 2563, 2566, 3, 2, 2, 2, 2564, 2562, 3, 2, 2, 2, 2564, 2565, 3, 2, 2, 2, 2565, 415, 3, 2, 2, 2, 2566, 2564, 3, 2, 2, 2, 2567, 2568, 5, 60, 31, 2, 2568, 2570, 7, 81, 2, 2, 2569, 2571, 5, 42, 22, 2, 2570, 2569, 3, 2, 2, 2, 2570, 2571, 3, 2, 2, 2, 2571, 2572, 3, 2, 2, 2, 2572, 2573, 5, 490, 246, 2, 2573, 2615, 3, 2, 2, 2, 2574, 2575, 5, 12, 7, 2, 2575, 2577, 7, 81, 2, 2, 2576, 2578, 5, 42, 22, 2, 2577, 2576, 3, 2, 2, 2, 2577, 2578, 3, 2, 2, 2, 2578, 2579, 3, 2, 2, 2, 2579, 2580, 5, 490, 246, 2, 2580, 2615, 3, 2, 2, 2, 2581, 2582, 5, 366, 184, 2, 2582, 2584, 7, 81, 2, 2, 2583, 2585, 5, 42, 22, 2, 2584, 2583, 3, 2, 2, 2, 2584, 2585, 3, 2, 2, 2, 2585, 2586, 3, 2, 2, 2, 2586, 2587, 5, 490, 246, 2, 2587, 2615, 3, 2, 2, 2, 2588, 2589, 7, 48, 2, 2, 2589, 2591, 7, 81, 2, 2, 2590, 2592, 5, 42, 22, 2, 2591, 2590, 3, 2, 2, 2, 2591, 2592, 3, 2, 2, 2, 2592, 2593, 3, 2, 2, 2, 2593, 2615, 5, 490, 246, 2, 2594, 2595, 5, 56, 29, 2, 2595, 2596, 7, 78, 2, 2, 2596, 2597, 7, 48, 2, 2, 2597, 2599, 7, 81, 2, 2, 2598, 2600, 5, 42, 22, 2, 2599, 2598, 3, 2, 2, 2, 2599, 2600, 3, 2, 2, 2, 2600, 2601, 3, 2, 2, 2, 2601, 2602, 5, 490, 246, 2, 2602, 2615, 3, 2, 2, 2, 2603, 2604, 5, 16, 9, 2, 2604, 2606, 7, 81, 2, 2, 2605, 2607, 5, 42, 22, 2, 2606, 2605, 3, 2, 2, 2, 2606, 2607, 3, 2, 2, 2, 2607, 2608, 3, 2, 2, 2, 2608, 2609, 7, 35, 2, 2, 2609, 2615, 3, 2, 2, 2, 2610, 2611, 5, 30, 16, 2, 2611, 2612, 7, 81, 2, 2, 2612, 2613, 7, 35, 2, 2, 2613, 2615, 3, 2, 2, 2, 2614, 2567, 3, 2, 2, 2, 2614, 2574, 3, 2, 2, 2, 2614, 2581, 3, 2, 2, 2, 2614, 2588, 3, 2, 2, 2, 2614, 2594, 3, 2, 2, 2, 2614, 2603, 3, 2, 2, 2, 2614, 2610, 3, 2, 2, 2, 2615, 417, 3, 2, 2, 2, 2616, 2618, 7, 81, 2, 2, 2617, 2619, 5, 42, 22, 2, 2618, 2617, 3, 2, 2, 2, 2618, 2619, 3, 2, 2, 2, 2619, 2620, 3, 2, 2, 2, 2620, 2621, 5, 490, 246, 2, 2621, 419, 3, 2, 2, 2, 2622, 2623, 5, 60, 31, 2, 2623, 2625, 7, 81, 2, 2, 2624, 2626, 5, 42, 22, 2, 2625, 2624, 3, 2, 2, 2, 2625, 2626, 3, 2, 2, 2, 2626, 2627, 3, 2, 2, 2, 2627, 2628, 5, 490, 246, 2, 2628, 2663, 3, 2, 2, 2, 2629, 2630, 5, 12, 7, 2, 2630, 2632, 7, 81, 2, 2, 2631, 2633, 5, 42, 22, 2, 2632, 2631, 3, 2, 2, 2, 2632, 2633, 3, 2, 2, 2, 2633, 2634, 3, 2, 2, 2, 2634, 2635, 5, 490, 246, 2, 2635, 2663, 3, 2, 2, 2, 2636, 2637, 7, 48, 2, 2, 2637, 2639, 7, 81, 2, 2, 2638, 2640, 5, 42, 22, 2, 2639, 2638, 3, 2, 2, 2, 2639, 2640, 3, 2, 2, 2, 2640, 2641, 3, 2, 2, 2, 2641, 2663, 5, 490, 246, 2, 2642, 2643, 5, 56, 29, 2, 2643, 2644, 7, 78, 2, 2, 2644, 2645, 7, 48, 2, 2, 2645, 2647, 7, 81, 2, 2, 2646, 2648, 5, 42, 22, 2, 2647, 2646, 3, 2, 2, 2, 2647, 2648, 3, 2, 2, 2, 2648, 2649, 3, 2, 2, 2, 2649, 2650, 5, 490, 246, 2, 2650, 2663, 3, 2, 2, 2, 2651, 2652, 5, 16, 9, 2, 2652, 2654, 7, 81, 2, 2, 2653, 2655, 5, 42, 22, 2, 2654, 2653, 3, 2, 2, 2, 2654, 2655, 3, 2, 2, 2, 2655, 2656, 3, 2, 2, 2, 2656, 2657, 7, 35, 2, 2, 2657, 2663, 3, 2, 2, 2, 2658, 2659, 5, 30, 16, 2, 2659, 2660, 7, 81, 2, 2, 2660, 2661, 7, 35, 2, 2, 2661, 2663, 3, 2, 2, 2, 2662, 2622, 3, 2, 2, 2, 2662, 2629, 3, 2, 2, 2, 2662, 2636, 3, 2, 2, 2, 2662, 2642, 3, 2, 2, 2, 2662, 2651, 3, 2, 2, 2, 2662, 2658, 3, 2, 2, 2, 2663, 421, 3, 2, 2, 2, 2664, 2665, 7, 35, 2, 2, 2665, 2666, 5, 4, 3, 2, 2666, 2668, 5, 424, 213, 2, 2667, 2669, 5, 32, 17, 2, 2668, 2667, 3, 2, 2, 2, 2668, 2669, 3, 2, 2, 2, 2669, 2687, 3, 2, 2, 2, 2670, 2671, 7, 35, 2, 2, 2671, 2672, 5, 14, 8, 2, 2672, 2674, 5, 424, 213, 2, 2673, 2675, 5, 32, 17, 2, 2674, 2673, 3, 2, 2, 2, 2674, 2675, 3, 2, 2, 2, 2675, 2687, 3, 2, 2, 2, 2676, 2677, 7, 35, 2, 2, 2677, 2678, 5, 4, 3, 2, 2678, 2679, 5, 32, 17, 2, 2679, 2680, 5, 260, 131, 2, 2680, 2687, 3, 2, 2, 2, 2681, 2682, 7, 35, 2, 2, 2682, 2683, 5, 14, 8, 2, 2683, 2684, 5, 32, 17, 2, 2684, 2685, 5, 260, 131, 2, 2685, 2687, 3, 2, 2, 2, 2686, 2664, 3, 2, 2, 2, 2686, 2670, 3, 2, 2, 2, 2686, 2676, 3, 2, 2, 2, 2686, 2681, 3, 2, 2, 2, 2687, 423, 3, 2, 2, 2, 2688, 2690, 5, 426, 214, 2, 2689, 2688, 3, 2, 2, 2, 2690, 2691, 3, 2, 2, 2, 2691, 2689, 3, 2, 2, 2, 2691, 2692, 3, 2, 2, 2, 2692, 425, 3, 2, 2, 2, 2693, 2695, 5, 242, 122, 2, 2694, 2693, 3, 2, 2, 2, 2695, 2698, 3, 2, 2, 2, 2696, 2694, 3, 2, 2, 2, 2696, 2697, 3, 2, 2, 2, 2697, 2699, 3, 2, 2, 2, 2698, 2696, 3, 2, 2, 2, 2699, 2700, 7, 74, 2, 2, 2700, 2701, 5, 430, 216, 2, 2701, 2702, 7, 75, 2, 2, 2702, 427, 3, 2, 2, 2, 2703, 2704, 5, 430, 216, 2, 2704, 429, 3, 2, 2, 2, 2705, 2708, 5, 432, 217, 2, 2706, 2708, 5, 440, 221, 2, 2707, 2705, 3, 2, 2, 2, 2707, 2706, 3, 2, 2, 2, 2708, 431, 3, 2, 2, 2, 2709, 2710, 5, 434, 218, 2, 2710, 2711, 7, 89, 2, 2, 2711, 2712, 5, 438, 220, 2, 2712, 433, 3, 2, 2, 2, 2713, 2724, 5, 490, 246, 2, 2714, 2716, 7, 70, 2, 2, 2715, 2717, 5, 162, 82, 2, 2716, 2715, 3, 2, 2, 2, 2716, 2717, 3, 2, 2, 2, 2717, 2718, 3, 2, 2, 2, 2718, 2724, 7, 71, 2, 2, 2719, 2720, 7, 70, 2, 2, 2720, 2721, 5, 436, 219, 2, 2721, 2722, 7, 71, 2, 2, 2722, 2724, 3, 2, 2, 2, 2723, 2713, 3, 2, 2, 2, 2723, 2714, 3, 2, 2, 2, 2723, 2719, 3, 2, 2, 2, 2724, 435, 3, 2, 2, 2, 2725, 2730, 5, 490, 246, 2, 2726, 2727, 7, 77, 2, 2, 2727, 2729, 5, 490, 246, 2, 2728, 2726, 3, 2, 2, 2, 2729, 2732, 3, 2, 2, 2, 2730, 2728, 3, 2, 2, 2, 2730, 2731, 3, 2, 2, 2, 2731, 437, 3, 2, 2, 2, 2732, 2730, 3, 2, 2, 2, 2733, 2736, 5, 430, 216, 2, 2734, 2736, 5, 264, 133, 2, 2735, 2733, 3, 2, 2, 2, 2735, 2734, 3, 2, 2, 2, 2736, 439, 3, 2, 2, 2, 2737, 2740, 5, 448, 225, 2, 2738, 2740, 5, 442, 222, 2, 2739, 2737, 3, 2, 2, 2, 2739, 2738, 3, 2, 2, 2, 2740, 441, 3, 2, 2, 2, 2741, 2742, 5, 444, 223, 2, 2742, 2743, 5, 446, 224, 2, 2743, 2744, 5, 430, 216, 2, 2744, 443, 3, 2, 2, 2, 2745, 2749, 5, 60, 31, 2, 2746, 2749, 5, 396, 199, 2, 2747, 2749, 5, 402, 202, 2, 2748, 2745, 3, 2, 2, 2, 2748, 2746, 3, 2, 2, 2, 2748, 2747, 3, 2, 2, 2, 2749, 445, 3, 2, 2, 2, 2750, 2751, 9, 6, 2, 2, 2751, 447, 3, 2, 2, 2, 2752, 2762, 5, 450, 226, 2, 2753, 2754, 5, 450, 226, 2, 2754, 2755, 7, 87, 2, 2, 2755, 2756, 5, 430, 216, 2, 2756, 2759, 7, 88, 2, 2, 2757, 2760, 5, 448, 225, 2, 2758, 2760, 5, 432, 217, 2, 2759, 2757, 3, 2, 2, 2, 2759, 2758, 3, 2, 2, 2, 2760, 2762, 3, 2, 2, 2, 2761, 2752, 3, 2, 2, 2, 2761, 2753, 3, 2, 2, 2, 2762, 449, 3, 2, 2, 2, 2763, 2764, 8, 226, 1, 2, 2764, 2765, 5, 452, 227, 2, 2765, 2771, 3, 2, 2, 2, 2766, 2767, 12, 3, 2, 2, 2767, 2768, 7, 95, 2, 2, 2768, 2770, 5, 452, 227, 2, 2769, 2766, 3, 2, 2, 2, 2770, 2773, 3, 2, 2, 2, 2771, 2769, 3, 2, 2, 2, 2771, 2772, 3, 2, 2, 2, 2772, 451, 3, 2, 2, 2, 2773, 2771, 3, 2, 2, 2, 2774, 2775, 8, 227, 1, 2, 2775, 2776, 5, 454, 228, 2, 2776, 2782, 3, 2, 2, 2, 2777, 2778, 12, 3, 2, 2, 2778, 2779, 7, 94, 2, 2, 2779, 2781, 5, 454, 228, 2, 2780, 2777, 3, 2, 2, 2, 2781, 2784, 3, 2, 2, 2, 2782, 2780, 3, 2, 2, 2, 2782, 2783, 3, 2, 2, 2, 2783, 453, 3, 2, 2, 2, 2784, 2782, 3, 2, 2, 2, 2785, 2786, 8, 228, 1, 2, 2786, 2787, 5, 456, 229, 2, 2787, 2793, 3, 2, 2, 2, 2788, 2789, 12, 3, 2, 2, 2789, 2790, 7, 103, 2, 2, 2790, 2792, 5, 456, 229, 2, 2791, 2788, 3, 2, 2, 2, 2792, 2795, 3, 2, 2, 2, 2793, 2791, 3, 2, 2, 2, 2793, 2794, 3, 2, 2, 2, 2794, 455, 3, 2, 2, 2, 2795, 2793, 3, 2, 2, 2, 2796, 2797, 8, 229, 1, 2, 2797, 2798, 5, 458, 230, 2, 2798, 2804, 3, 2, 2, 2, 2799, 2800, 12, 3, 2, 2, 2800, 2801, 7, 104, 2, 2, 2801, 2803, 5, 458, 230, 2, 2802, 2799, 3, 2, 2, 2, 2803, 2806, 3, 2, 2, 2, 2804, 2802, 3, 2, 2, 2, 2804, 2805, 3, 2, 2, 2, 2805, 457, 3, 2, 2, 2, 2806, 2804, 3, 2, 2, 2, 2807, 2808, 8, 230, 1, 2, 2808, 2809, 5, 460, 231, 2, 2809, 2815, 3, 2, 2, 2, 2810, 2811, 12, 3, 2, 2, 2811, 2812, 7, 102, 2, 2, 2812, 2814, 5, 460, 231, 2, 2813, 2810, 3, 2, 2, 2, 2814, 2817, 3, 2, 2, 2, 2815, 2813, 3, 2, 2, 2, 2815, 2816, 3, 2, 2, 2, 2816, 459, 3, 2, 2, 2, 2817, 2815, 3, 2, 2, 2, 2818, 2819, 8, 231, 1, 2, 2819, 2820, 5, 462, 232, 2, 2820, 2829, 3, 2, 2, 2, 2821, 2822, 12, 4, 2, 2, 2822, 2823, 7, 90, 2, 2, 2823, 2828, 5, 462, 232, 2, 2824, 2825, 12, 3, 2, 2, 2825, 2826, 7, 93, 2, 2, 2826, 2828, 5, 462, 232, 2, 2827, 2821, 3, 2, 2, 2, 2827, 2824, 3, 2, 2, 2, 2828, 2831, 3, 2, 2, 2, 2829, 2827, 3, 2, 2, 2, 2829, 2830, 3, 2, 2, 2, 2830, 461, 3, 2, 2, 2, 2831, 2829, 3, 2, 2, 2, 2832, 2833, 8, 232, 1, 2, 2833, 2834, 5, 464, 233, 2, 2834, 2852, 3, 2, 2, 2, 2835, 2836, 12, 7, 2, 2, 2836, 2837, 7, 84, 2, 2, 2837, 2851, 5, 464, 233, 2, 2838, 2839, 12, 6, 2, 2, 2839, 2840, 7, 83, 2, 2, 2840, 2851, 5, 464, 233, 2, 2841, 2842, 12, 5, 2, 2, 2842, 2843, 7, 91, 2, 2, 2843, 2851, 5, 464, 233, 2, 2844, 2845, 12, 4, 2, 2, 2845, 2846, 7, 92, 2, 2, 2846, 2851, 5, 464, 233, 2, 2847, 2848, 12, 3, 2, 2, 2848, 2849, 7, 29, 2, 2, 2849, 2851, 5, 12, 7, 2, 2850, 2835, 3, 2, 2, 2, 2850, 2838, 3, 2, 2, 2, 2850, 2841, 3, 2, 2, 2, 2850, 2844, 3, 2, 2, 2, 2850, 2847, 3, 2, 2, 2, 2851, 2854, 3, 2, 2, 2, 2852, 2850, 3, 2, 2, 2, 2852, 2853, 3, 2, 2, 2, 2853, 463, 3, 2, 2, 2, 2854, 2852, 3, 2, 2, 2, 2855, 2856, 8, 233, 1, 2, 2856, 2857, 5, 466, 234, 2, 2857, 2873, 3, 2, 2, 2, 2858, 2859, 12, 5, 2, 2, 2859, 2860, 7, 84, 2, 2, 2860, 2861, 7, 84, 2, 2, 2861, 2872, 5, 466, 234, 2, 2862, 2863, 12, 4, 2, 2, 2863, 2864, 7, 83, 2, 2, 2864, 2865, 7, 83, 2, 2, 2865, 2872, 5, 466, 234, 2, 2866, 2867, 12, 3, 2, 2, 2867, 2868, 7, 83, 2, 2, 2868, 2869, 7, 83, 2, 2, 2869, 2870, 7, 83, 2, 2, 2870, 2872, 5, 466, 234, 2, 2871, 2858, 3, 2, 2, 2, 2871, 2862, 3, 2, 2, 2, 2871, 2866, 3, 2, 2, 2, 2872, 2875, 3, 2, 2, 2, 2873, 2871, 3, 2, 2, 2, 2873, 2874, 3, 2, 2, 2, 2874, 465, 3, 2, 2, 2, 2875, 2873, 3, 2, 2, 2, 2876, 2877, 8, 234, 1, 2, 2877, 2878, 5, 468, 235, 2, 2878, 2887, 3, 2, 2, 2, 2879, 2880, 12, 4, 2, 2, 2880, 2881, 7, 98, 2, 2, 2881, 2886, 5, 468, 235, 2, 2882, 2883, 12, 3, 2, 2, 2883, 2884, 7, 99, 2, 2, 2884, 2886, 5, 468, 235, 2, 2885, 2879, 3, 2, 2, 2, 2885, 2882, 3, 2, 2, 2, 2886, 2889, 3, 2, 2, 2, 2887, 2885, 3, 2, 2, 2, 2887, 2888, 3, 2, 2, 2, 2888, 467, 3, 2, 2, 2, 2889, 2887, 3, 2, 2, 2, 2890, 2891, 8, 235, 1, 2, 2891, 2892, 5, 470, 236, 2, 2892, 2904, 3, 2, 2, 2, 2893, 2894, 12, 5, 2, 2, 2894, 2895, 7, 100, 2, 2, 2895, 2903, 5, 470, 236, 2, 2896, 2897, 12, 4, 2, 2, 2897, 2898, 7, 101, 2, 2, 2898, 2903, 5, 470, 236, 2, 2899, 2900, 12, 3, 2, 2, 2900, 2901, 7, 105, 2, 2, 2901, 2903, 5, 470, 236, 2, 2902, 2893, 3, 2, 2, 2, 2902, 2896, 3, 2, 2, 2, 2902, 2899, 3, 2, 2, 2, 2903, 2906, 3, 2, 2, 2, 2904, 2902, 3, 2, 2, 2, 2904, 2905, 3, 2, 2, 2, 2905, 469, 3, 2, 2, 2, 2906, 2904, 3, 2, 2, 2, 2907, 2915, 5, 472, 237, 2, 2908, 2915, 5, 474, 238, 2, 2909, 2910, 7, 98, 2, 2, 2910, 2915, 5, 470, 236, 2, 2911, 2912, 7, 99, 2, 2, 2912, 2915, 5, 470, 236, 2, 2913, 2915, 5, 476, 239, 2, 2914, 2907, 3, 2, 2, 2, 2914, 2908, 3, 2, 2, 2, 2914, 2909, 3, 2, 2, 2, 2914, 2911, 3, 2, 2, 2, 2914, 2913, 3, 2, 2, 2, 2915, 471, 3, 2, 2, 2, 2916, 2917, 7, 96, 2, 2, 2917, 2918, 5, 470, 236, 2, 2918, 473, 3, 2, 2, 2, 2919, 2920, 7, 97, 2, 2, 2920, 2921, 5, 470, 236, 2, 2921, 475, 3, 2, 2, 2, 2922, 2929, 5, 478, 240, 2, 2923, 2924, 7, 86, 2, 2, 2924, 2929, 5, 470, 236, 2, 2925, 2926, 7, 85, 2, 2, 2926, 2929, 5, 470, 236, 2, 2927, 2929, 5, 488, 245, 2, 2928, 2922, 3, 2, 2, 2, 2928, 2923, 3, 2, 2, 2, 2928, 2925, 3, 2, 2, 2, 2928, 2927, 3, 2, 2, 2, 2929, 477, 3, 2, 2, 2, 2930, 2933, 5, 366, 184, 2, 2931, 2933, 5, 60, 31, 2, 2932, 2930, 3, 2, 2, 2, 2932, 2931, 3, 2, 2, 2, 2933, 2938, 3, 2, 2, 2, 2934, 2937, 5, 482, 242, 2, 2935, 2937, 5, 486, 244, 2, 2936, 2934, 3, 2, 2, 2, 2936, 2935, 3, 2, 2, 2, 2937, 2940, 3, 2, 2, 2, 2938, 2936, 3, 2, 2, 2, 2938, 2939, 3, 2, 2, 2, 2939, 479, 3, 2, 2, 2, 2940, 2938, 3, 2, 2, 2, 2941, 2942, 5, 478, 240, 2, 2942, 2943, 7, 96, 2, 2, 2943, 481, 3, 2, 2, 2, 2944, 2945, 7, 96, 2, 2, 2945, 483, 3, 2, 2, 2, 2946, 2947, 5, 478, 240, 2, 2947, 2948, 7, 97, 2, 2, 2948, 485, 3, 2, 2, 2, 2949, 2950, 7, 97, 2, 2, 2950, 487, 3, 2, 2, 2, 2951, 2952, 7, 70, 2, 2, 2952, 2953, 5, 4, 3, 2, 2953, 2954, 7, 71, 2, 2, 2954, 2955, 5, 470, 236, 2, 2955, 2979, 3, 2, 2, 2, 2956, 2957, 7, 70, 2, 2, 2957, 2961, 5, 12, 7, 2, 2958, 2960, 5, 40, 21, 2, 2959, 2958, 3, 2, 2, 2, 2960, 2963, 3, 2, 2, 2, 2961, 2959, 3, 2, 2, 2, 2961, 2962, 3, 2, 2, 2, 2962, 2964, 3, 2, 2, 2, 2963, 2961, 3, 2, 2, 2, 2964, 2965, 7, 71, 2, 2, 2965, 2966, 5, 476, 239, 2, 2966, 2979, 3, 2, 2, 2, 2967, 2968, 7, 70, 2, 2, 2968, 2972, 5, 12, 7, 2, 2969, 2971, 5, 40, 21, 2, 2970, 2969, 3, 2, 2, 2, 2971, 2974, 3, 2, 2, 2, 2972, 2970, 3, 2, 2, 2, 2972, 2973, 3, 2, 2, 2, 2973, 2975, 3, 2, 2, 2, 2974, 2972, 3, 2, 2, 2, 2975, 2976, 7, 71, 2, 2, 2976, 2977, 5, 432, 217, 2, 2977, 2979, 3, 2, 2, 2, 2978, 2951, 3, 2, 2, 2, 2978, 2956, 3, 2, 2, 2, 2978, 2967, 3, 2, 2, 2, 2979, 489, 3, 2, 2, 2, 2980, 2981, 9, 7, 2, 2, 2981, 491, 3, 2, 2, 2, 342, 497, 504, 508, 512, 521, 525, 529, 531, 537, 542, 549, 554, 556, 562, 567, 572, 577, 588, 602, 607, 615, 622, 628, 633, 644, 647, 661, 666, 671, 676, 682, 692, 703, 711, 721, 729, 741, 746, 749, 754, 760, 768, 776, 789, 818, 823, 827, 835, 844, 858, 861, 873, 876, 892, 897, 903, 908, 914, 917, 920, 932, 943, 957, 964, 973, 980, 985, 1000, 1007, 1013, 1017, 1021, 1025, 1029, 1034, 1038, 1042, 1044, 1049, 1056, 1061, 1063, 1069, 1074, 1078, 1097, 1102, 1118, 1123, 1129, 1135, 1137, 1141, 1146, 1150, 1158, 1165, 1173, 1176, 1181, 1189, 1194, 1201, 1208, 1213, 1220, 1232, 1237, 1241, 1251, 1256, 1264, 1267, 1272, 1280, 1283, 1288, 1293, 1298, 1303, 1310, 1315, 1323, 1328, 1333, 1338, 1344, 1350, 1353, 1356, 1365, 1371, 1377, 1380, 1383, 1391, 1396, 1401, 1407, 1410, 1421, 1430, 1440, 1445, 1456, 1461, 1474, 1479, 1491, 1501, 1506, 1514, 1517, 1524, 1532, 1538, 1547, 1557, 1561, 1564, 1573, 1587, 1590, 1599, 1604, 1611, 1616, 1624, 1636, 1643, 1657, 1679, 1713, 1725, 1731, 1742, 1754, 1780, 1784, 1789, 1793, 1797, 1805, 1809, 1813, 1820, 1829, 1837, 1852, 1864, 1870, 1876, 1897, 1902, 1907, 1918, 1929, 1939, 1942, 1947, 1956, 1962, 1971, 1975, 1979, 1984, 2003, 2013, 2035, 2042, 2050, 2058, 2069, 2092, 2102, 2113, 2135, 2140, 2146, 2154, 2158, 2163, 2171, 2177, 2181, 2185, 2189, 2195, 2200, 2205, 2209, 2213, 2219, 2224, 2229, 2233, 2237, 2239, 2244, 2249, 2254, 2258, 2262, 2266, 2271, 2279, 2285, 2289, 2293, 2297, 2303, 2308, 2313, 2317, 2321, 2323, 2328, 2343, 2357, 2369, 2378, 2393, 2406, 2415, 2421, 2428, 2433, 2440, 2445, 2452, 2457, 2464, 2469, 2478, 2483, 2487, 2491, 2496, 2503, 2510, 2515, 2522, 2527, 2534, 2539, 2548, 2553, 2557, 2564, 2570, 2577, 2584, 2591, 2599, 2606, 2614, 2618, 2625, 2632, 2639, 2647, 2654, 2662, 2668, 2674, 2686, 2691, 2696, 2707, 2716, 2723, 2730, 2735, 2739, 2748, 2759, 2761, 2771, 2782, 2793, 2804, 2815, 2827, 2829, 2850, 2852, 2871, 2873, 2885, 2887, 2902, 2904, 2914, 2928, 2932, 2936, 2938, 2961, 2972, 2978] \ No newline at end of file diff --git a/java2python/lang/Java9Parser.py b/java2python/lang/Java9Parser.py new file mode 100644 index 0000000..4a1d2be --- /dev/null +++ b/java2python/lang/Java9Parser.py @@ -0,0 +1,20880 @@ +# Generated from Java9Parser.g4 by ANTLR 4.7.2 +# encoding: utf-8 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3x") + buf.write("\u0ba7\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") + buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") + buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31") + buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36") + buf.write("\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t") + buf.write("&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4") + buf.write("/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64") + buf.write("\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t") + buf.write(";\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\t") + buf.write("D\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\tL\4M\t") + buf.write("M\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\tU\4V\t") + buf.write("V\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4") + buf.write("_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4") + buf.write("h\th\4i\ti\4j\tj\4k\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4") + buf.write("q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4w\tw\4x\tx\4y\ty\4") + buf.write("z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080") + buf.write("\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084") + buf.write("\t\u0084\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087") + buf.write("\4\u0088\t\u0088\4\u0089\t\u0089\4\u008a\t\u008a\4\u008b") + buf.write("\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e\t\u008e") + buf.write("\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092") + buf.write("\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095") + buf.write("\4\u0096\t\u0096\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099") + buf.write("\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b\4\u009c\t\u009c") + buf.write("\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0") + buf.write("\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3") + buf.write("\4\u00a4\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7") + buf.write("\t\u00a7\4\u00a8\t\u00a8\4\u00a9\t\u00a9\4\u00aa\t\u00aa") + buf.write("\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad\4\u00ae") + buf.write("\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1") + buf.write("\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5") + buf.write("\t\u00b5\4\u00b6\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8") + buf.write("\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb\t\u00bb\4\u00bc") + buf.write("\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf") + buf.write("\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3") + buf.write("\t\u00c3\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6") + buf.write("\4\u00c7\t\u00c7\4\u00c8\t\u00c8\4\u00c9\t\u00c9\4\u00ca") + buf.write("\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc\4\u00cd\t\u00cd") + buf.write("\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1") + buf.write("\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4") + buf.write("\4\u00d5\t\u00d5\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8") + buf.write("\t\u00d8\4\u00d9\t\u00d9\4\u00da\t\u00da\4\u00db\t\u00db") + buf.write("\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de\4\u00df") + buf.write("\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2") + buf.write("\4\u00e3\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6") + buf.write("\t\u00e6\4\u00e7\t\u00e7\4\u00e8\t\u00e8\4\u00e9\t\u00e9") + buf.write("\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec\t\u00ec\4\u00ed") + buf.write("\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0") + buf.write("\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4") + buf.write("\t\u00f4\4\u00f5\t\u00f5\4\u00f6\t\u00f6\3\2\3\2\3\3\7") + buf.write("\3\u01f0\n\3\f\3\16\3\u01f3\13\3\3\3\3\3\7\3\u01f7\n\3") + buf.write("\f\3\16\3\u01fa\13\3\3\3\5\3\u01fd\n\3\3\4\3\4\5\4\u0201") + buf.write("\n\4\3\5\3\5\3\6\3\6\3\7\3\7\3\7\5\7\u020a\n\7\3\b\3\b") + buf.write("\5\b\u020e\n\b\3\b\3\b\7\b\u0212\n\b\f\b\16\b\u0215\13") + buf.write("\b\3\t\7\t\u0218\n\t\f\t\16\t\u021b\13\t\3\t\3\t\5\t\u021f") + buf.write("\n\t\3\t\3\t\3\t\7\t\u0224\n\t\f\t\16\t\u0227\13\t\3\t") + buf.write("\3\t\5\t\u022b\n\t\5\t\u022d\n\t\3\n\3\n\7\n\u0231\n\n") + buf.write("\f\n\16\n\u0234\13\n\3\n\3\n\5\n\u0238\n\n\3\13\7\13\u023b") + buf.write("\n\13\f\13\16\13\u023e\13\13\3\13\3\13\5\13\u0242\n\13") + buf.write("\3\f\3\f\3\r\3\r\3\16\3\16\3\17\7\17\u024b\n\17\f\17\16") + buf.write("\17\u024e\13\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20") + buf.write("\3\20\3\20\3\20\5\20\u025b\n\20\3\21\7\21\u025e\n\21\f") + buf.write("\21\16\21\u0261\13\21\3\21\3\21\3\21\7\21\u0266\n\21\f") + buf.write("\21\16\21\u0269\13\21\3\21\3\21\7\21\u026d\n\21\f\21\16") + buf.write("\21\u0270\13\21\3\22\7\22\u0273\n\22\f\22\16\22\u0276") + buf.write("\13\22\3\22\3\22\5\22\u027a\n\22\3\23\3\23\3\24\3\24\3") + buf.write("\24\3\24\3\24\7\24\u0283\n\24\f\24\16\24\u0286\13\24\5") + buf.write("\24\u0288\n\24\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27") + buf.write("\3\27\3\27\7\27\u0294\n\27\f\27\16\27\u0297\13\27\3\30") + buf.write("\3\30\5\30\u029b\n\30\3\31\7\31\u029e\n\31\f\31\16\31") + buf.write("\u02a1\13\31\3\31\3\31\5\31\u02a5\n\31\3\32\3\32\3\32") + buf.write("\3\32\5\32\u02ab\n\32\3\33\3\33\3\33\3\33\3\33\3\33\7") + buf.write("\33\u02b3\n\33\f\33\16\33\u02b6\13\33\3\34\3\34\3\34\3") + buf.write("\34\3\34\3\34\7\34\u02be\n\34\f\34\16\34\u02c1\13\34\3") + buf.write("\35\3\35\3\35\3\35\3\35\5\35\u02c8\n\35\3\36\3\36\3\36") + buf.write("\3\36\3\36\3\36\7\36\u02d0\n\36\f\36\16\36\u02d3\13\36") + buf.write("\3\37\3\37\3\37\3\37\3\37\5\37\u02da\n\37\3 \3 \3!\3!") + buf.write("\3!\3!\3!\3!\7!\u02e4\n!\f!\16!\u02e7\13!\3\"\3\"\5\"") + buf.write("\u02eb\n\"\3#\5#\u02ee\n#\3#\7#\u02f1\n#\f#\16#\u02f4") + buf.write("\13#\3#\7#\u02f7\n#\f#\16#\u02fa\13#\3#\3#\3$\7$\u02ff") + buf.write("\n$\f$\16$\u0302\13$\3$\3$\3%\7%\u0307\n%\f%\16%\u030a") + buf.write("\13%\3%\3%\3%\3%\3&\3&\3\'\3\'\3\'\3\'\5\'\u0316\n\'\3") + buf.write("(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3+\3") + buf.write("+\3+\3+\3+\3+\3+\3,\3,\3,\5,\u0333\n,\3-\7-\u0336\n-\f") + buf.write("-\16-\u0339\13-\3-\5-\u033c\n-\3-\3-\3-\3-\7-\u0342\n") + buf.write("-\f-\16-\u0345\13-\3-\3-\3.\3.\7.\u034b\n.\f.\16.\u034e") + buf.write("\13.\3.\3.\3.\3.\3.\3.\3.\3.\3.\7.\u0359\n.\f.\16.\u035c") + buf.write("\13.\5.\u035e\n.\3.\3.\3.\3.\3.\3.\3.\3.\7.\u0368\n.\f") + buf.write(".\16.\u036b\13.\5.\u036d\n.\3.\3.\3.\3.\3.\3.\3.\3.\3") + buf.write(".\3.\3.\3.\7.\u037b\n.\f.\16.\u037e\13.\3.\3.\5.\u0382") + buf.write("\n.\3/\3/\3\60\3\60\5\60\u0388\n\60\3\61\7\61\u038b\n") + buf.write("\61\f\61\16\61\u038e\13\61\3\61\3\61\3\61\5\61\u0393\n") + buf.write("\61\3\61\5\61\u0396\n\61\3\61\5\61\u0399\n\61\3\61\3\61") + buf.write("\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\5\62\u03a5\n") + buf.write("\62\3\63\3\63\3\63\3\63\3\64\3\64\3\64\7\64\u03ae\n\64") + buf.write("\f\64\16\64\u03b1\13\64\3\65\3\65\3\65\3\66\3\66\3\66") + buf.write("\3\67\3\67\3\67\7\67\u03bc\n\67\f\67\16\67\u03bf\13\67") + buf.write("\38\38\78\u03c3\n8\f8\168\u03c6\138\38\38\39\39\39\39") + buf.write("\59\u03ce\n9\3:\3:\3:\3:\3:\5:\u03d5\n:\3;\7;\u03d8\n") + buf.write(";\f;\16;\u03db\13;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3<\3<\3") + buf.write("<\5<\u03e9\n<\3=\3=\3=\7=\u03ee\n=\f=\16=\u03f1\13=\3") + buf.write(">\3>\3>\5>\u03f6\n>\3?\3?\5?\u03fa\n?\3@\3@\5@\u03fe\n") + buf.write("@\3A\3A\5A\u0402\nA\3B\3B\5B\u0406\nB\3C\3C\3C\5C\u040b") + buf.write("\nC\3D\3D\5D\u040f\nD\3D\3D\7D\u0413\nD\fD\16D\u0416\13") + buf.write("D\3E\3E\5E\u041a\nE\3E\3E\3E\7E\u041f\nE\fE\16E\u0422") + buf.write("\13E\3E\3E\5E\u0426\nE\5E\u0428\nE\3F\3F\7F\u042c\nF\f") + buf.write("F\16F\u042f\13F\3F\3F\5F\u0433\nF\3G\3G\5G\u0437\nG\3") + buf.write("H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3L\5L\u044a") + buf.write("\nL\3M\7M\u044d\nM\fM\16M\u0450\13M\3M\3M\3M\3N\3N\3N") + buf.write("\3N\3N\3N\3N\3N\3N\3N\5N\u045f\nN\3O\3O\3O\5O\u0464\n") + buf.write("O\3O\3O\7O\u0468\nO\fO\16O\u046b\13O\3O\3O\3O\5O\u0470") + buf.write("\nO\5O\u0472\nO\3P\3P\5P\u0476\nP\3Q\3Q\3Q\5Q\u047b\n") + buf.write("Q\3Q\3Q\5Q\u047f\nQ\3R\3R\3R\3R\3R\3R\5R\u0487\nR\3S\3") + buf.write("S\3S\7S\u048c\nS\fS\16S\u048f\13S\3S\3S\3S\7S\u0494\n") + buf.write("S\fS\16S\u0497\13S\5S\u0499\nS\3T\7T\u049c\nT\fT\16T\u049f") + buf.write("\13T\3T\3T\3T\3U\3U\5U\u04a6\nU\3V\7V\u04a9\nV\fV\16V") + buf.write("\u04ac\13V\3V\3V\7V\u04b0\nV\fV\16V\u04b3\13V\3V\3V\3") + buf.write("V\3V\5V\u04b9\nV\3W\7W\u04bc\nW\fW\16W\u04bf\13W\3W\3") + buf.write("W\3W\3W\5W\u04c5\nW\3W\3W\3X\3X\3X\3Y\3Y\3Y\7Y\u04cf\n") + buf.write("Y\fY\16Y\u04d2\13Y\3Z\3Z\5Z\u04d6\nZ\3[\3[\5[\u04da\n") + buf.write("[\3\\\3\\\3]\3]\3]\3^\7^\u04e2\n^\f^\16^\u04e5\13^\3^") + buf.write("\3^\5^\u04e9\n^\3^\3^\3_\3_\3_\3_\5_\u04f1\n_\3`\5`\u04f4") + buf.write("\n`\3`\3`\3`\5`\u04f9\n`\3`\3`\3a\3a\3b\3b\5b\u0501\n") + buf.write("b\3b\5b\u0504\nb\3b\3b\3c\5c\u0509\nc\3c\3c\3c\5c\u050e") + buf.write("\nc\3c\3c\3c\5c\u0513\nc\3c\3c\3c\5c\u0518\nc\3c\3c\3") + buf.write("c\3c\3c\5c\u051f\nc\3c\3c\3c\5c\u0524\nc\3c\3c\3c\3c\3") + buf.write("c\3c\5c\u052c\nc\3c\3c\3c\5c\u0531\nc\3c\3c\3c\5c\u0536") + buf.write("\nc\3d\7d\u0539\nd\fd\16d\u053c\13d\3d\3d\3d\5d\u0541") + buf.write("\nd\3d\3d\3e\3e\5e\u0547\ne\3e\5e\u054a\ne\3e\5e\u054d") + buf.write("\ne\3e\3e\3f\3f\3f\7f\u0554\nf\ff\16f\u0557\13f\3g\7g") + buf.write("\u055a\ng\fg\16g\u055d\13g\3g\3g\3g\5g\u0562\ng\3g\5g") + buf.write("\u0565\ng\3g\5g\u0568\ng\3h\3h\3i\3i\7i\u056e\ni\fi\16") + buf.write("i\u0571\13i\3j\3j\5j\u0575\nj\3k\7k\u0578\nk\fk\16k\u057b") + buf.write("\13k\3k\3k\3k\5k\u0580\nk\3k\5k\u0583\nk\3k\3k\3l\3l\3") + buf.write("l\3l\3l\3l\3l\5l\u058e\nl\3m\3m\3m\3n\3n\7n\u0595\nn\f") + buf.write("n\16n\u0598\13n\3n\3n\3o\3o\3o\3o\3o\5o\u05a1\no\3p\7") + buf.write("p\u05a4\np\fp\16p\u05a7\13p\3p\3p\3p\3p\3q\3q\3q\3q\5") + buf.write("q\u05b1\nq\3r\7r\u05b4\nr\fr\16r\u05b7\13r\3r\3r\3r\3") + buf.write("s\3s\3s\3s\3s\3s\3s\5s\u05c3\ns\3t\7t\u05c6\nt\ft\16t") + buf.write("\u05c9\13t\3t\3t\3t\3t\3t\3u\3u\7u\u05d2\nu\fu\16u\u05d5") + buf.write("\13u\3u\3u\3v\3v\3v\3v\3v\5v\u05de\nv\3w\7w\u05e1\nw\f") + buf.write("w\16w\u05e4\13w\3w\3w\3w\3w\3w\5w\u05eb\nw\3w\5w\u05ee") + buf.write("\nw\3w\3w\3x\3x\3x\5x\u05f5\nx\3y\3y\3y\3z\3z\3z\5z\u05fd") + buf.write("\nz\3{\3{\3{\3{\5{\u0603\n{\3{\3{\3|\3|\3|\7|\u060a\n") + buf.write("|\f|\16|\u060d\13|\3}\3}\3}\3}\3~\3~\3~\5~\u0616\n~\3") + buf.write("\177\3\177\5\177\u061a\n\177\3\177\5\177\u061d\n\177\3") + buf.write("\177\3\177\3\u0080\3\u0080\3\u0080\7\u0080\u0624\n\u0080") + buf.write("\f\u0080\16\u0080\u0627\13\u0080\3\u0081\3\u0081\3\u0081") + buf.write("\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0083") + buf.write("\3\u0083\5\u0083\u0634\n\u0083\3\u0083\5\u0083\u0637\n") + buf.write("\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0084\7\u0084") + buf.write("\u063e\n\u0084\f\u0084\16\u0084\u0641\13\u0084\3\u0085") + buf.write("\3\u0085\5\u0085\u0645\n\u0085\3\u0085\3\u0085\3\u0086") + buf.write("\6\u0086\u064a\n\u0086\r\u0086\16\u0086\u064b\3\u0087") + buf.write("\3\u0087\3\u0087\5\u0087\u0651\n\u0087\3\u0088\3\u0088") + buf.write("\3\u0088\3\u0089\7\u0089\u0657\n\u0089\f\u0089\16\u0089") + buf.write("\u065a\13\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a") + buf.write("\3\u008a\3\u008a\3\u008a\3\u008a\5\u008a\u0665\n\u008a") + buf.write("\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\5\u008b\u066c") + buf.write("\n\u008b\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c") + buf.write("\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\5\u008c") + buf.write("\u067a\n\u008c\3\u008d\3\u008d\3\u008e\3\u008e\3\u008e") + buf.write("\3\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090") + buf.write("\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091") + buf.write("\3\u0091\5\u0091\u0690\n\u0091\3\u0092\3\u0092\3\u0092") + buf.write("\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093") + buf.write("\3\u0093\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094\3\u0094") + buf.write("\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095") + buf.write("\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095") + buf.write("\3\u0095\5\u0095\u06b2\n\u0095\3\u0096\3\u0096\3\u0096") + buf.write("\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097\7\u0097\u06bc") + buf.write("\n\u0097\f\u0097\16\u0097\u06bf\13\u0097\3\u0097\7\u0097") + buf.write("\u06c2\n\u0097\f\u0097\16\u0097\u06c5\13\u0097\3\u0097") + buf.write("\3\u0097\3\u0098\3\u0098\3\u0098\3\u0099\6\u0099\u06cd") + buf.write("\n\u0099\r\u0099\16\u0099\u06ce\3\u009a\3\u009a\3\u009a") + buf.write("\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a") + buf.write("\5\u009a\u06db\n\u009a\3\u009b\3\u009b\3\u009c\3\u009c") + buf.write("\3\u009c\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d") + buf.write("\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\3\u009e\3\u009e") + buf.write("\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\5\u009f") + buf.write("\u06f5\n\u009f\3\u00a0\3\u00a0\5\u00a0\u06f9\n\u00a0\3") + buf.write("\u00a1\3\u00a1\3\u00a1\5\u00a1\u06fe\n\u00a1\3\u00a1\3") + buf.write("\u00a1\5\u00a1\u0702\n\u00a1\3\u00a1\3\u00a1\5\u00a1\u0706") + buf.write("\n\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2") + buf.write("\5\u00a2\u070e\n\u00a2\3\u00a2\3\u00a2\5\u00a2\u0712\n") + buf.write("\u00a2\3\u00a2\3\u00a2\5\u00a2\u0716\n\u00a2\3\u00a2\3") + buf.write("\u00a2\3\u00a2\3\u00a3\3\u00a3\5\u00a3\u071d\n\u00a3\3") + buf.write("\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\7\u00a5\u0724\n") + buf.write("\u00a5\f\u00a5\16\u00a5\u0727\13\u00a5\3\u00a6\3\u00a6") + buf.write("\3\u00a6\7\u00a6\u072c\n\u00a6\f\u00a6\16\u00a6\u072f") + buf.write("\13\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6") + buf.write("\3\u00a6\3\u00a7\3\u00a7\3\u00a7\7\u00a7\u073b\n\u00a7") + buf.write("\f\u00a7\16\u00a7\u073e\13\u00a7\3\u00a7\3\u00a7\3\u00a7") + buf.write("\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8\5\u00a8") + buf.write("\u0749\n\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9\5\u00a9") + buf.write("\u074f\n\u00a9\3\u00a9\3\u00a9\3\u00aa\3\u00aa\5\u00aa") + buf.write("\u0755\n\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab\3\u00ab") + buf.write("\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac") + buf.write("\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad") + buf.write("\5\u00ad\u076a\n\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad") + buf.write("\u076f\n\u00ad\3\u00ae\6\u00ae\u0772\n\u00ae\r\u00ae\16") + buf.write("\u00ae\u0773\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3") + buf.write("\u00af\3\u00b0\7\u00b0\u077d\n\u00b0\f\u00b0\16\u00b0") + buf.write("\u0780\13\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1") + buf.write("\3\u00b1\7\u00b1\u0788\n\u00b1\f\u00b1\16\u00b1\u078b") + buf.write("\13\u00b1\3\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3") + buf.write("\3\u00b3\5\u00b3\u0794\n\u00b3\3\u00b3\5\u00b3\u0797\n") + buf.write("\u00b3\3\u00b4\3\u00b4\3\u00b4\5\u00b4\u079c\n\u00b4\3") + buf.write("\u00b4\3\u00b4\3\u00b5\3\u00b5\3\u00b5\7\u00b5\u07a3\n") + buf.write("\u00b5\f\u00b5\16\u00b5\u07a6\13\u00b5\3\u00b6\7\u00b6") + buf.write("\u07a9\n\u00b6\f\u00b6\16\u00b6\u07ac\13\u00b6\3\u00b6") + buf.write("\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u07b4") + buf.write("\n\u00b6\3\u00b7\3\u00b7\5\u00b7\u07b8\n\u00b7\3\u00b8") + buf.write("\3\u00b8\5\u00b8\u07bc\n\u00b8\3\u00b8\7\u00b8\u07bf\n") + buf.write("\u00b8\f\u00b8\16\u00b8\u07c2\13\u00b8\3\u00b9\3\u00b9") + buf.write("\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9") + buf.write("\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9") + buf.write("\5\u00b9\u07d4\n\u00b9\3\u00ba\3\u00ba\3\u00bb\3\u00bb") + buf.write("\3\u00bb\3\u00bb\7\u00bb\u07dc\n\u00bb\f\u00bb\16\u00bb") + buf.write("\u07df\13\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") + buf.write("\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") + buf.write("\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") + buf.write("\5\u00bb\u07f4\n\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc") + buf.write("\3\u00bc\5\u00bc\u07fb\n\u00bc\3\u00bd\3\u00bd\3\u00be") + buf.write("\3\u00be\3\u00be\3\u00be\5\u00be\u0803\n\u00be\3\u00bf") + buf.write("\3\u00bf\3\u00bf\3\u00bf\7\u00bf\u0809\n\u00bf\f\u00bf") + buf.write("\16\u00bf\u080c\13\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") + buf.write("\3\u00bf\3\u00bf\7\u00bf\u0814\n\u00bf\f\u00bf\16\u00bf") + buf.write("\u0817\13\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") + buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") + buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") + buf.write("\3\u00bf\5\u00bf\u082d\n\u00bf\3\u00c0\3\u00c0\3\u00c1") + buf.write("\3\u00c1\3\u00c1\3\u00c1\7\u00c1\u0835\n\u00c1\f\u00c1") + buf.write("\16\u00c1\u0838\13\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\3\u00c1\3\u00c1\7\u00c1\u0840\n\u00c1\f\u00c1\16\u00c1") + buf.write("\u0843\13\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") + buf.write("\5\u00c1\u0858\n\u00c1\3\u00c2\3\u00c2\3\u00c2\5\u00c2") + buf.write("\u085d\n\u00c2\3\u00c2\3\u00c2\7\u00c2\u0861\n\u00c2\f") + buf.write("\u00c2\16\u00c2\u0864\13\u00c2\3\u00c2\3\u00c2\3\u00c2") + buf.write("\3\u00c2\3\u00c2\5\u00c2\u086b\n\u00c2\3\u00c3\3\u00c3") + buf.write("\5\u00c3\u086f\n\u00c3\3\u00c3\7\u00c3\u0872\n\u00c3\f") + buf.write("\u00c3\16\u00c3\u0875\13\u00c3\3\u00c3\3\u00c3\3\u00c3") + buf.write("\7\u00c3\u087a\n\u00c3\f\u00c3\16\u00c3\u087d\13\u00c3") + buf.write("\3\u00c3\7\u00c3\u0880\n\u00c3\f\u00c3\16\u00c3\u0883") + buf.write("\13\u00c3\3\u00c3\5\u00c3\u0886\n\u00c3\3\u00c3\3\u00c3") + buf.write("\5\u00c3\u088a\n\u00c3\3\u00c3\3\u00c3\5\u00c3\u088e\n") + buf.write("\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3\u0894\n") + buf.write("\u00c3\3\u00c3\7\u00c3\u0897\n\u00c3\f\u00c3\16\u00c3") + buf.write("\u089a\13\u00c3\3\u00c3\3\u00c3\5\u00c3\u089e\n\u00c3") + buf.write("\3\u00c3\3\u00c3\5\u00c3\u08a2\n\u00c3\3\u00c3\3\u00c3") + buf.write("\5\u00c3\u08a6\n\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3") + buf.write("\5\u00c3\u08ac\n\u00c3\3\u00c3\7\u00c3\u08af\n\u00c3\f") + buf.write("\u00c3\16\u00c3\u08b2\13\u00c3\3\u00c3\3\u00c3\5\u00c3") + buf.write("\u08b6\n\u00c3\3\u00c3\3\u00c3\5\u00c3\u08ba\n\u00c3\3") + buf.write("\u00c3\3\u00c3\5\u00c3\u08be\n\u00c3\5\u00c3\u08c0\n\u00c3") + buf.write("\3\u00c4\3\u00c4\3\u00c4\5\u00c4\u08c5\n\u00c4\3\u00c4") + buf.write("\7\u00c4\u08c8\n\u00c4\f\u00c4\16\u00c4\u08cb\13\u00c4") + buf.write("\3\u00c4\3\u00c4\5\u00c4\u08cf\n\u00c4\3\u00c4\3\u00c4") + buf.write("\5\u00c4\u08d3\n\u00c4\3\u00c4\3\u00c4\5\u00c4\u08d7\n") + buf.write("\u00c4\3\u00c5\3\u00c5\5\u00c5\u08db\n\u00c5\3\u00c5\7") + buf.write("\u00c5\u08de\n\u00c5\f\u00c5\16\u00c5\u08e1\13\u00c5\3") + buf.write("\u00c5\3\u00c5\3\u00c5\7\u00c5\u08e6\n\u00c5\f\u00c5\16") + buf.write("\u00c5\u08e9\13\u00c5\3\u00c5\7\u00c5\u08ec\n\u00c5\f") + buf.write("\u00c5\16\u00c5\u08ef\13\u00c5\3\u00c5\5\u00c5\u08f2\n") + buf.write("\u00c5\3\u00c5\3\u00c5\5\u00c5\u08f6\n\u00c5\3\u00c5\3") + buf.write("\u00c5\5\u00c5\u08fa\n\u00c5\3\u00c5\3\u00c5\3\u00c5\3") + buf.write("\u00c5\5\u00c5\u0900\n\u00c5\3\u00c5\7\u00c5\u0903\n\u00c5") + buf.write("\f\u00c5\16\u00c5\u0906\13\u00c5\3\u00c5\3\u00c5\5\u00c5") + buf.write("\u090a\n\u00c5\3\u00c5\3\u00c5\5\u00c5\u090e\n\u00c5\3") + buf.write("\u00c5\3\u00c5\5\u00c5\u0912\n\u00c5\5\u00c5\u0914\n\u00c5") + buf.write("\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0919\n\u00c6\3\u00c7") + buf.write("\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7") + buf.write("\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0928") + buf.write("\n\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c9\3\u00c9\3\u00c9") + buf.write("\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9") + buf.write("\u0936\n\u00c9\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca") + buf.write("\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u0942") + buf.write("\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\7\u00ca") + buf.write("\u0949\n\u00ca\f\u00ca\16\u00ca\u094c\13\u00ca\3\u00cb") + buf.write("\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb") + buf.write("\3\u00cb\3\u00cb\7\u00cb\u0958\n\u00cb\f\u00cb\16\u00cb") + buf.write("\u095b\13\u00cb\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc") + buf.write("\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u0967") + buf.write("\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\7\u00cc") + buf.write("\u096e\n\u00cc\f\u00cc\16\u00cc\u0971\13\u00cc\3\u00cd") + buf.write("\3\u00cd\3\u00cd\5\u00cd\u0976\n\u00cd\3\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u097d\n\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\5\u00cd\u0982\n\u00cd\3\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u0989\n\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\5\u00cd\u098e\n\u00cd\3\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u0995\n\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\5\u00cd\u099a\n\u00cd\3\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09a1\n\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\5\u00cd\u09a6\n\u00cd\3\u00cd\3\u00cd") + buf.write("\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09af") + buf.write("\n\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09b4\n\u00cd") + buf.write("\3\u00cd\3\u00cd\5\u00cd\u09b8\n\u00cd\3\u00ce\3\u00ce") + buf.write("\5\u00ce\u09bc\n\u00ce\3\u00ce\3\u00ce\3\u00ce\5\u00ce") + buf.write("\u09c1\n\u00ce\3\u00ce\3\u00ce\3\u00cf\3\u00cf\3\u00cf") + buf.write("\5\u00cf\u09c8\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") + buf.write("\3\u00cf\5\u00cf\u09cf\n\u00cf\3\u00cf\3\u00cf\3\u00cf") + buf.write("\5\u00cf\u09d4\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") + buf.write("\3\u00cf\5\u00cf\u09db\n\u00cf\3\u00cf\3\u00cf\3\u00cf") + buf.write("\5\u00cf\u09e0\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") + buf.write("\3\u00cf\5\u00cf\u09e7\n\u00cf\3\u00cf\3\u00cf\3\u00cf") + buf.write("\5\u00cf\u09ec\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") + buf.write("\3\u00cf\3\u00cf\3\u00cf\5\u00cf\u09f5\n\u00cf\3\u00cf") + buf.write("\3\u00cf\3\u00cf\5\u00cf\u09fa\n\u00cf\3\u00cf\3\u00cf") + buf.write("\5\u00cf\u09fe\n\u00cf\3\u00d0\3\u00d0\3\u00d0\7\u00d0") + buf.write("\u0a03\n\u00d0\f\u00d0\16\u00d0\u0a06\13\u00d0\3\u00d1") + buf.write("\3\u00d1\3\u00d1\5\u00d1\u0a0b\n\u00d1\3\u00d1\3\u00d1") + buf.write("\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a12\n\u00d1\3\u00d1") + buf.write("\3\u00d1\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a19\n\u00d1") + buf.write("\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a20") + buf.write("\n\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1") + buf.write("\5\u00d1\u0a28\n\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1") + buf.write("\3\u00d1\5\u00d1\u0a2f\n\u00d1\3\u00d1\3\u00d1\3\u00d1") + buf.write("\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a37\n\u00d1\3\u00d2") + buf.write("\3\u00d2\5\u00d2\u0a3b\n\u00d2\3\u00d2\3\u00d2\3\u00d3") + buf.write("\3\u00d3\3\u00d3\5\u00d3\u0a42\n\u00d3\3\u00d3\3\u00d3") + buf.write("\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u0a49\n\u00d3\3\u00d3") + buf.write("\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u0a50\n\u00d3") + buf.write("\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3") + buf.write("\u0a58\n\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3") + buf.write("\5\u00d3\u0a5f\n\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3") + buf.write("\3\u00d3\3\u00d3\5\u00d3\u0a67\n\u00d3\3\u00d4\3\u00d4") + buf.write("\3\u00d4\3\u00d4\5\u00d4\u0a6d\n\u00d4\3\u00d4\3\u00d4") + buf.write("\3\u00d4\3\u00d4\5\u00d4\u0a73\n\u00d4\3\u00d4\3\u00d4") + buf.write("\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4") + buf.write("\3\u00d4\5\u00d4\u0a7f\n\u00d4\3\u00d5\6\u00d5\u0a82\n") + buf.write("\u00d5\r\u00d5\16\u00d5\u0a83\3\u00d6\7\u00d6\u0a87\n") + buf.write("\u00d6\f\u00d6\16\u00d6\u0a8a\13\u00d6\3\u00d6\3\u00d6") + buf.write("\3\u00d6\3\u00d6\3\u00d7\3\u00d7\3\u00d8\3\u00d8\5\u00d8") + buf.write("\u0a94\n\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00d9\3\u00da") + buf.write("\3\u00da\3\u00da\5\u00da\u0a9d\n\u00da\3\u00da\3\u00da") + buf.write("\3\u00da\3\u00da\3\u00da\5\u00da\u0aa4\n\u00da\3\u00db") + buf.write("\3\u00db\3\u00db\7\u00db\u0aa9\n\u00db\f\u00db\16\u00db") + buf.write("\u0aac\13\u00db\3\u00dc\3\u00dc\5\u00dc\u0ab0\n\u00dc") + buf.write("\3\u00dd\3\u00dd\5\u00dd\u0ab4\n\u00dd\3\u00de\3\u00de") + buf.write("\3\u00de\3\u00de\3\u00df\3\u00df\3\u00df\5\u00df\u0abd") + buf.write("\n\u00df\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1") + buf.write("\3\u00e1\3\u00e1\3\u00e1\5\u00e1\u0ac8\n\u00e1\5\u00e1") + buf.write("\u0aca\n\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2") + buf.write("\3\u00e2\7\u00e2\u0ad2\n\u00e2\f\u00e2\16\u00e2\u0ad5") + buf.write("\13\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3") + buf.write("\7\u00e3\u0add\n\u00e3\f\u00e3\16\u00e3\u0ae0\13\u00e3") + buf.write("\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\7\u00e4") + buf.write("\u0ae8\n\u00e4\f\u00e4\16\u00e4\u0aeb\13\u00e4\3\u00e5") + buf.write("\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\7\u00e5\u0af3") + buf.write("\n\u00e5\f\u00e5\16\u00e5\u0af6\13\u00e5\3\u00e6\3\u00e6") + buf.write("\3\u00e6\3\u00e6\3\u00e6\3\u00e6\7\u00e6\u0afe\n\u00e6") + buf.write("\f\u00e6\16\u00e6\u0b01\13\u00e6\3\u00e7\3\u00e7\3\u00e7") + buf.write("\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\7\u00e7") + buf.write("\u0b0c\n\u00e7\f\u00e7\16\u00e7\u0b0f\13\u00e7\3\u00e8") + buf.write("\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8") + buf.write("\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8") + buf.write("\3\u00e8\3\u00e8\3\u00e8\7\u00e8\u0b23\n\u00e8\f\u00e8") + buf.write("\16\u00e8\u0b26\13\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9") + buf.write("\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9") + buf.write("\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\7\u00e9\u0b38") + buf.write("\n\u00e9\f\u00e9\16\u00e9\u0b3b\13\u00e9\3\u00ea\3\u00ea") + buf.write("\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea") + buf.write("\7\u00ea\u0b46\n\u00ea\f\u00ea\16\u00ea\u0b49\13\u00ea") + buf.write("\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb") + buf.write("\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\7\u00eb\u0b57") + buf.write("\n\u00eb\f\u00eb\16\u00eb\u0b5a\13\u00eb\3\u00ec\3\u00ec") + buf.write("\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\5\u00ec\u0b63") + buf.write("\n\u00ec\3\u00ed\3\u00ed\3\u00ed\3\u00ee\3\u00ee\3\u00ee") + buf.write("\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\5\u00ef") + buf.write("\u0b71\n\u00ef\3\u00f0\3\u00f0\5\u00f0\u0b75\n\u00f0\3") + buf.write("\u00f0\3\u00f0\7\u00f0\u0b79\n\u00f0\f\u00f0\16\u00f0") + buf.write("\u0b7c\13\u00f0\3\u00f1\3\u00f1\3\u00f1\3\u00f2\3\u00f2") + buf.write("\3\u00f3\3\u00f3\3\u00f3\3\u00f4\3\u00f4\3\u00f5\3\u00f5") + buf.write("\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\7\u00f5") + buf.write("\u0b90\n\u00f5\f\u00f5\16\u00f5\u0b93\13\u00f5\3\u00f5") + buf.write("\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\7\u00f5\u0b9b") + buf.write("\n\u00f5\f\u00f5\16\u00f5\u0b9e\13\u00f5\3\u00f5\3\u00f5") + buf.write("\3\u00f5\5\u00f5\u0ba3\n\u00f5\3\u00f6\3\u00f6\3\u00f6") + buf.write("\2\20\64\66:@\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce") + buf.write("\u01d0\u01d2\u01d4\u00f7\2\4\6\b\n\f\16\20\22\24\26\30") + buf.write("\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`b") + buf.write("dfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c") + buf.write("\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e") + buf.write("\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0") + buf.write("\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2") + buf.write("\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4") + buf.write("\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6") + buf.write("\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8") + buf.write("\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a") + buf.write("\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c") + buf.write("\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e") + buf.write("\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140") + buf.write("\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152") + buf.write("\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164") + buf.write("\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176") + buf.write("\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188") + buf.write("\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a") + buf.write("\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac") + buf.write("\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be") + buf.write("\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0") + buf.write("\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01de\u01e0\u01e2") + buf.write("\u01e4\u01e6\u01e8\u01ea\2\b\3\2@E\7\2\7\7\n\n\36\36 ") + buf.write(" --\4\2\20\20\27\27\4\2..88\4\2RRjt\13\2\23\23!!$%))+") + buf.write("+\66\66::>>uu\2\u0ca5\2\u01ec\3\2\2\2\4\u01fc\3\2\2\2") + buf.write("\6\u0200\3\2\2\2\b\u0202\3\2\2\2\n\u0204\3\2\2\2\f\u0209") + buf.write("\3\2\2\2\16\u020d\3\2\2\2\20\u022c\3\2\2\2\22\u022e\3") + buf.write("\2\2\2\24\u023c\3\2\2\2\26\u0243\3\2\2\2\30\u0245\3\2") + buf.write("\2\2\32\u0247\3\2\2\2\34\u024c\3\2\2\2\36\u025a\3\2\2") + buf.write("\2 \u025f\3\2\2\2\"\u0274\3\2\2\2$\u027b\3\2\2\2&\u0287") + buf.write("\3\2\2\2(\u0289\3\2\2\2*\u028c\3\2\2\2,\u0290\3\2\2\2") + buf.write(".\u029a\3\2\2\2\60\u029f\3\2\2\2\62\u02aa\3\2\2\2\64\u02ac") + buf.write("\3\2\2\2\66\u02b7\3\2\2\28\u02c7\3\2\2\2:\u02c9\3\2\2") + buf.write("\2<\u02d9\3\2\2\2>\u02db\3\2\2\2@\u02dd\3\2\2\2B\u02ea") + buf.write("\3\2\2\2D\u02ed\3\2\2\2F\u0300\3\2\2\2H\u0308\3\2\2\2") + buf.write("J\u030f\3\2\2\2L\u0315\3\2\2\2N\u0317\3\2\2\2P\u031b\3") + buf.write("\2\2\2R\u0321\3\2\2\2T\u0328\3\2\2\2V\u0332\3\2\2\2X\u0337") + buf.write("\3\2\2\2Z\u0381\3\2\2\2\\\u0383\3\2\2\2^\u0387\3\2\2\2") + buf.write("`\u038c\3\2\2\2b\u03a4\3\2\2\2d\u03a6\3\2\2\2f\u03aa\3") + buf.write("\2\2\2h\u03b2\3\2\2\2j\u03b5\3\2\2\2l\u03b8\3\2\2\2n\u03c0") + buf.write("\3\2\2\2p\u03cd\3\2\2\2r\u03d4\3\2\2\2t\u03d9\3\2\2\2") + buf.write("v\u03e8\3\2\2\2x\u03ea\3\2\2\2z\u03f2\3\2\2\2|\u03f7\3") + buf.write("\2\2\2~\u03fd\3\2\2\2\u0080\u0401\3\2\2\2\u0082\u0405") + buf.write("\3\2\2\2\u0084\u040a\3\2\2\2\u0086\u040e\3\2\2\2\u0088") + buf.write("\u0427\3\2\2\2\u008a\u0429\3\2\2\2\u008c\u0434\3\2\2\2") + buf.write("\u008e\u0438\3\2\2\2\u0090\u043a\3\2\2\2\u0092\u043c\3") + buf.write("\2\2\2\u0094\u043e\3\2\2\2\u0096\u0449\3\2\2\2\u0098\u044e") + buf.write("\3\2\2\2\u009a\u045e\3\2\2\2\u009c\u0471\3\2\2\2\u009e") + buf.write("\u0475\3\2\2\2\u00a0\u0477\3\2\2\2\u00a2\u0486\3\2\2\2") + buf.write("\u00a4\u0498\3\2\2\2\u00a6\u049d\3\2\2\2\u00a8\u04a5\3") + buf.write("\2\2\2\u00aa\u04b8\3\2\2\2\u00ac\u04bd\3\2\2\2\u00ae\u04c8") + buf.write("\3\2\2\2\u00b0\u04cb\3\2\2\2\u00b2\u04d5\3\2\2\2\u00b4") + buf.write("\u04d9\3\2\2\2\u00b6\u04db\3\2\2\2\u00b8\u04dd\3\2\2\2") + buf.write("\u00ba\u04e3\3\2\2\2\u00bc\u04f0\3\2\2\2\u00be\u04f3\3") + buf.write("\2\2\2\u00c0\u04fc\3\2\2\2\u00c2\u04fe\3\2\2\2\u00c4\u0535") + buf.write("\3\2\2\2\u00c6\u053a\3\2\2\2\u00c8\u0544\3\2\2\2\u00ca") + buf.write("\u0550\3\2\2\2\u00cc\u055b\3\2\2\2\u00ce\u0569\3\2\2\2") + buf.write("\u00d0\u056b\3\2\2\2\u00d2\u0574\3\2\2\2\u00d4\u0579\3") + buf.write("\2\2\2\u00d6\u058d\3\2\2\2\u00d8\u058f\3\2\2\2\u00da\u0592") + buf.write("\3\2\2\2\u00dc\u05a0\3\2\2\2\u00de\u05a5\3\2\2\2\u00e0") + buf.write("\u05b0\3\2\2\2\u00e2\u05b5\3\2\2\2\u00e4\u05c2\3\2\2\2") + buf.write("\u00e6\u05c7\3\2\2\2\u00e8\u05cf\3\2\2\2\u00ea\u05dd\3") + buf.write("\2\2\2\u00ec\u05e2\3\2\2\2\u00ee\u05f4\3\2\2\2\u00f0\u05f6") + buf.write("\3\2\2\2\u00f2\u05fc\3\2\2\2\u00f4\u05fe\3\2\2\2\u00f6") + buf.write("\u0606\3\2\2\2\u00f8\u060e\3\2\2\2\u00fa\u0615\3\2\2\2") + buf.write("\u00fc\u0617\3\2\2\2\u00fe\u0620\3\2\2\2\u0100\u0628\3") + buf.write("\2\2\2\u0102\u062b\3\2\2\2\u0104\u0631\3\2\2\2\u0106\u063a") + buf.write("\3\2\2\2\u0108\u0642\3\2\2\2\u010a\u0649\3\2\2\2\u010c") + buf.write("\u0650\3\2\2\2\u010e\u0652\3\2\2\2\u0110\u0658\3\2\2\2") + buf.write("\u0112\u0664\3\2\2\2\u0114\u066b\3\2\2\2\u0116\u0679\3") + buf.write("\2\2\2\u0118\u067b\3\2\2\2\u011a\u067d\3\2\2\2\u011c\u0681") + buf.write("\3\2\2\2\u011e\u0685\3\2\2\2\u0120\u068f\3\2\2\2\u0122") + buf.write("\u0691\3\2\2\2\u0124\u0697\3\2\2\2\u0126\u069f\3\2\2\2") + buf.write("\u0128\u06b1\3\2\2\2\u012a\u06b3\3\2\2\2\u012c\u06b9\3") + buf.write("\2\2\2\u012e\u06c8\3\2\2\2\u0130\u06cc\3\2\2\2\u0132\u06da") + buf.write("\3\2\2\2\u0134\u06dc\3\2\2\2\u0136\u06de\3\2\2\2\u0138") + buf.write("\u06e4\3\2\2\2\u013a\u06ea\3\2\2\2\u013c\u06f4\3\2\2\2") + buf.write("\u013e\u06f8\3\2\2\2\u0140\u06fa\3\2\2\2\u0142\u070a\3") + buf.write("\2\2\2\u0144\u071c\3\2\2\2\u0146\u071e\3\2\2\2\u0148\u0720") + buf.write("\3\2\2\2\u014a\u0728\3\2\2\2\u014c\u0737\3\2\2\2\u014e") + buf.write("\u0746\3\2\2\2\u0150\u074c\3\2\2\2\u0152\u0752\3\2\2\2") + buf.write("\u0154\u0758\3\2\2\2\u0156\u075c\3\2\2\2\u0158\u076e\3") + buf.write("\2\2\2\u015a\u0771\3\2\2\2\u015c\u0775\3\2\2\2\u015e\u077e") + buf.write("\3\2\2\2\u0160\u0784\3\2\2\2\u0162\u078c\3\2\2\2\u0164") + buf.write("\u078f\3\2\2\2\u0166\u0798\3\2\2\2\u0168\u079f\3\2\2\2") + buf.write("\u016a\u07b3\3\2\2\2\u016c\u07b7\3\2\2\2\u016e\u07bb\3") + buf.write("\2\2\2\u0170\u07d3\3\2\2\2\u0172\u07d5\3\2\2\2\u0174\u07f3") + buf.write("\3\2\2\2\u0176\u07fa\3\2\2\2\u0178\u07fc\3\2\2\2\u017a") + buf.write("\u0802\3\2\2\2\u017c\u082c\3\2\2\2\u017e\u082e\3\2\2\2") + buf.write("\u0180\u0857\3\2\2\2\u0182\u086a\3\2\2\2\u0184\u08bf\3") + buf.write("\2\2\2\u0186\u08c1\3\2\2\2\u0188\u0913\3\2\2\2\u018a\u0918") + buf.write("\3\2\2\2\u018c\u0927\3\2\2\2\u018e\u0929\3\2\2\2\u0190") + buf.write("\u0935\3\2\2\2\u0192\u0941\3\2\2\2\u0194\u094d\3\2\2\2") + buf.write("\u0196\u0966\3\2\2\2\u0198\u09b7\3\2\2\2\u019a\u09b9\3") + buf.write("\2\2\2\u019c\u09fd\3\2\2\2\u019e\u09ff\3\2\2\2\u01a0\u0a36") + buf.write("\3\2\2\2\u01a2\u0a38\3\2\2\2\u01a4\u0a66\3\2\2\2\u01a6") + buf.write("\u0a7e\3\2\2\2\u01a8\u0a81\3\2\2\2\u01aa\u0a88\3\2\2\2") + buf.write("\u01ac\u0a8f\3\2\2\2\u01ae\u0a93\3\2\2\2\u01b0\u0a95\3") + buf.write("\2\2\2\u01b2\u0aa3\3\2\2\2\u01b4\u0aa5\3\2\2\2\u01b6\u0aaf") + buf.write("\3\2\2\2\u01b8\u0ab3\3\2\2\2\u01ba\u0ab5\3\2\2\2\u01bc") + buf.write("\u0abc\3\2\2\2\u01be\u0abe\3\2\2\2\u01c0\u0ac9\3\2\2\2") + buf.write("\u01c2\u0acb\3\2\2\2\u01c4\u0ad6\3\2\2\2\u01c6\u0ae1\3") + buf.write("\2\2\2\u01c8\u0aec\3\2\2\2\u01ca\u0af7\3\2\2\2\u01cc\u0b02") + buf.write("\3\2\2\2\u01ce\u0b10\3\2\2\2\u01d0\u0b27\3\2\2\2\u01d2") + buf.write("\u0b3c\3\2\2\2\u01d4\u0b4a\3\2\2\2\u01d6\u0b62\3\2\2\2") + buf.write("\u01d8\u0b64\3\2\2\2\u01da\u0b67\3\2\2\2\u01dc\u0b70\3") + buf.write("\2\2\2\u01de\u0b74\3\2\2\2\u01e0\u0b7d\3\2\2\2\u01e2\u0b80") + buf.write("\3\2\2\2\u01e4\u0b82\3\2\2\2\u01e6\u0b85\3\2\2\2\u01e8") + buf.write("\u0ba2\3\2\2\2\u01ea\u0ba4\3\2\2\2\u01ec\u01ed\t\2\2\2") + buf.write("\u01ed\3\3\2\2\2\u01ee\u01f0\5\u00f2z\2\u01ef\u01ee\3") + buf.write("\2\2\2\u01f0\u01f3\3\2\2\2\u01f1\u01ef\3\2\2\2\u01f1\u01f2") + buf.write("\3\2\2\2\u01f2\u01f4\3\2\2\2\u01f3\u01f1\3\2\2\2\u01f4") + buf.write("\u01fd\5\6\4\2\u01f5\u01f7\5\u00f2z\2\u01f6\u01f5\3\2") + buf.write("\2\2\u01f7\u01fa\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f8\u01f9") + buf.write("\3\2\2\2\u01f9\u01fb\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fb") + buf.write("\u01fd\7\5\2\2\u01fc\u01f1\3\2\2\2\u01fc\u01f8\3\2\2\2") + buf.write("\u01fd\5\3\2\2\2\u01fe\u0201\5\b\5\2\u01ff\u0201\5\n\6") + buf.write("\2\u0200\u01fe\3\2\2\2\u0200\u01ff\3\2\2\2\u0201\7\3\2") + buf.write("\2\2\u0202\u0203\t\3\2\2\u0203\t\3\2\2\2\u0204\u0205\t") + buf.write("\4\2\2\u0205\13\3\2\2\2\u0206\u020a\5\16\b\2\u0207\u020a") + buf.write("\5\34\17\2\u0208\u020a\5\36\20\2\u0209\u0206\3\2\2\2\u0209") + buf.write("\u0207\3\2\2\2\u0209\u0208\3\2\2\2\u020a\r\3\2\2\2\u020b") + buf.write("\u020e\5\24\13\2\u020c\u020e\5\32\16\2\u020d\u020b\3\2") + buf.write("\2\2\u020d\u020c\3\2\2\2\u020e\u0213\3\2\2\2\u020f\u0212") + buf.write("\5\22\n\2\u0210\u0212\5\30\r\2\u0211\u020f\3\2\2\2\u0211") + buf.write("\u0210\3\2\2\2\u0212\u0215\3\2\2\2\u0213\u0211\3\2\2\2") + buf.write("\u0213\u0214\3\2\2\2\u0214\17\3\2\2\2\u0215\u0213\3\2") + buf.write("\2\2\u0216\u0218\5\u00f2z\2\u0217\u0216\3\2\2\2\u0218") + buf.write("\u021b\3\2\2\2\u0219\u0217\3\2\2\2\u0219\u021a\3\2\2\2") + buf.write("\u021a\u021c\3\2\2\2\u021b\u0219\3\2\2\2\u021c\u021e\5") + buf.write("\u01ea\u00f6\2\u021d\u021f\5*\26\2\u021e\u021d\3\2\2\2") + buf.write("\u021e\u021f\3\2\2\2\u021f\u022d\3\2\2\2\u0220\u0221\5") + buf.write("\16\b\2\u0221\u0225\7N\2\2\u0222\u0224\5\u00f2z\2\u0223") + buf.write("\u0222\3\2\2\2\u0224\u0227\3\2\2\2\u0225\u0223\3\2\2\2") + buf.write("\u0225\u0226\3\2\2\2\u0226\u0228\3\2\2\2\u0227\u0225\3") + buf.write("\2\2\2\u0228\u022a\5\u01ea\u00f6\2\u0229\u022b\5*\26\2") + buf.write("\u022a\u0229\3\2\2\2\u022a\u022b\3\2\2\2\u022b\u022d\3") + buf.write("\2\2\2\u022c\u0219\3\2\2\2\u022c\u0220\3\2\2\2\u022d\21") + buf.write("\3\2\2\2\u022e\u0232\7N\2\2\u022f\u0231\5\u00f2z\2\u0230") + buf.write("\u022f\3\2\2\2\u0231\u0234\3\2\2\2\u0232\u0230\3\2\2\2") + buf.write("\u0232\u0233\3\2\2\2\u0233\u0235\3\2\2\2\u0234\u0232\3") + buf.write("\2\2\2\u0235\u0237\5\u01ea\u00f6\2\u0236\u0238\5*\26\2") + buf.write("\u0237\u0236\3\2\2\2\u0237\u0238\3\2\2\2\u0238\23\3\2") + buf.write("\2\2\u0239\u023b\5\u00f2z\2\u023a\u0239\3\2\2\2\u023b") + buf.write("\u023e\3\2\2\2\u023c\u023a\3\2\2\2\u023c\u023d\3\2\2\2") + buf.write("\u023d\u023f\3\2\2\2\u023e\u023c\3\2\2\2\u023f\u0241\5") + buf.write("\u01ea\u00f6\2\u0240\u0242\5*\26\2\u0241\u0240\3\2\2\2") + buf.write("\u0241\u0242\3\2\2\2\u0242\25\3\2\2\2\u0243\u0244\5\20") + buf.write("\t\2\u0244\27\3\2\2\2\u0245\u0246\5\22\n\2\u0246\31\3") + buf.write("\2\2\2\u0247\u0248\5\24\13\2\u0248\33\3\2\2\2\u0249\u024b") + buf.write("\5\u00f2z\2\u024a\u0249\3\2\2\2\u024b\u024e\3\2\2\2\u024c") + buf.write("\u024a\3\2\2\2\u024c\u024d\3\2\2\2\u024d\u024f\3\2\2\2") + buf.write("\u024e\u024c\3\2\2\2\u024f\u0250\5\u01ea\u00f6\2\u0250") + buf.write("\35\3\2\2\2\u0251\u0252\5\4\3\2\u0252\u0253\5 \21\2\u0253") + buf.write("\u025b\3\2\2\2\u0254\u0255\5\16\b\2\u0255\u0256\5 \21") + buf.write("\2\u0256\u025b\3\2\2\2\u0257\u0258\5\34\17\2\u0258\u0259") + buf.write("\5 \21\2\u0259\u025b\3\2\2\2\u025a\u0251\3\2\2\2\u025a") + buf.write("\u0254\3\2\2\2\u025a\u0257\3\2\2\2\u025b\37\3\2\2\2\u025c") + buf.write("\u025e\5\u00f2z\2\u025d\u025c\3\2\2\2\u025e\u0261\3\2") + buf.write("\2\2\u025f\u025d\3\2\2\2\u025f\u0260\3\2\2\2\u0260\u0262") + buf.write("\3\2\2\2\u0261\u025f\3\2\2\2\u0262\u0263\7J\2\2\u0263") + buf.write("\u026e\7K\2\2\u0264\u0266\5\u00f2z\2\u0265\u0264\3\2\2") + buf.write("\2\u0266\u0269\3\2\2\2\u0267\u0265\3\2\2\2\u0267\u0268") + buf.write("\3\2\2\2\u0268\u026a\3\2\2\2\u0269\u0267\3\2\2\2\u026a") + buf.write("\u026b\7J\2\2\u026b\u026d\7K\2\2\u026c\u0267\3\2\2\2\u026d") + buf.write("\u0270\3\2\2\2\u026e\u026c\3\2\2\2\u026e\u026f\3\2\2\2") + buf.write("\u026f!\3\2\2\2\u0270\u026e\3\2\2\2\u0271\u0273\5$\23") + buf.write("\2\u0272\u0271\3\2\2\2\u0273\u0276\3\2\2\2\u0274\u0272") + buf.write("\3\2\2\2\u0274\u0275\3\2\2\2\u0275\u0277\3\2\2\2\u0276") + buf.write("\u0274\3\2\2\2\u0277\u0279\5\u01ea\u00f6\2\u0278\u027a") + buf.write("\5&\24\2\u0279\u0278\3\2\2\2\u0279\u027a\3\2\2\2\u027a") + buf.write("#\3\2\2\2\u027b\u027c\5\u00f2z\2\u027c%\3\2\2\2\u027d") + buf.write("\u027e\7\24\2\2\u027e\u0288\5\34\17\2\u027f\u0280\7\24") + buf.write("\2\2\u0280\u0284\5\16\b\2\u0281\u0283\5(\25\2\u0282\u0281") + buf.write("\3\2\2\2\u0283\u0286\3\2\2\2\u0284\u0282\3\2\2\2\u0284") + buf.write("\u0285\3\2\2\2\u0285\u0288\3\2\2\2\u0286\u0284\3\2\2\2") + buf.write("\u0287\u027d\3\2\2\2\u0287\u027f\3\2\2\2\u0288\'\3\2\2") + buf.write("\2\u0289\u028a\7f\2\2\u028a\u028b\5\26\f\2\u028b)\3\2") + buf.write("\2\2\u028c\u028d\7T\2\2\u028d\u028e\5,\27\2\u028e\u028f") + buf.write("\7S\2\2\u028f+\3\2\2\2\u0290\u0295\5.\30\2\u0291\u0292") + buf.write("\7M\2\2\u0292\u0294\5.\30\2\u0293\u0291\3\2\2\2\u0294") + buf.write("\u0297\3\2\2\2\u0295\u0293\3\2\2\2\u0295\u0296\3\2\2\2") + buf.write("\u0296-\3\2\2\2\u0297\u0295\3\2\2\2\u0298\u029b\5\f\7") + buf.write("\2\u0299\u029b\5\60\31\2\u029a\u0298\3\2\2\2\u029a\u0299") + buf.write("\3\2\2\2\u029b/\3\2\2\2\u029c\u029e\5\u00f2z\2\u029d\u029c") + buf.write("\3\2\2\2\u029e\u02a1\3\2\2\2\u029f\u029d\3\2\2\2\u029f") + buf.write("\u02a0\3\2\2\2\u02a0\u02a2\3\2\2\2\u02a1\u029f\3\2\2\2") + buf.write("\u02a2\u02a4\7W\2\2\u02a3\u02a5\5\62\32\2\u02a4\u02a3") + buf.write("\3\2\2\2\u02a4\u02a5\3\2\2\2\u02a5\61\3\2\2\2\u02a6\u02a7") + buf.write("\7\24\2\2\u02a7\u02ab\5\f\7\2\u02a8\u02a9\7\60\2\2\u02a9") + buf.write("\u02ab\5\f\7\2\u02aa\u02a6\3\2\2\2\u02aa\u02a8\3\2\2\2") + buf.write("\u02ab\63\3\2\2\2\u02ac\u02ad\b\33\1\2\u02ad\u02ae\5\u01ea") + buf.write("\u00f6\2\u02ae\u02b4\3\2\2\2\u02af\u02b0\f\3\2\2\u02b0") + buf.write("\u02b1\7N\2\2\u02b1\u02b3\5\u01ea\u00f6\2\u02b2\u02af") + buf.write("\3\2\2\2\u02b3\u02b6\3\2\2\2\u02b4\u02b2\3\2\2\2\u02b4") + buf.write("\u02b5\3\2\2\2\u02b5\65\3\2\2\2\u02b6\u02b4\3\2\2\2\u02b7") + buf.write("\u02b8\b\34\1\2\u02b8\u02b9\5\u01ea\u00f6\2\u02b9\u02bf") + buf.write("\3\2\2\2\u02ba\u02bb\f\3\2\2\u02bb\u02bc\7N\2\2\u02bc") + buf.write("\u02be\5\u01ea\u00f6\2\u02bd\u02ba\3\2\2\2\u02be\u02c1") + buf.write("\3\2\2\2\u02bf\u02bd\3\2\2\2\u02bf\u02c0\3\2\2\2\u02c0") + buf.write("\67\3\2\2\2\u02c1\u02bf\3\2\2\2\u02c2\u02c8\5\u01ea\u00f6") + buf.write("\2\u02c3\u02c4\5:\36\2\u02c4\u02c5\7N\2\2\u02c5\u02c6") + buf.write("\5\u01ea\u00f6\2\u02c6\u02c8\3\2\2\2\u02c7\u02c2\3\2\2") + buf.write("\2\u02c7\u02c3\3\2\2\2\u02c89\3\2\2\2\u02c9\u02ca\b\36") + buf.write("\1\2\u02ca\u02cb\5\u01ea\u00f6\2\u02cb\u02d1\3\2\2\2\u02cc") + buf.write("\u02cd\f\3\2\2\u02cd\u02ce\7N\2\2\u02ce\u02d0\5\u01ea") + buf.write("\u00f6\2\u02cf\u02cc\3\2\2\2\u02d0\u02d3\3\2\2\2\u02d1") + buf.write("\u02cf\3\2\2\2\u02d1\u02d2\3\2\2\2\u02d2;\3\2\2\2\u02d3") + buf.write("\u02d1\3\2\2\2\u02d4\u02da\5\u01ea\u00f6\2\u02d5\u02d6") + buf.write("\5@!\2\u02d6\u02d7\7N\2\2\u02d7\u02d8\5\u01ea\u00f6\2") + buf.write("\u02d8\u02da\3\2\2\2\u02d9\u02d4\3\2\2\2\u02d9\u02d5\3") + buf.write("\2\2\2\u02da=\3\2\2\2\u02db\u02dc\5\u01ea\u00f6\2\u02dc") + buf.write("?\3\2\2\2\u02dd\u02de\b!\1\2\u02de\u02df\5\u01ea\u00f6") + buf.write("\2\u02df\u02e5\3\2\2\2\u02e0\u02e1\f\3\2\2\u02e1\u02e2") + buf.write("\7N\2\2\u02e2\u02e4\5\u01ea\u00f6\2\u02e3\u02e0\3\2\2") + buf.write("\2\u02e4\u02e7\3\2\2\2\u02e5\u02e3\3\2\2\2\u02e5\u02e6") + buf.write("\3\2\2\2\u02e6A\3\2\2\2\u02e7\u02e5\3\2\2\2\u02e8\u02eb") + buf.write("\5D#\2\u02e9\u02eb\5F$\2\u02ea\u02e8\3\2\2\2\u02ea\u02e9") + buf.write("\3\2\2\2\u02ebC\3\2\2\2\u02ec\u02ee\5H%\2\u02ed\u02ec") + buf.write("\3\2\2\2\u02ed\u02ee\3\2\2\2\u02ee\u02f2\3\2\2\2\u02ef") + buf.write("\u02f1\5L\'\2\u02f0\u02ef\3\2\2\2\u02f1\u02f4\3\2\2\2") + buf.write("\u02f2\u02f0\3\2\2\2\u02f2\u02f3\3\2\2\2\u02f3\u02f8\3") + buf.write("\2\2\2\u02f4\u02f2\3\2\2\2\u02f5\u02f7\5V,\2\u02f6\u02f5") + buf.write("\3\2\2\2\u02f7\u02fa\3\2\2\2\u02f8\u02f6\3\2\2\2\u02f8") + buf.write("\u02f9\3\2\2\2\u02f9\u02fb\3\2\2\2\u02fa\u02f8\3\2\2\2") + buf.write("\u02fb\u02fc\7\2\2\3\u02fcE\3\2\2\2\u02fd\u02ff\5L\'\2") + buf.write("\u02fe\u02fd\3\2\2\2\u02ff\u0302\3\2\2\2\u0300\u02fe\3") + buf.write("\2\2\2\u0300\u0301\3\2\2\2\u0301\u0303\3\2\2\2\u0302\u0300") + buf.write("\3\2\2\2\u0303\u0304\5X-\2\u0304G\3\2\2\2\u0305\u0307") + buf.write("\5J&\2\u0306\u0305\3\2\2\2\u0307\u030a\3\2\2\2\u0308\u0306") + buf.write("\3\2\2\2\u0308\u0309\3\2\2\2\u0309\u030b\3\2\2\2\u030a") + buf.write("\u0308\3\2\2\2\u030b\u030c\7&\2\2\u030c\u030d\5\66\34") + buf.write("\2\u030d\u030e\7L\2\2\u030eI\3\2\2\2\u030f\u0310\5\u00f2") + buf.write("z\2\u0310K\3\2\2\2\u0311\u0316\5N(\2\u0312\u0316\5P)\2") + buf.write("\u0313\u0316\5R*\2\u0314\u0316\5T+\2\u0315\u0311\3\2\2") + buf.write("\2\u0315\u0312\3\2\2\2\u0315\u0313\3\2\2\2\u0315\u0314") + buf.write("\3\2\2\2\u0316M\3\2\2\2\u0317\u0318\7\34\2\2\u0318\u0319") + buf.write("\58\35\2\u0319\u031a\7L\2\2\u031aO\3\2\2\2\u031b\u031c") + buf.write("\7\34\2\2\u031c\u031d\5:\36\2\u031d\u031e\7N\2\2\u031e") + buf.write("\u031f\7d\2\2\u031f\u0320\7L\2\2\u0320Q\3\2\2\2\u0321") + buf.write("\u0322\7\34\2\2\u0322\u0323\7.\2\2\u0323\u0324\58\35\2") + buf.write("\u0324\u0325\7N\2\2\u0325\u0326\5\u01ea\u00f6\2\u0326") + buf.write("\u0327\7L\2\2\u0327S\3\2\2\2\u0328\u0329\7\34\2\2\u0329") + buf.write("\u032a\7.\2\2\u032a\u032b\58\35\2\u032b\u032c\7N\2\2\u032c") + buf.write("\u032d\7d\2\2\u032d\u032e\7L\2\2\u032eU\3\2\2\2\u032f") + buf.write("\u0333\5^\60\2\u0330\u0333\5\u00d2j\2\u0331\u0333\7L\2") + buf.write("\2\u0332\u032f\3\2\2\2\u0332\u0330\3\2\2\2\u0332\u0331") + buf.write("\3\2\2\2\u0333W\3\2\2\2\u0334\u0336\5\u00f2z\2\u0335\u0334") + buf.write("\3\2\2\2\u0336\u0339\3\2\2\2\u0337\u0335\3\2\2\2\u0337") + buf.write("\u0338\3\2\2\2\u0338\u033b\3\2\2\2\u0339\u0337\3\2\2\2") + buf.write("\u033a\u033c\7$\2\2\u033b\u033a\3\2\2\2\u033b\u033c\3") + buf.write("\2\2\2\u033c\u033d\3\2\2\2\u033d\u033e\7!\2\2\u033e\u033f") + buf.write("\5\64\33\2\u033f\u0343\7H\2\2\u0340\u0342\5Z.\2\u0341") + buf.write("\u0340\3\2\2\2\u0342\u0345\3\2\2\2\u0343\u0341\3\2\2\2") + buf.write("\u0343\u0344\3\2\2\2\u0344\u0346\3\2\2\2\u0345\u0343\3") + buf.write("\2\2\2\u0346\u0347\7I\2\2\u0347Y\3\2\2\2\u0348\u034c\7") + buf.write("+\2\2\u0349\u034b\5\\/\2\u034a\u0349\3\2\2\2\u034b\u034e") + buf.write("\3\2\2\2\u034c\u034a\3\2\2\2\u034c\u034d\3\2\2\2\u034d") + buf.write("\u034f\3\2\2\2\u034e\u034c\3\2\2\2\u034f\u0350\5\64\33") + buf.write("\2\u0350\u0351\7L\2\2\u0351\u0382\3\2\2\2\u0352\u0353") + buf.write("\7\23\2\2\u0353\u035d\5\66\34\2\u0354\u0355\7\66\2\2\u0355") + buf.write("\u035a\5\64\33\2\u0356\u0357\7M\2\2\u0357\u0359\5\64\33") + buf.write("\2\u0358\u0356\3\2\2\2\u0359\u035c\3\2\2\2\u035a\u0358") + buf.write("\3\2\2\2\u035a\u035b\3\2\2\2\u035b\u035e\3\2\2\2\u035c") + buf.write("\u035a\3\2\2\2\u035d\u0354\3\2\2\2\u035d\u035e\3\2\2\2") + buf.write("\u035e\u035f\3\2\2\2\u035f\u0360\7L\2\2\u0360\u0382\3") + buf.write("\2\2\2\u0361\u0362\7%\2\2\u0362\u036c\5\66\34\2\u0363") + buf.write("\u0364\7\66\2\2\u0364\u0369\5\64\33\2\u0365\u0366\7M\2") + buf.write("\2\u0366\u0368\5\64\33\2\u0367\u0365\3\2\2\2\u0368\u036b") + buf.write("\3\2\2\2\u0369\u0367\3\2\2\2\u0369\u036a\3\2\2\2\u036a") + buf.write("\u036d\3\2\2\2\u036b\u0369\3\2\2\2\u036c\u0363\3\2\2\2") + buf.write("\u036c\u036d\3\2\2\2\u036d\u036e\3\2\2\2\u036e\u036f\7") + buf.write("L\2\2\u036f\u0382\3\2\2\2\u0370\u0371\7:\2\2\u0371\u0372") + buf.write("\58\35\2\u0372\u0373\7L\2\2\u0373\u0382\3\2\2\2\u0374") + buf.write("\u0375\7)\2\2\u0375\u0376\58\35\2\u0376\u0377\7>\2\2\u0377") + buf.write("\u037c\58\35\2\u0378\u0379\7M\2\2\u0379\u037b\58\35\2") + buf.write("\u037a\u0378\3\2\2\2\u037b\u037e\3\2\2\2\u037c\u037a\3") + buf.write("\2\2\2\u037c\u037d\3\2\2\2\u037d\u037f\3\2\2\2\u037e\u037c") + buf.write("\3\2\2\2\u037f\u0380\7L\2\2\u0380\u0382\3\2\2\2\u0381") + buf.write("\u0348\3\2\2\2\u0381\u0352\3\2\2\2\u0381\u0361\3\2\2\2") + buf.write("\u0381\u0370\3\2\2\2\u0381\u0374\3\2\2\2\u0382[\3\2\2") + buf.write("\2\u0383\u0384\t\5\2\2\u0384]\3\2\2\2\u0385\u0388\5`\61") + buf.write("\2\u0386\u0388\5\u00c6d\2\u0387\u0385\3\2\2\2\u0387\u0386") + buf.write("\3\2\2\2\u0388_\3\2\2\2\u0389\u038b\5b\62\2\u038a\u0389") + buf.write("\3\2\2\2\u038b\u038e\3\2\2\2\u038c\u038a\3\2\2\2\u038c") + buf.write("\u038d\3\2\2\2\u038d\u038f\3\2\2\2\u038e\u038c\3\2\2\2") + buf.write("\u038f\u0390\7\13\2\2\u0390\u0392\5\u01ea\u00f6\2\u0391") + buf.write("\u0393\5d\63\2\u0392\u0391\3\2\2\2\u0392\u0393\3\2\2\2") + buf.write("\u0393\u0395\3\2\2\2\u0394\u0396\5h\65\2\u0395\u0394\3") + buf.write("\2\2\2\u0395\u0396\3\2\2\2\u0396\u0398\3\2\2\2\u0397\u0399") + buf.write("\5j\66\2\u0398\u0397\3\2\2\2\u0398\u0399\3\2\2\2\u0399") + buf.write("\u039a\3\2\2\2\u039a\u039b\5n8\2\u039ba\3\2\2\2\u039c") + buf.write("\u03a5\5\u00f2z\2\u039d\u03a5\7*\2\2\u039e\u03a5\7(\2") + buf.write("\2\u039f\u03a5\7\'\2\2\u03a0\u03a5\7\3\2\2\u03a1\u03a5") + buf.write("\7.\2\2\u03a2\u03a5\7\25\2\2\u03a3\u03a5\7/\2\2\u03a4") + buf.write("\u039c\3\2\2\2\u03a4\u039d\3\2\2\2\u03a4\u039e\3\2\2\2") + buf.write("\u03a4\u039f\3\2\2\2\u03a4\u03a0\3\2\2\2\u03a4\u03a1\3") + buf.write("\2\2\2\u03a4\u03a2\3\2\2\2\u03a4\u03a3\3\2\2\2\u03a5c") + buf.write("\3\2\2\2\u03a6\u03a7\7T\2\2\u03a7\u03a8\5f\64\2\u03a8") + buf.write("\u03a9\7S\2\2\u03a9e\3\2\2\2\u03aa\u03af\5\"\22\2\u03ab") + buf.write("\u03ac\7M\2\2\u03ac\u03ae\5\"\22\2\u03ad\u03ab\3\2\2\2") + buf.write("\u03ae\u03b1\3\2\2\2\u03af\u03ad\3\2\2\2\u03af\u03b0\3") + buf.write("\2\2\2\u03b0g\3\2\2\2\u03b1\u03af\3\2\2\2\u03b2\u03b3") + buf.write("\7\24\2\2\u03b3\u03b4\5\20\t\2\u03b4i\3\2\2\2\u03b5\u03b6") + buf.write("\7\33\2\2\u03b6\u03b7\5l\67\2\u03b7k\3\2\2\2\u03b8\u03bd") + buf.write("\5\26\f\2\u03b9\u03ba\7M\2\2\u03ba\u03bc\5\26\f\2\u03bb") + buf.write("\u03b9\3\2\2\2\u03bc\u03bf\3\2\2\2\u03bd\u03bb\3\2\2\2") + buf.write("\u03bd\u03be\3\2\2\2\u03bem\3\2\2\2\u03bf\u03bd\3\2\2") + buf.write("\2\u03c0\u03c4\7H\2\2\u03c1\u03c3\5p9\2\u03c2\u03c1\3") + buf.write("\2\2\2\u03c3\u03c6\3\2\2\2\u03c4\u03c2\3\2\2\2\u03c4\u03c5") + buf.write("\3\2\2\2\u03c5\u03c7\3\2\2\2\u03c6\u03c4\3\2\2\2\u03c7") + buf.write("\u03c8\7I\2\2\u03c8o\3\2\2\2\u03c9\u03ce\5r:\2\u03ca\u03ce") + buf.write("\5\u00b6\\\2\u03cb\u03ce\5\u00b8]\2\u03cc\u03ce\5\u00ba") + buf.write("^\2\u03cd\u03c9\3\2\2\2\u03cd\u03ca\3\2\2\2\u03cd\u03cb") + buf.write("\3\2\2\2\u03cd\u03cc\3\2\2\2\u03ceq\3\2\2\2\u03cf\u03d5") + buf.write("\5t;\2\u03d0\u03d5\5\u0098M\2\u03d1\u03d5\5^\60\2\u03d2") + buf.write("\u03d5\5\u00d2j\2\u03d3\u03d5\7L\2\2\u03d4\u03cf\3\2\2") + buf.write("\2\u03d4\u03d0\3\2\2\2\u03d4\u03d1\3\2\2\2\u03d4\u03d2") + buf.write("\3\2\2\2\u03d4\u03d3\3\2\2\2\u03d5s\3\2\2\2\u03d6\u03d8") + buf.write("\5v<\2\u03d7\u03d6\3\2\2\2\u03d8\u03db\3\2\2\2\u03d9\u03d7") + buf.write("\3\2\2\2\u03d9\u03da\3\2\2\2\u03da\u03dc\3\2\2\2\u03db") + buf.write("\u03d9\3\2\2\2\u03dc\u03dd\5\u0080A\2\u03dd\u03de\5x=") + buf.write("\2\u03de\u03df\7L\2\2\u03dfu\3\2\2\2\u03e0\u03e9\5\u00f2") + buf.write("z\2\u03e1\u03e9\7*\2\2\u03e2\u03e9\7(\2\2\u03e3\u03e9") + buf.write("\7\'\2\2\u03e4\u03e9\7.\2\2\u03e5\u03e9\7\25\2\2\u03e6") + buf.write("\u03e9\7\67\2\2\u03e7\u03e9\7<\2\2\u03e8\u03e0\3\2\2\2") + buf.write("\u03e8\u03e1\3\2\2\2\u03e8\u03e2\3\2\2\2\u03e8\u03e3\3") + buf.write("\2\2\2\u03e8\u03e4\3\2\2\2\u03e8\u03e5\3\2\2\2\u03e8\u03e6") + buf.write("\3\2\2\2\u03e8\u03e7\3\2\2\2\u03e9w\3\2\2\2\u03ea\u03ef") + buf.write("\5z>\2\u03eb\u03ec\7M\2\2\u03ec\u03ee\5z>\2\u03ed\u03eb") + buf.write("\3\2\2\2\u03ee\u03f1\3\2\2\2\u03ef\u03ed\3\2\2\2\u03ef") + buf.write("\u03f0\3\2\2\2\u03f0y\3\2\2\2\u03f1\u03ef\3\2\2\2\u03f2") + buf.write("\u03f5\5|?\2\u03f3\u03f4\7R\2\2\u03f4\u03f6\5~@\2\u03f5") + buf.write("\u03f3\3\2\2\2\u03f5\u03f6\3\2\2\2\u03f6{\3\2\2\2\u03f7") + buf.write("\u03f9\5\u01ea\u00f6\2\u03f8\u03fa\5 \21\2\u03f9\u03f8") + buf.write("\3\2\2\2\u03f9\u03fa\3\2\2\2\u03fa}\3\2\2\2\u03fb\u03fe") + buf.write("\5\u01ae\u00d8\2\u03fc\u03fe\5\u0104\u0083\2\u03fd\u03fb") + buf.write("\3\2\2\2\u03fd\u03fc\3\2\2\2\u03fe\177\3\2\2\2\u03ff\u0402") + buf.write("\5\u0082B\2\u0400\u0402\5\u0084C\2\u0401\u03ff\3\2\2\2") + buf.write("\u0401\u0400\3\2\2\2\u0402\u0081\3\2\2\2\u0403\u0406\5") + buf.write("\6\4\2\u0404\u0406\7\5\2\2\u0405\u0403\3\2\2\2\u0405\u0404") + buf.write("\3\2\2\2\u0406\u0083\3\2\2\2\u0407\u040b\5\u0086D\2\u0408") + buf.write("\u040b\5\u0094K\2\u0409\u040b\5\u0096L\2\u040a\u0407\3") + buf.write("\2\2\2\u040a\u0408\3\2\2\2\u040a\u0409\3\2\2\2\u040b\u0085") + buf.write("\3\2\2\2\u040c\u040f\5\u008cG\2\u040d\u040f\5\u0092J\2") + buf.write("\u040e\u040c\3\2\2\2\u040e\u040d\3\2\2\2\u040f\u0414\3") + buf.write("\2\2\2\u0410\u0413\5\u008aF\2\u0411\u0413\5\u0090I\2\u0412") + buf.write("\u0410\3\2\2\2\u0412\u0411\3\2\2\2\u0413\u0416\3\2\2\2") + buf.write("\u0414\u0412\3\2\2\2\u0414\u0415\3\2\2\2\u0415\u0087\3") + buf.write("\2\2\2\u0416\u0414\3\2\2\2\u0417\u0419\5\u01ea\u00f6\2") + buf.write("\u0418\u041a\5*\26\2\u0419\u0418\3\2\2\2\u0419\u041a\3") + buf.write("\2\2\2\u041a\u0428\3\2\2\2\u041b\u041c\5\u0086D\2\u041c") + buf.write("\u0420\7N\2\2\u041d\u041f\5\u00f2z\2\u041e\u041d\3\2\2") + buf.write("\2\u041f\u0422\3\2\2\2\u0420\u041e\3\2\2\2\u0420\u0421") + buf.write("\3\2\2\2\u0421\u0423\3\2\2\2\u0422\u0420\3\2\2\2\u0423") + buf.write("\u0425\5\u01ea\u00f6\2\u0424\u0426\5*\26\2\u0425\u0424") + buf.write("\3\2\2\2\u0425\u0426\3\2\2\2\u0426\u0428\3\2\2\2\u0427") + buf.write("\u0417\3\2\2\2\u0427\u041b\3\2\2\2\u0428\u0089\3\2\2\2") + buf.write("\u0429\u042d\7N\2\2\u042a\u042c\5\u00f2z\2\u042b\u042a") + buf.write("\3\2\2\2\u042c\u042f\3\2\2\2\u042d\u042b\3\2\2\2\u042d") + buf.write("\u042e\3\2\2\2\u042e\u0430\3\2\2\2\u042f\u042d\3\2\2\2") + buf.write("\u0430\u0432\5\u01ea\u00f6\2\u0431\u0433\5*\26\2\u0432") + buf.write("\u0431\3\2\2\2\u0432\u0433\3\2\2\2\u0433\u008b\3\2\2\2") + buf.write("\u0434\u0436\5\u01ea\u00f6\2\u0435\u0437\5*\26\2\u0436") + buf.write("\u0435\3\2\2\2\u0436\u0437\3\2\2\2\u0437\u008d\3\2\2\2") + buf.write("\u0438\u0439\5\u0088E\2\u0439\u008f\3\2\2\2\u043a\u043b") + buf.write("\5\u008aF\2\u043b\u0091\3\2\2\2\u043c\u043d\5\u008cG\2") + buf.write("\u043d\u0093\3\2\2\2\u043e\u043f\5\u01ea\u00f6\2\u043f") + buf.write("\u0095\3\2\2\2\u0440\u0441\5\u0082B\2\u0441\u0442\5 \21") + buf.write("\2\u0442\u044a\3\2\2\2\u0443\u0444\5\u0086D\2\u0444\u0445") + buf.write("\5 \21\2\u0445\u044a\3\2\2\2\u0446\u0447\5\u0094K\2\u0447") + buf.write("\u0448\5 \21\2\u0448\u044a\3\2\2\2\u0449\u0440\3\2\2\2") + buf.write("\u0449\u0443\3\2\2\2\u0449\u0446\3\2\2\2\u044a\u0097\3") + buf.write("\2\2\2\u044b\u044d\5\u009aN\2\u044c\u044b\3\2\2\2\u044d") + buf.write("\u0450\3\2\2\2\u044e\u044c\3\2\2\2\u044e\u044f\3\2\2\2") + buf.write("\u044f\u0451\3\2\2\2\u0450\u044e\3\2\2\2\u0451\u0452\5") + buf.write("\u009cO\2\u0452\u0453\5\u00b4[\2\u0453\u0099\3\2\2\2\u0454") + buf.write("\u045f\5\u00f2z\2\u0455\u045f\7*\2\2\u0456\u045f\7(\2") + buf.write("\2\u0457\u045f\7\'\2\2\u0458\u045f\7\3\2\2\u0459\u045f") + buf.write("\7.\2\2\u045a\u045f\7\25\2\2\u045b\u045f\7\62\2\2\u045c") + buf.write("\u045f\7\"\2\2\u045d\u045f\7/\2\2\u045e\u0454\3\2\2\2") + buf.write("\u045e\u0455\3\2\2\2\u045e\u0456\3\2\2\2\u045e\u0457\3") + buf.write("\2\2\2\u045e\u0458\3\2\2\2\u045e\u0459\3\2\2\2\u045e\u045a") + buf.write("\3\2\2\2\u045e\u045b\3\2\2\2\u045e\u045c\3\2\2\2\u045e") + buf.write("\u045d\3\2\2\2\u045f\u009b\3\2\2\2\u0460\u0461\5\u009e") + buf.write("P\2\u0461\u0463\5\u00a0Q\2\u0462\u0464\5\u00aeX\2\u0463") + buf.write("\u0462\3\2\2\2\u0463\u0464\3\2\2\2\u0464\u0472\3\2\2\2") + buf.write("\u0465\u0469\5d\63\2\u0466\u0468\5\u00f2z\2\u0467\u0466") + buf.write("\3\2\2\2\u0468\u046b\3\2\2\2\u0469\u0467\3\2\2\2\u0469") + buf.write("\u046a\3\2\2\2\u046a\u046c\3\2\2\2\u046b\u0469\3\2\2\2") + buf.write("\u046c\u046d\5\u009eP\2\u046d\u046f\5\u00a0Q\2\u046e\u0470") + buf.write("\5\u00aeX\2\u046f\u046e\3\2\2\2\u046f\u0470\3\2\2\2\u0470") + buf.write("\u0472\3\2\2\2\u0471\u0460\3\2\2\2\u0471\u0465\3\2\2\2") + buf.write("\u0472\u009d\3\2\2\2\u0473\u0476\5\u0080A\2\u0474\u0476") + buf.write("\7;\2\2\u0475\u0473\3\2\2\2\u0475\u0474\3\2\2\2\u0476") + buf.write("\u009f\3\2\2\2\u0477\u0478\5\u01ea\u00f6\2\u0478\u047a") + buf.write("\7F\2\2\u0479\u047b\5\u00a2R\2\u047a\u0479\3\2\2\2\u047a") + buf.write("\u047b\3\2\2\2\u047b\u047c\3\2\2\2\u047c\u047e\7G\2\2") + buf.write("\u047d\u047f\5 \21\2\u047e\u047d\3\2\2\2\u047e\u047f\3") + buf.write("\2\2\2\u047f\u00a1\3\2\2\2\u0480\u0481\5\u00a4S\2\u0481") + buf.write("\u0482\7M\2\2\u0482\u0483\5\u00aaV\2\u0483\u0487\3\2\2") + buf.write("\2\u0484\u0487\5\u00aaV\2\u0485\u0487\5\u00acW\2\u0486") + buf.write("\u0480\3\2\2\2\u0486\u0484\3\2\2\2\u0486\u0485\3\2\2\2") + buf.write("\u0487\u00a3\3\2\2\2\u0488\u048d\5\u00a6T\2\u0489\u048a") + buf.write("\7M\2\2\u048a\u048c\5\u00a6T\2\u048b\u0489\3\2\2\2\u048c") + buf.write("\u048f\3\2\2\2\u048d\u048b\3\2\2\2\u048d\u048e\3\2\2\2") + buf.write("\u048e\u0499\3\2\2\2\u048f\u048d\3\2\2\2\u0490\u0495\5") + buf.write("\u00acW\2\u0491\u0492\7M\2\2\u0492\u0494\5\u00a6T\2\u0493") + buf.write("\u0491\3\2\2\2\u0494\u0497\3\2\2\2\u0495\u0493\3\2\2\2") + buf.write("\u0495\u0496\3\2\2\2\u0496\u0499\3\2\2\2\u0497\u0495\3") + buf.write("\2\2\2\u0498\u0488\3\2\2\2\u0498\u0490\3\2\2\2\u0499\u00a5") + buf.write("\3\2\2\2\u049a\u049c\5\u00a8U\2\u049b\u049a\3\2\2\2\u049c") + buf.write("\u049f\3\2\2\2\u049d\u049b\3\2\2\2\u049d\u049e\3\2\2\2") + buf.write("\u049e\u04a0\3\2\2\2\u049f\u049d\3\2\2\2\u04a0\u04a1\5") + buf.write("\u0080A\2\u04a1\u04a2\5|?\2\u04a2\u00a7\3\2\2\2\u04a3") + buf.write("\u04a6\5\u00f2z\2\u04a4\u04a6\7\25\2\2\u04a5\u04a3\3\2") + buf.write("\2\2\u04a5\u04a4\3\2\2\2\u04a6\u00a9\3\2\2\2\u04a7\u04a9") + buf.write("\5\u00a8U\2\u04a8\u04a7\3\2\2\2\u04a9\u04ac\3\2\2\2\u04aa") + buf.write("\u04a8\3\2\2\2\u04aa\u04ab\3\2\2\2\u04ab\u04ad\3\2\2\2") + buf.write("\u04ac\u04aa\3\2\2\2\u04ad\u04b1\5\u0080A\2\u04ae\u04b0") + buf.write("\5\u00f2z\2\u04af\u04ae\3\2\2\2\u04b0\u04b3\3\2\2\2\u04b1") + buf.write("\u04af\3\2\2\2\u04b1\u04b2\3\2\2\2\u04b2\u04b4\3\2\2\2") + buf.write("\u04b3\u04b1\3\2\2\2\u04b4\u04b5\7O\2\2\u04b5\u04b6\5") + buf.write("|?\2\u04b6\u04b9\3\2\2\2\u04b7\u04b9\5\u00a6T\2\u04b8") + buf.write("\u04aa\3\2\2\2\u04b8\u04b7\3\2\2\2\u04b9\u00ab\3\2\2\2") + buf.write("\u04ba\u04bc\5\u00f2z\2\u04bb\u04ba\3\2\2\2\u04bc\u04bf") + buf.write("\3\2\2\2\u04bd\u04bb\3\2\2\2\u04bd\u04be\3\2\2\2\u04be") + buf.write("\u04c0\3\2\2\2\u04bf\u04bd\3\2\2\2\u04c0\u04c4\5\u0080") + buf.write("A\2\u04c1\u04c2\5\u01ea\u00f6\2\u04c2\u04c3\7N\2\2\u04c3") + buf.write("\u04c5\3\2\2\2\u04c4\u04c1\3\2\2\2\u04c4\u04c5\3\2\2\2") + buf.write("\u04c5\u04c6\3\2\2\2\u04c6\u04c7\7\63\2\2\u04c7\u00ad") + buf.write("\3\2\2\2\u04c8\u04c9\7\65\2\2\u04c9\u04ca\5\u00b0Y\2\u04ca") + buf.write("\u00af\3\2\2\2\u04cb\u04d0\5\u00b2Z\2\u04cc\u04cd\7M\2") + buf.write("\2\u04cd\u04cf\5\u00b2Z\2\u04ce\u04cc\3\2\2\2\u04cf\u04d2") + buf.write("\3\2\2\2\u04d0\u04ce\3\2\2\2\u04d0\u04d1\3\2\2\2\u04d1") + buf.write("\u00b1\3\2\2\2\u04d2\u04d0\3\2\2\2\u04d3\u04d6\5\20\t") + buf.write("\2\u04d4\u04d6\5\34\17\2\u04d5\u04d3\3\2\2\2\u04d5\u04d4") + buf.write("\3\2\2\2\u04d6\u00b3\3\2\2\2\u04d7\u04da\5\u0108\u0085") + buf.write("\2\u04d8\u04da\7L\2\2\u04d9\u04d7\3\2\2\2\u04d9\u04d8") + buf.write("\3\2\2\2\u04da\u00b5\3\2\2\2\u04db\u04dc\5\u0108\u0085") + buf.write("\2\u04dc\u00b7\3\2\2\2\u04dd\u04de\7.\2\2\u04de\u04df") + buf.write("\5\u0108\u0085\2\u04df\u00b9\3\2\2\2\u04e0\u04e2\5\u00bc") + buf.write("_\2\u04e1\u04e0\3\2\2\2\u04e2\u04e5\3\2\2\2\u04e3\u04e1") + buf.write("\3\2\2\2\u04e3\u04e4\3\2\2\2\u04e4\u04e6\3\2\2\2\u04e5") + buf.write("\u04e3\3\2\2\2\u04e6\u04e8\5\u00be`\2\u04e7\u04e9\5\u00ae") + buf.write("X\2\u04e8\u04e7\3\2\2\2\u04e8\u04e9\3\2\2\2\u04e9\u04ea") + buf.write("\3\2\2\2\u04ea\u04eb\5\u00c2b\2\u04eb\u00bb\3\2\2\2\u04ec") + buf.write("\u04f1\5\u00f2z\2\u04ed\u04f1\7*\2\2\u04ee\u04f1\7(\2") + buf.write("\2\u04ef\u04f1\7\'\2\2\u04f0\u04ec\3\2\2\2\u04f0\u04ed") + buf.write("\3\2\2\2\u04f0\u04ee\3\2\2\2\u04f0\u04ef\3\2\2\2\u04f1") + buf.write("\u00bd\3\2\2\2\u04f2\u04f4\5d\63\2\u04f3\u04f2\3\2\2\2") + buf.write("\u04f3\u04f4\3\2\2\2\u04f4\u04f5\3\2\2\2\u04f5\u04f6\5") + buf.write("\u00c0a\2\u04f6\u04f8\7F\2\2\u04f7\u04f9\5\u00a2R\2\u04f8") + buf.write("\u04f7\3\2\2\2\u04f8\u04f9\3\2\2\2\u04f9\u04fa\3\2\2\2") + buf.write("\u04fa\u04fb\7G\2\2\u04fb\u00bf\3\2\2\2\u04fc\u04fd\5") + buf.write("\u01ea\u00f6\2\u04fd\u00c1\3\2\2\2\u04fe\u0500\7H\2\2") + buf.write("\u04ff\u0501\5\u00c4c\2\u0500\u04ff\3\2\2\2\u0500\u0501") + buf.write("\3\2\2\2\u0501\u0503\3\2\2\2\u0502\u0504\5\u010a\u0086") + buf.write("\2\u0503\u0502\3\2\2\2\u0503\u0504\3\2\2\2\u0504\u0505") + buf.write("\3\2\2\2\u0505\u0506\7I\2\2\u0506\u00c3\3\2\2\2\u0507") + buf.write("\u0509\5*\26\2\u0508\u0507\3\2\2\2\u0508\u0509\3\2\2\2") + buf.write("\u0509\u050a\3\2\2\2\u050a\u050b\7\63\2\2\u050b\u050d") + buf.write("\7F\2\2\u050c\u050e\5\u019e\u00d0\2\u050d\u050c\3\2\2") + buf.write("\2\u050d\u050e\3\2\2\2\u050e\u050f\3\2\2\2\u050f\u0510") + buf.write("\7G\2\2\u0510\u0536\7L\2\2\u0511\u0513\5*\26\2\u0512\u0511") + buf.write("\3\2\2\2\u0512\u0513\3\2\2\2\u0513\u0514\3\2\2\2\u0514") + buf.write("\u0515\7\60\2\2\u0515\u0517\7F\2\2\u0516\u0518\5\u019e") + buf.write("\u00d0\2\u0517\u0516\3\2\2\2\u0517\u0518\3\2\2\2\u0518") + buf.write("\u0519\3\2\2\2\u0519\u051a\7G\2\2\u051a\u0536\7L\2\2\u051b") + buf.write("\u051c\5<\37\2\u051c\u051e\7N\2\2\u051d\u051f\5*\26\2") + buf.write("\u051e\u051d\3\2\2\2\u051e\u051f\3\2\2\2\u051f\u0520\3") + buf.write("\2\2\2\u0520\u0521\7\60\2\2\u0521\u0523\7F\2\2\u0522\u0524") + buf.write("\5\u019e\u00d0\2\u0523\u0522\3\2\2\2\u0523\u0524\3\2\2") + buf.write("\2\u0524\u0525\3\2\2\2\u0525\u0526\7G\2\2\u0526\u0527") + buf.write("\7L\2\2\u0527\u0536\3\2\2\2\u0528\u0529\5\u016e\u00b8") + buf.write("\2\u0529\u052b\7N\2\2\u052a\u052c\5*\26\2\u052b\u052a") + buf.write("\3\2\2\2\u052b\u052c\3\2\2\2\u052c\u052d\3\2\2\2\u052d") + buf.write("\u052e\7\60\2\2\u052e\u0530\7F\2\2\u052f\u0531\5\u019e") + buf.write("\u00d0\2\u0530\u052f\3\2\2\2\u0530\u0531\3\2\2\2\u0531") + buf.write("\u0532\3\2\2\2\u0532\u0533\7G\2\2\u0533\u0534\7L\2\2\u0534") + buf.write("\u0536\3\2\2\2\u0535\u0508\3\2\2\2\u0535\u0512\3\2\2\2") + buf.write("\u0535\u051b\3\2\2\2\u0535\u0528\3\2\2\2\u0536\u00c5\3") + buf.write("\2\2\2\u0537\u0539\5b\62\2\u0538\u0537\3\2\2\2\u0539\u053c") + buf.write("\3\2\2\2\u053a\u0538\3\2\2\2\u053a\u053b\3\2\2\2\u053b") + buf.write("\u053d\3\2\2\2\u053c\u053a\3\2\2\2\u053d\u053e\7\22\2") + buf.write("\2\u053e\u0540\5\u01ea\u00f6\2\u053f\u0541\5j\66\2\u0540") + buf.write("\u053f\3\2\2\2\u0540\u0541\3\2\2\2\u0541\u0542\3\2\2\2") + buf.write("\u0542\u0543\5\u00c8e\2\u0543\u00c7\3\2\2\2\u0544\u0546") + buf.write("\7H\2\2\u0545\u0547\5\u00caf\2\u0546\u0545\3\2\2\2\u0546") + buf.write("\u0547\3\2\2\2\u0547\u0549\3\2\2\2\u0548\u054a\7M\2\2") + buf.write("\u0549\u0548\3\2\2\2\u0549\u054a\3\2\2\2\u054a\u054c\3") + buf.write("\2\2\2\u054b\u054d\5\u00d0i\2\u054c\u054b\3\2\2\2\u054c") + buf.write("\u054d\3\2\2\2\u054d\u054e\3\2\2\2\u054e\u054f\7I\2\2") + buf.write("\u054f\u00c9\3\2\2\2\u0550\u0555\5\u00ccg\2\u0551\u0552") + buf.write("\7M\2\2\u0552\u0554\5\u00ccg\2\u0553\u0551\3\2\2\2\u0554") + buf.write("\u0557\3\2\2\2\u0555\u0553\3\2\2\2\u0555\u0556\3\2\2\2") + buf.write("\u0556\u00cb\3\2\2\2\u0557\u0555\3\2\2\2\u0558\u055a\5") + buf.write("\u00ceh\2\u0559\u0558\3\2\2\2\u055a\u055d\3\2\2\2\u055b") + buf.write("\u0559\3\2\2\2\u055b\u055c\3\2\2\2\u055c\u055e\3\2\2\2") + buf.write("\u055d\u055b\3\2\2\2\u055e\u0564\5\u01ea\u00f6\2\u055f") + buf.write("\u0561\7F\2\2\u0560\u0562\5\u019e\u00d0\2\u0561\u0560") + buf.write("\3\2\2\2\u0561\u0562\3\2\2\2\u0562\u0563\3\2\2\2\u0563") + buf.write("\u0565\7G\2\2\u0564\u055f\3\2\2\2\u0564\u0565\3\2\2\2") + buf.write("\u0565\u0567\3\2\2\2\u0566\u0568\5n8\2\u0567\u0566\3\2") + buf.write("\2\2\u0567\u0568\3\2\2\2\u0568\u00cd\3\2\2\2\u0569\u056a") + buf.write("\5\u00f2z\2\u056a\u00cf\3\2\2\2\u056b\u056f\7L\2\2\u056c") + buf.write("\u056e\5p9\2\u056d\u056c\3\2\2\2\u056e\u0571\3\2\2\2\u056f") + buf.write("\u056d\3\2\2\2\u056f\u0570\3\2\2\2\u0570\u00d1\3\2\2\2") + buf.write("\u0571\u056f\3\2\2\2\u0572\u0575\5\u00d4k\2\u0573\u0575") + buf.write("\5\u00e6t\2\u0574\u0572\3\2\2\2\u0574\u0573\3\2\2\2\u0575") + buf.write("\u00d3\3\2\2\2\u0576\u0578\5\u00d6l\2\u0577\u0576\3\2") + buf.write("\2\2\u0578\u057b\3\2\2\2\u0579\u0577\3\2\2\2\u0579\u057a") + buf.write("\3\2\2\2\u057a\u057c\3\2\2\2\u057b\u0579\3\2\2\2\u057c") + buf.write("\u057d\7\37\2\2\u057d\u057f\5\u01ea\u00f6\2\u057e\u0580") + buf.write("\5d\63\2\u057f\u057e\3\2\2\2\u057f\u0580\3\2\2\2\u0580") + buf.write("\u0582\3\2\2\2\u0581\u0583\5\u00d8m\2\u0582\u0581\3\2") + buf.write("\2\2\u0582\u0583\3\2\2\2\u0583\u0584\3\2\2\2\u0584\u0585") + buf.write("\5\u00dan\2\u0585\u00d5\3\2\2\2\u0586\u058e\5\u00f2z\2") + buf.write("\u0587\u058e\7*\2\2\u0588\u058e\7(\2\2\u0589\u058e\7\'") + buf.write("\2\2\u058a\u058e\7\3\2\2\u058b\u058e\7.\2\2\u058c\u058e") + buf.write("\7/\2\2\u058d\u0586\3\2\2\2\u058d\u0587\3\2\2\2\u058d") + buf.write("\u0588\3\2\2\2\u058d\u0589\3\2\2\2\u058d\u058a\3\2\2\2") + buf.write("\u058d\u058b\3\2\2\2\u058d\u058c\3\2\2\2\u058e\u00d7\3") + buf.write("\2\2\2\u058f\u0590\7\24\2\2\u0590\u0591\5l\67\2\u0591") + buf.write("\u00d9\3\2\2\2\u0592\u0596\7H\2\2\u0593\u0595\5\u00dc") + buf.write("o\2\u0594\u0593\3\2\2\2\u0595\u0598\3\2\2\2\u0596\u0594") + buf.write("\3\2\2\2\u0596\u0597\3\2\2\2\u0597\u0599\3\2\2\2\u0598") + buf.write("\u0596\3\2\2\2\u0599\u059a\7I\2\2\u059a\u00db\3\2\2\2") + buf.write("\u059b\u05a1\5\u00dep\2\u059c\u05a1\5\u00e2r\2\u059d\u05a1") + buf.write("\5^\60\2\u059e\u05a1\5\u00d2j\2\u059f\u05a1\7L\2\2\u05a0") + buf.write("\u059b\3\2\2\2\u05a0\u059c\3\2\2\2\u05a0\u059d\3\2\2\2") + buf.write("\u05a0\u059e\3\2\2\2\u05a0\u059f\3\2\2\2\u05a1\u00dd\3") + buf.write("\2\2\2\u05a2\u05a4\5\u00e0q\2\u05a3\u05a2\3\2\2\2\u05a4") + buf.write("\u05a7\3\2\2\2\u05a5\u05a3\3\2\2\2\u05a5\u05a6\3\2\2\2") + buf.write("\u05a6\u05a8\3\2\2\2\u05a7\u05a5\3\2\2\2\u05a8\u05a9\5") + buf.write("\u0080A\2\u05a9\u05aa\5x=\2\u05aa\u05ab\7L\2\2\u05ab\u00df") + buf.write("\3\2\2\2\u05ac\u05b1\5\u00f2z\2\u05ad\u05b1\7*\2\2\u05ae") + buf.write("\u05b1\7.\2\2\u05af\u05b1\7\25\2\2\u05b0\u05ac\3\2\2\2") + buf.write("\u05b0\u05ad\3\2\2\2\u05b0\u05ae\3\2\2\2\u05b0\u05af\3") + buf.write("\2\2\2\u05b1\u00e1\3\2\2\2\u05b2\u05b4\5\u00e4s\2\u05b3") + buf.write("\u05b2\3\2\2\2\u05b4\u05b7\3\2\2\2\u05b5\u05b3\3\2\2\2") + buf.write("\u05b5\u05b6\3\2\2\2\u05b6\u05b8\3\2\2\2\u05b7\u05b5\3") + buf.write("\2\2\2\u05b8\u05b9\5\u009cO\2\u05b9\u05ba\5\u00b4[\2\u05ba") + buf.write("\u00e3\3\2\2\2\u05bb\u05c3\5\u00f2z\2\u05bc\u05c3\7*\2") + buf.write("\2\u05bd\u05c3\7\'\2\2\u05be\u05c3\7\3\2\2\u05bf\u05c3") + buf.write("\7\16\2\2\u05c0\u05c3\7.\2\2\u05c1\u05c3\7/\2\2\u05c2") + buf.write("\u05bb\3\2\2\2\u05c2\u05bc\3\2\2\2\u05c2\u05bd\3\2\2\2") + buf.write("\u05c2\u05be\3\2\2\2\u05c2\u05bf\3\2\2\2\u05c2\u05c0\3") + buf.write("\2\2\2\u05c2\u05c1\3\2\2\2\u05c3\u00e5\3\2\2\2\u05c4\u05c6") + buf.write("\5\u00d6l\2\u05c5\u05c4\3\2\2\2\u05c6\u05c9\3\2\2\2\u05c7") + buf.write("\u05c5\3\2\2\2\u05c7\u05c8\3\2\2\2\u05c8\u05ca\3\2\2\2") + buf.write("\u05c9\u05c7\3\2\2\2\u05ca\u05cb\7P\2\2\u05cb\u05cc\7") + buf.write("\37\2\2\u05cc\u05cd\5\u01ea\u00f6\2\u05cd\u05ce\5\u00e8") + buf.write("u\2\u05ce\u00e7\3\2\2\2\u05cf\u05d3\7H\2\2\u05d0\u05d2") + buf.write("\5\u00eav\2\u05d1\u05d0\3\2\2\2\u05d2\u05d5\3\2\2\2\u05d3") + buf.write("\u05d1\3\2\2\2\u05d3\u05d4\3\2\2\2\u05d4\u05d6\3\2\2\2") + buf.write("\u05d5\u05d3\3\2\2\2\u05d6\u05d7\7I\2\2\u05d7\u00e9\3") + buf.write("\2\2\2\u05d8\u05de\5\u00ecw\2\u05d9\u05de\5\u00dep\2\u05da") + buf.write("\u05de\5^\60\2\u05db\u05de\5\u00d2j\2\u05dc\u05de\7L\2") + buf.write("\2\u05dd\u05d8\3\2\2\2\u05dd\u05d9\3\2\2\2\u05dd\u05da") + buf.write("\3\2\2\2\u05dd\u05db\3\2\2\2\u05dd\u05dc\3\2\2\2\u05de") + buf.write("\u00eb\3\2\2\2\u05df\u05e1\5\u00eex\2\u05e0\u05df\3\2") + buf.write("\2\2\u05e1\u05e4\3\2\2\2\u05e2\u05e0\3\2\2\2\u05e2\u05e3") + buf.write("\3\2\2\2\u05e3\u05e5\3\2\2\2\u05e4\u05e2\3\2\2\2\u05e5") + buf.write("\u05e6\5\u0080A\2\u05e6\u05e7\5\u01ea\u00f6\2\u05e7\u05e8") + buf.write("\7F\2\2\u05e8\u05ea\7G\2\2\u05e9\u05eb\5 \21\2\u05ea\u05e9") + buf.write("\3\2\2\2\u05ea\u05eb\3\2\2\2\u05eb\u05ed\3\2\2\2\u05ec") + buf.write("\u05ee\5\u00f0y\2\u05ed\u05ec\3\2\2\2\u05ed\u05ee\3\2") + buf.write("\2\2\u05ee\u05ef\3\2\2\2\u05ef\u05f0\7L\2\2\u05f0\u00ed") + buf.write("\3\2\2\2\u05f1\u05f5\5\u00f2z\2\u05f2\u05f5\7*\2\2\u05f3") + buf.write("\u05f5\7\3\2\2\u05f4\u05f1\3\2\2\2\u05f4\u05f2\3\2\2\2") + buf.write("\u05f4\u05f3\3\2\2\2\u05f5\u00ef\3\2\2\2\u05f6\u05f7\7") + buf.write("\16\2\2\u05f7\u05f8\5\u00fa~\2\u05f8\u00f1\3\2\2\2\u05f9") + buf.write("\u05fd\5\u00f4{\2\u05fa\u05fd\5\u0100\u0081\2\u05fb\u05fd") + buf.write("\5\u0102\u0082\2\u05fc\u05f9\3\2\2\2\u05fc\u05fa\3\2\2") + buf.write("\2\u05fc\u05fb\3\2\2\2\u05fd\u00f3\3\2\2\2\u05fe\u05ff") + buf.write("\7P\2\2\u05ff\u0600\58\35\2\u0600\u0602\7F\2\2\u0601\u0603") + buf.write("\5\u00f6|\2\u0602\u0601\3\2\2\2\u0602\u0603\3\2\2\2\u0603") + buf.write("\u0604\3\2\2\2\u0604\u0605\7G\2\2\u0605\u00f5\3\2\2\2") + buf.write("\u0606\u060b\5\u00f8}\2\u0607\u0608\7M\2\2\u0608\u060a") + buf.write("\5\u00f8}\2\u0609\u0607\3\2\2\2\u060a\u060d\3\2\2\2\u060b") + buf.write("\u0609\3\2\2\2\u060b\u060c\3\2\2\2\u060c\u00f7\3\2\2\2") + buf.write("\u060d\u060b\3\2\2\2\u060e\u060f\5\u01ea\u00f6\2\u060f") + buf.write("\u0610\7R\2\2\u0610\u0611\5\u00fa~\2\u0611\u00f9\3\2\2") + buf.write("\2\u0612\u0616\5\u01c0\u00e1\2\u0613\u0616\5\u00fc\177") + buf.write("\2\u0614\u0616\5\u00f2z\2\u0615\u0612\3\2\2\2\u0615\u0613") + buf.write("\3\2\2\2\u0615\u0614\3\2\2\2\u0616\u00fb\3\2\2\2\u0617") + buf.write("\u0619\7H\2\2\u0618\u061a\5\u00fe\u0080\2\u0619\u0618") + buf.write("\3\2\2\2\u0619\u061a\3\2\2\2\u061a\u061c\3\2\2\2\u061b") + buf.write("\u061d\7M\2\2\u061c\u061b\3\2\2\2\u061c\u061d\3\2\2\2") + buf.write("\u061d\u061e\3\2\2\2\u061e\u061f\7I\2\2\u061f\u00fd\3") + buf.write("\2\2\2\u0620\u0625\5\u00fa~\2\u0621\u0622\7M\2\2\u0622") + buf.write("\u0624\5\u00fa~\2\u0623\u0621\3\2\2\2\u0624\u0627\3\2") + buf.write("\2\2\u0625\u0623\3\2\2\2\u0625\u0626\3\2\2\2\u0626\u00ff") + buf.write("\3\2\2\2\u0627\u0625\3\2\2\2\u0628\u0629\7P\2\2\u0629") + buf.write("\u062a\58\35\2\u062a\u0101\3\2\2\2\u062b\u062c\7P\2\2") + buf.write("\u062c\u062d\58\35\2\u062d\u062e\7F\2\2\u062e\u062f\5") + buf.write("\u00fa~\2\u062f\u0630\7G\2\2\u0630\u0103\3\2\2\2\u0631") + buf.write("\u0633\7H\2\2\u0632\u0634\5\u0106\u0084\2\u0633\u0632") + buf.write("\3\2\2\2\u0633\u0634\3\2\2\2\u0634\u0636\3\2\2\2\u0635") + buf.write("\u0637\7M\2\2\u0636\u0635\3\2\2\2\u0636\u0637\3\2\2\2") + buf.write("\u0637\u0638\3\2\2\2\u0638\u0639\7I\2\2\u0639\u0105\3") + buf.write("\2\2\2\u063a\u063f\5~@\2\u063b\u063c\7M\2\2\u063c\u063e") + buf.write("\5~@\2\u063d\u063b\3\2\2\2\u063e\u0641\3\2\2\2\u063f\u063d") + buf.write("\3\2\2\2\u063f\u0640\3\2\2\2\u0640\u0107\3\2\2\2\u0641") + buf.write("\u063f\3\2\2\2\u0642\u0644\7H\2\2\u0643\u0645\5\u010a") + buf.write("\u0086\2\u0644\u0643\3\2\2\2\u0644\u0645\3\2\2\2\u0645") + buf.write("\u0646\3\2\2\2\u0646\u0647\7I\2\2\u0647\u0109\3\2\2\2") + buf.write("\u0648\u064a\5\u010c\u0087\2\u0649\u0648\3\2\2\2\u064a") + buf.write("\u064b\3\2\2\2\u064b\u0649\3\2\2\2\u064b\u064c\3\2\2\2") + buf.write("\u064c\u010b\3\2\2\2\u064d\u0651\5\u010e\u0088\2\u064e") + buf.write("\u0651\5^\60\2\u064f\u0651\5\u0112\u008a\2\u0650\u064d") + buf.write("\3\2\2\2\u0650\u064e\3\2\2\2\u0650\u064f\3\2\2\2\u0651") + buf.write("\u010d\3\2\2\2\u0652\u0653\5\u0110\u0089\2\u0653\u0654") + buf.write("\7L\2\2\u0654\u010f\3\2\2\2\u0655\u0657\5\u00a8U\2\u0656") + buf.write("\u0655\3\2\2\2\u0657\u065a\3\2\2\2\u0658\u0656\3\2\2\2") + buf.write("\u0658\u0659\3\2\2\2\u0659\u065b\3\2\2\2\u065a\u0658\3") + buf.write("\2\2\2\u065b\u065c\5\u0080A\2\u065c\u065d\5x=\2\u065d") + buf.write("\u0111\3\2\2\2\u065e\u0665\5\u0116\u008c\2\u065f\u0665") + buf.write("\5\u011a\u008e\2\u0660\u0665\5\u0122\u0092\2\u0661\u0665") + buf.write("\5\u0124\u0093\2\u0662\u0665\5\u0136\u009c\2\u0663\u0665") + buf.write("\5\u013c\u009f\2\u0664\u065e\3\2\2\2\u0664\u065f\3\2\2") + buf.write("\2\u0664\u0660\3\2\2\2\u0664\u0661\3\2\2\2\u0664\u0662") + buf.write("\3\2\2\2\u0664\u0663\3\2\2\2\u0665\u0113\3\2\2\2\u0666") + buf.write("\u066c\5\u0116\u008c\2\u0667\u066c\5\u011c\u008f\2\u0668") + buf.write("\u066c\5\u0126\u0094\2\u0669\u066c\5\u0138\u009d\2\u066a") + buf.write("\u066c\5\u013e\u00a0\2\u066b\u0666\3\2\2\2\u066b\u0667") + buf.write("\3\2\2\2\u066b\u0668\3\2\2\2\u066b\u0669\3\2\2\2\u066b") + buf.write("\u066a\3\2\2\2\u066c\u0115\3\2\2\2\u066d\u067a\5\u0108") + buf.write("\u0085\2\u066e\u067a\5\u0118\u008d\2\u066f\u067a\5\u011e") + buf.write("\u0090\2\u0670\u067a\5\u0128\u0095\2\u0671\u067a\5\u012a") + buf.write("\u0096\2\u0672\u067a\5\u013a\u009e\2\u0673\u067a\5\u014e") + buf.write("\u00a8\2\u0674\u067a\5\u0150\u00a9\2\u0675\u067a\5\u0152") + buf.write("\u00aa\2\u0676\u067a\5\u0156\u00ac\2\u0677\u067a\5\u0154") + buf.write("\u00ab\2\u0678\u067a\5\u0158\u00ad\2\u0679\u066d\3\2\2") + buf.write("\2\u0679\u066e\3\2\2\2\u0679\u066f\3\2\2\2\u0679\u0670") + buf.write("\3\2\2\2\u0679\u0671\3\2\2\2\u0679\u0672\3\2\2\2\u0679") + buf.write("\u0673\3\2\2\2\u0679\u0674\3\2\2\2\u0679\u0675\3\2\2\2") + buf.write("\u0679\u0676\3\2\2\2\u0679\u0677\3\2\2\2\u0679\u0678\3") + buf.write("\2\2\2\u067a\u0117\3\2\2\2\u067b\u067c\7L\2\2\u067c\u0119") + buf.write("\3\2\2\2\u067d\u067e\5\u01ea\u00f6\2\u067e\u067f\7X\2") + buf.write("\2\u067f\u0680\5\u0112\u008a\2\u0680\u011b\3\2\2\2\u0681") + buf.write("\u0682\5\u01ea\u00f6\2\u0682\u0683\7X\2\2\u0683\u0684") + buf.write("\5\u0114\u008b\2\u0684\u011d\3\2\2\2\u0685\u0686\5\u0120") + buf.write("\u0091\2\u0686\u0687\7L\2\2\u0687\u011f\3\2\2\2\u0688") + buf.write("\u0690\5\u01ba\u00de\2\u0689\u0690\5\u01d8\u00ed\2\u068a") + buf.write("\u0690\5\u01da\u00ee\2\u068b\u0690\5\u01e0\u00f1\2\u068c") + buf.write("\u0690\5\u01e4\u00f3\2\u068d\u0690\5\u0198\u00cd\2\u068e") + buf.write("\u0690\5\u0184\u00c3\2\u068f\u0688\3\2\2\2\u068f\u0689") + buf.write("\3\2\2\2\u068f\u068a\3\2\2\2\u068f\u068b\3\2\2\2\u068f") + buf.write("\u068c\3\2\2\2\u068f\u068d\3\2\2\2\u068f\u068e\3\2\2\2") + buf.write("\u0690\u0121\3\2\2\2\u0691\u0692\7\31\2\2\u0692\u0693") + buf.write("\7F\2\2\u0693\u0694\5\u01ae\u00d8\2\u0694\u0695\7G\2\2") + buf.write("\u0695\u0696\5\u0112\u008a\2\u0696\u0123\3\2\2\2\u0697") + buf.write("\u0698\7\31\2\2\u0698\u0699\7F\2\2\u0699\u069a\5\u01ae") + buf.write("\u00d8\2\u069a\u069b\7G\2\2\u069b\u069c\5\u0114\u008b") + buf.write("\2\u069c\u069d\7\21\2\2\u069d\u069e\5\u0112\u008a\2\u069e") + buf.write("\u0125\3\2\2\2\u069f\u06a0\7\31\2\2\u06a0\u06a1\7F\2\2") + buf.write("\u06a1\u06a2\5\u01ae\u00d8\2\u06a2\u06a3\7G\2\2\u06a3") + buf.write("\u06a4\5\u0114\u008b\2\u06a4\u06a5\7\21\2\2\u06a5\u06a6") + buf.write("\5\u0114\u008b\2\u06a6\u0127\3\2\2\2\u06a7\u06a8\7\4\2") + buf.write("\2\u06a8\u06a9\5\u01ae\u00d8\2\u06a9\u06aa\7L\2\2\u06aa") + buf.write("\u06b2\3\2\2\2\u06ab\u06ac\7\4\2\2\u06ac\u06ad\5\u01ae") + buf.write("\u00d8\2\u06ad\u06ae\7X\2\2\u06ae\u06af\5\u01ae\u00d8") + buf.write("\2\u06af\u06b0\7L\2\2\u06b0\u06b2\3\2\2\2\u06b1\u06a7") + buf.write("\3\2\2\2\u06b1\u06ab\3\2\2\2\u06b2\u0129\3\2\2\2\u06b3") + buf.write("\u06b4\7\61\2\2\u06b4\u06b5\7F\2\2\u06b5\u06b6\5\u01ae") + buf.write("\u00d8\2\u06b6\u06b7\7G\2\2\u06b7\u06b8\5\u012c\u0097") + buf.write("\2\u06b8\u012b\3\2\2\2\u06b9\u06bd\7H\2\2\u06ba\u06bc") + buf.write("\5\u012e\u0098\2\u06bb\u06ba\3\2\2\2\u06bc\u06bf\3\2\2") + buf.write("\2\u06bd\u06bb\3\2\2\2\u06bd\u06be\3\2\2\2\u06be\u06c3") + buf.write("\3\2\2\2\u06bf\u06bd\3\2\2\2\u06c0\u06c2\5\u0132\u009a") + buf.write("\2\u06c1\u06c0\3\2\2\2\u06c2\u06c5\3\2\2\2\u06c3\u06c1") + buf.write("\3\2\2\2\u06c3\u06c4\3\2\2\2\u06c4\u06c6\3\2\2\2\u06c5") + buf.write("\u06c3\3\2\2\2\u06c6\u06c7\7I\2\2\u06c7\u012d\3\2\2\2") + buf.write("\u06c8\u06c9\5\u0130\u0099\2\u06c9\u06ca\5\u010a\u0086") + buf.write("\2\u06ca\u012f\3\2\2\2\u06cb\u06cd\5\u0132\u009a\2\u06cc") + buf.write("\u06cb\3\2\2\2\u06cd\u06ce\3\2\2\2\u06ce\u06cc\3\2\2\2") + buf.write("\u06ce\u06cf\3\2\2\2\u06cf\u0131\3\2\2\2\u06d0\u06d1\7") + buf.write("\b\2\2\u06d1\u06d2\5\u01ac\u00d7\2\u06d2\u06d3\7X\2\2") + buf.write("\u06d3\u06db\3\2\2\2\u06d4\u06d5\7\b\2\2\u06d5\u06d6\5") + buf.write("\u0134\u009b\2\u06d6\u06d7\7X\2\2\u06d7\u06db\3\2\2\2") + buf.write("\u06d8\u06d9\7\16\2\2\u06d9\u06db\7X\2\2\u06da\u06d0\3") + buf.write("\2\2\2\u06da\u06d4\3\2\2\2\u06da\u06d8\3\2\2\2\u06db\u0133") + buf.write("\3\2\2\2\u06dc\u06dd\5\u01ea\u00f6\2\u06dd\u0135\3\2\2") + buf.write("\2\u06de\u06df\7=\2\2\u06df\u06e0\7F\2\2\u06e0\u06e1\5") + buf.write("\u01ae\u00d8\2\u06e1\u06e2\7G\2\2\u06e2\u06e3\5\u0112") + buf.write("\u008a\2\u06e3\u0137\3\2\2\2\u06e4\u06e5\7=\2\2\u06e5") + buf.write("\u06e6\7F\2\2\u06e6\u06e7\5\u01ae\u00d8\2\u06e7\u06e8") + buf.write("\7G\2\2\u06e8\u06e9\5\u0114\u008b\2\u06e9\u0139\3\2\2") + buf.write("\2\u06ea\u06eb\7\17\2\2\u06eb\u06ec\5\u0112\u008a\2\u06ec") + buf.write("\u06ed\7=\2\2\u06ed\u06ee\7F\2\2\u06ee\u06ef\5\u01ae\u00d8") + buf.write("\2\u06ef\u06f0\7G\2\2\u06f0\u06f1\7L\2\2\u06f1\u013b\3") + buf.write("\2\2\2\u06f2\u06f5\5\u0140\u00a1\2\u06f3\u06f5\5\u014a") + buf.write("\u00a6\2\u06f4\u06f2\3\2\2\2\u06f4\u06f3\3\2\2\2\u06f5") + buf.write("\u013d\3\2\2\2\u06f6\u06f9\5\u0142\u00a2\2\u06f7\u06f9") + buf.write("\5\u014c\u00a7\2\u06f8\u06f6\3\2\2\2\u06f8\u06f7\3\2\2") + buf.write("\2\u06f9\u013f\3\2\2\2\u06fa\u06fb\7\30\2\2\u06fb\u06fd") + buf.write("\7F\2\2\u06fc\u06fe\5\u0144\u00a3\2\u06fd\u06fc\3\2\2") + buf.write("\2\u06fd\u06fe\3\2\2\2\u06fe\u06ff\3\2\2\2\u06ff\u0701") + buf.write("\7L\2\2\u0700\u0702\5\u01ae\u00d8\2\u0701\u0700\3\2\2") + buf.write("\2\u0701\u0702\3\2\2\2\u0702\u0703\3\2\2\2\u0703\u0705") + buf.write("\7L\2\2\u0704\u0706\5\u0146\u00a4\2\u0705\u0704\3\2\2") + buf.write("\2\u0705\u0706\3\2\2\2\u0706\u0707\3\2\2\2\u0707\u0708") + buf.write("\7G\2\2\u0708\u0709\5\u0112\u008a\2\u0709\u0141\3\2\2") + buf.write("\2\u070a\u070b\7\30\2\2\u070b\u070d\7F\2\2\u070c\u070e") + buf.write("\5\u0144\u00a3\2\u070d\u070c\3\2\2\2\u070d\u070e\3\2\2") + buf.write("\2\u070e\u070f\3\2\2\2\u070f\u0711\7L\2\2\u0710\u0712") + buf.write("\5\u01ae\u00d8\2\u0711\u0710\3\2\2\2\u0711\u0712\3\2\2") + buf.write("\2\u0712\u0713\3\2\2\2\u0713\u0715\7L\2\2\u0714\u0716") + buf.write("\5\u0146\u00a4\2\u0715\u0714\3\2\2\2\u0715\u0716\3\2\2") + buf.write("\2\u0716\u0717\3\2\2\2\u0717\u0718\7G\2\2\u0718\u0719") + buf.write("\5\u0114\u008b\2\u0719\u0143\3\2\2\2\u071a\u071d\5\u0148") + buf.write("\u00a5\2\u071b\u071d\5\u0110\u0089\2\u071c\u071a\3\2\2") + buf.write("\2\u071c\u071b\3\2\2\2\u071d\u0145\3\2\2\2\u071e\u071f") + buf.write("\5\u0148\u00a5\2\u071f\u0147\3\2\2\2\u0720\u0725\5\u0120") + buf.write("\u0091\2\u0721\u0722\7M\2\2\u0722\u0724\5\u0120\u0091") + buf.write("\2\u0723\u0721\3\2\2\2\u0724\u0727\3\2\2\2\u0725\u0723") + buf.write("\3\2\2\2\u0725\u0726\3\2\2\2\u0726\u0149\3\2\2\2\u0727") + buf.write("\u0725\3\2\2\2\u0728\u0729\7\30\2\2\u0729\u072d\7F\2\2") + buf.write("\u072a\u072c\5\u00a8U\2\u072b\u072a\3\2\2\2\u072c\u072f") + buf.write("\3\2\2\2\u072d\u072b\3\2\2\2\u072d\u072e\3\2\2\2\u072e") + buf.write("\u0730\3\2\2\2\u072f\u072d\3\2\2\2\u0730\u0731\5\u0080") + buf.write("A\2\u0731\u0732\5|?\2\u0732\u0733\7X\2\2\u0733\u0734\5") + buf.write("\u01ae\u00d8\2\u0734\u0735\7G\2\2\u0735\u0736\5\u0112") + buf.write("\u008a\2\u0736\u014b\3\2\2\2\u0737\u0738\7\30\2\2\u0738") + buf.write("\u073c\7F\2\2\u0739\u073b\5\u00a8U\2\u073a\u0739\3\2\2") + buf.write("\2\u073b\u073e\3\2\2\2\u073c\u073a\3\2\2\2\u073c\u073d") + buf.write("\3\2\2\2\u073d\u073f\3\2\2\2\u073e\u073c\3\2\2\2\u073f") + buf.write("\u0740\5\u0080A\2\u0740\u0741\5|?\2\u0741\u0742\7X\2\2") + buf.write("\u0742\u0743\5\u01ae\u00d8\2\u0743\u0744\7G\2\2\u0744") + buf.write("\u0745\5\u0114\u008b\2\u0745\u014d\3\2\2\2\u0746\u0748") + buf.write("\7\6\2\2\u0747\u0749\5\u01ea\u00f6\2\u0748\u0747\3\2\2") + buf.write("\2\u0748\u0749\3\2\2\2\u0749\u074a\3\2\2\2\u074a\u074b") + buf.write("\7L\2\2\u074b\u014f\3\2\2\2\u074c\u074e\7\r\2\2\u074d") + buf.write("\u074f\5\u01ea\u00f6\2\u074e\u074d\3\2\2\2\u074e\u074f") + buf.write("\3\2\2\2\u074f\u0750\3\2\2\2\u0750\u0751\7L\2\2\u0751") + buf.write("\u0151\3\2\2\2\u0752\u0754\7,\2\2\u0753\u0755\5\u01ae") + buf.write("\u00d8\2\u0754\u0753\3\2\2\2\u0754\u0755\3\2\2\2\u0755") + buf.write("\u0756\3\2\2\2\u0756\u0757\7L\2\2\u0757\u0153\3\2\2\2") + buf.write("\u0758\u0759\7\64\2\2\u0759\u075a\5\u01ae\u00d8\2\u075a") + buf.write("\u075b\7L\2\2\u075b\u0155\3\2\2\2\u075c\u075d\7\62\2\2") + buf.write("\u075d\u075e\7F\2\2\u075e\u075f\5\u01ae\u00d8\2\u075f") + buf.write("\u0760\7G\2\2\u0760\u0761\5\u0108\u0085\2\u0761\u0157") + buf.write("\3\2\2\2\u0762\u0763\79\2\2\u0763\u0764\5\u0108\u0085") + buf.write("\2\u0764\u0765\5\u015a\u00ae\2\u0765\u076f\3\2\2\2\u0766") + buf.write("\u0767\79\2\2\u0767\u0769\5\u0108\u0085\2\u0768\u076a") + buf.write("\5\u015a\u00ae\2\u0769\u0768\3\2\2\2\u0769\u076a\3\2\2") + buf.write("\2\u076a\u076b\3\2\2\2\u076b\u076c\5\u0162\u00b2\2\u076c") + buf.write("\u076f\3\2\2\2\u076d\u076f\5\u0164\u00b3\2\u076e\u0762") + buf.write("\3\2\2\2\u076e\u0766\3\2\2\2\u076e\u076d\3\2\2\2\u076f") + buf.write("\u0159\3\2\2\2\u0770\u0772\5\u015c\u00af\2\u0771\u0770") + buf.write("\3\2\2\2\u0772\u0773\3\2\2\2\u0773\u0771\3\2\2\2\u0773") + buf.write("\u0774\3\2\2\2\u0774\u015b\3\2\2\2\u0775\u0776\7\t\2\2") + buf.write("\u0776\u0777\7F\2\2\u0777\u0778\5\u015e\u00b0\2\u0778") + buf.write("\u0779\7G\2\2\u0779\u077a\5\u0108\u0085\2\u077a\u015d") + buf.write("\3\2\2\2\u077b\u077d\5\u00a8U\2\u077c\u077b\3\2\2\2\u077d") + buf.write("\u0780\3\2\2\2\u077e\u077c\3\2\2\2\u077e\u077f\3\2\2\2") + buf.write("\u077f\u0781\3\2\2\2\u0780\u077e\3\2\2\2\u0781\u0782\5") + buf.write("\u0160\u00b1\2\u0782\u0783\5|?\2\u0783\u015f\3\2\2\2\u0784") + buf.write("\u0789\5\u0088E\2\u0785\u0786\7g\2\2\u0786\u0788\5\20") + buf.write("\t\2\u0787\u0785\3\2\2\2\u0788\u078b\3\2\2\2\u0789\u0787") + buf.write("\3\2\2\2\u0789\u078a\3\2\2\2\u078a\u0161\3\2\2\2\u078b") + buf.write("\u0789\3\2\2\2\u078c\u078d\7\26\2\2\u078d\u078e\5\u0108") + buf.write("\u0085\2\u078e\u0163\3\2\2\2\u078f\u0790\79\2\2\u0790") + buf.write("\u0791\5\u0166\u00b4\2\u0791\u0793\5\u0108\u0085\2\u0792") + buf.write("\u0794\5\u015a\u00ae\2\u0793\u0792\3\2\2\2\u0793\u0794") + buf.write("\3\2\2\2\u0794\u0796\3\2\2\2\u0795\u0797\5\u0162\u00b2") + buf.write("\2\u0796\u0795\3\2\2\2\u0796\u0797\3\2\2\2\u0797\u0165") + buf.write("\3\2\2\2\u0798\u0799\7F\2\2\u0799\u079b\5\u0168\u00b5") + buf.write("\2\u079a\u079c\7L\2\2\u079b\u079a\3\2\2\2\u079b\u079c") + buf.write("\3\2\2\2\u079c\u079d\3\2\2\2\u079d\u079e\7G\2\2\u079e") + buf.write("\u0167\3\2\2\2\u079f\u07a4\5\u016a\u00b6\2\u07a0\u07a1") + buf.write("\7L\2\2\u07a1\u07a3\5\u016a\u00b6\2\u07a2\u07a0\3\2\2") + buf.write("\2\u07a3\u07a6\3\2\2\2\u07a4\u07a2\3\2\2\2\u07a4\u07a5") + buf.write("\3\2\2\2\u07a5\u0169\3\2\2\2\u07a6\u07a4\3\2\2\2\u07a7") + buf.write("\u07a9\5\u00a8U\2\u07a8\u07a7\3\2\2\2\u07a9\u07ac\3\2") + buf.write("\2\2\u07aa\u07a8\3\2\2\2\u07aa\u07ab\3\2\2\2\u07ab\u07ad") + buf.write("\3\2\2\2\u07ac\u07aa\3\2\2\2\u07ad\u07ae\5\u0080A\2\u07ae") + buf.write("\u07af\5|?\2\u07af\u07b0\7R\2\2\u07b0\u07b1\5\u01ae\u00d8") + buf.write("\2\u07b1\u07b4\3\2\2\2\u07b2\u07b4\5\u016c\u00b7\2\u07b3") + buf.write("\u07aa\3\2\2\2\u07b3\u07b2\3\2\2\2\u07b4\u016b\3\2\2\2") + buf.write("\u07b5\u07b8\5<\37\2\u07b6\u07b8\5\u018c\u00c7\2\u07b7") + buf.write("\u07b5\3\2\2\2\u07b7\u07b6\3\2\2\2\u07b8\u016d\3\2\2\2") + buf.write("\u07b9\u07bc\5\u017c\u00bf\2\u07ba\u07bc\5\u01a6\u00d4") + buf.write("\2\u07bb\u07b9\3\2\2\2\u07bb\u07ba\3\2\2\2\u07bc\u07c0") + buf.write("\3\2\2\2\u07bd\u07bf\5\u0176\u00bc\2\u07be\u07bd\3\2\2") + buf.write("\2\u07bf\u07c2\3\2\2\2\u07c0\u07be\3\2\2\2\u07c0\u07c1") + buf.write("\3\2\2\2\u07c1\u016f\3\2\2\2\u07c2\u07c0\3\2\2\2\u07c3") + buf.write("\u07d4\5\2\2\2\u07c4\u07d4\5\u0182\u00c2\2\u07c5\u07d4") + buf.write("\7\63\2\2\u07c6\u07c7\58\35\2\u07c7\u07c8\7N\2\2\u07c8") + buf.write("\u07c9\7\63\2\2\u07c9\u07d4\3\2\2\2\u07ca\u07cb\7F\2\2") + buf.write("\u07cb\u07cc\5\u01ae\u00d8\2\u07cc\u07cd\7G\2\2\u07cd") + buf.write("\u07d4\3\2\2\2\u07ce\u07d4\5\u0184\u00c3\2\u07cf\u07d4") + buf.write("\5\u018c\u00c7\2\u07d0\u07d4\5\u0192\u00ca\2\u07d1\u07d4") + buf.write("\5\u0198\u00cd\2\u07d2\u07d4\5\u01a0\u00d1\2\u07d3\u07c3") + buf.write("\3\2\2\2\u07d3\u07c4\3\2\2\2\u07d3\u07c5\3\2\2\2\u07d3") + buf.write("\u07c6\3\2\2\2\u07d3\u07ca\3\2\2\2\u07d3\u07ce\3\2\2\2") + buf.write("\u07d3\u07cf\3\2\2\2\u07d3\u07d0\3\2\2\2\u07d3\u07d1\3") + buf.write("\2\2\2\u07d3\u07d2\3\2\2\2\u07d4\u0171\3\2\2\2\u07d5\u07d6") + buf.write("\3\2\2\2\u07d6\u0173\3\2\2\2\u07d7\u07f4\5\2\2\2\u07d8") + buf.write("\u07dd\58\35\2\u07d9\u07da\7J\2\2\u07da\u07dc\7K\2\2\u07db") + buf.write("\u07d9\3\2\2\2\u07dc\u07df\3\2\2\2\u07dd\u07db\3\2\2\2") + buf.write("\u07dd\u07de\3\2\2\2\u07de\u07e0\3\2\2\2\u07df\u07dd\3") + buf.write("\2\2\2\u07e0\u07e1\7N\2\2\u07e1\u07e2\7\13\2\2\u07e2\u07f4") + buf.write("\3\2\2\2\u07e3\u07e4\7;\2\2\u07e4\u07e5\7N\2\2\u07e5\u07f4") + buf.write("\7\13\2\2\u07e6\u07f4\7\63\2\2\u07e7\u07e8\58\35\2\u07e8") + buf.write("\u07e9\7N\2\2\u07e9\u07ea\7\63\2\2\u07ea\u07f4\3\2\2\2") + buf.write("\u07eb\u07ec\7F\2\2\u07ec\u07ed\5\u01ae\u00d8\2\u07ed") + buf.write("\u07ee\7G\2\2\u07ee\u07f4\3\2\2\2\u07ef\u07f4\5\u0184") + buf.write("\u00c3\2\u07f0\u07f4\5\u018c\u00c7\2\u07f1\u07f4\5\u0198") + buf.write("\u00cd\2\u07f2\u07f4\5\u01a0\u00d1\2\u07f3\u07d7\3\2\2") + buf.write("\2\u07f3\u07d8\3\2\2\2\u07f3\u07e3\3\2\2\2\u07f3\u07e6") + buf.write("\3\2\2\2\u07f3\u07e7\3\2\2\2\u07f3\u07eb\3\2\2\2\u07f3") + buf.write("\u07ef\3\2\2\2\u07f3\u07f0\3\2\2\2\u07f3\u07f1\3\2\2\2") + buf.write("\u07f3\u07f2\3\2\2\2\u07f4\u0175\3\2\2\2\u07f5\u07fb\5") + buf.write("\u0186\u00c4\2\u07f6\u07fb\5\u018e\u00c8\2\u07f7\u07fb") + buf.write("\5\u0194\u00cb\2\u07f8\u07fb\5\u019a\u00ce\2\u07f9\u07fb") + buf.write("\5\u01a2\u00d2\2\u07fa\u07f5\3\2\2\2\u07fa\u07f6\3\2\2") + buf.write("\2\u07fa\u07f7\3\2\2\2\u07fa\u07f8\3\2\2\2\u07fa\u07f9") + buf.write("\3\2\2\2\u07fb\u0177\3\2\2\2\u07fc\u07fd\3\2\2\2\u07fd") + buf.write("\u0179\3\2\2\2\u07fe\u0803\5\u0186\u00c4\2\u07ff\u0803") + buf.write("\5\u018e\u00c8\2\u0800\u0803\5\u019a\u00ce\2\u0801\u0803") + buf.write("\5\u01a2\u00d2\2\u0802\u07fe\3\2\2\2\u0802\u07ff\3\2\2") + buf.write("\2\u0802\u0800\3\2\2\2\u0802\u0801\3\2\2\2\u0803\u017b") + buf.write("\3\2\2\2\u0804\u082d\5\2\2\2\u0805\u080a\58\35\2\u0806") + buf.write("\u0807\7J\2\2\u0807\u0809\7K\2\2\u0808\u0806\3\2\2\2\u0809") + buf.write("\u080c\3\2\2\2\u080a\u0808\3\2\2\2\u080a\u080b\3\2\2\2") + buf.write("\u080b\u080d\3\2\2\2\u080c\u080a\3\2\2\2\u080d\u080e\7") + buf.write("N\2\2\u080e\u080f\7\13\2\2\u080f\u082d\3\2\2\2\u0810\u0815") + buf.write("\5\u0082B\2\u0811\u0812\7J\2\2\u0812\u0814\7K\2\2\u0813") + buf.write("\u0811\3\2\2\2\u0814\u0817\3\2\2\2\u0815\u0813\3\2\2\2") + buf.write("\u0815\u0816\3\2\2\2\u0816\u0818\3\2\2\2\u0817\u0815\3") + buf.write("\2\2\2\u0818\u0819\7N\2\2\u0819\u081a\7\13\2\2\u081a\u082d") + buf.write("\3\2\2\2\u081b\u081c\7;\2\2\u081c\u081d\7N\2\2\u081d\u082d") + buf.write("\7\13\2\2\u081e\u082d\7\63\2\2\u081f\u0820\58\35\2\u0820") + buf.write("\u0821\7N\2\2\u0821\u0822\7\63\2\2\u0822\u082d\3\2\2\2") + buf.write("\u0823\u0824\7F\2\2\u0824\u0825\5\u01ae\u00d8\2\u0825") + buf.write("\u0826\7G\2\2\u0826\u082d\3\2\2\2\u0827\u082d\5\u0188") + buf.write("\u00c5\2\u0828\u082d\5\u0190\u00c9\2\u0829\u082d\5\u0196") + buf.write("\u00cc\2\u082a\u082d\5\u019c\u00cf\2\u082b\u082d\5\u01a4") + buf.write("\u00d3\2\u082c\u0804\3\2\2\2\u082c\u0805\3\2\2\2\u082c") + buf.write("\u0810\3\2\2\2\u082c\u081b\3\2\2\2\u082c\u081e\3\2\2\2") + buf.write("\u082c\u081f\3\2\2\2\u082c\u0823\3\2\2\2\u082c\u0827\3") + buf.write("\2\2\2\u082c\u0828\3\2\2\2\u082c\u0829\3\2\2\2\u082c\u082a") + buf.write("\3\2\2\2\u082c\u082b\3\2\2\2\u082d\u017d\3\2\2\2\u082e") + buf.write("\u082f\3\2\2\2\u082f\u017f\3\2\2\2\u0830\u0858\5\2\2\2") + buf.write("\u0831\u0836\58\35\2\u0832\u0833\7J\2\2\u0833\u0835\7") + buf.write("K\2\2\u0834\u0832\3\2\2\2\u0835\u0838\3\2\2\2\u0836\u0834") + buf.write("\3\2\2\2\u0836\u0837\3\2\2\2\u0837\u0839\3\2\2\2\u0838") + buf.write("\u0836\3\2\2\2\u0839\u083a\7N\2\2\u083a\u083b\7\13\2\2") + buf.write("\u083b\u0858\3\2\2\2\u083c\u0841\5\u0082B\2\u083d\u083e") + buf.write("\7J\2\2\u083e\u0840\7K\2\2\u083f\u083d\3\2\2\2\u0840\u0843") + buf.write("\3\2\2\2\u0841\u083f\3\2\2\2\u0841\u0842\3\2\2\2\u0842") + buf.write("\u0844\3\2\2\2\u0843\u0841\3\2\2\2\u0844\u0845\7N\2\2") + buf.write("\u0845\u0846\7\13\2\2\u0846\u0858\3\2\2\2\u0847\u0848") + buf.write("\7;\2\2\u0848\u0849\7N\2\2\u0849\u0858\7\13\2\2\u084a") + buf.write("\u0858\7\63\2\2\u084b\u084c\58\35\2\u084c\u084d\7N\2\2") + buf.write("\u084d\u084e\7\63\2\2\u084e\u0858\3\2\2\2\u084f\u0850") + buf.write("\7F\2\2\u0850\u0851\5\u01ae\u00d8\2\u0851\u0852\7G\2\2") + buf.write("\u0852\u0858\3\2\2\2\u0853\u0858\5\u0188\u00c5\2\u0854") + buf.write("\u0858\5\u0190\u00c9\2\u0855\u0858\5\u019c\u00cf\2\u0856") + buf.write("\u0858\5\u01a4\u00d3\2\u0857\u0830\3\2\2\2\u0857\u0831") + buf.write("\3\2\2\2\u0857\u083c\3\2\2\2\u0857\u0847\3\2\2\2\u0857") + buf.write("\u084a\3\2\2\2\u0857\u084b\3\2\2\2\u0857\u084f\3\2\2\2") + buf.write("\u0857\u0853\3\2\2\2\u0857\u0854\3\2\2\2\u0857\u0855\3") + buf.write("\2\2\2\u0857\u0856\3\2\2\2\u0858\u0181\3\2\2\2\u0859\u085d") + buf.write("\58\35\2\u085a\u085d\5\6\4\2\u085b\u085d\7\5\2\2\u085c") + buf.write("\u0859\3\2\2\2\u085c\u085a\3\2\2\2\u085c\u085b\3\2\2\2") + buf.write("\u085d\u0862\3\2\2\2\u085e\u085f\7J\2\2\u085f\u0861\7") + buf.write("K\2\2\u0860\u085e\3\2\2\2\u0861\u0864\3\2\2\2\u0862\u0860") + buf.write("\3\2\2\2\u0862\u0863\3\2\2\2\u0863\u0865\3\2\2\2\u0864") + buf.write("\u0862\3\2\2\2\u0865\u0866\7N\2\2\u0866\u086b\7\13\2\2") + buf.write("\u0867\u0868\7;\2\2\u0868\u0869\7N\2\2\u0869\u086b\7\13") + buf.write("\2\2\u086a\u085c\3\2\2\2\u086a\u0867\3\2\2\2\u086b\u0183") + buf.write("\3\2\2\2\u086c\u086e\7#\2\2\u086d\u086f\5*\26\2\u086e") + buf.write("\u086d\3\2\2\2\u086e\u086f\3\2\2\2\u086f\u0873\3\2\2\2") + buf.write("\u0870\u0872\5\u00f2z\2\u0871\u0870\3\2\2\2\u0872\u0875") + buf.write("\3\2\2\2\u0873\u0871\3\2\2\2\u0873\u0874\3\2\2\2\u0874") + buf.write("\u0876\3\2\2\2\u0875\u0873\3\2\2\2\u0876\u0881\5\u01ea") + buf.write("\u00f6\2\u0877\u087b\7N\2\2\u0878\u087a\5\u00f2z\2\u0879") + buf.write("\u0878\3\2\2\2\u087a\u087d\3\2\2\2\u087b\u0879\3\2\2\2") + buf.write("\u087b\u087c\3\2\2\2\u087c\u087e\3\2\2\2\u087d\u087b\3") + buf.write("\2\2\2\u087e\u0880\5\u01ea\u00f6\2\u087f\u0877\3\2\2\2") + buf.write("\u0880\u0883\3\2\2\2\u0881\u087f\3\2\2\2\u0881\u0882\3") + buf.write("\2\2\2\u0882\u0885\3\2\2\2\u0883\u0881\3\2\2\2\u0884\u0886") + buf.write("\5\u018a\u00c6\2\u0885\u0884\3\2\2\2\u0885\u0886\3\2\2") + buf.write("\2\u0886\u0887\3\2\2\2\u0887\u0889\7F\2\2\u0888\u088a") + buf.write("\5\u019e\u00d0\2\u0889\u0888\3\2\2\2\u0889\u088a\3\2\2") + buf.write("\2\u088a\u088b\3\2\2\2\u088b\u088d\7G\2\2\u088c\u088e") + buf.write("\5n8\2\u088d\u088c\3\2\2\2\u088d\u088e\3\2\2\2\u088e\u08c0") + buf.write("\3\2\2\2\u088f\u0890\5<\37\2\u0890\u0891\7N\2\2\u0891") + buf.write("\u0893\7#\2\2\u0892\u0894\5*\26\2\u0893\u0892\3\2\2\2") + buf.write("\u0893\u0894\3\2\2\2\u0894\u0898\3\2\2\2\u0895\u0897\5") + buf.write("\u00f2z\2\u0896\u0895\3\2\2\2\u0897\u089a\3\2\2\2\u0898") + buf.write("\u0896\3\2\2\2\u0898\u0899\3\2\2\2\u0899\u089b\3\2\2\2") + buf.write("\u089a\u0898\3\2\2\2\u089b\u089d\5\u01ea\u00f6\2\u089c") + buf.write("\u089e\5\u018a\u00c6\2\u089d\u089c\3\2\2\2\u089d\u089e") + buf.write("\3\2\2\2\u089e\u089f\3\2\2\2\u089f\u08a1\7F\2\2\u08a0") + buf.write("\u08a2\5\u019e\u00d0\2\u08a1\u08a0\3\2\2\2\u08a1\u08a2") + buf.write("\3\2\2\2\u08a2\u08a3\3\2\2\2\u08a3\u08a5\7G\2\2\u08a4") + buf.write("\u08a6\5n8\2\u08a5\u08a4\3\2\2\2\u08a5\u08a6\3\2\2\2\u08a6") + buf.write("\u08c0\3\2\2\2\u08a7\u08a8\5\u016e\u00b8\2\u08a8\u08a9") + buf.write("\7N\2\2\u08a9\u08ab\7#\2\2\u08aa\u08ac\5*\26\2\u08ab\u08aa") + buf.write("\3\2\2\2\u08ab\u08ac\3\2\2\2\u08ac\u08b0\3\2\2\2\u08ad") + buf.write("\u08af\5\u00f2z\2\u08ae\u08ad\3\2\2\2\u08af\u08b2\3\2") + buf.write("\2\2\u08b0\u08ae\3\2\2\2\u08b0\u08b1\3\2\2\2\u08b1\u08b3") + buf.write("\3\2\2\2\u08b2\u08b0\3\2\2\2\u08b3\u08b5\5\u01ea\u00f6") + buf.write("\2\u08b4\u08b6\5\u018a\u00c6\2\u08b5\u08b4\3\2\2\2\u08b5") + buf.write("\u08b6\3\2\2\2\u08b6\u08b7\3\2\2\2\u08b7\u08b9\7F\2\2") + buf.write("\u08b8\u08ba\5\u019e\u00d0\2\u08b9\u08b8\3\2\2\2\u08b9") + buf.write("\u08ba\3\2\2\2\u08ba\u08bb\3\2\2\2\u08bb\u08bd\7G\2\2") + buf.write("\u08bc\u08be\5n8\2\u08bd\u08bc\3\2\2\2\u08bd\u08be\3\2") + buf.write("\2\2\u08be\u08c0\3\2\2\2\u08bf\u086c\3\2\2\2\u08bf\u088f") + buf.write("\3\2\2\2\u08bf\u08a7\3\2\2\2\u08c0\u0185\3\2\2\2\u08c1") + buf.write("\u08c2\7N\2\2\u08c2\u08c4\7#\2\2\u08c3\u08c5\5*\26\2\u08c4") + buf.write("\u08c3\3\2\2\2\u08c4\u08c5\3\2\2\2\u08c5\u08c9\3\2\2\2") + buf.write("\u08c6\u08c8\5\u00f2z\2\u08c7\u08c6\3\2\2\2\u08c8\u08cb") + buf.write("\3\2\2\2\u08c9\u08c7\3\2\2\2\u08c9\u08ca\3\2\2\2\u08ca") + buf.write("\u08cc\3\2\2\2\u08cb\u08c9\3\2\2\2\u08cc\u08ce\5\u01ea") + buf.write("\u00f6\2\u08cd\u08cf\5\u018a\u00c6\2\u08ce\u08cd\3\2\2") + buf.write("\2\u08ce\u08cf\3\2\2\2\u08cf\u08d0\3\2\2\2\u08d0\u08d2") + buf.write("\7F\2\2\u08d1\u08d3\5\u019e\u00d0\2\u08d2\u08d1\3\2\2") + buf.write("\2\u08d2\u08d3\3\2\2\2\u08d3\u08d4\3\2\2\2\u08d4\u08d6") + buf.write("\7G\2\2\u08d5\u08d7\5n8\2\u08d6\u08d5\3\2\2\2\u08d6\u08d7") + buf.write("\3\2\2\2\u08d7\u0187\3\2\2\2\u08d8\u08da\7#\2\2\u08d9") + buf.write("\u08db\5*\26\2\u08da\u08d9\3\2\2\2\u08da\u08db\3\2\2\2") + buf.write("\u08db\u08df\3\2\2\2\u08dc\u08de\5\u00f2z\2\u08dd\u08dc") + buf.write("\3\2\2\2\u08de\u08e1\3\2\2\2\u08df\u08dd\3\2\2\2\u08df") + buf.write("\u08e0\3\2\2\2\u08e0\u08e2\3\2\2\2\u08e1\u08df\3\2\2\2") + buf.write("\u08e2\u08ed\5\u01ea\u00f6\2\u08e3\u08e7\7N\2\2\u08e4") + buf.write("\u08e6\5\u00f2z\2\u08e5\u08e4\3\2\2\2\u08e6\u08e9\3\2") + buf.write("\2\2\u08e7\u08e5\3\2\2\2\u08e7\u08e8\3\2\2\2\u08e8\u08ea") + buf.write("\3\2\2\2\u08e9\u08e7\3\2\2\2\u08ea\u08ec\5\u01ea\u00f6") + buf.write("\2\u08eb\u08e3\3\2\2\2\u08ec\u08ef\3\2\2\2\u08ed\u08eb") + buf.write("\3\2\2\2\u08ed\u08ee\3\2\2\2\u08ee\u08f1\3\2\2\2\u08ef") + buf.write("\u08ed\3\2\2\2\u08f0\u08f2\5\u018a\u00c6\2\u08f1\u08f0") + buf.write("\3\2\2\2\u08f1\u08f2\3\2\2\2\u08f2\u08f3\3\2\2\2\u08f3") + buf.write("\u08f5\7F\2\2\u08f4\u08f6\5\u019e\u00d0\2\u08f5\u08f4") + buf.write("\3\2\2\2\u08f5\u08f6\3\2\2\2\u08f6\u08f7\3\2\2\2\u08f7") + buf.write("\u08f9\7G\2\2\u08f8\u08fa\5n8\2\u08f9\u08f8\3\2\2\2\u08f9") + buf.write("\u08fa\3\2\2\2\u08fa\u0914\3\2\2\2\u08fb\u08fc\5<\37\2") + buf.write("\u08fc\u08fd\7N\2\2\u08fd\u08ff\7#\2\2\u08fe\u0900\5*") + buf.write("\26\2\u08ff\u08fe\3\2\2\2\u08ff\u0900\3\2\2\2\u0900\u0904") + buf.write("\3\2\2\2\u0901\u0903\5\u00f2z\2\u0902\u0901\3\2\2\2\u0903") + buf.write("\u0906\3\2\2\2\u0904\u0902\3\2\2\2\u0904\u0905\3\2\2\2") + buf.write("\u0905\u0907\3\2\2\2\u0906\u0904\3\2\2\2\u0907\u0909\5") + buf.write("\u01ea\u00f6\2\u0908\u090a\5\u018a\u00c6\2\u0909\u0908") + buf.write("\3\2\2\2\u0909\u090a\3\2\2\2\u090a\u090b\3\2\2\2\u090b") + buf.write("\u090d\7F\2\2\u090c\u090e\5\u019e\u00d0\2\u090d\u090c") + buf.write("\3\2\2\2\u090d\u090e\3\2\2\2\u090e\u090f\3\2\2\2\u090f") + buf.write("\u0911\7G\2\2\u0910\u0912\5n8\2\u0911\u0910\3\2\2\2\u0911") + buf.write("\u0912\3\2\2\2\u0912\u0914\3\2\2\2\u0913\u08d8\3\2\2\2") + buf.write("\u0913\u08fb\3\2\2\2\u0914\u0189\3\2\2\2\u0915\u0919\5") + buf.write("*\26\2\u0916\u0917\7T\2\2\u0917\u0919\7S\2\2\u0918\u0915") + buf.write("\3\2\2\2\u0918\u0916\3\2\2\2\u0919\u018b\3\2\2\2\u091a") + buf.write("\u091b\5\u016e\u00b8\2\u091b\u091c\7N\2\2\u091c\u091d") + buf.write("\5\u01ea\u00f6\2\u091d\u0928\3\2\2\2\u091e\u091f\7\60") + buf.write("\2\2\u091f\u0920\7N\2\2\u0920\u0928\5\u01ea\u00f6\2\u0921") + buf.write("\u0922\58\35\2\u0922\u0923\7N\2\2\u0923\u0924\7\60\2\2") + buf.write("\u0924\u0925\7N\2\2\u0925\u0926\5\u01ea\u00f6\2\u0926") + buf.write("\u0928\3\2\2\2\u0927\u091a\3\2\2\2\u0927\u091e\3\2\2\2") + buf.write("\u0927\u0921\3\2\2\2\u0928\u018d\3\2\2\2\u0929\u092a\7") + buf.write("N\2\2\u092a\u092b\5\u01ea\u00f6\2\u092b\u018f\3\2\2\2") + buf.write("\u092c\u092d\7\60\2\2\u092d\u092e\7N\2\2\u092e\u0936\5") + buf.write("\u01ea\u00f6\2\u092f\u0930\58\35\2\u0930\u0931\7N\2\2") + buf.write("\u0931\u0932\7\60\2\2\u0932\u0933\7N\2\2\u0933\u0934\5") + buf.write("\u01ea\u00f6\2\u0934\u0936\3\2\2\2\u0935\u092c\3\2\2\2") + buf.write("\u0935\u092f\3\2\2\2\u0936\u0191\3\2\2\2\u0937\u0938\5") + buf.write("<\37\2\u0938\u0939\7J\2\2\u0939\u093a\5\u01ae\u00d8\2") + buf.write("\u093a\u093b\7K\2\2\u093b\u0942\3\2\2\2\u093c\u093d\5") + buf.write("\u0174\u00bb\2\u093d\u093e\7J\2\2\u093e\u093f\5\u01ae") + buf.write("\u00d8\2\u093f\u0940\7K\2\2\u0940\u0942\3\2\2\2\u0941") + buf.write("\u0937\3\2\2\2\u0941\u093c\3\2\2\2\u0942\u094a\3\2\2\2") + buf.write("\u0943\u0944\5\u0172\u00ba\2\u0944\u0945\7J\2\2\u0945") + buf.write("\u0946\5\u01ae\u00d8\2\u0946\u0947\7K\2\2\u0947\u0949") + buf.write("\3\2\2\2\u0948\u0943\3\2\2\2\u0949\u094c\3\2\2\2\u094a") + buf.write("\u0948\3\2\2\2\u094a\u094b\3\2\2\2\u094b\u0193\3\2\2\2") + buf.write("\u094c\u094a\3\2\2\2\u094d\u094e\5\u017a\u00be\2\u094e") + buf.write("\u094f\7J\2\2\u094f\u0950\5\u01ae\u00d8\2\u0950\u0951") + buf.write("\7K\2\2\u0951\u0959\3\2\2\2\u0952\u0953\5\u0178\u00bd") + buf.write("\2\u0953\u0954\7J\2\2\u0954\u0955\5\u01ae\u00d8\2\u0955") + buf.write("\u0956\7K\2\2\u0956\u0958\3\2\2\2\u0957\u0952\3\2\2\2") + buf.write("\u0958\u095b\3\2\2\2\u0959\u0957\3\2\2\2\u0959\u095a\3") + buf.write("\2\2\2\u095a\u0195\3\2\2\2\u095b\u0959\3\2\2\2\u095c\u095d") + buf.write("\5<\37\2\u095d\u095e\7J\2\2\u095e\u095f\5\u01ae\u00d8") + buf.write("\2\u095f\u0960\7K\2\2\u0960\u0967\3\2\2\2\u0961\u0962") + buf.write("\5\u0180\u00c1\2\u0962\u0963\7J\2\2\u0963\u0964\5\u01ae") + buf.write("\u00d8\2\u0964\u0965\7K\2\2\u0965\u0967\3\2\2\2\u0966") + buf.write("\u095c\3\2\2\2\u0966\u0961\3\2\2\2\u0967\u096f\3\2\2\2") + buf.write("\u0968\u0969\5\u017e\u00c0\2\u0969\u096a\7J\2\2\u096a") + buf.write("\u096b\5\u01ae\u00d8\2\u096b\u096c\7K\2\2\u096c\u096e") + buf.write("\3\2\2\2\u096d\u0968\3\2\2\2\u096e\u0971\3\2\2\2\u096f") + buf.write("\u096d\3\2\2\2\u096f\u0970\3\2\2\2\u0970\u0197\3\2\2\2") + buf.write("\u0971\u096f\3\2\2\2\u0972\u0973\5> \2\u0973\u0975\7F") + buf.write("\2\2\u0974\u0976\5\u019e\u00d0\2\u0975\u0974\3\2\2\2\u0975") + buf.write("\u0976\3\2\2\2\u0976\u0977\3\2\2\2\u0977\u0978\7G\2\2") + buf.write("\u0978\u09b8\3\2\2\2\u0979\u097a\58\35\2\u097a\u097c\7") + buf.write("N\2\2\u097b\u097d\5*\26\2\u097c\u097b\3\2\2\2\u097c\u097d") + buf.write("\3\2\2\2\u097d\u097e\3\2\2\2\u097e\u097f\5\u01ea\u00f6") + buf.write("\2\u097f\u0981\7F\2\2\u0980\u0982\5\u019e\u00d0\2\u0981") + buf.write("\u0980\3\2\2\2\u0981\u0982\3\2\2\2\u0982\u0983\3\2\2\2") + buf.write("\u0983\u0984\7G\2\2\u0984\u09b8\3\2\2\2\u0985\u0986\5") + buf.write("<\37\2\u0986\u0988\7N\2\2\u0987\u0989\5*\26\2\u0988\u0987") + buf.write("\3\2\2\2\u0988\u0989\3\2\2\2\u0989\u098a\3\2\2\2\u098a") + buf.write("\u098b\5\u01ea\u00f6\2\u098b\u098d\7F\2\2\u098c\u098e") + buf.write("\5\u019e\u00d0\2\u098d\u098c\3\2\2\2\u098d\u098e\3\2\2") + buf.write("\2\u098e\u098f\3\2\2\2\u098f\u0990\7G\2\2\u0990\u09b8") + buf.write("\3\2\2\2\u0991\u0992\5\u016e\u00b8\2\u0992\u0994\7N\2") + buf.write("\2\u0993\u0995\5*\26\2\u0994\u0993\3\2\2\2\u0994\u0995") + buf.write("\3\2\2\2\u0995\u0996\3\2\2\2\u0996\u0997\5\u01ea\u00f6") + buf.write("\2\u0997\u0999\7F\2\2\u0998\u099a\5\u019e\u00d0\2\u0999") + buf.write("\u0998\3\2\2\2\u0999\u099a\3\2\2\2\u099a\u099b\3\2\2\2") + buf.write("\u099b\u099c\7G\2\2\u099c\u09b8\3\2\2\2\u099d\u099e\7") + buf.write("\60\2\2\u099e\u09a0\7N\2\2\u099f\u09a1\5*\26\2\u09a0\u099f") + buf.write("\3\2\2\2\u09a0\u09a1\3\2\2\2\u09a1\u09a2\3\2\2\2\u09a2") + buf.write("\u09a3\5\u01ea\u00f6\2\u09a3\u09a5\7F\2\2\u09a4\u09a6") + buf.write("\5\u019e\u00d0\2\u09a5\u09a4\3\2\2\2\u09a5\u09a6\3\2\2") + buf.write("\2\u09a6\u09a7\3\2\2\2\u09a7\u09a8\7G\2\2\u09a8\u09b8") + buf.write("\3\2\2\2\u09a9\u09aa\58\35\2\u09aa\u09ab\7N\2\2\u09ab") + buf.write("\u09ac\7\60\2\2\u09ac\u09ae\7N\2\2\u09ad\u09af\5*\26\2") + buf.write("\u09ae\u09ad\3\2\2\2\u09ae\u09af\3\2\2\2\u09af\u09b0\3") + buf.write("\2\2\2\u09b0\u09b1\5\u01ea\u00f6\2\u09b1\u09b3\7F\2\2") + buf.write("\u09b2\u09b4\5\u019e\u00d0\2\u09b3\u09b2\3\2\2\2\u09b3") + buf.write("\u09b4\3\2\2\2\u09b4\u09b5\3\2\2\2\u09b5\u09b6\7G\2\2") + buf.write("\u09b6\u09b8\3\2\2\2\u09b7\u0972\3\2\2\2\u09b7\u0979\3") + buf.write("\2\2\2\u09b7\u0985\3\2\2\2\u09b7\u0991\3\2\2\2\u09b7\u099d") + buf.write("\3\2\2\2\u09b7\u09a9\3\2\2\2\u09b8\u0199\3\2\2\2\u09b9") + buf.write("\u09bb\7N\2\2\u09ba\u09bc\5*\26\2\u09bb\u09ba\3\2\2\2") + buf.write("\u09bb\u09bc\3\2\2\2\u09bc\u09bd\3\2\2\2\u09bd\u09be\5") + buf.write("\u01ea\u00f6\2\u09be\u09c0\7F\2\2\u09bf\u09c1\5\u019e") + buf.write("\u00d0\2\u09c0\u09bf\3\2\2\2\u09c0\u09c1\3\2\2\2\u09c1") + buf.write("\u09c2\3\2\2\2\u09c2\u09c3\7G\2\2\u09c3\u019b\3\2\2\2") + buf.write("\u09c4\u09c5\5> \2\u09c5\u09c7\7F\2\2\u09c6\u09c8\5\u019e") + buf.write("\u00d0\2\u09c7\u09c6\3\2\2\2\u09c7\u09c8\3\2\2\2\u09c8") + buf.write("\u09c9\3\2\2\2\u09c9\u09ca\7G\2\2\u09ca\u09fe\3\2\2\2") + buf.write("\u09cb\u09cc\58\35\2\u09cc\u09ce\7N\2\2\u09cd\u09cf\5") + buf.write("*\26\2\u09ce\u09cd\3\2\2\2\u09ce\u09cf\3\2\2\2\u09cf\u09d0") + buf.write("\3\2\2\2\u09d0\u09d1\5\u01ea\u00f6\2\u09d1\u09d3\7F\2") + buf.write("\2\u09d2\u09d4\5\u019e\u00d0\2\u09d3\u09d2\3\2\2\2\u09d3") + buf.write("\u09d4\3\2\2\2\u09d4\u09d5\3\2\2\2\u09d5\u09d6\7G\2\2") + buf.write("\u09d6\u09fe\3\2\2\2\u09d7\u09d8\5<\37\2\u09d8\u09da\7") + buf.write("N\2\2\u09d9\u09db\5*\26\2\u09da\u09d9\3\2\2\2\u09da\u09db") + buf.write("\3\2\2\2\u09db\u09dc\3\2\2\2\u09dc\u09dd\5\u01ea\u00f6") + buf.write("\2\u09dd\u09df\7F\2\2\u09de\u09e0\5\u019e\u00d0\2\u09df") + buf.write("\u09de\3\2\2\2\u09df\u09e0\3\2\2\2\u09e0\u09e1\3\2\2\2") + buf.write("\u09e1\u09e2\7G\2\2\u09e2\u09fe\3\2\2\2\u09e3\u09e4\7") + buf.write("\60\2\2\u09e4\u09e6\7N\2\2\u09e5\u09e7\5*\26\2\u09e6\u09e5") + buf.write("\3\2\2\2\u09e6\u09e7\3\2\2\2\u09e7\u09e8\3\2\2\2\u09e8") + buf.write("\u09e9\5\u01ea\u00f6\2\u09e9\u09eb\7F\2\2\u09ea\u09ec") + buf.write("\5\u019e\u00d0\2\u09eb\u09ea\3\2\2\2\u09eb\u09ec\3\2\2") + buf.write("\2\u09ec\u09ed\3\2\2\2\u09ed\u09ee\7G\2\2\u09ee\u09fe") + buf.write("\3\2\2\2\u09ef\u09f0\58\35\2\u09f0\u09f1\7N\2\2\u09f1") + buf.write("\u09f2\7\60\2\2\u09f2\u09f4\7N\2\2\u09f3\u09f5\5*\26\2") + buf.write("\u09f4\u09f3\3\2\2\2\u09f4\u09f5\3\2\2\2\u09f5\u09f6\3") + buf.write("\2\2\2\u09f6\u09f7\5\u01ea\u00f6\2\u09f7\u09f9\7F\2\2") + buf.write("\u09f8\u09fa\5\u019e\u00d0\2\u09f9\u09f8\3\2\2\2\u09f9") + buf.write("\u09fa\3\2\2\2\u09fa\u09fb\3\2\2\2\u09fb\u09fc\7G\2\2") + buf.write("\u09fc\u09fe\3\2\2\2\u09fd\u09c4\3\2\2\2\u09fd\u09cb\3") + buf.write("\2\2\2\u09fd\u09d7\3\2\2\2\u09fd\u09e3\3\2\2\2\u09fd\u09ef") + buf.write("\3\2\2\2\u09fe\u019d\3\2\2\2\u09ff\u0a04\5\u01ae\u00d8") + buf.write("\2\u0a00\u0a01\7M\2\2\u0a01\u0a03\5\u01ae\u00d8\2\u0a02") + buf.write("\u0a00\3\2\2\2\u0a03\u0a06\3\2\2\2\u0a04\u0a02\3\2\2\2") + buf.write("\u0a04\u0a05\3\2\2\2\u0a05\u019f\3\2\2\2\u0a06\u0a04\3") + buf.write("\2\2\2\u0a07\u0a08\5<\37\2\u0a08\u0a0a\7Q\2\2\u0a09\u0a0b") + buf.write("\5*\26\2\u0a0a\u0a09\3\2\2\2\u0a0a\u0a0b\3\2\2\2\u0a0b") + buf.write("\u0a0c\3\2\2\2\u0a0c\u0a0d\5\u01ea\u00f6\2\u0a0d\u0a37") + buf.write("\3\2\2\2\u0a0e\u0a0f\5\f\7\2\u0a0f\u0a11\7Q\2\2\u0a10") + buf.write("\u0a12\5*\26\2\u0a11\u0a10\3\2\2\2\u0a11\u0a12\3\2\2\2") + buf.write("\u0a12\u0a13\3\2\2\2\u0a13\u0a14\5\u01ea\u00f6\2\u0a14") + buf.write("\u0a37\3\2\2\2\u0a15\u0a16\5\u016e\u00b8\2\u0a16\u0a18") + buf.write("\7Q\2\2\u0a17\u0a19\5*\26\2\u0a18\u0a17\3\2\2\2\u0a18") + buf.write("\u0a19\3\2\2\2\u0a19\u0a1a\3\2\2\2\u0a1a\u0a1b\5\u01ea") + buf.write("\u00f6\2\u0a1b\u0a37\3\2\2\2\u0a1c\u0a1d\7\60\2\2\u0a1d") + buf.write("\u0a1f\7Q\2\2\u0a1e\u0a20\5*\26\2\u0a1f\u0a1e\3\2\2\2") + buf.write("\u0a1f\u0a20\3\2\2\2\u0a20\u0a21\3\2\2\2\u0a21\u0a37\5") + buf.write("\u01ea\u00f6\2\u0a22\u0a23\58\35\2\u0a23\u0a24\7N\2\2") + buf.write("\u0a24\u0a25\7\60\2\2\u0a25\u0a27\7Q\2\2\u0a26\u0a28\5") + buf.write("*\26\2\u0a27\u0a26\3\2\2\2\u0a27\u0a28\3\2\2\2\u0a28\u0a29") + buf.write("\3\2\2\2\u0a29\u0a2a\5\u01ea\u00f6\2\u0a2a\u0a37\3\2\2") + buf.write("\2\u0a2b\u0a2c\5\20\t\2\u0a2c\u0a2e\7Q\2\2\u0a2d\u0a2f") + buf.write("\5*\26\2\u0a2e\u0a2d\3\2\2\2\u0a2e\u0a2f\3\2\2\2\u0a2f") + buf.write("\u0a30\3\2\2\2\u0a30\u0a31\7#\2\2\u0a31\u0a37\3\2\2\2") + buf.write("\u0a32\u0a33\5\36\20\2\u0a33\u0a34\7Q\2\2\u0a34\u0a35") + buf.write("\7#\2\2\u0a35\u0a37\3\2\2\2\u0a36\u0a07\3\2\2\2\u0a36") + buf.write("\u0a0e\3\2\2\2\u0a36\u0a15\3\2\2\2\u0a36\u0a1c\3\2\2\2") + buf.write("\u0a36\u0a22\3\2\2\2\u0a36\u0a2b\3\2\2\2\u0a36\u0a32\3") + buf.write("\2\2\2\u0a37\u01a1\3\2\2\2\u0a38\u0a3a\7Q\2\2\u0a39\u0a3b") + buf.write("\5*\26\2\u0a3a\u0a39\3\2\2\2\u0a3a\u0a3b\3\2\2\2\u0a3b") + buf.write("\u0a3c\3\2\2\2\u0a3c\u0a3d\5\u01ea\u00f6\2\u0a3d\u01a3") + buf.write("\3\2\2\2\u0a3e\u0a3f\5<\37\2\u0a3f\u0a41\7Q\2\2\u0a40") + buf.write("\u0a42\5*\26\2\u0a41\u0a40\3\2\2\2\u0a41\u0a42\3\2\2\2") + buf.write("\u0a42\u0a43\3\2\2\2\u0a43\u0a44\5\u01ea\u00f6\2\u0a44") + buf.write("\u0a67\3\2\2\2\u0a45\u0a46\5\f\7\2\u0a46\u0a48\7Q\2\2") + buf.write("\u0a47\u0a49\5*\26\2\u0a48\u0a47\3\2\2\2\u0a48\u0a49\3") + buf.write("\2\2\2\u0a49\u0a4a\3\2\2\2\u0a4a\u0a4b\5\u01ea\u00f6\2") + buf.write("\u0a4b\u0a67\3\2\2\2\u0a4c\u0a4d\7\60\2\2\u0a4d\u0a4f") + buf.write("\7Q\2\2\u0a4e\u0a50\5*\26\2\u0a4f\u0a4e\3\2\2\2\u0a4f") + buf.write("\u0a50\3\2\2\2\u0a50\u0a51\3\2\2\2\u0a51\u0a67\5\u01ea") + buf.write("\u00f6\2\u0a52\u0a53\58\35\2\u0a53\u0a54\7N\2\2\u0a54") + buf.write("\u0a55\7\60\2\2\u0a55\u0a57\7Q\2\2\u0a56\u0a58\5*\26\2") + buf.write("\u0a57\u0a56\3\2\2\2\u0a57\u0a58\3\2\2\2\u0a58\u0a59\3") + buf.write("\2\2\2\u0a59\u0a5a\5\u01ea\u00f6\2\u0a5a\u0a67\3\2\2\2") + buf.write("\u0a5b\u0a5c\5\20\t\2\u0a5c\u0a5e\7Q\2\2\u0a5d\u0a5f\5") + buf.write("*\26\2\u0a5e\u0a5d\3\2\2\2\u0a5e\u0a5f\3\2\2\2\u0a5f\u0a60") + buf.write("\3\2\2\2\u0a60\u0a61\7#\2\2\u0a61\u0a67\3\2\2\2\u0a62") + buf.write("\u0a63\5\36\20\2\u0a63\u0a64\7Q\2\2\u0a64\u0a65\7#\2\2") + buf.write("\u0a65\u0a67\3\2\2\2\u0a66\u0a3e\3\2\2\2\u0a66\u0a45\3") + buf.write("\2\2\2\u0a66\u0a4c\3\2\2\2\u0a66\u0a52\3\2\2\2\u0a66\u0a5b") + buf.write("\3\2\2\2\u0a66\u0a62\3\2\2\2\u0a67\u01a5\3\2\2\2\u0a68") + buf.write("\u0a69\7#\2\2\u0a69\u0a6a\5\4\3\2\u0a6a\u0a6c\5\u01a8") + buf.write("\u00d5\2\u0a6b\u0a6d\5 \21\2\u0a6c\u0a6b\3\2\2\2\u0a6c") + buf.write("\u0a6d\3\2\2\2\u0a6d\u0a7f\3\2\2\2\u0a6e\u0a6f\7#\2\2") + buf.write("\u0a6f\u0a70\5\16\b\2\u0a70\u0a72\5\u01a8\u00d5\2\u0a71") + buf.write("\u0a73\5 \21\2\u0a72\u0a71\3\2\2\2\u0a72\u0a73\3\2\2\2") + buf.write("\u0a73\u0a7f\3\2\2\2\u0a74\u0a75\7#\2\2\u0a75\u0a76\5") + buf.write("\4\3\2\u0a76\u0a77\5 \21\2\u0a77\u0a78\5\u0104\u0083\2") + buf.write("\u0a78\u0a7f\3\2\2\2\u0a79\u0a7a\7#\2\2\u0a7a\u0a7b\5") + buf.write("\16\b\2\u0a7b\u0a7c\5 \21\2\u0a7c\u0a7d\5\u0104\u0083") + buf.write("\2\u0a7d\u0a7f\3\2\2\2\u0a7e\u0a68\3\2\2\2\u0a7e\u0a6e") + buf.write("\3\2\2\2\u0a7e\u0a74\3\2\2\2\u0a7e\u0a79\3\2\2\2\u0a7f") + buf.write("\u01a7\3\2\2\2\u0a80\u0a82\5\u01aa\u00d6\2\u0a81\u0a80") + buf.write("\3\2\2\2\u0a82\u0a83\3\2\2\2\u0a83\u0a81\3\2\2\2\u0a83") + buf.write("\u0a84\3\2\2\2\u0a84\u01a9\3\2\2\2\u0a85\u0a87\5\u00f2") + buf.write("z\2\u0a86\u0a85\3\2\2\2\u0a87\u0a8a\3\2\2\2\u0a88\u0a86") + buf.write("\3\2\2\2\u0a88\u0a89\3\2\2\2\u0a89\u0a8b\3\2\2\2\u0a8a") + buf.write("\u0a88\3\2\2\2\u0a8b\u0a8c\7J\2\2\u0a8c\u0a8d\5\u01ae") + buf.write("\u00d8\2\u0a8d\u0a8e\7K\2\2\u0a8e\u01ab\3\2\2\2\u0a8f") + buf.write("\u0a90\5\u01ae\u00d8\2\u0a90\u01ad\3\2\2\2\u0a91\u0a94") + buf.write("\5\u01b0\u00d9\2\u0a92\u0a94\5\u01b8\u00dd\2\u0a93\u0a91") + buf.write("\3\2\2\2\u0a93\u0a92\3\2\2\2\u0a94\u01af\3\2\2\2\u0a95") + buf.write("\u0a96\5\u01b2\u00da\2\u0a96\u0a97\7Y\2\2\u0a97\u0a98") + buf.write("\5\u01b6\u00dc\2\u0a98\u01b1\3\2\2\2\u0a99\u0aa4\5\u01ea") + buf.write("\u00f6\2\u0a9a\u0a9c\7F\2\2\u0a9b\u0a9d\5\u00a2R\2\u0a9c") + buf.write("\u0a9b\3\2\2\2\u0a9c\u0a9d\3\2\2\2\u0a9d\u0a9e\3\2\2\2") + buf.write("\u0a9e\u0aa4\7G\2\2\u0a9f\u0aa0\7F\2\2\u0aa0\u0aa1\5\u01b4") + buf.write("\u00db\2\u0aa1\u0aa2\7G\2\2\u0aa2\u0aa4\3\2\2\2\u0aa3") + buf.write("\u0a99\3\2\2\2\u0aa3\u0a9a\3\2\2\2\u0aa3\u0a9f\3\2\2\2") + buf.write("\u0aa4\u01b3\3\2\2\2\u0aa5\u0aaa\5\u01ea\u00f6\2\u0aa6") + buf.write("\u0aa7\7M\2\2\u0aa7\u0aa9\5\u01ea\u00f6\2\u0aa8\u0aa6") + buf.write("\3\2\2\2\u0aa9\u0aac\3\2\2\2\u0aaa\u0aa8\3\2\2\2\u0aaa") + buf.write("\u0aab\3\2\2\2\u0aab\u01b5\3\2\2\2\u0aac\u0aaa\3\2\2\2") + buf.write("\u0aad\u0ab0\5\u01ae\u00d8\2\u0aae\u0ab0\5\u0108\u0085") + buf.write("\2\u0aaf\u0aad\3\2\2\2\u0aaf\u0aae\3\2\2\2\u0ab0\u01b7") + buf.write("\3\2\2\2\u0ab1\u0ab4\5\u01c0\u00e1\2\u0ab2\u0ab4\5\u01ba") + buf.write("\u00de\2\u0ab3\u0ab1\3\2\2\2\u0ab3\u0ab2\3\2\2\2\u0ab4") + buf.write("\u01b9\3\2\2\2\u0ab5\u0ab6\5\u01bc\u00df\2\u0ab6\u0ab7") + buf.write("\5\u01be\u00e0\2\u0ab7\u0ab8\5\u01ae\u00d8\2\u0ab8\u01bb") + buf.write("\3\2\2\2\u0ab9\u0abd\5<\37\2\u0aba\u0abd\5\u018c\u00c7") + buf.write("\2\u0abb\u0abd\5\u0192\u00ca\2\u0abc\u0ab9\3\2\2\2\u0abc") + buf.write("\u0aba\3\2\2\2\u0abc\u0abb\3\2\2\2\u0abd\u01bd\3\2\2\2") + buf.write("\u0abe\u0abf\t\6\2\2\u0abf\u01bf\3\2\2\2\u0ac0\u0aca\5") + buf.write("\u01c2\u00e2\2\u0ac1\u0ac2\5\u01c2\u00e2\2\u0ac2\u0ac3") + buf.write("\7W\2\2\u0ac3\u0ac4\5\u01ae\u00d8\2\u0ac4\u0ac7\7X\2\2") + buf.write("\u0ac5\u0ac8\5\u01c0\u00e1\2\u0ac6\u0ac8\5\u01b0\u00d9") + buf.write("\2\u0ac7\u0ac5\3\2\2\2\u0ac7\u0ac6\3\2\2\2\u0ac8\u0aca") + buf.write("\3\2\2\2\u0ac9\u0ac0\3\2\2\2\u0ac9\u0ac1\3\2\2\2\u0aca") + buf.write("\u01c1\3\2\2\2\u0acb\u0acc\b\u00e2\1\2\u0acc\u0acd\5\u01c4") + buf.write("\u00e3\2\u0acd\u0ad3\3\2\2\2\u0ace\u0acf\f\3\2\2\u0acf") + buf.write("\u0ad0\7_\2\2\u0ad0\u0ad2\5\u01c4\u00e3\2\u0ad1\u0ace") + buf.write("\3\2\2\2\u0ad2\u0ad5\3\2\2\2\u0ad3\u0ad1\3\2\2\2\u0ad3") + buf.write("\u0ad4\3\2\2\2\u0ad4\u01c3\3\2\2\2\u0ad5\u0ad3\3\2\2\2") + buf.write("\u0ad6\u0ad7\b\u00e3\1\2\u0ad7\u0ad8\5\u01c6\u00e4\2\u0ad8") + buf.write("\u0ade\3\2\2\2\u0ad9\u0ada\f\3\2\2\u0ada\u0adb\7^\2\2") + buf.write("\u0adb\u0add\5\u01c6\u00e4\2\u0adc\u0ad9\3\2\2\2\u0add") + buf.write("\u0ae0\3\2\2\2\u0ade\u0adc\3\2\2\2\u0ade\u0adf\3\2\2\2") + buf.write("\u0adf\u01c5\3\2\2\2\u0ae0\u0ade\3\2\2\2\u0ae1\u0ae2\b") + buf.write("\u00e4\1\2\u0ae2\u0ae3\5\u01c8\u00e5\2\u0ae3\u0ae9\3\2") + buf.write("\2\2\u0ae4\u0ae5\f\3\2\2\u0ae5\u0ae6\7g\2\2\u0ae6\u0ae8") + buf.write("\5\u01c8\u00e5\2\u0ae7\u0ae4\3\2\2\2\u0ae8\u0aeb\3\2\2") + buf.write("\2\u0ae9\u0ae7\3\2\2\2\u0ae9\u0aea\3\2\2\2\u0aea\u01c7") + buf.write("\3\2\2\2\u0aeb\u0ae9\3\2\2\2\u0aec\u0aed\b\u00e5\1\2\u0aed") + buf.write("\u0aee\5\u01ca\u00e6\2\u0aee\u0af4\3\2\2\2\u0aef\u0af0") + buf.write("\f\3\2\2\u0af0\u0af1\7h\2\2\u0af1\u0af3\5\u01ca\u00e6") + buf.write("\2\u0af2\u0aef\3\2\2\2\u0af3\u0af6\3\2\2\2\u0af4\u0af2") + buf.write("\3\2\2\2\u0af4\u0af5\3\2\2\2\u0af5\u01c9\3\2\2\2\u0af6") + buf.write("\u0af4\3\2\2\2\u0af7\u0af8\b\u00e6\1\2\u0af8\u0af9\5\u01cc") + buf.write("\u00e7\2\u0af9\u0aff\3\2\2\2\u0afa\u0afb\f\3\2\2\u0afb") + buf.write("\u0afc\7f\2\2\u0afc\u0afe\5\u01cc\u00e7\2\u0afd\u0afa") + buf.write("\3\2\2\2\u0afe\u0b01\3\2\2\2\u0aff\u0afd\3\2\2\2\u0aff") + buf.write("\u0b00\3\2\2\2\u0b00\u01cb\3\2\2\2\u0b01\u0aff\3\2\2\2") + buf.write("\u0b02\u0b03\b\u00e7\1\2\u0b03\u0b04\5\u01ce\u00e8\2\u0b04") + buf.write("\u0b0d\3\2\2\2\u0b05\u0b06\f\4\2\2\u0b06\u0b07\7Z\2\2") + buf.write("\u0b07\u0b0c\5\u01ce\u00e8\2\u0b08\u0b09\f\3\2\2\u0b09") + buf.write("\u0b0a\7]\2\2\u0b0a\u0b0c\5\u01ce\u00e8\2\u0b0b\u0b05") + buf.write("\3\2\2\2\u0b0b\u0b08\3\2\2\2\u0b0c\u0b0f\3\2\2\2\u0b0d") + buf.write("\u0b0b\3\2\2\2\u0b0d\u0b0e\3\2\2\2\u0b0e\u01cd\3\2\2\2") + buf.write("\u0b0f\u0b0d\3\2\2\2\u0b10\u0b11\b\u00e8\1\2\u0b11\u0b12") + buf.write("\5\u01d0\u00e9\2\u0b12\u0b24\3\2\2\2\u0b13\u0b14\f\7\2") + buf.write("\2\u0b14\u0b15\7T\2\2\u0b15\u0b23\5\u01d0\u00e9\2\u0b16") + buf.write("\u0b17\f\6\2\2\u0b17\u0b18\7S\2\2\u0b18\u0b23\5\u01d0") + buf.write("\u00e9\2\u0b19\u0b1a\f\5\2\2\u0b1a\u0b1b\7[\2\2\u0b1b") + buf.write("\u0b23\5\u01d0\u00e9\2\u0b1c\u0b1d\f\4\2\2\u0b1d\u0b1e") + buf.write("\7\\\2\2\u0b1e\u0b23\5\u01d0\u00e9\2\u0b1f\u0b20\f\3\2") + buf.write("\2\u0b20\u0b21\7\35\2\2\u0b21\u0b23\5\f\7\2\u0b22\u0b13") + buf.write("\3\2\2\2\u0b22\u0b16\3\2\2\2\u0b22\u0b19\3\2\2\2\u0b22") + buf.write("\u0b1c\3\2\2\2\u0b22\u0b1f\3\2\2\2\u0b23\u0b26\3\2\2\2") + buf.write("\u0b24\u0b22\3\2\2\2\u0b24\u0b25\3\2\2\2\u0b25\u01cf\3") + buf.write("\2\2\2\u0b26\u0b24\3\2\2\2\u0b27\u0b28\b\u00e9\1\2\u0b28") + buf.write("\u0b29\5\u01d2\u00ea\2\u0b29\u0b39\3\2\2\2\u0b2a\u0b2b") + buf.write("\f\5\2\2\u0b2b\u0b2c\7T\2\2\u0b2c\u0b2d\7T\2\2\u0b2d\u0b38") + buf.write("\5\u01d2\u00ea\2\u0b2e\u0b2f\f\4\2\2\u0b2f\u0b30\7S\2") + buf.write("\2\u0b30\u0b31\7S\2\2\u0b31\u0b38\5\u01d2\u00ea\2\u0b32") + buf.write("\u0b33\f\3\2\2\u0b33\u0b34\7S\2\2\u0b34\u0b35\7S\2\2\u0b35") + buf.write("\u0b36\7S\2\2\u0b36\u0b38\5\u01d2\u00ea\2\u0b37\u0b2a") + buf.write("\3\2\2\2\u0b37\u0b2e\3\2\2\2\u0b37\u0b32\3\2\2\2\u0b38") + buf.write("\u0b3b\3\2\2\2\u0b39\u0b37\3\2\2\2\u0b39\u0b3a\3\2\2\2") + buf.write("\u0b3a\u01d1\3\2\2\2\u0b3b\u0b39\3\2\2\2\u0b3c\u0b3d\b") + buf.write("\u00ea\1\2\u0b3d\u0b3e\5\u01d4\u00eb\2\u0b3e\u0b47\3\2") + buf.write("\2\2\u0b3f\u0b40\f\4\2\2\u0b40\u0b41\7b\2\2\u0b41\u0b46") + buf.write("\5\u01d4\u00eb\2\u0b42\u0b43\f\3\2\2\u0b43\u0b44\7c\2") + buf.write("\2\u0b44\u0b46\5\u01d4\u00eb\2\u0b45\u0b3f\3\2\2\2\u0b45") + buf.write("\u0b42\3\2\2\2\u0b46\u0b49\3\2\2\2\u0b47\u0b45\3\2\2\2") + buf.write("\u0b47\u0b48\3\2\2\2\u0b48\u01d3\3\2\2\2\u0b49\u0b47\3") + buf.write("\2\2\2\u0b4a\u0b4b\b\u00eb\1\2\u0b4b\u0b4c\5\u01d6\u00ec") + buf.write("\2\u0b4c\u0b58\3\2\2\2\u0b4d\u0b4e\f\5\2\2\u0b4e\u0b4f") + buf.write("\7d\2\2\u0b4f\u0b57\5\u01d6\u00ec\2\u0b50\u0b51\f\4\2") + buf.write("\2\u0b51\u0b52\7e\2\2\u0b52\u0b57\5\u01d6\u00ec\2\u0b53") + buf.write("\u0b54\f\3\2\2\u0b54\u0b55\7i\2\2\u0b55\u0b57\5\u01d6") + buf.write("\u00ec\2\u0b56\u0b4d\3\2\2\2\u0b56\u0b50\3\2\2\2\u0b56") + buf.write("\u0b53\3\2\2\2\u0b57\u0b5a\3\2\2\2\u0b58\u0b56\3\2\2\2") + buf.write("\u0b58\u0b59\3\2\2\2\u0b59\u01d5\3\2\2\2\u0b5a\u0b58\3") + buf.write("\2\2\2\u0b5b\u0b63\5\u01d8\u00ed\2\u0b5c\u0b63\5\u01da") + buf.write("\u00ee\2\u0b5d\u0b5e\7b\2\2\u0b5e\u0b63\5\u01d6\u00ec") + buf.write("\2\u0b5f\u0b60\7c\2\2\u0b60\u0b63\5\u01d6\u00ec\2\u0b61") + buf.write("\u0b63\5\u01dc\u00ef\2\u0b62\u0b5b\3\2\2\2\u0b62\u0b5c") + buf.write("\3\2\2\2\u0b62\u0b5d\3\2\2\2\u0b62\u0b5f\3\2\2\2\u0b62") + buf.write("\u0b61\3\2\2\2\u0b63\u01d7\3\2\2\2\u0b64\u0b65\7`\2\2") + buf.write("\u0b65\u0b66\5\u01d6\u00ec\2\u0b66\u01d9\3\2\2\2\u0b67") + buf.write("\u0b68\7a\2\2\u0b68\u0b69\5\u01d6\u00ec\2\u0b69\u01db") + buf.write("\3\2\2\2\u0b6a\u0b71\5\u01de\u00f0\2\u0b6b\u0b6c\7V\2") + buf.write("\2\u0b6c\u0b71\5\u01d6\u00ec\2\u0b6d\u0b6e\7U\2\2\u0b6e") + buf.write("\u0b71\5\u01d6\u00ec\2\u0b6f\u0b71\5\u01e8\u00f5\2\u0b70") + buf.write("\u0b6a\3\2\2\2\u0b70\u0b6b\3\2\2\2\u0b70\u0b6d\3\2\2\2") + buf.write("\u0b70\u0b6f\3\2\2\2\u0b71\u01dd\3\2\2\2\u0b72\u0b75\5") + buf.write("\u016e\u00b8\2\u0b73\u0b75\5<\37\2\u0b74\u0b72\3\2\2\2") + buf.write("\u0b74\u0b73\3\2\2\2\u0b75\u0b7a\3\2\2\2\u0b76\u0b79\5") + buf.write("\u01e2\u00f2\2\u0b77\u0b79\5\u01e6\u00f4\2\u0b78\u0b76") + buf.write("\3\2\2\2\u0b78\u0b77\3\2\2\2\u0b79\u0b7c\3\2\2\2\u0b7a") + buf.write("\u0b78\3\2\2\2\u0b7a\u0b7b\3\2\2\2\u0b7b\u01df\3\2\2\2") + buf.write("\u0b7c\u0b7a\3\2\2\2\u0b7d\u0b7e\5\u01de\u00f0\2\u0b7e") + buf.write("\u0b7f\7`\2\2\u0b7f\u01e1\3\2\2\2\u0b80\u0b81\7`\2\2\u0b81") + buf.write("\u01e3\3\2\2\2\u0b82\u0b83\5\u01de\u00f0\2\u0b83\u0b84") + buf.write("\7a\2\2\u0b84\u01e5\3\2\2\2\u0b85\u0b86\7a\2\2\u0b86\u01e7") + buf.write("\3\2\2\2\u0b87\u0b88\7F\2\2\u0b88\u0b89\5\4\3\2\u0b89") + buf.write("\u0b8a\7G\2\2\u0b8a\u0b8b\5\u01d6\u00ec\2\u0b8b\u0ba3") + buf.write("\3\2\2\2\u0b8c\u0b8d\7F\2\2\u0b8d\u0b91\5\f\7\2\u0b8e") + buf.write("\u0b90\5(\25\2\u0b8f\u0b8e\3\2\2\2\u0b90\u0b93\3\2\2\2") + buf.write("\u0b91\u0b8f\3\2\2\2\u0b91\u0b92\3\2\2\2\u0b92\u0b94\3") + buf.write("\2\2\2\u0b93\u0b91\3\2\2\2\u0b94\u0b95\7G\2\2\u0b95\u0b96") + buf.write("\5\u01dc\u00ef\2\u0b96\u0ba3\3\2\2\2\u0b97\u0b98\7F\2") + buf.write("\2\u0b98\u0b9c\5\f\7\2\u0b99\u0b9b\5(\25\2\u0b9a\u0b99") + buf.write("\3\2\2\2\u0b9b\u0b9e\3\2\2\2\u0b9c\u0b9a\3\2\2\2\u0b9c") + buf.write("\u0b9d\3\2\2\2\u0b9d\u0b9f\3\2\2\2\u0b9e\u0b9c\3\2\2\2") + buf.write("\u0b9f\u0ba0\7G\2\2\u0ba0\u0ba1\5\u01b0\u00d9\2\u0ba1") + buf.write("\u0ba3\3\2\2\2\u0ba2\u0b87\3\2\2\2\u0ba2\u0b8c\3\2\2\2") + buf.write("\u0ba2\u0b97\3\2\2\2\u0ba3\u01e9\3\2\2\2\u0ba4\u0ba5\t") + buf.write("\7\2\2\u0ba5\u01eb\3\2\2\2\u0156\u01f1\u01f8\u01fc\u0200") + buf.write("\u0209\u020d\u0211\u0213\u0219\u021e\u0225\u022a\u022c") + buf.write("\u0232\u0237\u023c\u0241\u024c\u025a\u025f\u0267\u026e") + buf.write("\u0274\u0279\u0284\u0287\u0295\u029a\u029f\u02a4\u02aa") + buf.write("\u02b4\u02bf\u02c7\u02d1\u02d9\u02e5\u02ea\u02ed\u02f2") + buf.write("\u02f8\u0300\u0308\u0315\u0332\u0337\u033b\u0343\u034c") + buf.write("\u035a\u035d\u0369\u036c\u037c\u0381\u0387\u038c\u0392") + buf.write("\u0395\u0398\u03a4\u03af\u03bd\u03c4\u03cd\u03d4\u03d9") + buf.write("\u03e8\u03ef\u03f5\u03f9\u03fd\u0401\u0405\u040a\u040e") + buf.write("\u0412\u0414\u0419\u0420\u0425\u0427\u042d\u0432\u0436") + buf.write("\u0449\u044e\u045e\u0463\u0469\u046f\u0471\u0475\u047a") + buf.write("\u047e\u0486\u048d\u0495\u0498\u049d\u04a5\u04aa\u04b1") + buf.write("\u04b8\u04bd\u04c4\u04d0\u04d5\u04d9\u04e3\u04e8\u04f0") + buf.write("\u04f3\u04f8\u0500\u0503\u0508\u050d\u0512\u0517\u051e") + buf.write("\u0523\u052b\u0530\u0535\u053a\u0540\u0546\u0549\u054c") + buf.write("\u0555\u055b\u0561\u0564\u0567\u056f\u0574\u0579\u057f") + buf.write("\u0582\u058d\u0596\u05a0\u05a5\u05b0\u05b5\u05c2\u05c7") + buf.write("\u05d3\u05dd\u05e2\u05ea\u05ed\u05f4\u05fc\u0602\u060b") + buf.write("\u0615\u0619\u061c\u0625\u0633\u0636\u063f\u0644\u064b") + buf.write("\u0650\u0658\u0664\u066b\u0679\u068f\u06b1\u06bd\u06c3") + buf.write("\u06ce\u06da\u06f4\u06f8\u06fd\u0701\u0705\u070d\u0711") + buf.write("\u0715\u071c\u0725\u072d\u073c\u0748\u074e\u0754\u0769") + buf.write("\u076e\u0773\u077e\u0789\u0793\u0796\u079b\u07a4\u07aa") + buf.write("\u07b3\u07b7\u07bb\u07c0\u07d3\u07dd\u07f3\u07fa\u0802") + buf.write("\u080a\u0815\u082c\u0836\u0841\u0857\u085c\u0862\u086a") + buf.write("\u086e\u0873\u087b\u0881\u0885\u0889\u088d\u0893\u0898") + buf.write("\u089d\u08a1\u08a5\u08ab\u08b0\u08b5\u08b9\u08bd\u08bf") + buf.write("\u08c4\u08c9\u08ce\u08d2\u08d6\u08da\u08df\u08e7\u08ed") + buf.write("\u08f1\u08f5\u08f9\u08ff\u0904\u0909\u090d\u0911\u0913") + buf.write("\u0918\u0927\u0935\u0941\u094a\u0959\u0966\u096f\u0975") + buf.write("\u097c\u0981\u0988\u098d\u0994\u0999\u09a0\u09a5\u09ae") + buf.write("\u09b3\u09b7\u09bb\u09c0\u09c7\u09ce\u09d3\u09da\u09df") + buf.write("\u09e6\u09eb\u09f4\u09f9\u09fd\u0a04\u0a0a\u0a11\u0a18") + buf.write("\u0a1f\u0a27\u0a2e\u0a36\u0a3a\u0a41\u0a48\u0a4f\u0a57") + buf.write("\u0a5e\u0a66\u0a6c\u0a72\u0a7e\u0a83\u0a88\u0a93\u0a9c") + buf.write("\u0aa3\u0aaa\u0aaf\u0ab3\u0abc\u0ac7\u0ac9\u0ad3\u0ade") + buf.write("\u0ae9\u0af4\u0aff\u0b0b\u0b0d\u0b22\u0b24\u0b37\u0b39") + buf.write("\u0b45\u0b47\u0b56\u0b58\u0b62\u0b70\u0b74\u0b78\u0b7a") + buf.write("\u0b91\u0b9c\u0ba2") + return buf.getvalue() + + +class Java9Parser ( Parser ): + + grammarFileName = "Java9Parser.g4" + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + sharedContextCache = PredictionContextCache() + + literalNames = [ "", "'abstract'", "'assert'", "'boolean'", + "'break'", "'byte'", "'case'", "'catch'", "'char'", + "'class'", "'const'", "'continue'", "'default'", "'do'", + "'double'", "'else'", "'enum'", "'exports'", "'extends'", + "'final'", "'finally'", "'float'", "'for'", "'if'", + "'goto'", "'implements'", "'import'", "'instanceof'", + "'int'", "'interface'", "'long'", "'module'", "'native'", + "'new'", "'open'", "'opens'", "'package'", "'private'", + "'protected'", "'provides'", "'public'", "'requires'", + "'return'", "'short'", "'static'", "'strictfp'", "'super'", + "'switch'", "'synchronized'", "'this'", "'throw'", + "'throws'", "'to'", "'transient'", "'transitive'", + "'try'", "'uses'", "'void'", "'volatile'", "'while'", + "'with'", "'_'", "", "", "", + "", "", "'null'", "'('", "')'", "'{'", + "'}'", "'['", "']'", "';'", "','", "'.'", "'...'", + "'@'", "'::'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", + "':'", "'->'", "'=='", "'<='", "'>='", "'!='", "'&&'", + "'||'", "'++'", "'--'", "'+'", "'-'", "'*'", "'/'", + "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", + "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", + "'>>>='" ] + + symbolicNames = [ "", "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", + "BYTE", "CASE", "CATCH", "CHAR", "CLASS", "CONST", + "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", + "EXPORTS", "EXTENDS", "FINAL", "FINALLY", "FLOAT", + "FOR", "IF", "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", + "INT", "INTERFACE", "LONG", "MODULE", "NATIVE", "NEW", + "OPEN", "OPERNS", "PACKAGE", "PRIVATE", "PROTECTED", + "PROVIDES", "PUBLIC", "REQUIRES", "RETURN", "SHORT", + "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", + "THIS", "THROW", "THROWS", "TO", "TRANSIENT", "TRANSITIVE", + "TRY", "USES", "VOID", "VOLATILE", "WHILE", "WITH", + "UNDER_SCORE", "IntegerLiteral", "FloatingPointLiteral", + "BooleanLiteral", "CharacterLiteral", "StringLiteral", + "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", + "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", "ELLIPSIS", + "AT", "COLONCOLON", "ASSIGN", "GT", "LT", "BANG", + "TILDE", "QUESTION", "COLON", "ARROW", "EQUAL", "LE", + "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", + "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", + "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", + "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", + "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", + "Identifier", "WS", "COMMENT", "LINE_COMMENT" ] + + 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_moduleName = 25 + RULE_packageName = 26 + RULE_typeName = 27 + RULE_packageOrTypeName = 28 + RULE_expressionName = 29 + RULE_methodName = 30 + RULE_ambiguousName = 31 + RULE_compilationUnit = 32 + RULE_ordinaryCompilation = 33 + RULE_modularCompilation = 34 + RULE_packageDeclaration = 35 + RULE_packageModifier = 36 + RULE_importDeclaration = 37 + RULE_singleTypeImportDeclaration = 38 + RULE_typeImportOnDemandDeclaration = 39 + RULE_singleStaticImportDeclaration = 40 + RULE_staticImportOnDemandDeclaration = 41 + RULE_typeDeclaration = 42 + RULE_moduleDeclaration = 43 + RULE_moduleDirective = 44 + RULE_requiresModifier = 45 + RULE_classDeclaration = 46 + RULE_normalClassDeclaration = 47 + RULE_classModifier = 48 + RULE_typeParameters = 49 + RULE_typeParameterList = 50 + RULE_superclass = 51 + RULE_superinterfaces = 52 + RULE_interfaceTypeList = 53 + RULE_classBody = 54 + RULE_classBodyDeclaration = 55 + RULE_classMemberDeclaration = 56 + RULE_fieldDeclaration = 57 + RULE_fieldModifier = 58 + RULE_variableDeclaratorList = 59 + RULE_variableDeclarator = 60 + RULE_variableDeclaratorId = 61 + RULE_variableInitializer = 62 + RULE_unannType = 63 + RULE_unannPrimitiveType = 64 + RULE_unannReferenceType = 65 + RULE_unannClassOrInterfaceType = 66 + RULE_unannClassType = 67 + RULE_unannClassType_lf_unannClassOrInterfaceType = 68 + RULE_unannClassType_lfno_unannClassOrInterfaceType = 69 + RULE_unannInterfaceType = 70 + RULE_unannInterfaceType_lf_unannClassOrInterfaceType = 71 + RULE_unannInterfaceType_lfno_unannClassOrInterfaceType = 72 + RULE_unannTypeVariable = 73 + RULE_unannArrayType = 74 + RULE_methodDeclaration = 75 + RULE_methodModifier = 76 + RULE_methodHeader = 77 + RULE_result = 78 + RULE_methodDeclarator = 79 + RULE_formalParameterList = 80 + RULE_formalParameters = 81 + RULE_formalParameter = 82 + RULE_variableModifier = 83 + RULE_lastFormalParameter = 84 + RULE_receiverParameter = 85 + RULE_throws_ = 86 + RULE_exceptionTypeList = 87 + RULE_exceptionType = 88 + RULE_methodBody = 89 + RULE_instanceInitializer = 90 + RULE_staticInitializer = 91 + RULE_constructorDeclaration = 92 + RULE_constructorModifier = 93 + RULE_constructorDeclarator = 94 + RULE_simpleTypeName = 95 + RULE_constructorBody = 96 + RULE_explicitConstructorInvocation = 97 + RULE_enumDeclaration = 98 + RULE_enumBody = 99 + RULE_enumConstantList = 100 + RULE_enumConstant = 101 + RULE_enumConstantModifier = 102 + RULE_enumBodyDeclarations = 103 + RULE_interfaceDeclaration = 104 + RULE_normalInterfaceDeclaration = 105 + RULE_interfaceModifier = 106 + RULE_extendsInterfaces = 107 + RULE_interfaceBody = 108 + RULE_interfaceMemberDeclaration = 109 + RULE_constantDeclaration = 110 + RULE_constantModifier = 111 + RULE_interfaceMethodDeclaration = 112 + RULE_interfaceMethodModifier = 113 + RULE_annotationTypeDeclaration = 114 + RULE_annotationTypeBody = 115 + RULE_annotationTypeMemberDeclaration = 116 + RULE_annotationTypeElementDeclaration = 117 + RULE_annotationTypeElementModifier = 118 + RULE_defaultValue = 119 + RULE_annotation = 120 + RULE_normalAnnotation = 121 + RULE_elementValuePairList = 122 + RULE_elementValuePair = 123 + RULE_elementValue = 124 + RULE_elementValueArrayInitializer = 125 + RULE_elementValueList = 126 + RULE_markerAnnotation = 127 + RULE_singleElementAnnotation = 128 + RULE_arrayInitializer = 129 + RULE_variableInitializerList = 130 + RULE_block = 131 + RULE_blockStatements = 132 + RULE_blockStatement = 133 + RULE_localVariableDeclarationStatement = 134 + RULE_localVariableDeclaration = 135 + RULE_statement = 136 + RULE_statementNoShortIf = 137 + RULE_statementWithoutTrailingSubstatement = 138 + RULE_emptyStatement = 139 + RULE_labeledStatement = 140 + RULE_labeledStatementNoShortIf = 141 + RULE_expressionStatement = 142 + RULE_statementExpression = 143 + RULE_ifThenStatement = 144 + RULE_ifThenElseStatement = 145 + RULE_ifThenElseStatementNoShortIf = 146 + RULE_assertStatement = 147 + RULE_switchStatement = 148 + RULE_switchBlock = 149 + RULE_switchBlockStatementGroup = 150 + RULE_switchLabels = 151 + RULE_switchLabel = 152 + RULE_enumConstantName = 153 + RULE_whileStatement = 154 + RULE_whileStatementNoShortIf = 155 + RULE_doStatement = 156 + RULE_forStatement = 157 + RULE_forStatementNoShortIf = 158 + RULE_basicForStatement = 159 + RULE_basicForStatementNoShortIf = 160 + RULE_forInit = 161 + RULE_forUpdate = 162 + RULE_statementExpressionList = 163 + RULE_enhancedForStatement = 164 + RULE_enhancedForStatementNoShortIf = 165 + RULE_breakStatement = 166 + RULE_continueStatement = 167 + RULE_returnStatement = 168 + RULE_throwStatement = 169 + RULE_synchronizedStatement = 170 + RULE_tryStatement = 171 + RULE_catches = 172 + RULE_catchClause = 173 + RULE_catchFormalParameter = 174 + RULE_catchType = 175 + RULE_finally_ = 176 + RULE_tryWithResourcesStatement = 177 + RULE_resourceSpecification = 178 + RULE_resourceList = 179 + RULE_resource = 180 + RULE_variableAccess = 181 + RULE_primary = 182 + RULE_primaryNoNewArray = 183 + RULE_primaryNoNewArray_lf_arrayAccess = 184 + RULE_primaryNoNewArray_lfno_arrayAccess = 185 + RULE_primaryNoNewArray_lf_primary = 186 + RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary = 187 + RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary = 188 + RULE_primaryNoNewArray_lfno_primary = 189 + RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary = 190 + RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary = 191 + RULE_classLiteral = 192 + RULE_classInstanceCreationExpression = 193 + RULE_classInstanceCreationExpression_lf_primary = 194 + RULE_classInstanceCreationExpression_lfno_primary = 195 + RULE_typeArgumentsOrDiamond = 196 + RULE_fieldAccess = 197 + RULE_fieldAccess_lf_primary = 198 + RULE_fieldAccess_lfno_primary = 199 + RULE_arrayAccess = 200 + RULE_arrayAccess_lf_primary = 201 + RULE_arrayAccess_lfno_primary = 202 + RULE_methodInvocation = 203 + RULE_methodInvocation_lf_primary = 204 + RULE_methodInvocation_lfno_primary = 205 + RULE_argumentList = 206 + RULE_methodReference = 207 + RULE_methodReference_lf_primary = 208 + RULE_methodReference_lfno_primary = 209 + RULE_arrayCreationExpression = 210 + RULE_dimExprs = 211 + RULE_dimExpr = 212 + RULE_constantExpression = 213 + RULE_expression = 214 + RULE_lambdaExpression = 215 + RULE_lambdaParameters = 216 + RULE_inferredFormalParameterList = 217 + RULE_lambdaBody = 218 + RULE_assignmentExpression = 219 + RULE_assignment = 220 + RULE_leftHandSide = 221 + RULE_assignmentOperator = 222 + RULE_conditionalExpression = 223 + RULE_conditionalOrExpression = 224 + RULE_conditionalAndExpression = 225 + RULE_inclusiveOrExpression = 226 + RULE_exclusiveOrExpression = 227 + RULE_andExpression = 228 + RULE_equalityExpression = 229 + RULE_relationalExpression = 230 + RULE_shiftExpression = 231 + RULE_additiveExpression = 232 + RULE_multiplicativeExpression = 233 + RULE_unaryExpression = 234 + RULE_preIncrementExpression = 235 + RULE_preDecrementExpression = 236 + RULE_unaryExpressionNotPlusMinus = 237 + RULE_postfixExpression = 238 + RULE_postIncrementExpression = 239 + RULE_postIncrementExpression_lf_postfixExpression = 240 + RULE_postDecrementExpression = 241 + RULE_postDecrementExpression_lf_postfixExpression = 242 + RULE_castExpression = 243 + RULE_identifier = 244 + + ruleNames = [ "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", "moduleName", + "packageName", "typeName", "packageOrTypeName", "expressionName", + "methodName", "ambiguousName", "compilationUnit", "ordinaryCompilation", + "modularCompilation", "packageDeclaration", "packageModifier", + "importDeclaration", "singleTypeImportDeclaration", "typeImportOnDemandDeclaration", + "singleStaticImportDeclaration", "staticImportOnDemandDeclaration", + "typeDeclaration", "moduleDeclaration", "moduleDirective", + "requiresModifier", "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", + "variableAccess", "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", + "classLiteral", "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", "identifier" ] + + EOF = Token.EOF + 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 + EXPORTS=17 + EXTENDS=18 + FINAL=19 + FINALLY=20 + FLOAT=21 + FOR=22 + IF=23 + GOTO=24 + IMPLEMENTS=25 + IMPORT=26 + INSTANCEOF=27 + INT=28 + INTERFACE=29 + LONG=30 + MODULE=31 + NATIVE=32 + NEW=33 + OPEN=34 + OPERNS=35 + PACKAGE=36 + PRIVATE=37 + PROTECTED=38 + PROVIDES=39 + PUBLIC=40 + REQUIRES=41 + RETURN=42 + SHORT=43 + STATIC=44 + STRICTFP=45 + SUPER=46 + SWITCH=47 + SYNCHRONIZED=48 + THIS=49 + THROW=50 + THROWS=51 + TO=52 + TRANSIENT=53 + TRANSITIVE=54 + TRY=55 + USES=56 + VOID=57 + VOLATILE=58 + WHILE=59 + WITH=60 + UNDER_SCORE=61 + IntegerLiteral=62 + FloatingPointLiteral=63 + BooleanLiteral=64 + CharacterLiteral=65 + StringLiteral=66 + NullLiteral=67 + LPAREN=68 + RPAREN=69 + LBRACE=70 + RBRACE=71 + LBRACK=72 + RBRACK=73 + SEMI=74 + COMMA=75 + DOT=76 + ELLIPSIS=77 + AT=78 + COLONCOLON=79 + ASSIGN=80 + GT=81 + LT=82 + BANG=83 + TILDE=84 + QUESTION=85 + COLON=86 + ARROW=87 + EQUAL=88 + LE=89 + GE=90 + NOTEQUAL=91 + AND=92 + OR=93 + INC=94 + DEC=95 + ADD=96 + SUB=97 + MUL=98 + DIV=99 + BITAND=100 + BITOR=101 + CARET=102 + MOD=103 + ADD_ASSIGN=104 + SUB_ASSIGN=105 + MUL_ASSIGN=106 + DIV_ASSIGN=107 + AND_ASSIGN=108 + OR_ASSIGN=109 + XOR_ASSIGN=110 + MOD_ASSIGN=111 + LSHIFT_ASSIGN=112 + RSHIFT_ASSIGN=113 + URSHIFT_ASSIGN=114 + Identifier=115 + WS=116 + COMMENT=117 + LINE_COMMENT=118 + + def __init__(self, input:TokenStream, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) + self._predicates = None + + + + class LiteralContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IntegerLiteral(self): + return self.getToken(Java9Parser.IntegerLiteral, 0) + + def FloatingPointLiteral(self): + return self.getToken(Java9Parser.FloatingPointLiteral, 0) + + def BooleanLiteral(self): + return self.getToken(Java9Parser.BooleanLiteral, 0) + + def CharacterLiteral(self): + return self.getToken(Java9Parser.CharacterLiteral, 0) + + def StringLiteral(self): + return self.getToken(Java9Parser.StringLiteral, 0) + + def NullLiteral(self): + return self.getToken(Java9Parser.NullLiteral, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_literal + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLiteral" ): + listener.enterLiteral(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLiteral" ): + listener.exitLiteral(self) + + + + + def literal(self): + + localctx = Java9Parser.LiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 0, self.RULE_literal) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 490 + _la = self._input.LA(1) + if not(((((_la - 62)) & ~0x3f) == 0 and ((1 << (_la - 62)) & ((1 << (Java9Parser.IntegerLiteral - 62)) | (1 << (Java9Parser.FloatingPointLiteral - 62)) | (1 << (Java9Parser.BooleanLiteral - 62)) | (1 << (Java9Parser.CharacterLiteral - 62)) | (1 << (Java9Parser.StringLiteral - 62)) | (1 << (Java9Parser.NullLiteral - 62)))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimitiveTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def numericType(self): + return self.getTypedRuleContext(Java9Parser.NumericTypeContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def BOOLEAN(self): + return self.getToken(Java9Parser.BOOLEAN, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_primitiveType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimitiveType" ): + listener.enterPrimitiveType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimitiveType" ): + listener.exitPrimitiveType(self) + + + + + def primitiveType(self): + + localctx = Java9Parser.PrimitiveTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 2, self.RULE_primitiveType) + self._la = 0 # Token type + try: + self.state = 506 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,2,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 495 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 492 + self.annotation() + self.state = 497 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 498 + self.numericType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 502 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 499 + self.annotation() + self.state = 504 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 505 + self.match(Java9Parser.BOOLEAN) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class NumericTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def integralType(self): + return self.getTypedRuleContext(Java9Parser.IntegralTypeContext,0) + + + def floatingPointType(self): + return self.getTypedRuleContext(Java9Parser.FloatingPointTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_numericType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNumericType" ): + listener.enterNumericType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNumericType" ): + listener.exitNumericType(self) + + + + + def numericType(self): + + localctx = Java9Parser.NumericTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 4, self.RULE_numericType) + try: + self.state = 510 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.INT, Java9Parser.LONG, Java9Parser.SHORT]: + self.enterOuterAlt(localctx, 1) + self.state = 508 + self.integralType() + pass + elif token in [Java9Parser.DOUBLE, Java9Parser.FLOAT]: + self.enterOuterAlt(localctx, 2) + self.state = 509 + self.floatingPointType() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class IntegralTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def BYTE(self): + return self.getToken(Java9Parser.BYTE, 0) + + def SHORT(self): + return self.getToken(Java9Parser.SHORT, 0) + + def INT(self): + return self.getToken(Java9Parser.INT, 0) + + def LONG(self): + return self.getToken(Java9Parser.LONG, 0) + + def CHAR(self): + return self.getToken(Java9Parser.CHAR, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_integralType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterIntegralType" ): + listener.enterIntegralType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitIntegralType" ): + listener.exitIntegralType(self) + + + + + def integralType(self): + + localctx = Java9Parser.IntegralTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 6, self.RULE_integralType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 512 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.SHORT))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FloatingPointTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FLOAT(self): + return self.getToken(Java9Parser.FLOAT, 0) + + def DOUBLE(self): + return self.getToken(Java9Parser.DOUBLE, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_floatingPointType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFloatingPointType" ): + listener.enterFloatingPointType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFloatingPointType" ): + listener.exitFloatingPointType(self) + + + + + def floatingPointType(self): + + localctx = Java9Parser.FloatingPointTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 8, self.RULE_floatingPointType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 514 + _la = self._input.LA(1) + if not(_la==Java9Parser.DOUBLE or _la==Java9Parser.FLOAT): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ReferenceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) + + + def typeVariable(self): + return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) + + + def arrayType(self): + return self.getTypedRuleContext(Java9Parser.ArrayTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_referenceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterReferenceType" ): + listener.enterReferenceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitReferenceType" ): + listener.exitReferenceType(self) + + + + + def referenceType(self): + + localctx = Java9Parser.ReferenceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 10, self.RULE_referenceType) + try: + self.state = 519 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,4,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 516 + self.classOrInterfaceType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 517 + self.typeVariable() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 518 + self.arrayType() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classType_lfno_classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassType_lfno_classOrInterfaceTypeContext,0) + + + def interfaceType_lfno_classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext,0) + + + def classType_lf_classOrInterfaceType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ClassType_lf_classOrInterfaceTypeContext) + else: + return self.getTypedRuleContext(Java9Parser.ClassType_lf_classOrInterfaceTypeContext,i) + + + def interfaceType_lf_classOrInterfaceType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext) + else: + return self.getTypedRuleContext(Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_classOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassOrInterfaceType" ): + listener.enterClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassOrInterfaceType" ): + listener.exitClassOrInterfaceType(self) + + + + + def classOrInterfaceType(self): + + localctx = Java9Parser.ClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 12, self.RULE_classOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 523 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,5,self._ctx) + if la_ == 1: + self.state = 521 + self.classType_lfno_classOrInterfaceType() + pass + + elif la_ == 2: + self.state = 522 + self.interfaceType_lfno_classOrInterfaceType() + pass + + + self.state = 529 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,7,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 527 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,6,self._ctx) + if la_ == 1: + self.state = 525 + self.classType_lf_classOrInterfaceType() + pass + + elif la_ == 2: + self.state = 526 + self.interfaceType_lf_classOrInterfaceType() + pass + + + self.state = 531 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,7,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_classType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassType" ): + listener.enterClassType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassType" ): + listener.exitClassType(self) + + + + + def classType(self): + + localctx = Java9Parser.ClassTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 14, self.RULE_classType) + self._la = 0 # Token type + try: + self.state = 554 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,12,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 535 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 532 + self.annotation() + self.state = 537 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 538 + self.identifier() + self.state = 540 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 539 + self.typeArguments() + + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 542 + self.classOrInterfaceType() + self.state = 543 + self.match(Java9Parser.DOT) + self.state = 547 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 544 + self.annotation() + self.state = 549 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 550 + self.identifier() + self.state = 552 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 551 + self.typeArguments() + + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassType_lf_classOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_classType_lf_classOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassType_lf_classOrInterfaceType" ): + listener.enterClassType_lf_classOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassType_lf_classOrInterfaceType" ): + listener.exitClassType_lf_classOrInterfaceType(self) + + + + + def classType_lf_classOrInterfaceType(self): + + localctx = Java9Parser.ClassType_lf_classOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 16, self.RULE_classType_lf_classOrInterfaceType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 556 + self.match(Java9Parser.DOT) + self.state = 560 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 557 + self.annotation() + self.state = 562 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 563 + self.identifier() + self.state = 565 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,14,self._ctx) + if la_ == 1: + self.state = 564 + self.typeArguments() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassType_lfno_classOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_classType_lfno_classOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassType_lfno_classOrInterfaceType" ): + listener.enterClassType_lfno_classOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassType_lfno_classOrInterfaceType" ): + listener.exitClassType_lfno_classOrInterfaceType(self) + + + + + def classType_lfno_classOrInterfaceType(self): + + localctx = Java9Parser.ClassType_lfno_classOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 18, self.RULE_classType_lfno_classOrInterfaceType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 570 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 567 + self.annotation() + self.state = 572 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 573 + self.identifier() + self.state = 575 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,16,self._ctx) + if la_ == 1: + self.state = 574 + self.typeArguments() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classType(self): + return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceType" ): + listener.enterInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceType" ): + listener.exitInterfaceType(self) + + + + + def interfaceType(self): + + localctx = Java9Parser.InterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 20, self.RULE_interfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 577 + self.classType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceType_lf_classOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classType_lf_classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassType_lf_classOrInterfaceTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceType_lf_classOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceType_lf_classOrInterfaceType" ): + listener.enterInterfaceType_lf_classOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceType_lf_classOrInterfaceType" ): + listener.exitInterfaceType_lf_classOrInterfaceType(self) + + + + + def interfaceType_lf_classOrInterfaceType(self): + + localctx = Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 22, self.RULE_interfaceType_lf_classOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 579 + self.classType_lf_classOrInterfaceType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceType_lfno_classOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classType_lfno_classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassType_lfno_classOrInterfaceTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceType_lfno_classOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceType_lfno_classOrInterfaceType" ): + listener.enterInterfaceType_lfno_classOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceType_lfno_classOrInterfaceType" ): + listener.exitInterfaceType_lfno_classOrInterfaceType(self) + + + + + def interfaceType_lfno_classOrInterfaceType(self): + + localctx = Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 24, self.RULE_interfaceType_lfno_classOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 581 + self.classType_lfno_classOrInterfaceType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeVariableContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_typeVariable + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeVariable" ): + listener.enterTypeVariable(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeVariable" ): + listener.exitTypeVariable(self) + + + + + def typeVariable(self): + + localctx = Java9Parser.TypeVariableContext(self, self._ctx, self.state) + self.enterRule(localctx, 26, self.RULE_typeVariable) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 586 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 583 + self.annotation() + self.state = 588 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 589 + self.identifier() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def primitiveType(self): + return self.getTypedRuleContext(Java9Parser.PrimitiveTypeContext,0) + + + def dims(self): + return self.getTypedRuleContext(Java9Parser.DimsContext,0) + + + def classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) + + + def typeVariable(self): + return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_arrayType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayType" ): + listener.enterArrayType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayType" ): + listener.exitArrayType(self) + + + + + def arrayType(self): + + localctx = Java9Parser.ArrayTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 28, self.RULE_arrayType) + try: + self.state = 600 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,18,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 591 + self.primitiveType() + self.state = 592 + self.dims() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 594 + self.classOrInterfaceType() + self.state = 595 + self.dims() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 597 + self.typeVariable() + self.state = 598 + self.dims() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DimsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_dims + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDims" ): + listener.enterDims(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDims" ): + listener.exitDims(self) + + + + + def dims(self): + + localctx = Java9Parser.DimsContext(self, self._ctx, self.state) + self.enterRule(localctx, 30, self.RULE_dims) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 605 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 602 + self.annotation() + self.state = 607 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 608 + self.match(Java9Parser.LBRACK) + self.state = 609 + self.match(Java9Parser.RBRACK) + self.state = 620 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,21,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 613 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 610 + self.annotation() + self.state = 615 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 616 + self.match(Java9Parser.LBRACK) + self.state = 617 + self.match(Java9Parser.RBRACK) + self.state = 622 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,21,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeParameterModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.TypeParameterModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.TypeParameterModifierContext,i) + + + def typeBound(self): + return self.getTypedRuleContext(Java9Parser.TypeBoundContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_typeParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameter" ): + listener.enterTypeParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameter" ): + listener.exitTypeParameter(self) + + + + + def typeParameter(self): + + localctx = Java9Parser.TypeParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 32, self.RULE_typeParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 626 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 623 + self.typeParameterModifier() + self.state = 628 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 629 + self.identifier() + self.state = 631 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.EXTENDS: + self.state = 630 + self.typeBound() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeParameterModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_typeParameterModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameterModifier" ): + listener.enterTypeParameterModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameterModifier" ): + listener.exitTypeParameterModifier(self) + + + + + def typeParameterModifier(self): + + localctx = Java9Parser.TypeParameterModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 34, self.RULE_typeParameterModifier) + try: + self.enterOuterAlt(localctx, 1) + self.state = 633 + self.annotation() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeBoundContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EXTENDS(self): + return self.getToken(Java9Parser.EXTENDS, 0) + + def typeVariable(self): + return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) + + + def classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) + + + def additionalBound(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AdditionalBoundContext) + else: + return self.getTypedRuleContext(Java9Parser.AdditionalBoundContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_typeBound + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeBound" ): + listener.enterTypeBound(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeBound" ): + listener.exitTypeBound(self) + + + + + def typeBound(self): + + localctx = Java9Parser.TypeBoundContext(self, self._ctx, self.state) + self.enterRule(localctx, 36, self.RULE_typeBound) + self._la = 0 # Token type + try: + self.state = 645 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,25,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 635 + self.match(Java9Parser.EXTENDS) + self.state = 636 + self.typeVariable() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 637 + self.match(Java9Parser.EXTENDS) + self.state = 638 + self.classOrInterfaceType() + self.state = 642 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.BITAND: + self.state = 639 + self.additionalBound() + self.state = 644 + self._errHandler.sync(self) + _la = self._input.LA(1) + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AdditionalBoundContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def BITAND(self): + return self.getToken(Java9Parser.BITAND, 0) + + def interfaceType(self): + return self.getTypedRuleContext(Java9Parser.InterfaceTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_additionalBound + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAdditionalBound" ): + listener.enterAdditionalBound(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAdditionalBound" ): + listener.exitAdditionalBound(self) + + + + + def additionalBound(self): + + localctx = Java9Parser.AdditionalBoundContext(self, self._ctx, self.state) + self.enterRule(localctx, 38, self.RULE_additionalBound) + try: + self.enterOuterAlt(localctx, 1) + self.state = 647 + self.match(Java9Parser.BITAND) + self.state = 648 + self.interfaceType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeArgumentsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LT(self): + return self.getToken(Java9Parser.LT, 0) + + def typeArgumentList(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentListContext,0) + + + def GT(self): + return self.getToken(Java9Parser.GT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_typeArguments + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArguments" ): + listener.enterTypeArguments(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArguments" ): + listener.exitTypeArguments(self) + + + + + def typeArguments(self): + + localctx = Java9Parser.TypeArgumentsContext(self, self._ctx, self.state) + self.enterRule(localctx, 40, self.RULE_typeArguments) + try: + self.enterOuterAlt(localctx, 1) + self.state = 650 + self.match(Java9Parser.LT) + self.state = 651 + self.typeArgumentList() + self.state = 652 + self.match(Java9Parser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeArgumentListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeArgument(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.TypeArgumentContext) + else: + return self.getTypedRuleContext(Java9Parser.TypeArgumentContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_typeArgumentList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArgumentList" ): + listener.enterTypeArgumentList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArgumentList" ): + listener.exitTypeArgumentList(self) + + + + + def typeArgumentList(self): + + localctx = Java9Parser.TypeArgumentListContext(self, self._ctx, self.state) + self.enterRule(localctx, 42, self.RULE_typeArgumentList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 654 + self.typeArgument() + self.state = 659 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 655 + self.match(Java9Parser.COMMA) + self.state = 656 + self.typeArgument() + self.state = 661 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeArgumentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def referenceType(self): + return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) + + + def wildcard(self): + return self.getTypedRuleContext(Java9Parser.WildcardContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_typeArgument + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArgument" ): + listener.enterTypeArgument(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArgument" ): + listener.exitTypeArgument(self) + + + + + def typeArgument(self): + + localctx = Java9Parser.TypeArgumentContext(self, self._ctx, self.state) + self.enterRule(localctx, 44, self.RULE_typeArgument) + try: + self.state = 664 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,27,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 662 + self.referenceType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 663 + self.wildcard() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class WildcardContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def QUESTION(self): + return self.getToken(Java9Parser.QUESTION, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def wildcardBounds(self): + return self.getTypedRuleContext(Java9Parser.WildcardBoundsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_wildcard + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterWildcard" ): + listener.enterWildcard(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitWildcard" ): + listener.exitWildcard(self) + + + + + def wildcard(self): + + localctx = Java9Parser.WildcardContext(self, self._ctx, self.state) + self.enterRule(localctx, 46, self.RULE_wildcard) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 669 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 666 + self.annotation() + self.state = 671 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 672 + self.match(Java9Parser.QUESTION) + self.state = 674 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.EXTENDS or _la==Java9Parser.SUPER: + self.state = 673 + self.wildcardBounds() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class WildcardBoundsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EXTENDS(self): + return self.getToken(Java9Parser.EXTENDS, 0) + + def referenceType(self): + return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) + + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_wildcardBounds + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterWildcardBounds" ): + listener.enterWildcardBounds(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitWildcardBounds" ): + listener.exitWildcardBounds(self) + + + + + def wildcardBounds(self): + + localctx = Java9Parser.WildcardBoundsContext(self, self._ctx, self.state) + self.enterRule(localctx, 48, self.RULE_wildcardBounds) + try: + self.state = 680 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.EXTENDS]: + self.enterOuterAlt(localctx, 1) + self.state = 676 + self.match(Java9Parser.EXTENDS) + self.state = 677 + self.referenceType() + pass + elif token in [Java9Parser.SUPER]: + self.enterOuterAlt(localctx, 2) + self.state = 678 + self.match(Java9Parser.SUPER) + self.state = 679 + self.referenceType() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ModuleNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def moduleName(self): + return self.getTypedRuleContext(Java9Parser.ModuleNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_moduleName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterModuleName" ): + listener.enterModuleName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitModuleName" ): + listener.exitModuleName(self) + + + + def moduleName(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.ModuleNameContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 50 + self.enterRecursionRule(localctx, 50, self.RULE_moduleName, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 683 + self.identifier() + self._ctx.stop = self._input.LT(-1) + self.state = 690 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,31,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.ModuleNameContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_moduleName) + self.state = 685 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 686 + self.match(Java9Parser.DOT) + self.state = 687 + self.identifier() + self.state = 692 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,31,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class PackageNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def packageName(self): + return self.getTypedRuleContext(Java9Parser.PackageNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_packageName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPackageName" ): + listener.enterPackageName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPackageName" ): + listener.exitPackageName(self) + + + + def packageName(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.PackageNameContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 52 + self.enterRecursionRule(localctx, 52, self.RULE_packageName, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 694 + self.identifier() + self._ctx.stop = self._input.LT(-1) + self.state = 701 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,32,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.PackageNameContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_packageName) + self.state = 696 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 697 + self.match(Java9Parser.DOT) + self.state = 698 + self.identifier() + self.state = 703 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,32,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class TypeNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def packageOrTypeName(self): + return self.getTypedRuleContext(Java9Parser.PackageOrTypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_typeName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeName" ): + listener.enterTypeName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeName" ): + listener.exitTypeName(self) + + + + + def typeName(self): + + localctx = Java9Parser.TypeNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 54, self.RULE_typeName) + try: + self.state = 709 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,33,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 704 + self.identifier() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 705 + self.packageOrTypeName(0) + self.state = 706 + self.match(Java9Parser.DOT) + self.state = 707 + self.identifier() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PackageOrTypeNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def packageOrTypeName(self): + return self.getTypedRuleContext(Java9Parser.PackageOrTypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_packageOrTypeName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPackageOrTypeName" ): + listener.enterPackageOrTypeName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPackageOrTypeName" ): + listener.exitPackageOrTypeName(self) + + + + def packageOrTypeName(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.PackageOrTypeNameContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 56 + self.enterRecursionRule(localctx, 56, self.RULE_packageOrTypeName, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 712 + self.identifier() + self._ctx.stop = self._input.LT(-1) + self.state = 719 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.PackageOrTypeNameContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_packageOrTypeName) + self.state = 714 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 715 + self.match(Java9Parser.DOT) + self.state = 716 + self.identifier() + self.state = 721 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class ExpressionNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def ambiguousName(self): + return self.getTypedRuleContext(Java9Parser.AmbiguousNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_expressionName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExpressionName" ): + listener.enterExpressionName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExpressionName" ): + listener.exitExpressionName(self) + + + + + def expressionName(self): + + localctx = Java9Parser.ExpressionNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 58, self.RULE_expressionName) + try: + self.state = 727 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,35,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 722 + self.identifier() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 723 + self.ambiguousName(0) + self.state = 724 + self.match(Java9Parser.DOT) + self.state = 725 + self.identifier() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodName" ): + listener.enterMethodName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodName" ): + listener.exitMethodName(self) + + + + + def methodName(self): + + localctx = Java9Parser.MethodNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 60, self.RULE_methodName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 729 + self.identifier() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AmbiguousNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def ambiguousName(self): + return self.getTypedRuleContext(Java9Parser.AmbiguousNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_ambiguousName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAmbiguousName" ): + listener.enterAmbiguousName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAmbiguousName" ): + listener.exitAmbiguousName(self) + + + + def ambiguousName(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.AmbiguousNameContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 62 + self.enterRecursionRule(localctx, 62, self.RULE_ambiguousName, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 732 + self.identifier() + self._ctx.stop = self._input.LT(-1) + self.state = 739 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,36,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.AmbiguousNameContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_ambiguousName) + self.state = 734 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 735 + self.match(Java9Parser.DOT) + self.state = 736 + self.identifier() + self.state = 741 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,36,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class CompilationUnitContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def ordinaryCompilation(self): + return self.getTypedRuleContext(Java9Parser.OrdinaryCompilationContext,0) + + + def modularCompilation(self): + return self.getTypedRuleContext(Java9Parser.ModularCompilationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_compilationUnit + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCompilationUnit" ): + listener.enterCompilationUnit(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCompilationUnit" ): + listener.exitCompilationUnit(self) + + + + + def compilationUnit(self): + + localctx = Java9Parser.CompilationUnitContext(self, self._ctx, self.state) + self.enterRule(localctx, 64, self.RULE_compilationUnit) + try: + self.state = 744 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,37,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 742 + self.ordinaryCompilation() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 743 + self.modularCompilation() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class OrdinaryCompilationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EOF(self): + return self.getToken(Java9Parser.EOF, 0) + + def packageDeclaration(self): + return self.getTypedRuleContext(Java9Parser.PackageDeclarationContext,0) + + + def importDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ImportDeclarationContext) + else: + return self.getTypedRuleContext(Java9Parser.ImportDeclarationContext,i) + + + def typeDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.TypeDeclarationContext) + else: + return self.getTypedRuleContext(Java9Parser.TypeDeclarationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_ordinaryCompilation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterOrdinaryCompilation" ): + listener.enterOrdinaryCompilation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitOrdinaryCompilation" ): + listener.exitOrdinaryCompilation(self) + + + + + def ordinaryCompilation(self): + + localctx = Java9Parser.OrdinaryCompilationContext(self, self._ctx, self.state) + self.enterRule(localctx, 66, self.RULE_ordinaryCompilation) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 747 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,38,self._ctx) + if la_ == 1: + self.state = 746 + self.packageDeclaration() + + + self.state = 752 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.IMPORT: + self.state = 749 + self.importDeclaration() + self.state = 754 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 758 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.SEMI or _la==Java9Parser.AT: + self.state = 755 + self.typeDeclaration() + self.state = 760 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 761 + self.match(Java9Parser.EOF) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ModularCompilationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def moduleDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ModuleDeclarationContext,0) + + + def importDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ImportDeclarationContext) + else: + return self.getTypedRuleContext(Java9Parser.ImportDeclarationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_modularCompilation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterModularCompilation" ): + listener.enterModularCompilation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitModularCompilation" ): + listener.exitModularCompilation(self) + + + + + def modularCompilation(self): + + localctx = Java9Parser.ModularCompilationContext(self, self._ctx, self.state) + self.enterRule(localctx, 68, self.RULE_modularCompilation) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 766 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.IMPORT: + self.state = 763 + self.importDeclaration() + self.state = 768 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 769 + self.moduleDeclaration() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PackageDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def PACKAGE(self): + return self.getToken(Java9Parser.PACKAGE, 0) + + def packageName(self): + return self.getTypedRuleContext(Java9Parser.PackageNameContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def packageModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.PackageModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.PackageModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_packageDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPackageDeclaration" ): + listener.enterPackageDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPackageDeclaration" ): + listener.exitPackageDeclaration(self) + + + + + def packageDeclaration(self): + + localctx = Java9Parser.PackageDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 70, self.RULE_packageDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 774 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 771 + self.packageModifier() + self.state = 776 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 777 + self.match(Java9Parser.PACKAGE) + self.state = 778 + self.packageName(0) + self.state = 779 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PackageModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_packageModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPackageModifier" ): + listener.enterPackageModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPackageModifier" ): + listener.exitPackageModifier(self) + + + + + def packageModifier(self): + + localctx = Java9Parser.PackageModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 72, self.RULE_packageModifier) + try: + self.enterOuterAlt(localctx, 1) + self.state = 781 + self.annotation() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ImportDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def singleTypeImportDeclaration(self): + return self.getTypedRuleContext(Java9Parser.SingleTypeImportDeclarationContext,0) + + + def typeImportOnDemandDeclaration(self): + return self.getTypedRuleContext(Java9Parser.TypeImportOnDemandDeclarationContext,0) + + + def singleStaticImportDeclaration(self): + return self.getTypedRuleContext(Java9Parser.SingleStaticImportDeclarationContext,0) + + + def staticImportOnDemandDeclaration(self): + return self.getTypedRuleContext(Java9Parser.StaticImportOnDemandDeclarationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_importDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterImportDeclaration" ): + listener.enterImportDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitImportDeclaration" ): + listener.exitImportDeclaration(self) + + + + + def importDeclaration(self): + + localctx = Java9Parser.ImportDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 74, self.RULE_importDeclaration) + try: + self.state = 787 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,43,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 783 + self.singleTypeImportDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 784 + self.typeImportOnDemandDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 785 + self.singleStaticImportDeclaration() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 786 + self.staticImportOnDemandDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SingleTypeImportDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IMPORT(self): + return self.getToken(Java9Parser.IMPORT, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_singleTypeImportDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSingleTypeImportDeclaration" ): + listener.enterSingleTypeImportDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSingleTypeImportDeclaration" ): + listener.exitSingleTypeImportDeclaration(self) + + + + + def singleTypeImportDeclaration(self): + + localctx = Java9Parser.SingleTypeImportDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 76, self.RULE_singleTypeImportDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 789 + self.match(Java9Parser.IMPORT) + self.state = 790 + self.typeName() + self.state = 791 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeImportOnDemandDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IMPORT(self): + return self.getToken(Java9Parser.IMPORT, 0) + + def packageOrTypeName(self): + return self.getTypedRuleContext(Java9Parser.PackageOrTypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def MUL(self): + return self.getToken(Java9Parser.MUL, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_typeImportOnDemandDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeImportOnDemandDeclaration" ): + listener.enterTypeImportOnDemandDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeImportOnDemandDeclaration" ): + listener.exitTypeImportOnDemandDeclaration(self) + + + + + def typeImportOnDemandDeclaration(self): + + localctx = Java9Parser.TypeImportOnDemandDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 78, self.RULE_typeImportOnDemandDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 793 + self.match(Java9Parser.IMPORT) + self.state = 794 + self.packageOrTypeName(0) + self.state = 795 + self.match(Java9Parser.DOT) + self.state = 796 + self.match(Java9Parser.MUL) + self.state = 797 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SingleStaticImportDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IMPORT(self): + return self.getToken(Java9Parser.IMPORT, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_singleStaticImportDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSingleStaticImportDeclaration" ): + listener.enterSingleStaticImportDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSingleStaticImportDeclaration" ): + listener.exitSingleStaticImportDeclaration(self) + + + + + def singleStaticImportDeclaration(self): + + localctx = Java9Parser.SingleStaticImportDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 80, self.RULE_singleStaticImportDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 799 + self.match(Java9Parser.IMPORT) + self.state = 800 + self.match(Java9Parser.STATIC) + self.state = 801 + self.typeName() + self.state = 802 + self.match(Java9Parser.DOT) + self.state = 803 + self.identifier() + self.state = 804 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StaticImportOnDemandDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IMPORT(self): + return self.getToken(Java9Parser.IMPORT, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def MUL(self): + return self.getToken(Java9Parser.MUL, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_staticImportOnDemandDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStaticImportOnDemandDeclaration" ): + listener.enterStaticImportOnDemandDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStaticImportOnDemandDeclaration" ): + listener.exitStaticImportOnDemandDeclaration(self) + + + + + def staticImportOnDemandDeclaration(self): + + localctx = Java9Parser.StaticImportOnDemandDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 82, self.RULE_staticImportOnDemandDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 806 + self.match(Java9Parser.IMPORT) + self.state = 807 + self.match(Java9Parser.STATIC) + self.state = 808 + self.typeName() + self.state = 809 + self.match(Java9Parser.DOT) + self.state = 810 + self.match(Java9Parser.MUL) + self.state = 811 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_typeDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeDeclaration" ): + listener.enterTypeDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeDeclaration" ): + listener.exitTypeDeclaration(self) + + + + + def typeDeclaration(self): + + localctx = Java9Parser.TypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 84, self.RULE_typeDeclaration) + try: + self.state = 816 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,44,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 813 + self.classDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 814 + self.interfaceDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 815 + self.match(Java9Parser.SEMI) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ModuleDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def MODULE(self): + return self.getToken(Java9Parser.MODULE, 0) + + def moduleName(self): + return self.getTypedRuleContext(Java9Parser.ModuleNameContext,0) + + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def OPEN(self): + return self.getToken(Java9Parser.OPEN, 0) + + def moduleDirective(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ModuleDirectiveContext) + else: + return self.getTypedRuleContext(Java9Parser.ModuleDirectiveContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_moduleDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterModuleDeclaration" ): + listener.enterModuleDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitModuleDeclaration" ): + listener.exitModuleDeclaration(self) + + + + + def moduleDeclaration(self): + + localctx = Java9Parser.ModuleDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 86, self.RULE_moduleDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 821 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 818 + self.annotation() + self.state = 823 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 825 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.OPEN: + self.state = 824 + self.match(Java9Parser.OPEN) + + + self.state = 827 + self.match(Java9Parser.MODULE) + self.state = 828 + self.moduleName(0) + self.state = 829 + self.match(Java9Parser.LBRACE) + self.state = 833 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.USES))) != 0): + self.state = 830 + self.moduleDirective() + self.state = 835 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 836 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ModuleDirectiveContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def REQUIRES(self): + return self.getToken(Java9Parser.REQUIRES, 0) + + def moduleName(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ModuleNameContext) + else: + return self.getTypedRuleContext(Java9Parser.ModuleNameContext,i) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def requiresModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.RequiresModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.RequiresModifierContext,i) + + + def EXPORTS(self): + return self.getToken(Java9Parser.EXPORTS, 0) + + def packageName(self): + return self.getTypedRuleContext(Java9Parser.PackageNameContext,0) + + + def TO(self): + return self.getToken(Java9Parser.TO, 0) + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def OPERNS(self): + return self.getToken(Java9Parser.OPERNS, 0) + + def USES(self): + return self.getToken(Java9Parser.USES, 0) + + def typeName(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.TypeNameContext) + else: + return self.getTypedRuleContext(Java9Parser.TypeNameContext,i) + + + def PROVIDES(self): + return self.getToken(Java9Parser.PROVIDES, 0) + + def WITH(self): + return self.getToken(Java9Parser.WITH, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_moduleDirective + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterModuleDirective" ): + listener.enterModuleDirective(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitModuleDirective" ): + listener.exitModuleDirective(self) + + + + + def moduleDirective(self): + + localctx = Java9Parser.ModuleDirectiveContext(self, self._ctx, self.state) + self.enterRule(localctx, 88, self.RULE_moduleDirective) + self._la = 0 # Token type + try: + self.state = 895 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.REQUIRES]: + self.enterOuterAlt(localctx, 1) + self.state = 838 + self.match(Java9Parser.REQUIRES) + self.state = 842 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.STATIC or _la==Java9Parser.TRANSITIVE: + self.state = 839 + self.requiresModifier() + self.state = 844 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 845 + self.moduleName(0) + self.state = 846 + self.match(Java9Parser.SEMI) + pass + elif token in [Java9Parser.EXPORTS]: + self.enterOuterAlt(localctx, 2) + self.state = 848 + self.match(Java9Parser.EXPORTS) + self.state = 849 + self.packageName(0) + self.state = 859 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.TO: + self.state = 850 + self.match(Java9Parser.TO) + self.state = 851 + self.moduleName(0) + self.state = 856 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 852 + self.match(Java9Parser.COMMA) + self.state = 853 + self.moduleName(0) + self.state = 858 + self._errHandler.sync(self) + _la = self._input.LA(1) + + + + self.state = 861 + self.match(Java9Parser.SEMI) + pass + elif token in [Java9Parser.OPERNS]: + self.enterOuterAlt(localctx, 3) + self.state = 863 + self.match(Java9Parser.OPERNS) + self.state = 864 + self.packageName(0) + self.state = 874 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.TO: + self.state = 865 + self.match(Java9Parser.TO) + self.state = 866 + self.moduleName(0) + self.state = 871 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 867 + self.match(Java9Parser.COMMA) + self.state = 868 + self.moduleName(0) + self.state = 873 + self._errHandler.sync(self) + _la = self._input.LA(1) + + + + self.state = 876 + self.match(Java9Parser.SEMI) + pass + elif token in [Java9Parser.USES]: + self.enterOuterAlt(localctx, 4) + self.state = 878 + self.match(Java9Parser.USES) + self.state = 879 + self.typeName() + self.state = 880 + self.match(Java9Parser.SEMI) + pass + elif token in [Java9Parser.PROVIDES]: + self.enterOuterAlt(localctx, 5) + self.state = 882 + self.match(Java9Parser.PROVIDES) + self.state = 883 + self.typeName() + self.state = 884 + self.match(Java9Parser.WITH) + self.state = 885 + self.typeName() + self.state = 890 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 886 + self.match(Java9Parser.COMMA) + self.state = 887 + self.typeName() + self.state = 892 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 893 + self.match(Java9Parser.SEMI) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class RequiresModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TRANSITIVE(self): + return self.getToken(Java9Parser.TRANSITIVE, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_requiresModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterRequiresModifier" ): + listener.enterRequiresModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitRequiresModifier" ): + listener.exitRequiresModifier(self) + + + + + def requiresModifier(self): + + localctx = Java9Parser.RequiresModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 90, self.RULE_requiresModifier) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 897 + _la = self._input.LA(1) + if not(_la==Java9Parser.STATIC or _la==Java9Parser.TRANSITIVE): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def normalClassDeclaration(self): + return self.getTypedRuleContext(Java9Parser.NormalClassDeclarationContext,0) + + + def enumDeclaration(self): + return self.getTypedRuleContext(Java9Parser.EnumDeclarationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_classDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassDeclaration" ): + listener.enterClassDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassDeclaration" ): + listener.exitClassDeclaration(self) + + + + + def classDeclaration(self): + + localctx = Java9Parser.ClassDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 92, self.RULE_classDeclaration) + try: + self.state = 901 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,55,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 899 + self.normalClassDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 900 + self.enumDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class NormalClassDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def CLASS(self): + return self.getToken(Java9Parser.CLASS, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def classBody(self): + return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) + + + def classModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ClassModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.ClassModifierContext,i) + + + def typeParameters(self): + return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) + + + def superclass(self): + return self.getTypedRuleContext(Java9Parser.SuperclassContext,0) + + + def superinterfaces(self): + return self.getTypedRuleContext(Java9Parser.SuperinterfacesContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_normalClassDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNormalClassDeclaration" ): + listener.enterNormalClassDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNormalClassDeclaration" ): + listener.exitNormalClassDeclaration(self) + + + + + def normalClassDeclaration(self): + + localctx = Java9Parser.NormalClassDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 94, self.RULE_normalClassDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 906 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: + self.state = 903 + self.classModifier() + self.state = 908 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 909 + self.match(Java9Parser.CLASS) + self.state = 910 + self.identifier() + self.state = 912 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 911 + self.typeParameters() + + + self.state = 915 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.EXTENDS: + self.state = 914 + self.superclass() + + + self.state = 918 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.IMPLEMENTS: + self.state = 917 + self.superinterfaces() + + + self.state = 920 + self.classBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def PROTECTED(self): + return self.getToken(Java9Parser.PROTECTED, 0) + + def PRIVATE(self): + return self.getToken(Java9Parser.PRIVATE, 0) + + def ABSTRACT(self): + return self.getToken(Java9Parser.ABSTRACT, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def FINAL(self): + return self.getToken(Java9Parser.FINAL, 0) + + def STRICTFP(self): + return self.getToken(Java9Parser.STRICTFP, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_classModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassModifier" ): + listener.enterClassModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassModifier" ): + listener.exitClassModifier(self) + + + + + def classModifier(self): + + localctx = Java9Parser.ClassModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 96, self.RULE_classModifier) + try: + self.state = 930 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 922 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 923 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.PROTECTED]: + self.enterOuterAlt(localctx, 3) + self.state = 924 + self.match(Java9Parser.PROTECTED) + pass + elif token in [Java9Parser.PRIVATE]: + self.enterOuterAlt(localctx, 4) + self.state = 925 + self.match(Java9Parser.PRIVATE) + pass + elif token in [Java9Parser.ABSTRACT]: + self.enterOuterAlt(localctx, 5) + self.state = 926 + self.match(Java9Parser.ABSTRACT) + pass + elif token in [Java9Parser.STATIC]: + self.enterOuterAlt(localctx, 6) + self.state = 927 + self.match(Java9Parser.STATIC) + pass + elif token in [Java9Parser.FINAL]: + self.enterOuterAlt(localctx, 7) + self.state = 928 + self.match(Java9Parser.FINAL) + pass + elif token in [Java9Parser.STRICTFP]: + self.enterOuterAlt(localctx, 8) + self.state = 929 + self.match(Java9Parser.STRICTFP) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeParametersContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LT(self): + return self.getToken(Java9Parser.LT, 0) + + def typeParameterList(self): + return self.getTypedRuleContext(Java9Parser.TypeParameterListContext,0) + + + def GT(self): + return self.getToken(Java9Parser.GT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_typeParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameters" ): + listener.enterTypeParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameters" ): + listener.exitTypeParameters(self) + + + + + def typeParameters(self): + + localctx = Java9Parser.TypeParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 98, self.RULE_typeParameters) + try: + self.enterOuterAlt(localctx, 1) + self.state = 932 + self.match(Java9Parser.LT) + self.state = 933 + self.typeParameterList() + self.state = 934 + self.match(Java9Parser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeParameterListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeParameter(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.TypeParameterContext) + else: + return self.getTypedRuleContext(Java9Parser.TypeParameterContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_typeParameterList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameterList" ): + listener.enterTypeParameterList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameterList" ): + listener.exitTypeParameterList(self) + + + + + def typeParameterList(self): + + localctx = Java9Parser.TypeParameterListContext(self, self._ctx, self.state) + self.enterRule(localctx, 100, self.RULE_typeParameterList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 936 + self.typeParameter() + self.state = 941 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 937 + self.match(Java9Parser.COMMA) + self.state = 938 + self.typeParameter() + self.state = 943 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SuperclassContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EXTENDS(self): + return self.getToken(Java9Parser.EXTENDS, 0) + + def classType(self): + return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_superclass + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSuperclass" ): + listener.enterSuperclass(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSuperclass" ): + listener.exitSuperclass(self) + + + + + def superclass(self): + + localctx = Java9Parser.SuperclassContext(self, self._ctx, self.state) + self.enterRule(localctx, 102, self.RULE_superclass) + try: + self.enterOuterAlt(localctx, 1) + self.state = 944 + self.match(Java9Parser.EXTENDS) + self.state = 945 + self.classType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SuperinterfacesContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IMPLEMENTS(self): + return self.getToken(Java9Parser.IMPLEMENTS, 0) + + def interfaceTypeList(self): + return self.getTypedRuleContext(Java9Parser.InterfaceTypeListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_superinterfaces + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSuperinterfaces" ): + listener.enterSuperinterfaces(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSuperinterfaces" ): + listener.exitSuperinterfaces(self) + + + + + def superinterfaces(self): + + localctx = Java9Parser.SuperinterfacesContext(self, self._ctx, self.state) + self.enterRule(localctx, 104, self.RULE_superinterfaces) + try: + self.enterOuterAlt(localctx, 1) + self.state = 947 + self.match(Java9Parser.IMPLEMENTS) + self.state = 948 + self.interfaceTypeList() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceTypeListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def interfaceType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.InterfaceTypeContext) + else: + return self.getTypedRuleContext(Java9Parser.InterfaceTypeContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceTypeList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceTypeList" ): + listener.enterInterfaceTypeList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceTypeList" ): + listener.exitInterfaceTypeList(self) + + + + + def interfaceTypeList(self): + + localctx = Java9Parser.InterfaceTypeListContext(self, self._ctx, self.state) + self.enterRule(localctx, 106, self.RULE_interfaceTypeList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 950 + self.interfaceType() + self.state = 955 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 951 + self.match(Java9Parser.COMMA) + self.state = 952 + self.interfaceType() + self.state = 957 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def classBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ClassBodyDeclarationContext) + else: + return self.getTypedRuleContext(Java9Parser.ClassBodyDeclarationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_classBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassBody" ): + listener.enterClassBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassBody" ): + listener.exitClassBody(self) + + + + + def classBody(self): + + localctx = Java9Parser.ClassBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 108, self.RULE_classBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 958 + self.match(Java9Parser.LBRACE) + self.state = 962 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NATIVE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRANSIENT) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.VOLATILE) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 70)) & ~0x3f) == 0 and ((1 << (_la - 70)) & ((1 << (Java9Parser.LBRACE - 70)) | (1 << (Java9Parser.SEMI - 70)) | (1 << (Java9Parser.AT - 70)) | (1 << (Java9Parser.LT - 70)) | (1 << (Java9Parser.Identifier - 70)))) != 0): + self.state = 959 + self.classBodyDeclaration() + self.state = 964 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 965 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassBodyDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classMemberDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ClassMemberDeclarationContext,0) + + + def instanceInitializer(self): + return self.getTypedRuleContext(Java9Parser.InstanceInitializerContext,0) + + + def staticInitializer(self): + return self.getTypedRuleContext(Java9Parser.StaticInitializerContext,0) + + + def constructorDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ConstructorDeclarationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_classBodyDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassBodyDeclaration" ): + listener.enterClassBodyDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassBodyDeclaration" ): + listener.exitClassBodyDeclaration(self) + + + + + def classBodyDeclaration(self): + + localctx = Java9Parser.ClassBodyDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 110, self.RULE_classBodyDeclaration) + try: + self.state = 971 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,64,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 967 + self.classMemberDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 968 + self.instanceInitializer() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 969 + self.staticInitializer() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 970 + self.constructorDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassMemberDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def fieldDeclaration(self): + return self.getTypedRuleContext(Java9Parser.FieldDeclarationContext,0) + + + def methodDeclaration(self): + return self.getTypedRuleContext(Java9Parser.MethodDeclarationContext,0) + + + def classDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_classMemberDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassMemberDeclaration" ): + listener.enterClassMemberDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassMemberDeclaration" ): + listener.exitClassMemberDeclaration(self) + + + + + def classMemberDeclaration(self): + + localctx = Java9Parser.ClassMemberDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 112, self.RULE_classMemberDeclaration) + try: + self.state = 978 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,65,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 973 + self.fieldDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 974 + self.methodDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 975 + self.classDeclaration() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 976 + self.interfaceDeclaration() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 977 + self.match(Java9Parser.SEMI) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FieldDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def variableDeclaratorList(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorListContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def fieldModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.FieldModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.FieldModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_fieldDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFieldDeclaration" ): + listener.enterFieldDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFieldDeclaration" ): + listener.exitFieldDeclaration(self) + + + + + def fieldDeclaration(self): + + localctx = Java9Parser.FieldDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 114, self.RULE_fieldDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 983 + self._errHandler.sync(self) + _la = self._input.LA(1) + while ((((_la - 19)) & ~0x3f) == 0 and ((1 << (_la - 19)) & ((1 << (Java9Parser.FINAL - 19)) | (1 << (Java9Parser.PRIVATE - 19)) | (1 << (Java9Parser.PROTECTED - 19)) | (1 << (Java9Parser.PUBLIC - 19)) | (1 << (Java9Parser.STATIC - 19)) | (1 << (Java9Parser.TRANSIENT - 19)) | (1 << (Java9Parser.VOLATILE - 19)) | (1 << (Java9Parser.AT - 19)))) != 0): + self.state = 980 + self.fieldModifier() + self.state = 985 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 986 + self.unannType() + self.state = 987 + self.variableDeclaratorList() + self.state = 988 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FieldModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def PROTECTED(self): + return self.getToken(Java9Parser.PROTECTED, 0) + + def PRIVATE(self): + return self.getToken(Java9Parser.PRIVATE, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def FINAL(self): + return self.getToken(Java9Parser.FINAL, 0) + + def TRANSIENT(self): + return self.getToken(Java9Parser.TRANSIENT, 0) + + def VOLATILE(self): + return self.getToken(Java9Parser.VOLATILE, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_fieldModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFieldModifier" ): + listener.enterFieldModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFieldModifier" ): + listener.exitFieldModifier(self) + + + + + def fieldModifier(self): + + localctx = Java9Parser.FieldModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 116, self.RULE_fieldModifier) + try: + self.state = 998 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 990 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 991 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.PROTECTED]: + self.enterOuterAlt(localctx, 3) + self.state = 992 + self.match(Java9Parser.PROTECTED) + pass + elif token in [Java9Parser.PRIVATE]: + self.enterOuterAlt(localctx, 4) + self.state = 993 + self.match(Java9Parser.PRIVATE) + pass + elif token in [Java9Parser.STATIC]: + self.enterOuterAlt(localctx, 5) + self.state = 994 + self.match(Java9Parser.STATIC) + pass + elif token in [Java9Parser.FINAL]: + self.enterOuterAlt(localctx, 6) + self.state = 995 + self.match(Java9Parser.FINAL) + pass + elif token in [Java9Parser.TRANSIENT]: + self.enterOuterAlt(localctx, 7) + self.state = 996 + self.match(Java9Parser.TRANSIENT) + pass + elif token in [Java9Parser.VOLATILE]: + self.enterOuterAlt(localctx, 8) + self.state = 997 + self.match(Java9Parser.VOLATILE) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableDeclaratorListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def variableDeclarator(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableDeclaratorContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_variableDeclaratorList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclaratorList" ): + listener.enterVariableDeclaratorList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclaratorList" ): + listener.exitVariableDeclaratorList(self) + + + + + def variableDeclaratorList(self): + + localctx = Java9Parser.VariableDeclaratorListContext(self, self._ctx, self.state) + self.enterRule(localctx, 118, self.RULE_variableDeclaratorList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1000 + self.variableDeclarator() + self.state = 1005 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 1001 + self.match(Java9Parser.COMMA) + self.state = 1002 + self.variableDeclarator() + self.state = 1007 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableDeclaratorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def variableDeclaratorId(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) + + + def ASSIGN(self): + return self.getToken(Java9Parser.ASSIGN, 0) + + def variableInitializer(self): + return self.getTypedRuleContext(Java9Parser.VariableInitializerContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_variableDeclarator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclarator" ): + listener.enterVariableDeclarator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclarator" ): + listener.exitVariableDeclarator(self) + + + + + def variableDeclarator(self): + + localctx = Java9Parser.VariableDeclaratorContext(self, self._ctx, self.state) + self.enterRule(localctx, 120, self.RULE_variableDeclarator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1008 + self.variableDeclaratorId() + self.state = 1011 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.ASSIGN: + self.state = 1009 + self.match(Java9Parser.ASSIGN) + self.state = 1010 + self.variableInitializer() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableDeclaratorIdContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def dims(self): + return self.getTypedRuleContext(Java9Parser.DimsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_variableDeclaratorId + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclaratorId" ): + listener.enterVariableDeclaratorId(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclaratorId" ): + listener.exitVariableDeclaratorId(self) + + + + + def variableDeclaratorId(self): + + localctx = Java9Parser.VariableDeclaratorIdContext(self, self._ctx, self.state) + self.enterRule(localctx, 122, self.RULE_variableDeclaratorId) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1013 + self.identifier() + self.state = 1015 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LBRACK or _la==Java9Parser.AT: + self.state = 1014 + self.dims() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def arrayInitializer(self): + return self.getTypedRuleContext(Java9Parser.ArrayInitializerContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_variableInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableInitializer" ): + listener.enterVariableInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableInitializer" ): + listener.exitVariableInitializer(self) + + + + + def variableInitializer(self): + + localctx = Java9Parser.VariableInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 124, self.RULE_variableInitializer) + try: + self.state = 1019 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.BANG, Java9Parser.TILDE, Java9Parser.INC, Java9Parser.DEC, Java9Parser.ADD, Java9Parser.SUB, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 1) + self.state = 1017 + self.expression() + pass + elif token in [Java9Parser.LBRACE]: + self.enterOuterAlt(localctx, 2) + self.state = 1018 + self.arrayInitializer() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannPrimitiveType(self): + return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) + + + def unannReferenceType(self): + return self.getTypedRuleContext(Java9Parser.UnannReferenceTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannType" ): + listener.enterUnannType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannType" ): + listener.exitUnannType(self) + + + + + def unannType(self): + + localctx = Java9Parser.UnannTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 126, self.RULE_unannType) + try: + self.state = 1023 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,72,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1021 + self.unannPrimitiveType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1022 + self.unannReferenceType() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannPrimitiveTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def numericType(self): + return self.getTypedRuleContext(Java9Parser.NumericTypeContext,0) + + + def BOOLEAN(self): + return self.getToken(Java9Parser.BOOLEAN, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_unannPrimitiveType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannPrimitiveType" ): + listener.enterUnannPrimitiveType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannPrimitiveType" ): + listener.exitUnannPrimitiveType(self) + + + + + def unannPrimitiveType(self): + + localctx = Java9Parser.UnannPrimitiveTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 128, self.RULE_unannPrimitiveType) + try: + self.state = 1027 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.SHORT]: + self.enterOuterAlt(localctx, 1) + self.state = 1025 + self.numericType() + pass + elif token in [Java9Parser.BOOLEAN]: + self.enterOuterAlt(localctx, 2) + self.state = 1026 + self.match(Java9Parser.BOOLEAN) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannReferenceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannClassOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassOrInterfaceTypeContext,0) + + + def unannTypeVariable(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeVariableContext,0) + + + def unannArrayType(self): + return self.getTypedRuleContext(Java9Parser.UnannArrayTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannReferenceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannReferenceType" ): + listener.enterUnannReferenceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannReferenceType" ): + listener.exitUnannReferenceType(self) + + + + + def unannReferenceType(self): + + localctx = Java9Parser.UnannReferenceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 130, self.RULE_unannReferenceType) + try: + self.state = 1032 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,74,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1029 + self.unannClassOrInterfaceType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1030 + self.unannTypeVariable() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1031 + self.unannArrayType() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannClassOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannClassType_lfno_unannClassOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext,0) + + + def unannInterfaceType_lfno_unannClassOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext,0) + + + def unannClassType_lf_unannClassOrInterfaceType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext) + else: + return self.getTypedRuleContext(Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext,i) + + + def unannInterfaceType_lf_unannClassOrInterfaceType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext) + else: + return self.getTypedRuleContext(Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannClassOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannClassOrInterfaceType" ): + listener.enterUnannClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannClassOrInterfaceType" ): + listener.exitUnannClassOrInterfaceType(self) + + + + + def unannClassOrInterfaceType(self): + + localctx = Java9Parser.UnannClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 132, self.RULE_unannClassOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1036 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,75,self._ctx) + if la_ == 1: + self.state = 1034 + self.unannClassType_lfno_unannClassOrInterfaceType() + pass + + elif la_ == 2: + self.state = 1035 + self.unannInterfaceType_lfno_unannClassOrInterfaceType() + pass + + + self.state = 1042 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,77,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1040 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,76,self._ctx) + if la_ == 1: + self.state = 1038 + self.unannClassType_lf_unannClassOrInterfaceType() + pass + + elif la_ == 2: + self.state = 1039 + self.unannInterfaceType_lf_unannClassOrInterfaceType() + pass + + + self.state = 1044 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,77,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannClassTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def unannClassOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassOrInterfaceTypeContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannClassType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannClassType" ): + listener.enterUnannClassType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannClassType" ): + listener.exitUnannClassType(self) + + + + + def unannClassType(self): + + localctx = Java9Parser.UnannClassTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 134, self.RULE_unannClassType) + self._la = 0 # Token type + try: + self.state = 1061 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,81,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1045 + self.identifier() + self.state = 1047 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1046 + self.typeArguments() + + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1049 + self.unannClassOrInterfaceType() + self.state = 1050 + self.match(Java9Parser.DOT) + self.state = 1054 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 1051 + self.annotation() + self.state = 1056 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1057 + self.identifier() + self.state = 1059 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1058 + self.typeArguments() + + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannClassType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannClassType_lf_unannClassOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannClassType_lf_unannClassOrInterfaceType" ): + listener.enterUnannClassType_lf_unannClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannClassType_lf_unannClassOrInterfaceType" ): + listener.exitUnannClassType_lf_unannClassOrInterfaceType(self) + + + + + def unannClassType_lf_unannClassOrInterfaceType(self): + + localctx = Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 136, self.RULE_unannClassType_lf_unannClassOrInterfaceType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1063 + self.match(Java9Parser.DOT) + self.state = 1067 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 1064 + self.annotation() + self.state = 1069 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1070 + self.identifier() + self.state = 1072 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1071 + self.typeArguments() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannClassType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannClassType_lfno_unannClassOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannClassType_lfno_unannClassOrInterfaceType" ): + listener.enterUnannClassType_lfno_unannClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannClassType_lfno_unannClassOrInterfaceType" ): + listener.exitUnannClassType_lfno_unannClassOrInterfaceType(self) + + + + + def unannClassType_lfno_unannClassOrInterfaceType(self): + + localctx = Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 138, self.RULE_unannClassType_lfno_unannClassOrInterfaceType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1074 + self.identifier() + self.state = 1076 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1075 + self.typeArguments() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannClassType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannInterfaceType" ): + listener.enterUnannInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannInterfaceType" ): + listener.exitUnannInterfaceType(self) + + + + + def unannInterfaceType(self): + + localctx = Java9Parser.UnannInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 140, self.RULE_unannInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1078 + self.unannClassType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannClassType_lf_unannClassOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannInterfaceType_lf_unannClassOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannInterfaceType_lf_unannClassOrInterfaceType" ): + listener.enterUnannInterfaceType_lf_unannClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannInterfaceType_lf_unannClassOrInterfaceType" ): + listener.exitUnannInterfaceType_lf_unannClassOrInterfaceType(self) + + + + + def unannInterfaceType_lf_unannClassOrInterfaceType(self): + + localctx = Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 142, self.RULE_unannInterfaceType_lf_unannClassOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1080 + self.unannClassType_lf_unannClassOrInterfaceType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannClassType_lfno_unannClassOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannInterfaceType_lfno_unannClassOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannInterfaceType_lfno_unannClassOrInterfaceType" ): + listener.enterUnannInterfaceType_lfno_unannClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannInterfaceType_lfno_unannClassOrInterfaceType" ): + listener.exitUnannInterfaceType_lfno_unannClassOrInterfaceType(self) + + + + + def unannInterfaceType_lfno_unannClassOrInterfaceType(self): + + localctx = Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 144, self.RULE_unannInterfaceType_lfno_unannClassOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1082 + self.unannClassType_lfno_unannClassOrInterfaceType() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannTypeVariableContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannTypeVariable + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannTypeVariable" ): + listener.enterUnannTypeVariable(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannTypeVariable" ): + listener.exitUnannTypeVariable(self) + + + + + def unannTypeVariable(self): + + localctx = Java9Parser.UnannTypeVariableContext(self, self._ctx, self.state) + self.enterRule(localctx, 146, self.RULE_unannTypeVariable) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1084 + self.identifier() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnannArrayTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannPrimitiveType(self): + return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) + + + def dims(self): + return self.getTypedRuleContext(Java9Parser.DimsContext,0) + + + def unannClassOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassOrInterfaceTypeContext,0) + + + def unannTypeVariable(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeVariableContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unannArrayType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnannArrayType" ): + listener.enterUnannArrayType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnannArrayType" ): + listener.exitUnannArrayType(self) + + + + + def unannArrayType(self): + + localctx = Java9Parser.UnannArrayTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 148, self.RULE_unannArrayType) + try: + self.state = 1095 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,85,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1086 + self.unannPrimitiveType() + self.state = 1087 + self.dims() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1089 + self.unannClassOrInterfaceType() + self.state = 1090 + self.dims() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1092 + self.unannTypeVariable() + self.state = 1093 + self.dims() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def methodHeader(self): + return self.getTypedRuleContext(Java9Parser.MethodHeaderContext,0) + + + def methodBody(self): + return self.getTypedRuleContext(Java9Parser.MethodBodyContext,0) + + + def methodModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.MethodModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.MethodModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodDeclaration" ): + listener.enterMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodDeclaration" ): + listener.exitMethodDeclaration(self) + + + + + def methodDeclaration(self): + + localctx = Java9Parser.MethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 150, self.RULE_methodDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1100 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.NATIVE) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SYNCHRONIZED))) != 0) or _la==Java9Parser.AT: + self.state = 1097 + self.methodModifier() + self.state = 1102 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1103 + self.methodHeader() + self.state = 1104 + self.methodBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def PROTECTED(self): + return self.getToken(Java9Parser.PROTECTED, 0) + + def PRIVATE(self): + return self.getToken(Java9Parser.PRIVATE, 0) + + def ABSTRACT(self): + return self.getToken(Java9Parser.ABSTRACT, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def FINAL(self): + return self.getToken(Java9Parser.FINAL, 0) + + def SYNCHRONIZED(self): + return self.getToken(Java9Parser.SYNCHRONIZED, 0) + + def NATIVE(self): + return self.getToken(Java9Parser.NATIVE, 0) + + def STRICTFP(self): + return self.getToken(Java9Parser.STRICTFP, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_methodModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodModifier" ): + listener.enterMethodModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodModifier" ): + listener.exitMethodModifier(self) + + + + + def methodModifier(self): + + localctx = Java9Parser.MethodModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 152, self.RULE_methodModifier) + try: + self.state = 1116 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 1106 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 1107 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.PROTECTED]: + self.enterOuterAlt(localctx, 3) + self.state = 1108 + self.match(Java9Parser.PROTECTED) + pass + elif token in [Java9Parser.PRIVATE]: + self.enterOuterAlt(localctx, 4) + self.state = 1109 + self.match(Java9Parser.PRIVATE) + pass + elif token in [Java9Parser.ABSTRACT]: + self.enterOuterAlt(localctx, 5) + self.state = 1110 + self.match(Java9Parser.ABSTRACT) + pass + elif token in [Java9Parser.STATIC]: + self.enterOuterAlt(localctx, 6) + self.state = 1111 + self.match(Java9Parser.STATIC) + pass + elif token in [Java9Parser.FINAL]: + self.enterOuterAlt(localctx, 7) + self.state = 1112 + self.match(Java9Parser.FINAL) + pass + elif token in [Java9Parser.SYNCHRONIZED]: + self.enterOuterAlt(localctx, 8) + self.state = 1113 + self.match(Java9Parser.SYNCHRONIZED) + pass + elif token in [Java9Parser.NATIVE]: + self.enterOuterAlt(localctx, 9) + self.state = 1114 + self.match(Java9Parser.NATIVE) + pass + elif token in [Java9Parser.STRICTFP]: + self.enterOuterAlt(localctx, 10) + self.state = 1115 + self.match(Java9Parser.STRICTFP) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodHeaderContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def result(self): + return self.getTypedRuleContext(Java9Parser.ResultContext,0) + + + def methodDeclarator(self): + return self.getTypedRuleContext(Java9Parser.MethodDeclaratorContext,0) + + + def throws_(self): + return self.getTypedRuleContext(Java9Parser.Throws_Context,0) + + + def typeParameters(self): + return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodHeader + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodHeader" ): + listener.enterMethodHeader(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodHeader" ): + listener.exitMethodHeader(self) + + + + + def methodHeader(self): + + localctx = Java9Parser.MethodHeaderContext(self, self._ctx, self.state) + self.enterRule(localctx, 154, self.RULE_methodHeader) + self._la = 0 # Token type + try: + self.state = 1135 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 1) + self.state = 1118 + self.result() + self.state = 1119 + self.methodDeclarator() + self.state = 1121 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.THROWS: + self.state = 1120 + self.throws_() + + + pass + elif token in [Java9Parser.LT]: + self.enterOuterAlt(localctx, 2) + self.state = 1123 + self.typeParameters() + self.state = 1127 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 1124 + self.annotation() + self.state = 1129 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1130 + self.result() + self.state = 1131 + self.methodDeclarator() + self.state = 1133 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.THROWS: + self.state = 1132 + self.throws_() + + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ResultContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def VOID(self): + return self.getToken(Java9Parser.VOID, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_result + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResult" ): + listener.enterResult(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResult" ): + listener.exitResult(self) + + + + + def result(self): + + localctx = Java9Parser.ResultContext(self, self._ctx, self.state) + self.enterRule(localctx, 156, self.RULE_result) + try: + self.state = 1139 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 1) + self.state = 1137 + self.unannType() + pass + elif token in [Java9Parser.VOID]: + self.enterOuterAlt(localctx, 2) + self.state = 1138 + self.match(Java9Parser.VOID) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodDeclaratorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def formalParameterList(self): + return self.getTypedRuleContext(Java9Parser.FormalParameterListContext,0) + + + def dims(self): + return self.getTypedRuleContext(Java9Parser.DimsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodDeclarator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodDeclarator" ): + listener.enterMethodDeclarator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodDeclarator" ): + listener.exitMethodDeclarator(self) + + + + + def methodDeclarator(self): + + localctx = Java9Parser.MethodDeclaratorContext(self, self._ctx, self.state) + self.enterRule(localctx, 158, self.RULE_methodDeclarator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1141 + self.identifier() + self.state = 1142 + self.match(Java9Parser.LPAREN) + self.state = 1144 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: + self.state = 1143 + self.formalParameterList() + + + self.state = 1146 + self.match(Java9Parser.RPAREN) + self.state = 1148 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LBRACK or _la==Java9Parser.AT: + self.state = 1147 + self.dims() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FormalParameterListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def formalParameters(self): + return self.getTypedRuleContext(Java9Parser.FormalParametersContext,0) + + + def COMMA(self): + return self.getToken(Java9Parser.COMMA, 0) + + def lastFormalParameter(self): + return self.getTypedRuleContext(Java9Parser.LastFormalParameterContext,0) + + + def receiverParameter(self): + return self.getTypedRuleContext(Java9Parser.ReceiverParameterContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_formalParameterList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameterList" ): + listener.enterFormalParameterList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameterList" ): + listener.exitFormalParameterList(self) + + + + + def formalParameterList(self): + + localctx = Java9Parser.FormalParameterListContext(self, self._ctx, self.state) + self.enterRule(localctx, 160, self.RULE_formalParameterList) + try: + self.state = 1156 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,95,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1150 + self.formalParameters() + self.state = 1151 + self.match(Java9Parser.COMMA) + self.state = 1152 + self.lastFormalParameter() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1154 + self.lastFormalParameter() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1155 + self.receiverParameter() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FormalParametersContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def formalParameter(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.FormalParameterContext) + else: + return self.getTypedRuleContext(Java9Parser.FormalParameterContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def receiverParameter(self): + return self.getTypedRuleContext(Java9Parser.ReceiverParameterContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_formalParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameters" ): + listener.enterFormalParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameters" ): + listener.exitFormalParameters(self) + + + + + def formalParameters(self): + + localctx = Java9Parser.FormalParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 162, self.RULE_formalParameters) + try: + self.state = 1174 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,98,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1158 + self.formalParameter() + self.state = 1163 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,96,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1159 + self.match(Java9Parser.COMMA) + self.state = 1160 + self.formalParameter() + self.state = 1165 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,96,self._ctx) + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1166 + self.receiverParameter() + self.state = 1171 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,97,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1167 + self.match(Java9Parser.COMMA) + self.state = 1168 + self.formalParameter() + self.state = 1173 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,97,self._ctx) + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FormalParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_formalParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameter" ): + listener.enterFormalParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameter" ): + listener.exitFormalParameter(self) + + + + + def formalParameter(self): + + localctx = Java9Parser.FormalParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 164, self.RULE_formalParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1179 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.FINAL or _la==Java9Parser.AT: + self.state = 1176 + self.variableModifier() + self.state = 1181 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1182 + self.unannType() + self.state = 1183 + self.variableDeclaratorId() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def FINAL(self): + return self.getToken(Java9Parser.FINAL, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_variableModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableModifier" ): + listener.enterVariableModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableModifier" ): + listener.exitVariableModifier(self) + + + + + def variableModifier(self): + + localctx = Java9Parser.VariableModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 166, self.RULE_variableModifier) + try: + self.state = 1187 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 1185 + self.annotation() + pass + elif token in [Java9Parser.FINAL]: + self.enterOuterAlt(localctx, 2) + self.state = 1186 + self.match(Java9Parser.FINAL) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LastFormalParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def ELLIPSIS(self): + return self.getToken(Java9Parser.ELLIPSIS, 0) + + def variableDeclaratorId(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def formalParameter(self): + return self.getTypedRuleContext(Java9Parser.FormalParameterContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_lastFormalParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLastFormalParameter" ): + listener.enterLastFormalParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLastFormalParameter" ): + listener.exitLastFormalParameter(self) + + + + + def lastFormalParameter(self): + + localctx = Java9Parser.LastFormalParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 168, self.RULE_lastFormalParameter) + self._la = 0 # Token type + try: + self.state = 1206 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,103,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1192 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.FINAL or _la==Java9Parser.AT: + self.state = 1189 + self.variableModifier() + self.state = 1194 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1195 + self.unannType() + self.state = 1199 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 1196 + self.annotation() + self.state = 1201 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1202 + self.match(Java9Parser.ELLIPSIS) + self.state = 1203 + self.variableDeclaratorId() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1205 + self.formalParameter() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ReceiverParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def THIS(self): + return self.getToken(Java9Parser.THIS, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_receiverParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterReceiverParameter" ): + listener.enterReceiverParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitReceiverParameter" ): + listener.exitReceiverParameter(self) + + + + + def receiverParameter(self): + + localctx = Java9Parser.ReceiverParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 170, self.RULE_receiverParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1211 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 1208 + self.annotation() + self.state = 1213 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1214 + self.unannType() + self.state = 1218 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: + self.state = 1215 + self.identifier() + self.state = 1216 + self.match(Java9Parser.DOT) + + + self.state = 1220 + self.match(Java9Parser.THIS) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class Throws_Context(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def THROWS(self): + return self.getToken(Java9Parser.THROWS, 0) + + def exceptionTypeList(self): + return self.getTypedRuleContext(Java9Parser.ExceptionTypeListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_throws_ + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterThrows_" ): + listener.enterThrows_(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitThrows_" ): + listener.exitThrows_(self) + + + + + def throws_(self): + + localctx = Java9Parser.Throws_Context(self, self._ctx, self.state) + self.enterRule(localctx, 172, self.RULE_throws_) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1222 + self.match(Java9Parser.THROWS) + self.state = 1223 + self.exceptionTypeList() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExceptionTypeListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def exceptionType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ExceptionTypeContext) + else: + return self.getTypedRuleContext(Java9Parser.ExceptionTypeContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_exceptionTypeList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExceptionTypeList" ): + listener.enterExceptionTypeList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExceptionTypeList" ): + listener.exitExceptionTypeList(self) + + + + + def exceptionTypeList(self): + + localctx = Java9Parser.ExceptionTypeListContext(self, self._ctx, self.state) + self.enterRule(localctx, 174, self.RULE_exceptionTypeList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1225 + self.exceptionType() + self.state = 1230 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 1226 + self.match(Java9Parser.COMMA) + self.state = 1227 + self.exceptionType() + self.state = 1232 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExceptionTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classType(self): + return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) + + + def typeVariable(self): + return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_exceptionType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExceptionType" ): + listener.enterExceptionType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExceptionType" ): + listener.exitExceptionType(self) + + + + + def exceptionType(self): + + localctx = Java9Parser.ExceptionTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 176, self.RULE_exceptionType) + try: + self.state = 1235 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,107,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1233 + self.classType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1234 + self.typeVariable() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_methodBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodBody" ): + listener.enterMethodBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodBody" ): + listener.exitMethodBody(self) + + + + + def methodBody(self): + + localctx = Java9Parser.MethodBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 178, self.RULE_methodBody) + try: + self.state = 1239 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.LBRACE]: + self.enterOuterAlt(localctx, 1) + self.state = 1237 + self.block() + pass + elif token in [Java9Parser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 1238 + self.match(Java9Parser.SEMI) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InstanceInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_instanceInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInstanceInitializer" ): + listener.enterInstanceInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInstanceInitializer" ): + listener.exitInstanceInitializer(self) + + + + + def instanceInitializer(self): + + localctx = Java9Parser.InstanceInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 180, self.RULE_instanceInitializer) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1241 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StaticInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_staticInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStaticInitializer" ): + listener.enterStaticInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStaticInitializer" ): + listener.exitStaticInitializer(self) + + + + + def staticInitializer(self): + + localctx = Java9Parser.StaticInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 182, self.RULE_staticInitializer) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1243 + self.match(Java9Parser.STATIC) + self.state = 1244 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstructorDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def constructorDeclarator(self): + return self.getTypedRuleContext(Java9Parser.ConstructorDeclaratorContext,0) + + + def constructorBody(self): + return self.getTypedRuleContext(Java9Parser.ConstructorBodyContext,0) + + + def constructorModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ConstructorModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.ConstructorModifierContext,i) + + + def throws_(self): + return self.getTypedRuleContext(Java9Parser.Throws_Context,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_constructorDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstructorDeclaration" ): + listener.enterConstructorDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstructorDeclaration" ): + listener.exitConstructorDeclaration(self) + + + + + def constructorDeclaration(self): + + localctx = Java9Parser.ConstructorDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 184, self.RULE_constructorDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1249 + self._errHandler.sync(self) + _la = self._input.LA(1) + while ((((_la - 37)) & ~0x3f) == 0 and ((1 << (_la - 37)) & ((1 << (Java9Parser.PRIVATE - 37)) | (1 << (Java9Parser.PROTECTED - 37)) | (1 << (Java9Parser.PUBLIC - 37)) | (1 << (Java9Parser.AT - 37)))) != 0): + self.state = 1246 + self.constructorModifier() + self.state = 1251 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1252 + self.constructorDeclarator() + self.state = 1254 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.THROWS: + self.state = 1253 + self.throws_() + + + self.state = 1256 + self.constructorBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstructorModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def PROTECTED(self): + return self.getToken(Java9Parser.PROTECTED, 0) + + def PRIVATE(self): + return self.getToken(Java9Parser.PRIVATE, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_constructorModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstructorModifier" ): + listener.enterConstructorModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstructorModifier" ): + listener.exitConstructorModifier(self) + + + + + def constructorModifier(self): + + localctx = Java9Parser.ConstructorModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 186, self.RULE_constructorModifier) + try: + self.state = 1262 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 1258 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 1259 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.PROTECTED]: + self.enterOuterAlt(localctx, 3) + self.state = 1260 + self.match(Java9Parser.PROTECTED) + pass + elif token in [Java9Parser.PRIVATE]: + self.enterOuterAlt(localctx, 4) + self.state = 1261 + self.match(Java9Parser.PRIVATE) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstructorDeclaratorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def simpleTypeName(self): + return self.getTypedRuleContext(Java9Parser.SimpleTypeNameContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def typeParameters(self): + return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) + + + def formalParameterList(self): + return self.getTypedRuleContext(Java9Parser.FormalParameterListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_constructorDeclarator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstructorDeclarator" ): + listener.enterConstructorDeclarator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstructorDeclarator" ): + listener.exitConstructorDeclarator(self) + + + + + def constructorDeclarator(self): + + localctx = Java9Parser.ConstructorDeclaratorContext(self, self._ctx, self.state) + self.enterRule(localctx, 188, self.RULE_constructorDeclarator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1265 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1264 + self.typeParameters() + + + self.state = 1267 + self.simpleTypeName() + self.state = 1268 + self.match(Java9Parser.LPAREN) + self.state = 1270 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: + self.state = 1269 + self.formalParameterList() + + + self.state = 1272 + self.match(Java9Parser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SimpleTypeNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_simpleTypeName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSimpleTypeName" ): + listener.enterSimpleTypeName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSimpleTypeName" ): + listener.exitSimpleTypeName(self) + + + + + def simpleTypeName(self): + + localctx = Java9Parser.SimpleTypeNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 190, self.RULE_simpleTypeName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1274 + self.identifier() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstructorBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def explicitConstructorInvocation(self): + return self.getTypedRuleContext(Java9Parser.ExplicitConstructorInvocationContext,0) + + + def blockStatements(self): + return self.getTypedRuleContext(Java9Parser.BlockStatementsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_constructorBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstructorBody" ): + listener.enterConstructorBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstructorBody" ): + listener.exitConstructorBody(self) + + + + + def constructorBody(self): + + localctx = Java9Parser.ConstructorBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 192, self.RULE_constructorBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1276 + self.match(Java9Parser.LBRACE) + self.state = 1278 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,114,self._ctx) + if la_ == 1: + self.state = 1277 + self.explicitConstructorInvocation() + + + self.state = 1281 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.ASSERT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BREAK) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.CONTINUE) | (1 << Java9Parser.DO) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.FOR) | (1 << Java9Parser.IF) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.RETURN) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.SWITCH) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.THIS) | (1 << Java9Parser.THROW) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRY) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WHILE) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.SEMI - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1280 + self.blockStatements() + + + self.state = 1283 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExplicitConstructorInvocationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def THIS(self): + return self.getToken(Java9Parser.THIS, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_explicitConstructorInvocation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExplicitConstructorInvocation" ): + listener.enterExplicitConstructorInvocation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExplicitConstructorInvocation" ): + listener.exitExplicitConstructorInvocation(self) + + + + + def explicitConstructorInvocation(self): + + localctx = Java9Parser.ExplicitConstructorInvocationContext(self, self._ctx, self.state) + self.enterRule(localctx, 194, self.RULE_explicitConstructorInvocation) + self._la = 0 # Token type + try: + self.state = 1331 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,124,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1286 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1285 + self.typeArguments() + + + self.state = 1288 + self.match(Java9Parser.THIS) + self.state = 1289 + self.match(Java9Parser.LPAREN) + self.state = 1291 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1290 + self.argumentList() + + + self.state = 1293 + self.match(Java9Parser.RPAREN) + self.state = 1294 + self.match(Java9Parser.SEMI) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1296 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1295 + self.typeArguments() + + + self.state = 1298 + self.match(Java9Parser.SUPER) + self.state = 1299 + self.match(Java9Parser.LPAREN) + self.state = 1301 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1300 + self.argumentList() + + + self.state = 1303 + self.match(Java9Parser.RPAREN) + self.state = 1304 + self.match(Java9Parser.SEMI) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1305 + self.expressionName() + self.state = 1306 + self.match(Java9Parser.DOT) + self.state = 1308 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1307 + self.typeArguments() + + + self.state = 1310 + self.match(Java9Parser.SUPER) + self.state = 1311 + self.match(Java9Parser.LPAREN) + self.state = 1313 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1312 + self.argumentList() + + + self.state = 1315 + self.match(Java9Parser.RPAREN) + self.state = 1316 + self.match(Java9Parser.SEMI) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1318 + self.primary() + self.state = 1319 + self.match(Java9Parser.DOT) + self.state = 1321 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1320 + self.typeArguments() + + + self.state = 1323 + self.match(Java9Parser.SUPER) + self.state = 1324 + self.match(Java9Parser.LPAREN) + self.state = 1326 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1325 + self.argumentList() + + + self.state = 1328 + self.match(Java9Parser.RPAREN) + self.state = 1329 + self.match(Java9Parser.SEMI) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def ENUM(self): + return self.getToken(Java9Parser.ENUM, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def enumBody(self): + return self.getTypedRuleContext(Java9Parser.EnumBodyContext,0) + + + def classModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ClassModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.ClassModifierContext,i) + + + def superinterfaces(self): + return self.getTypedRuleContext(Java9Parser.SuperinterfacesContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_enumDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumDeclaration" ): + listener.enterEnumDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumDeclaration" ): + listener.exitEnumDeclaration(self) + + + + + def enumDeclaration(self): + + localctx = Java9Parser.EnumDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 196, self.RULE_enumDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1336 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: + self.state = 1333 + self.classModifier() + self.state = 1338 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1339 + self.match(Java9Parser.ENUM) + self.state = 1340 + self.identifier() + self.state = 1342 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.IMPLEMENTS: + self.state = 1341 + self.superinterfaces() + + + self.state = 1344 + self.enumBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def enumConstantList(self): + return self.getTypedRuleContext(Java9Parser.EnumConstantListContext,0) + + + def COMMA(self): + return self.getToken(Java9Parser.COMMA, 0) + + def enumBodyDeclarations(self): + return self.getTypedRuleContext(Java9Parser.EnumBodyDeclarationsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_enumBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumBody" ): + listener.enterEnumBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumBody" ): + listener.exitEnumBody(self) + + + + + def enumBody(self): + + localctx = Java9Parser.EnumBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 198, self.RULE_enumBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1346 + self.match(Java9Parser.LBRACE) + self.state = 1348 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: + self.state = 1347 + self.enumConstantList() + + + self.state = 1351 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.COMMA: + self.state = 1350 + self.match(Java9Parser.COMMA) + + + self.state = 1354 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.SEMI: + self.state = 1353 + self.enumBodyDeclarations() + + + self.state = 1356 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumConstantListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def enumConstant(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.EnumConstantContext) + else: + return self.getTypedRuleContext(Java9Parser.EnumConstantContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_enumConstantList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstantList" ): + listener.enterEnumConstantList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstantList" ): + listener.exitEnumConstantList(self) + + + + + def enumConstantList(self): + + localctx = Java9Parser.EnumConstantListContext(self, self._ctx, self.state) + self.enterRule(localctx, 200, self.RULE_enumConstantList) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1358 + self.enumConstant() + self.state = 1363 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,130,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1359 + self.match(Java9Parser.COMMA) + self.state = 1360 + self.enumConstant() + self.state = 1365 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,130,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumConstantContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def enumConstantModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.EnumConstantModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.EnumConstantModifierContext,i) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def classBody(self): + return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) + + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_enumConstant + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstant" ): + listener.enterEnumConstant(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstant" ): + listener.exitEnumConstant(self) + + + + + def enumConstant(self): + + localctx = Java9Parser.EnumConstantContext(self, self._ctx, self.state) + self.enterRule(localctx, 202, self.RULE_enumConstant) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1369 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 1366 + self.enumConstantModifier() + self.state = 1371 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1372 + self.identifier() + self.state = 1378 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LPAREN: + self.state = 1373 + self.match(Java9Parser.LPAREN) + self.state = 1375 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1374 + self.argumentList() + + + self.state = 1377 + self.match(Java9Parser.RPAREN) + + + self.state = 1381 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LBRACE: + self.state = 1380 + self.classBody() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumConstantModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_enumConstantModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstantModifier" ): + listener.enterEnumConstantModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstantModifier" ): + listener.exitEnumConstantModifier(self) + + + + + def enumConstantModifier(self): + + localctx = Java9Parser.EnumConstantModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 204, self.RULE_enumConstantModifier) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1383 + self.annotation() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumBodyDeclarationsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def classBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ClassBodyDeclarationContext) + else: + return self.getTypedRuleContext(Java9Parser.ClassBodyDeclarationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_enumBodyDeclarations + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumBodyDeclarations" ): + listener.enterEnumBodyDeclarations(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumBodyDeclarations" ): + listener.exitEnumBodyDeclarations(self) + + + + + def enumBodyDeclarations(self): + + localctx = Java9Parser.EnumBodyDeclarationsContext(self, self._ctx, self.state) + self.enterRule(localctx, 206, self.RULE_enumBodyDeclarations) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1385 + self.match(Java9Parser.SEMI) + self.state = 1389 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NATIVE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRANSIENT) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.VOLATILE) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 70)) & ~0x3f) == 0 and ((1 << (_la - 70)) & ((1 << (Java9Parser.LBRACE - 70)) | (1 << (Java9Parser.SEMI - 70)) | (1 << (Java9Parser.AT - 70)) | (1 << (Java9Parser.LT - 70)) | (1 << (Java9Parser.Identifier - 70)))) != 0): + self.state = 1386 + self.classBodyDeclaration() + self.state = 1391 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def normalInterfaceDeclaration(self): + return self.getTypedRuleContext(Java9Parser.NormalInterfaceDeclarationContext,0) + + + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(Java9Parser.AnnotationTypeDeclarationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceDeclaration" ): + listener.enterInterfaceDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceDeclaration" ): + listener.exitInterfaceDeclaration(self) + + + + + def interfaceDeclaration(self): + + localctx = Java9Parser.InterfaceDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 208, self.RULE_interfaceDeclaration) + try: + self.state = 1394 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,136,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1392 + self.normalInterfaceDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1393 + self.annotationTypeDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class NormalInterfaceDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def INTERFACE(self): + return self.getToken(Java9Parser.INTERFACE, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def interfaceBody(self): + return self.getTypedRuleContext(Java9Parser.InterfaceBodyContext,0) + + + def interfaceModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.InterfaceModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.InterfaceModifierContext,i) + + + def typeParameters(self): + return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) + + + def extendsInterfaces(self): + return self.getTypedRuleContext(Java9Parser.ExtendsInterfacesContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_normalInterfaceDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNormalInterfaceDeclaration" ): + listener.enterNormalInterfaceDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNormalInterfaceDeclaration" ): + listener.exitNormalInterfaceDeclaration(self) + + + + + def normalInterfaceDeclaration(self): + + localctx = Java9Parser.NormalInterfaceDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 210, self.RULE_normalInterfaceDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1399 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: + self.state = 1396 + self.interfaceModifier() + self.state = 1401 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1402 + self.match(Java9Parser.INTERFACE) + self.state = 1403 + self.identifier() + self.state = 1405 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 1404 + self.typeParameters() + + + self.state = 1408 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.EXTENDS: + self.state = 1407 + self.extendsInterfaces() + + + self.state = 1410 + self.interfaceBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def PROTECTED(self): + return self.getToken(Java9Parser.PROTECTED, 0) + + def PRIVATE(self): + return self.getToken(Java9Parser.PRIVATE, 0) + + def ABSTRACT(self): + return self.getToken(Java9Parser.ABSTRACT, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def STRICTFP(self): + return self.getToken(Java9Parser.STRICTFP, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceModifier" ): + listener.enterInterfaceModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceModifier" ): + listener.exitInterfaceModifier(self) + + + + + def interfaceModifier(self): + + localctx = Java9Parser.InterfaceModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 212, self.RULE_interfaceModifier) + try: + self.state = 1419 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 1412 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 1413 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.PROTECTED]: + self.enterOuterAlt(localctx, 3) + self.state = 1414 + self.match(Java9Parser.PROTECTED) + pass + elif token in [Java9Parser.PRIVATE]: + self.enterOuterAlt(localctx, 4) + self.state = 1415 + self.match(Java9Parser.PRIVATE) + pass + elif token in [Java9Parser.ABSTRACT]: + self.enterOuterAlt(localctx, 5) + self.state = 1416 + self.match(Java9Parser.ABSTRACT) + pass + elif token in [Java9Parser.STATIC]: + self.enterOuterAlt(localctx, 6) + self.state = 1417 + self.match(Java9Parser.STATIC) + pass + elif token in [Java9Parser.STRICTFP]: + self.enterOuterAlt(localctx, 7) + self.state = 1418 + self.match(Java9Parser.STRICTFP) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExtendsInterfacesContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EXTENDS(self): + return self.getToken(Java9Parser.EXTENDS, 0) + + def interfaceTypeList(self): + return self.getTypedRuleContext(Java9Parser.InterfaceTypeListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_extendsInterfaces + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExtendsInterfaces" ): + listener.enterExtendsInterfaces(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExtendsInterfaces" ): + listener.exitExtendsInterfaces(self) + + + + + def extendsInterfaces(self): + + localctx = Java9Parser.ExtendsInterfacesContext(self, self._ctx, self.state) + self.enterRule(localctx, 214, self.RULE_extendsInterfaces) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1421 + self.match(Java9Parser.EXTENDS) + self.state = 1422 + self.interfaceTypeList() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def interfaceMemberDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.InterfaceMemberDeclarationContext) + else: + return self.getTypedRuleContext(Java9Parser.InterfaceMemberDeclarationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceBody" ): + listener.enterInterfaceBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceBody" ): + listener.exitInterfaceBody(self) + + + + + def interfaceBody(self): + + localctx = Java9Parser.InterfaceBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 216, self.RULE_interfaceBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1424 + self.match(Java9Parser.LBRACE) + self.state = 1428 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DEFAULT) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 74)) & ~0x3f) == 0 and ((1 << (_la - 74)) & ((1 << (Java9Parser.SEMI - 74)) | (1 << (Java9Parser.AT - 74)) | (1 << (Java9Parser.LT - 74)) | (1 << (Java9Parser.Identifier - 74)))) != 0): + self.state = 1425 + self.interfaceMemberDeclaration() + self.state = 1430 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1431 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceMemberDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def constantDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ConstantDeclarationContext,0) + + + def interfaceMethodDeclaration(self): + return self.getTypedRuleContext(Java9Parser.InterfaceMethodDeclarationContext,0) + + + def classDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceMemberDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMemberDeclaration" ): + listener.enterInterfaceMemberDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMemberDeclaration" ): + listener.exitInterfaceMemberDeclaration(self) + + + + + def interfaceMemberDeclaration(self): + + localctx = Java9Parser.InterfaceMemberDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 218, self.RULE_interfaceMemberDeclaration) + try: + self.state = 1438 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,142,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1433 + self.constantDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1434 + self.interfaceMethodDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1435 + self.classDeclaration() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1436 + self.interfaceDeclaration() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1437 + self.match(Java9Parser.SEMI) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstantDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def variableDeclaratorList(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorListContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def constantModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ConstantModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.ConstantModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_constantDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstantDeclaration" ): + listener.enterConstantDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstantDeclaration" ): + listener.exitConstantDeclaration(self) + + + + + def constantDeclaration(self): + + localctx = Java9Parser.ConstantDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 220, self.RULE_constantDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1443 + self._errHandler.sync(self) + _la = self._input.LA(1) + while ((((_la - 19)) & ~0x3f) == 0 and ((1 << (_la - 19)) & ((1 << (Java9Parser.FINAL - 19)) | (1 << (Java9Parser.PUBLIC - 19)) | (1 << (Java9Parser.STATIC - 19)) | (1 << (Java9Parser.AT - 19)))) != 0): + self.state = 1440 + self.constantModifier() + self.state = 1445 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1446 + self.unannType() + self.state = 1447 + self.variableDeclaratorList() + self.state = 1448 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstantModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def FINAL(self): + return self.getToken(Java9Parser.FINAL, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_constantModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstantModifier" ): + listener.enterConstantModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstantModifier" ): + listener.exitConstantModifier(self) + + + + + def constantModifier(self): + + localctx = Java9Parser.ConstantModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 222, self.RULE_constantModifier) + try: + self.state = 1454 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 1450 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 1451 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.STATIC]: + self.enterOuterAlt(localctx, 3) + self.state = 1452 + self.match(Java9Parser.STATIC) + pass + elif token in [Java9Parser.FINAL]: + self.enterOuterAlt(localctx, 4) + self.state = 1453 + self.match(Java9Parser.FINAL) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceMethodDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def methodHeader(self): + return self.getTypedRuleContext(Java9Parser.MethodHeaderContext,0) + + + def methodBody(self): + return self.getTypedRuleContext(Java9Parser.MethodBodyContext,0) + + + def interfaceMethodModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.InterfaceMethodModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.InterfaceMethodModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceMethodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMethodDeclaration" ): + listener.enterInterfaceMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMethodDeclaration" ): + listener.exitInterfaceMethodDeclaration(self) + + + + + def interfaceMethodDeclaration(self): + + localctx = Java9Parser.InterfaceMethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 224, self.RULE_interfaceMethodDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1459 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.DEFAULT) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: + self.state = 1456 + self.interfaceMethodModifier() + self.state = 1461 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1462 + self.methodHeader() + self.state = 1463 + self.methodBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceMethodModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def PRIVATE(self): + return self.getToken(Java9Parser.PRIVATE, 0) + + def ABSTRACT(self): + return self.getToken(Java9Parser.ABSTRACT, 0) + + def DEFAULT(self): + return self.getToken(Java9Parser.DEFAULT, 0) + + def STATIC(self): + return self.getToken(Java9Parser.STATIC, 0) + + def STRICTFP(self): + return self.getToken(Java9Parser.STRICTFP, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_interfaceMethodModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMethodModifier" ): + listener.enterInterfaceMethodModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMethodModifier" ): + listener.exitInterfaceMethodModifier(self) + + + + + def interfaceMethodModifier(self): + + localctx = Java9Parser.InterfaceMethodModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 226, self.RULE_interfaceMethodModifier) + try: + self.state = 1472 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 1465 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 1466 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.PRIVATE]: + self.enterOuterAlt(localctx, 3) + self.state = 1467 + self.match(Java9Parser.PRIVATE) + pass + elif token in [Java9Parser.ABSTRACT]: + self.enterOuterAlt(localctx, 4) + self.state = 1468 + self.match(Java9Parser.ABSTRACT) + pass + elif token in [Java9Parser.DEFAULT]: + self.enterOuterAlt(localctx, 5) + self.state = 1469 + self.match(Java9Parser.DEFAULT) + pass + elif token in [Java9Parser.STATIC]: + self.enterOuterAlt(localctx, 6) + self.state = 1470 + self.match(Java9Parser.STATIC) + pass + elif token in [Java9Parser.STRICTFP]: + self.enterOuterAlt(localctx, 7) + self.state = 1471 + self.match(Java9Parser.STRICTFP) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(Java9Parser.AT, 0) + + def INTERFACE(self): + return self.getToken(Java9Parser.INTERFACE, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def annotationTypeBody(self): + return self.getTypedRuleContext(Java9Parser.AnnotationTypeBodyContext,0) + + + def interfaceModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.InterfaceModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.InterfaceModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_annotationTypeDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeDeclaration" ): + listener.enterAnnotationTypeDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeDeclaration" ): + listener.exitAnnotationTypeDeclaration(self) + + + + + def annotationTypeDeclaration(self): + + localctx = Java9Parser.AnnotationTypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 228, self.RULE_annotationTypeDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1477 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,147,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1474 + self.interfaceModifier() + self.state = 1479 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,147,self._ctx) + + self.state = 1480 + self.match(Java9Parser.AT) + self.state = 1481 + self.match(Java9Parser.INTERFACE) + self.state = 1482 + self.identifier() + self.state = 1483 + self.annotationTypeBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def annotationTypeMemberDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationTypeMemberDeclarationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationTypeMemberDeclarationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_annotationTypeBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeBody" ): + listener.enterAnnotationTypeBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeBody" ): + listener.exitAnnotationTypeBody(self) + + + + + def annotationTypeBody(self): + + localctx = Java9Parser.AnnotationTypeBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 230, self.RULE_annotationTypeBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1485 + self.match(Java9Parser.LBRACE) + self.state = 1489 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 74)) & ~0x3f) == 0 and ((1 << (_la - 74)) & ((1 << (Java9Parser.SEMI - 74)) | (1 << (Java9Parser.AT - 74)) | (1 << (Java9Parser.Identifier - 74)))) != 0): + self.state = 1486 + self.annotationTypeMemberDeclaration() + self.state = 1491 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1492 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeMemberDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotationTypeElementDeclaration(self): + return self.getTypedRuleContext(Java9Parser.AnnotationTypeElementDeclarationContext,0) + + + def constantDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ConstantDeclarationContext,0) + + + def classDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_annotationTypeMemberDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeMemberDeclaration" ): + listener.enterAnnotationTypeMemberDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeMemberDeclaration" ): + listener.exitAnnotationTypeMemberDeclaration(self) + + + + + def annotationTypeMemberDeclaration(self): + + localctx = Java9Parser.AnnotationTypeMemberDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 232, self.RULE_annotationTypeMemberDeclaration) + try: + self.state = 1499 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,149,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1494 + self.annotationTypeElementDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1495 + self.constantDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1496 + self.classDeclaration() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1497 + self.interfaceDeclaration() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1498 + self.match(Java9Parser.SEMI) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeElementDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def annotationTypeElementModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationTypeElementModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationTypeElementModifierContext,i) + + + def dims(self): + return self.getTypedRuleContext(Java9Parser.DimsContext,0) + + + def defaultValue(self): + return self.getTypedRuleContext(Java9Parser.DefaultValueContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_annotationTypeElementDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeElementDeclaration" ): + listener.enterAnnotationTypeElementDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeElementDeclaration" ): + listener.exitAnnotationTypeElementDeclaration(self) + + + + + def annotationTypeElementDeclaration(self): + + localctx = Java9Parser.AnnotationTypeElementDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 234, self.RULE_annotationTypeElementDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1504 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.ABSTRACT or _la==Java9Parser.PUBLIC or _la==Java9Parser.AT: + self.state = 1501 + self.annotationTypeElementModifier() + self.state = 1506 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1507 + self.unannType() + self.state = 1508 + self.identifier() + self.state = 1509 + self.match(Java9Parser.LPAREN) + self.state = 1510 + self.match(Java9Parser.RPAREN) + self.state = 1512 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LBRACK or _la==Java9Parser.AT: + self.state = 1511 + self.dims() + + + self.state = 1515 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.DEFAULT: + self.state = 1514 + self.defaultValue() + + + self.state = 1517 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeElementModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(Java9Parser.PUBLIC, 0) + + def ABSTRACT(self): + return self.getToken(Java9Parser.ABSTRACT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_annotationTypeElementModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeElementModifier" ): + listener.enterAnnotationTypeElementModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeElementModifier" ): + listener.exitAnnotationTypeElementModifier(self) + + + + + def annotationTypeElementModifier(self): + + localctx = Java9Parser.AnnotationTypeElementModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 236, self.RULE_annotationTypeElementModifier) + try: + self.state = 1522 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.AT]: + self.enterOuterAlt(localctx, 1) + self.state = 1519 + self.annotation() + pass + elif token in [Java9Parser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 1520 + self.match(Java9Parser.PUBLIC) + pass + elif token in [Java9Parser.ABSTRACT]: + self.enterOuterAlt(localctx, 3) + self.state = 1521 + self.match(Java9Parser.ABSTRACT) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DefaultValueContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DEFAULT(self): + return self.getToken(Java9Parser.DEFAULT, 0) + + def elementValue(self): + return self.getTypedRuleContext(Java9Parser.ElementValueContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_defaultValue + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDefaultValue" ): + listener.enterDefaultValue(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDefaultValue" ): + listener.exitDefaultValue(self) + + + + + def defaultValue(self): + + localctx = Java9Parser.DefaultValueContext(self, self._ctx, self.state) + self.enterRule(localctx, 238, self.RULE_defaultValue) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1524 + self.match(Java9Parser.DEFAULT) + self.state = 1525 + self.elementValue() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def normalAnnotation(self): + return self.getTypedRuleContext(Java9Parser.NormalAnnotationContext,0) + + + def markerAnnotation(self): + return self.getTypedRuleContext(Java9Parser.MarkerAnnotationContext,0) + + + def singleElementAnnotation(self): + return self.getTypedRuleContext(Java9Parser.SingleElementAnnotationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_annotation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotation" ): + listener.enterAnnotation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotation" ): + listener.exitAnnotation(self) + + + + + def annotation(self): + + localctx = Java9Parser.AnnotationContext(self, self._ctx, self.state) + self.enterRule(localctx, 240, self.RULE_annotation) + try: + self.state = 1530 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,154,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1527 + self.normalAnnotation() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1528 + self.markerAnnotation() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1529 + self.singleElementAnnotation() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class NormalAnnotationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(Java9Parser.AT, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def elementValuePairList(self): + return self.getTypedRuleContext(Java9Parser.ElementValuePairListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_normalAnnotation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNormalAnnotation" ): + listener.enterNormalAnnotation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNormalAnnotation" ): + listener.exitNormalAnnotation(self) + + + + + def normalAnnotation(self): + + localctx = Java9Parser.NormalAnnotationContext(self, self._ctx, self.state) + self.enterRule(localctx, 242, self.RULE_normalAnnotation) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1532 + self.match(Java9Parser.AT) + self.state = 1533 + self.typeName() + self.state = 1534 + self.match(Java9Parser.LPAREN) + self.state = 1536 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: + self.state = 1535 + self.elementValuePairList() + + + self.state = 1538 + self.match(Java9Parser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValuePairListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def elementValuePair(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ElementValuePairContext) + else: + return self.getTypedRuleContext(Java9Parser.ElementValuePairContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_elementValuePairList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValuePairList" ): + listener.enterElementValuePairList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValuePairList" ): + listener.exitElementValuePairList(self) + + + + + def elementValuePairList(self): + + localctx = Java9Parser.ElementValuePairListContext(self, self._ctx, self.state) + self.enterRule(localctx, 244, self.RULE_elementValuePairList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1540 + self.elementValuePair() + self.state = 1545 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 1541 + self.match(Java9Parser.COMMA) + self.state = 1542 + self.elementValuePair() + self.state = 1547 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValuePairContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def ASSIGN(self): + return self.getToken(Java9Parser.ASSIGN, 0) + + def elementValue(self): + return self.getTypedRuleContext(Java9Parser.ElementValueContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_elementValuePair + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValuePair" ): + listener.enterElementValuePair(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValuePair" ): + listener.exitElementValuePair(self) + + + + + def elementValuePair(self): + + localctx = Java9Parser.ElementValuePairContext(self, self._ctx, self.state) + self.enterRule(localctx, 246, self.RULE_elementValuePair) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1548 + self.identifier() + self.state = 1549 + self.match(Java9Parser.ASSIGN) + self.state = 1550 + self.elementValue() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValueContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def conditionalExpression(self): + return self.getTypedRuleContext(Java9Parser.ConditionalExpressionContext,0) + + + def elementValueArrayInitializer(self): + return self.getTypedRuleContext(Java9Parser.ElementValueArrayInitializerContext,0) + + + def annotation(self): + return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_elementValue + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValue" ): + listener.enterElementValue(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValue" ): + listener.exitElementValue(self) + + + + + def elementValue(self): + + localctx = Java9Parser.ElementValueContext(self, self._ctx, self.state) + self.enterRule(localctx, 248, self.RULE_elementValue) + try: + self.state = 1555 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,157,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1552 + self.conditionalExpression() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1553 + self.elementValueArrayInitializer() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1554 + self.annotation() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValueArrayInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def elementValueList(self): + return self.getTypedRuleContext(Java9Parser.ElementValueListContext,0) + + + def COMMA(self): + return self.getToken(Java9Parser.COMMA, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_elementValueArrayInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValueArrayInitializer" ): + listener.enterElementValueArrayInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValueArrayInitializer" ): + listener.exitElementValueArrayInitializer(self) + + + + + def elementValueArrayInitializer(self): + + localctx = Java9Parser.ElementValueArrayInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 250, self.RULE_elementValueArrayInitializer) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1557 + self.match(Java9Parser.LBRACE) + self.state = 1559 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1558 + self.elementValueList() + + + self.state = 1562 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.COMMA: + self.state = 1561 + self.match(Java9Parser.COMMA) + + + self.state = 1564 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValueListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def elementValue(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ElementValueContext) + else: + return self.getTypedRuleContext(Java9Parser.ElementValueContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_elementValueList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValueList" ): + listener.enterElementValueList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValueList" ): + listener.exitElementValueList(self) + + + + + def elementValueList(self): + + localctx = Java9Parser.ElementValueListContext(self, self._ctx, self.state) + self.enterRule(localctx, 252, self.RULE_elementValueList) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1566 + self.elementValue() + self.state = 1571 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,160,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1567 + self.match(Java9Parser.COMMA) + self.state = 1568 + self.elementValue() + self.state = 1573 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,160,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MarkerAnnotationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(Java9Parser.AT, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_markerAnnotation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMarkerAnnotation" ): + listener.enterMarkerAnnotation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMarkerAnnotation" ): + listener.exitMarkerAnnotation(self) + + + + + def markerAnnotation(self): + + localctx = Java9Parser.MarkerAnnotationContext(self, self._ctx, self.state) + self.enterRule(localctx, 254, self.RULE_markerAnnotation) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1574 + self.match(Java9Parser.AT) + self.state = 1575 + self.typeName() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SingleElementAnnotationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(Java9Parser.AT, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def elementValue(self): + return self.getTypedRuleContext(Java9Parser.ElementValueContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_singleElementAnnotation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSingleElementAnnotation" ): + listener.enterSingleElementAnnotation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSingleElementAnnotation" ): + listener.exitSingleElementAnnotation(self) + + + + + def singleElementAnnotation(self): + + localctx = Java9Parser.SingleElementAnnotationContext(self, self._ctx, self.state) + self.enterRule(localctx, 256, self.RULE_singleElementAnnotation) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1577 + self.match(Java9Parser.AT) + self.state = 1578 + self.typeName() + self.state = 1579 + self.match(Java9Parser.LPAREN) + self.state = 1580 + self.elementValue() + self.state = 1581 + self.match(Java9Parser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def variableInitializerList(self): + return self.getTypedRuleContext(Java9Parser.VariableInitializerListContext,0) + + + def COMMA(self): + return self.getToken(Java9Parser.COMMA, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_arrayInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayInitializer" ): + listener.enterArrayInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayInitializer" ): + listener.exitArrayInitializer(self) + + + + + def arrayInitializer(self): + + localctx = Java9Parser.ArrayInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 258, self.RULE_arrayInitializer) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1583 + self.match(Java9Parser.LBRACE) + self.state = 1585 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1584 + self.variableInitializerList() + + + self.state = 1588 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.COMMA: + self.state = 1587 + self.match(Java9Parser.COMMA) + + + self.state = 1590 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableInitializerListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def variableInitializer(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableInitializerContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableInitializerContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_variableInitializerList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableInitializerList" ): + listener.enterVariableInitializerList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableInitializerList" ): + listener.exitVariableInitializerList(self) + + + + + def variableInitializerList(self): + + localctx = Java9Parser.VariableInitializerListContext(self, self._ctx, self.state) + self.enterRule(localctx, 260, self.RULE_variableInitializerList) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1592 + self.variableInitializer() + self.state = 1597 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,163,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1593 + self.match(Java9Parser.COMMA) + self.state = 1594 + self.variableInitializer() + self.state = 1599 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,163,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def blockStatements(self): + return self.getTypedRuleContext(Java9Parser.BlockStatementsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_block + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlock" ): + listener.enterBlock(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlock" ): + listener.exitBlock(self) + + + + + def block(self): + + localctx = Java9Parser.BlockContext(self, self._ctx, self.state) + self.enterRule(localctx, 262, self.RULE_block) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1600 + self.match(Java9Parser.LBRACE) + self.state = 1602 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.ASSERT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BREAK) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.CONTINUE) | (1 << Java9Parser.DO) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.FOR) | (1 << Java9Parser.IF) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.RETURN) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.SWITCH) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.THIS) | (1 << Java9Parser.THROW) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRY) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WHILE) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.SEMI - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1601 + self.blockStatements() + + + self.state = 1604 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockStatementsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def blockStatement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.BlockStatementContext) + else: + return self.getTypedRuleContext(Java9Parser.BlockStatementContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_blockStatements + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockStatements" ): + listener.enterBlockStatements(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockStatements" ): + listener.exitBlockStatements(self) + + + + + def blockStatements(self): + + localctx = Java9Parser.BlockStatementsContext(self, self._ctx, self.state) + self.enterRule(localctx, 264, self.RULE_blockStatements) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1607 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1606 + self.blockStatement() + self.state = 1609 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.ASSERT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BREAK) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.CONTINUE) | (1 << Java9Parser.DO) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.FOR) | (1 << Java9Parser.IF) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.RETURN) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.SWITCH) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.THIS) | (1 << Java9Parser.THROW) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRY) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WHILE) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.SEMI - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0)): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def localVariableDeclarationStatement(self): + return self.getTypedRuleContext(Java9Parser.LocalVariableDeclarationStatementContext,0) + + + def classDeclaration(self): + return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) + + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_blockStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockStatement" ): + listener.enterBlockStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockStatement" ): + listener.exitBlockStatement(self) + + + + + def blockStatement(self): + + localctx = Java9Parser.BlockStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 266, self.RULE_blockStatement) + try: + self.state = 1614 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,166,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1611 + self.localVariableDeclarationStatement() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1612 + self.classDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1613 + self.statement() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LocalVariableDeclarationStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def localVariableDeclaration(self): + return self.getTypedRuleContext(Java9Parser.LocalVariableDeclarationContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_localVariableDeclarationStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLocalVariableDeclarationStatement" ): + listener.enterLocalVariableDeclarationStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLocalVariableDeclarationStatement" ): + listener.exitLocalVariableDeclarationStatement(self) + + + + + def localVariableDeclarationStatement(self): + + localctx = Java9Parser.LocalVariableDeclarationStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 268, self.RULE_localVariableDeclarationStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1616 + self.localVariableDeclaration() + self.state = 1617 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LocalVariableDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def variableDeclaratorList(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorListContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_localVariableDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLocalVariableDeclaration" ): + listener.enterLocalVariableDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLocalVariableDeclaration" ): + listener.exitLocalVariableDeclaration(self) + + + + + def localVariableDeclaration(self): + + localctx = Java9Parser.LocalVariableDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 270, self.RULE_localVariableDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1622 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.FINAL or _la==Java9Parser.AT: + self.state = 1619 + self.variableModifier() + self.state = 1624 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1625 + self.unannType() + self.state = 1626 + self.variableDeclaratorList() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def statementWithoutTrailingSubstatement(self): + return self.getTypedRuleContext(Java9Parser.StatementWithoutTrailingSubstatementContext,0) + + + def labeledStatement(self): + return self.getTypedRuleContext(Java9Parser.LabeledStatementContext,0) + + + def ifThenStatement(self): + return self.getTypedRuleContext(Java9Parser.IfThenStatementContext,0) + + + def ifThenElseStatement(self): + return self.getTypedRuleContext(Java9Parser.IfThenElseStatementContext,0) + + + def whileStatement(self): + return self.getTypedRuleContext(Java9Parser.WhileStatementContext,0) + + + def forStatement(self): + return self.getTypedRuleContext(Java9Parser.ForStatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_statement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStatement" ): + listener.enterStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStatement" ): + listener.exitStatement(self) + + + + + def statement(self): + + localctx = Java9Parser.StatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 272, self.RULE_statement) + try: + self.state = 1634 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,168,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1628 + self.statementWithoutTrailingSubstatement() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1629 + self.labeledStatement() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1630 + self.ifThenStatement() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1631 + self.ifThenElseStatement() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1632 + self.whileStatement() + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 1633 + self.forStatement() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StatementNoShortIfContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def statementWithoutTrailingSubstatement(self): + return self.getTypedRuleContext(Java9Parser.StatementWithoutTrailingSubstatementContext,0) + + + def labeledStatementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.LabeledStatementNoShortIfContext,0) + + + def ifThenElseStatementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.IfThenElseStatementNoShortIfContext,0) + + + def whileStatementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.WhileStatementNoShortIfContext,0) + + + def forStatementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.ForStatementNoShortIfContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_statementNoShortIf + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStatementNoShortIf" ): + listener.enterStatementNoShortIf(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStatementNoShortIf" ): + listener.exitStatementNoShortIf(self) + + + + + def statementNoShortIf(self): + + localctx = Java9Parser.StatementNoShortIfContext(self, self._ctx, self.state) + self.enterRule(localctx, 274, self.RULE_statementNoShortIf) + try: + self.state = 1641 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,169,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1636 + self.statementWithoutTrailingSubstatement() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1637 + self.labeledStatementNoShortIf() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1638 + self.ifThenElseStatementNoShortIf() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1639 + self.whileStatementNoShortIf() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1640 + self.forStatementNoShortIf() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StatementWithoutTrailingSubstatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def emptyStatement(self): + return self.getTypedRuleContext(Java9Parser.EmptyStatementContext,0) + + + def expressionStatement(self): + return self.getTypedRuleContext(Java9Parser.ExpressionStatementContext,0) + + + def assertStatement(self): + return self.getTypedRuleContext(Java9Parser.AssertStatementContext,0) + + + def switchStatement(self): + return self.getTypedRuleContext(Java9Parser.SwitchStatementContext,0) + + + def doStatement(self): + return self.getTypedRuleContext(Java9Parser.DoStatementContext,0) + + + def breakStatement(self): + return self.getTypedRuleContext(Java9Parser.BreakStatementContext,0) + + + def continueStatement(self): + return self.getTypedRuleContext(Java9Parser.ContinueStatementContext,0) + + + def returnStatement(self): + return self.getTypedRuleContext(Java9Parser.ReturnStatementContext,0) + + + def synchronizedStatement(self): + return self.getTypedRuleContext(Java9Parser.SynchronizedStatementContext,0) + + + def throwStatement(self): + return self.getTypedRuleContext(Java9Parser.ThrowStatementContext,0) + + + def tryStatement(self): + return self.getTypedRuleContext(Java9Parser.TryStatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_statementWithoutTrailingSubstatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStatementWithoutTrailingSubstatement" ): + listener.enterStatementWithoutTrailingSubstatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStatementWithoutTrailingSubstatement" ): + listener.exitStatementWithoutTrailingSubstatement(self) + + + + + def statementWithoutTrailingSubstatement(self): + + localctx = Java9Parser.StatementWithoutTrailingSubstatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 276, self.RULE_statementWithoutTrailingSubstatement) + try: + self.state = 1655 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.LBRACE]: + self.enterOuterAlt(localctx, 1) + self.state = 1643 + self.block() + pass + elif token in [Java9Parser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 1644 + self.emptyStatement() + pass + elif token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.INC, Java9Parser.DEC, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 3) + self.state = 1645 + self.expressionStatement() + pass + elif token in [Java9Parser.ASSERT]: + self.enterOuterAlt(localctx, 4) + self.state = 1646 + self.assertStatement() + pass + elif token in [Java9Parser.SWITCH]: + self.enterOuterAlt(localctx, 5) + self.state = 1647 + self.switchStatement() + pass + elif token in [Java9Parser.DO]: + self.enterOuterAlt(localctx, 6) + self.state = 1648 + self.doStatement() + pass + elif token in [Java9Parser.BREAK]: + self.enterOuterAlt(localctx, 7) + self.state = 1649 + self.breakStatement() + pass + elif token in [Java9Parser.CONTINUE]: + self.enterOuterAlt(localctx, 8) + self.state = 1650 + self.continueStatement() + pass + elif token in [Java9Parser.RETURN]: + self.enterOuterAlt(localctx, 9) + self.state = 1651 + self.returnStatement() + pass + elif token in [Java9Parser.SYNCHRONIZED]: + self.enterOuterAlt(localctx, 10) + self.state = 1652 + self.synchronizedStatement() + pass + elif token in [Java9Parser.THROW]: + self.enterOuterAlt(localctx, 11) + self.state = 1653 + self.throwStatement() + pass + elif token in [Java9Parser.TRY]: + self.enterOuterAlt(localctx, 12) + self.state = 1654 + self.tryStatement() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EmptyStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_emptyStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEmptyStatement" ): + listener.enterEmptyStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEmptyStatement" ): + listener.exitEmptyStatement(self) + + + + + def emptyStatement(self): + + localctx = Java9Parser.EmptyStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 278, self.RULE_emptyStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1657 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LabeledStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def COLON(self): + return self.getToken(Java9Parser.COLON, 0) + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_labeledStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLabeledStatement" ): + listener.enterLabeledStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLabeledStatement" ): + listener.exitLabeledStatement(self) + + + + + def labeledStatement(self): + + localctx = Java9Parser.LabeledStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 280, self.RULE_labeledStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1659 + self.identifier() + self.state = 1660 + self.match(Java9Parser.COLON) + self.state = 1661 + self.statement() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LabeledStatementNoShortIfContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def COLON(self): + return self.getToken(Java9Parser.COLON, 0) + + def statementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_labeledStatementNoShortIf + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLabeledStatementNoShortIf" ): + listener.enterLabeledStatementNoShortIf(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLabeledStatementNoShortIf" ): + listener.exitLabeledStatementNoShortIf(self) + + + + + def labeledStatementNoShortIf(self): + + localctx = Java9Parser.LabeledStatementNoShortIfContext(self, self._ctx, self.state) + self.enterRule(localctx, 282, self.RULE_labeledStatementNoShortIf) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1663 + self.identifier() + self.state = 1664 + self.match(Java9Parser.COLON) + self.state = 1665 + self.statementNoShortIf() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExpressionStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def statementExpression(self): + return self.getTypedRuleContext(Java9Parser.StatementExpressionContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_expressionStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExpressionStatement" ): + listener.enterExpressionStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExpressionStatement" ): + listener.exitExpressionStatement(self) + + + + + def expressionStatement(self): + + localctx = Java9Parser.ExpressionStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 284, self.RULE_expressionStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1667 + self.statementExpression() + self.state = 1668 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StatementExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def assignment(self): + return self.getTypedRuleContext(Java9Parser.AssignmentContext,0) + + + def preIncrementExpression(self): + return self.getTypedRuleContext(Java9Parser.PreIncrementExpressionContext,0) + + + def preDecrementExpression(self): + return self.getTypedRuleContext(Java9Parser.PreDecrementExpressionContext,0) + + + def postIncrementExpression(self): + return self.getTypedRuleContext(Java9Parser.PostIncrementExpressionContext,0) + + + def postDecrementExpression(self): + return self.getTypedRuleContext(Java9Parser.PostDecrementExpressionContext,0) + + + def methodInvocation(self): + return self.getTypedRuleContext(Java9Parser.MethodInvocationContext,0) + + + def classInstanceCreationExpression(self): + return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_statementExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStatementExpression" ): + listener.enterStatementExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStatementExpression" ): + listener.exitStatementExpression(self) + + + + + def statementExpression(self): + + localctx = Java9Parser.StatementExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 286, self.RULE_statementExpression) + try: + self.state = 1677 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,171,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1670 + self.assignment() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1671 + self.preIncrementExpression() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1672 + self.preDecrementExpression() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1673 + self.postIncrementExpression() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1674 + self.postDecrementExpression() + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 1675 + self.methodInvocation() + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 1676 + self.classInstanceCreationExpression() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class IfThenStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IF(self): + return self.getToken(Java9Parser.IF, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_ifThenStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterIfThenStatement" ): + listener.enterIfThenStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitIfThenStatement" ): + listener.exitIfThenStatement(self) + + + + + def ifThenStatement(self): + + localctx = Java9Parser.IfThenStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 288, self.RULE_ifThenStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1679 + self.match(Java9Parser.IF) + self.state = 1680 + self.match(Java9Parser.LPAREN) + self.state = 1681 + self.expression() + self.state = 1682 + self.match(Java9Parser.RPAREN) + self.state = 1683 + self.statement() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class IfThenElseStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IF(self): + return self.getToken(Java9Parser.IF, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) + + + def ELSE(self): + return self.getToken(Java9Parser.ELSE, 0) + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_ifThenElseStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterIfThenElseStatement" ): + listener.enterIfThenElseStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitIfThenElseStatement" ): + listener.exitIfThenElseStatement(self) + + + + + def ifThenElseStatement(self): + + localctx = Java9Parser.IfThenElseStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 290, self.RULE_ifThenElseStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1685 + self.match(Java9Parser.IF) + self.state = 1686 + self.match(Java9Parser.LPAREN) + self.state = 1687 + self.expression() + self.state = 1688 + self.match(Java9Parser.RPAREN) + self.state = 1689 + self.statementNoShortIf() + self.state = 1690 + self.match(Java9Parser.ELSE) + self.state = 1691 + self.statement() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class IfThenElseStatementNoShortIfContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IF(self): + return self.getToken(Java9Parser.IF, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statementNoShortIf(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.StatementNoShortIfContext) + else: + return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,i) + + + def ELSE(self): + return self.getToken(Java9Parser.ELSE, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_ifThenElseStatementNoShortIf + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterIfThenElseStatementNoShortIf" ): + listener.enterIfThenElseStatementNoShortIf(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitIfThenElseStatementNoShortIf" ): + listener.exitIfThenElseStatementNoShortIf(self) + + + + + def ifThenElseStatementNoShortIf(self): + + localctx = Java9Parser.IfThenElseStatementNoShortIfContext(self, self._ctx, self.state) + self.enterRule(localctx, 292, self.RULE_ifThenElseStatementNoShortIf) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1693 + self.match(Java9Parser.IF) + self.state = 1694 + self.match(Java9Parser.LPAREN) + self.state = 1695 + self.expression() + self.state = 1696 + self.match(Java9Parser.RPAREN) + self.state = 1697 + self.statementNoShortIf() + self.state = 1698 + self.match(Java9Parser.ELSE) + self.state = 1699 + self.statementNoShortIf() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AssertStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def ASSERT(self): + return self.getToken(Java9Parser.ASSERT, 0) + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def COLON(self): + return self.getToken(Java9Parser.COLON, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_assertStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAssertStatement" ): + listener.enterAssertStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAssertStatement" ): + listener.exitAssertStatement(self) + + + + + def assertStatement(self): + + localctx = Java9Parser.AssertStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 294, self.RULE_assertStatement) + try: + self.state = 1711 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,172,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1701 + self.match(Java9Parser.ASSERT) + self.state = 1702 + self.expression() + self.state = 1703 + self.match(Java9Parser.SEMI) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1705 + self.match(Java9Parser.ASSERT) + self.state = 1706 + self.expression() + self.state = 1707 + self.match(Java9Parser.COLON) + self.state = 1708 + self.expression() + self.state = 1709 + self.match(Java9Parser.SEMI) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SwitchStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SWITCH(self): + return self.getToken(Java9Parser.SWITCH, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def switchBlock(self): + return self.getTypedRuleContext(Java9Parser.SwitchBlockContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_switchStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchStatement" ): + listener.enterSwitchStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchStatement" ): + listener.exitSwitchStatement(self) + + + + + def switchStatement(self): + + localctx = Java9Parser.SwitchStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 296, self.RULE_switchStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1713 + self.match(Java9Parser.SWITCH) + self.state = 1714 + self.match(Java9Parser.LPAREN) + self.state = 1715 + self.expression() + self.state = 1716 + self.match(Java9Parser.RPAREN) + self.state = 1717 + self.switchBlock() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SwitchBlockContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(Java9Parser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(Java9Parser.RBRACE, 0) + + def switchBlockStatementGroup(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.SwitchBlockStatementGroupContext) + else: + return self.getTypedRuleContext(Java9Parser.SwitchBlockStatementGroupContext,i) + + + def switchLabel(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.SwitchLabelContext) + else: + return self.getTypedRuleContext(Java9Parser.SwitchLabelContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_switchBlock + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchBlock" ): + listener.enterSwitchBlock(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchBlock" ): + listener.exitSwitchBlock(self) + + + + + def switchBlock(self): + + localctx = Java9Parser.SwitchBlockContext(self, self._ctx, self.state) + self.enterRule(localctx, 298, self.RULE_switchBlock) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1719 + self.match(Java9Parser.LBRACE) + self.state = 1723 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,173,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1720 + self.switchBlockStatementGroup() + self.state = 1725 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,173,self._ctx) + + self.state = 1729 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.CASE or _la==Java9Parser.DEFAULT: + self.state = 1726 + self.switchLabel() + self.state = 1731 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1732 + self.match(Java9Parser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SwitchBlockStatementGroupContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def switchLabels(self): + return self.getTypedRuleContext(Java9Parser.SwitchLabelsContext,0) + + + def blockStatements(self): + return self.getTypedRuleContext(Java9Parser.BlockStatementsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_switchBlockStatementGroup + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchBlockStatementGroup" ): + listener.enterSwitchBlockStatementGroup(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchBlockStatementGroup" ): + listener.exitSwitchBlockStatementGroup(self) + + + + + def switchBlockStatementGroup(self): + + localctx = Java9Parser.SwitchBlockStatementGroupContext(self, self._ctx, self.state) + self.enterRule(localctx, 300, self.RULE_switchBlockStatementGroup) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1734 + self.switchLabels() + self.state = 1735 + self.blockStatements() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SwitchLabelsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def switchLabel(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.SwitchLabelContext) + else: + return self.getTypedRuleContext(Java9Parser.SwitchLabelContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_switchLabels + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchLabels" ): + listener.enterSwitchLabels(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchLabels" ): + listener.exitSwitchLabels(self) + + + + + def switchLabels(self): + + localctx = Java9Parser.SwitchLabelsContext(self, self._ctx, self.state) + self.enterRule(localctx, 302, self.RULE_switchLabels) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1738 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1737 + self.switchLabel() + self.state = 1740 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==Java9Parser.CASE or _la==Java9Parser.DEFAULT): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SwitchLabelContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def CASE(self): + return self.getToken(Java9Parser.CASE, 0) + + def constantExpression(self): + return self.getTypedRuleContext(Java9Parser.ConstantExpressionContext,0) + + + def COLON(self): + return self.getToken(Java9Parser.COLON, 0) + + def enumConstantName(self): + return self.getTypedRuleContext(Java9Parser.EnumConstantNameContext,0) + + + def DEFAULT(self): + return self.getToken(Java9Parser.DEFAULT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_switchLabel + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchLabel" ): + listener.enterSwitchLabel(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchLabel" ): + listener.exitSwitchLabel(self) + + + + + def switchLabel(self): + + localctx = Java9Parser.SwitchLabelContext(self, self._ctx, self.state) + self.enterRule(localctx, 304, self.RULE_switchLabel) + try: + self.state = 1752 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,176,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1742 + self.match(Java9Parser.CASE) + self.state = 1743 + self.constantExpression() + self.state = 1744 + self.match(Java9Parser.COLON) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1746 + self.match(Java9Parser.CASE) + self.state = 1747 + self.enumConstantName() + self.state = 1748 + self.match(Java9Parser.COLON) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1750 + self.match(Java9Parser.DEFAULT) + self.state = 1751 + self.match(Java9Parser.COLON) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumConstantNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_enumConstantName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstantName" ): + listener.enterEnumConstantName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstantName" ): + listener.exitEnumConstantName(self) + + + + + def enumConstantName(self): + + localctx = Java9Parser.EnumConstantNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 306, self.RULE_enumConstantName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1754 + self.identifier() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class WhileStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def WHILE(self): + return self.getToken(Java9Parser.WHILE, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_whileStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterWhileStatement" ): + listener.enterWhileStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitWhileStatement" ): + listener.exitWhileStatement(self) + + + + + def whileStatement(self): + + localctx = Java9Parser.WhileStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 308, self.RULE_whileStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1756 + self.match(Java9Parser.WHILE) + self.state = 1757 + self.match(Java9Parser.LPAREN) + self.state = 1758 + self.expression() + self.state = 1759 + self.match(Java9Parser.RPAREN) + self.state = 1760 + self.statement() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class WhileStatementNoShortIfContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def WHILE(self): + return self.getToken(Java9Parser.WHILE, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_whileStatementNoShortIf + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterWhileStatementNoShortIf" ): + listener.enterWhileStatementNoShortIf(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitWhileStatementNoShortIf" ): + listener.exitWhileStatementNoShortIf(self) + + + + + def whileStatementNoShortIf(self): + + localctx = Java9Parser.WhileStatementNoShortIfContext(self, self._ctx, self.state) + self.enterRule(localctx, 310, self.RULE_whileStatementNoShortIf) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1762 + self.match(Java9Parser.WHILE) + self.state = 1763 + self.match(Java9Parser.LPAREN) + self.state = 1764 + self.expression() + self.state = 1765 + self.match(Java9Parser.RPAREN) + self.state = 1766 + self.statementNoShortIf() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DoStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DO(self): + return self.getToken(Java9Parser.DO, 0) + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def WHILE(self): + return self.getToken(Java9Parser.WHILE, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_doStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDoStatement" ): + listener.enterDoStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDoStatement" ): + listener.exitDoStatement(self) + + + + + def doStatement(self): + + localctx = Java9Parser.DoStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 312, self.RULE_doStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1768 + self.match(Java9Parser.DO) + self.state = 1769 + self.statement() + self.state = 1770 + self.match(Java9Parser.WHILE) + self.state = 1771 + self.match(Java9Parser.LPAREN) + self.state = 1772 + self.expression() + self.state = 1773 + self.match(Java9Parser.RPAREN) + self.state = 1774 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ForStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def basicForStatement(self): + return self.getTypedRuleContext(Java9Parser.BasicForStatementContext,0) + + + def enhancedForStatement(self): + return self.getTypedRuleContext(Java9Parser.EnhancedForStatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_forStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForStatement" ): + listener.enterForStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForStatement" ): + listener.exitForStatement(self) + + + + + def forStatement(self): + + localctx = Java9Parser.ForStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 314, self.RULE_forStatement) + try: + self.state = 1778 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,177,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1776 + self.basicForStatement() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1777 + self.enhancedForStatement() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ForStatementNoShortIfContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def basicForStatementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.BasicForStatementNoShortIfContext,0) + + + def enhancedForStatementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.EnhancedForStatementNoShortIfContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_forStatementNoShortIf + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForStatementNoShortIf" ): + listener.enterForStatementNoShortIf(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForStatementNoShortIf" ): + listener.exitForStatementNoShortIf(self) + + + + + def forStatementNoShortIf(self): + + localctx = Java9Parser.ForStatementNoShortIfContext(self, self._ctx, self.state) + self.enterRule(localctx, 316, self.RULE_forStatementNoShortIf) + try: + self.state = 1782 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,178,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1780 + self.basicForStatementNoShortIf() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1781 + self.enhancedForStatementNoShortIf() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BasicForStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FOR(self): + return self.getToken(Java9Parser.FOR, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def SEMI(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.SEMI) + else: + return self.getToken(Java9Parser.SEMI, i) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def forInit(self): + return self.getTypedRuleContext(Java9Parser.ForInitContext,0) + + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def forUpdate(self): + return self.getTypedRuleContext(Java9Parser.ForUpdateContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_basicForStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBasicForStatement" ): + listener.enterBasicForStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBasicForStatement" ): + listener.exitBasicForStatement(self) + + + + + def basicForStatement(self): + + localctx = Java9Parser.BasicForStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 318, self.RULE_basicForStatement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1784 + self.match(Java9Parser.FOR) + self.state = 1785 + self.match(Java9Parser.LPAREN) + self.state = 1787 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1786 + self.forInit() + + + self.state = 1789 + self.match(Java9Parser.SEMI) + self.state = 1791 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1790 + self.expression() + + + self.state = 1793 + self.match(Java9Parser.SEMI) + self.state = 1795 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1794 + self.forUpdate() + + + self.state = 1797 + self.match(Java9Parser.RPAREN) + self.state = 1798 + self.statement() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BasicForStatementNoShortIfContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FOR(self): + return self.getToken(Java9Parser.FOR, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def SEMI(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.SEMI) + else: + return self.getToken(Java9Parser.SEMI, i) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) + + + def forInit(self): + return self.getTypedRuleContext(Java9Parser.ForInitContext,0) + + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def forUpdate(self): + return self.getTypedRuleContext(Java9Parser.ForUpdateContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_basicForStatementNoShortIf + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBasicForStatementNoShortIf" ): + listener.enterBasicForStatementNoShortIf(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBasicForStatementNoShortIf" ): + listener.exitBasicForStatementNoShortIf(self) + + + + + def basicForStatementNoShortIf(self): + + localctx = Java9Parser.BasicForStatementNoShortIfContext(self, self._ctx, self.state) + self.enterRule(localctx, 320, self.RULE_basicForStatementNoShortIf) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1800 + self.match(Java9Parser.FOR) + self.state = 1801 + self.match(Java9Parser.LPAREN) + self.state = 1803 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1802 + self.forInit() + + + self.state = 1805 + self.match(Java9Parser.SEMI) + self.state = 1807 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1806 + self.expression() + + + self.state = 1809 + self.match(Java9Parser.SEMI) + self.state = 1811 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1810 + self.forUpdate() + + + self.state = 1813 + self.match(Java9Parser.RPAREN) + self.state = 1814 + self.statementNoShortIf() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ForInitContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def statementExpressionList(self): + return self.getTypedRuleContext(Java9Parser.StatementExpressionListContext,0) + + + def localVariableDeclaration(self): + return self.getTypedRuleContext(Java9Parser.LocalVariableDeclarationContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_forInit + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForInit" ): + listener.enterForInit(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForInit" ): + listener.exitForInit(self) + + + + + def forInit(self): + + localctx = Java9Parser.ForInitContext(self, self._ctx, self.state) + self.enterRule(localctx, 322, self.RULE_forInit) + try: + self.state = 1818 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,185,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1816 + self.statementExpressionList() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1817 + self.localVariableDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ForUpdateContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def statementExpressionList(self): + return self.getTypedRuleContext(Java9Parser.StatementExpressionListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_forUpdate + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForUpdate" ): + listener.enterForUpdate(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForUpdate" ): + listener.exitForUpdate(self) + + + + + def forUpdate(self): + + localctx = Java9Parser.ForUpdateContext(self, self._ctx, self.state) + self.enterRule(localctx, 324, self.RULE_forUpdate) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1820 + self.statementExpressionList() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StatementExpressionListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def statementExpression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.StatementExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.StatementExpressionContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_statementExpressionList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStatementExpressionList" ): + listener.enterStatementExpressionList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStatementExpressionList" ): + listener.exitStatementExpressionList(self) + + + + + def statementExpressionList(self): + + localctx = Java9Parser.StatementExpressionListContext(self, self._ctx, self.state) + self.enterRule(localctx, 326, self.RULE_statementExpressionList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1822 + self.statementExpression() + self.state = 1827 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 1823 + self.match(Java9Parser.COMMA) + self.state = 1824 + self.statementExpression() + self.state = 1829 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnhancedForStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FOR(self): + return self.getToken(Java9Parser.FOR, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) + + + def COLON(self): + return self.getToken(Java9Parser.COLON, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statement(self): + return self.getTypedRuleContext(Java9Parser.StatementContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_enhancedForStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnhancedForStatement" ): + listener.enterEnhancedForStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnhancedForStatement" ): + listener.exitEnhancedForStatement(self) + + + + + def enhancedForStatement(self): + + localctx = Java9Parser.EnhancedForStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 328, self.RULE_enhancedForStatement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1830 + self.match(Java9Parser.FOR) + self.state = 1831 + self.match(Java9Parser.LPAREN) + self.state = 1835 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.FINAL or _la==Java9Parser.AT: + self.state = 1832 + self.variableModifier() + self.state = 1837 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1838 + self.unannType() + self.state = 1839 + self.variableDeclaratorId() + self.state = 1840 + self.match(Java9Parser.COLON) + self.state = 1841 + self.expression() + self.state = 1842 + self.match(Java9Parser.RPAREN) + self.state = 1843 + self.statement() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnhancedForStatementNoShortIfContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FOR(self): + return self.getToken(Java9Parser.FOR, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) + + + def COLON(self): + return self.getToken(Java9Parser.COLON, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def statementNoShortIf(self): + return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_enhancedForStatementNoShortIf + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnhancedForStatementNoShortIf" ): + listener.enterEnhancedForStatementNoShortIf(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnhancedForStatementNoShortIf" ): + listener.exitEnhancedForStatementNoShortIf(self) + + + + + def enhancedForStatementNoShortIf(self): + + localctx = Java9Parser.EnhancedForStatementNoShortIfContext(self, self._ctx, self.state) + self.enterRule(localctx, 330, self.RULE_enhancedForStatementNoShortIf) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1845 + self.match(Java9Parser.FOR) + self.state = 1846 + self.match(Java9Parser.LPAREN) + self.state = 1850 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.FINAL or _la==Java9Parser.AT: + self.state = 1847 + self.variableModifier() + self.state = 1852 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1853 + self.unannType() + self.state = 1854 + self.variableDeclaratorId() + self.state = 1855 + self.match(Java9Parser.COLON) + self.state = 1856 + self.expression() + self.state = 1857 + self.match(Java9Parser.RPAREN) + self.state = 1858 + self.statementNoShortIf() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BreakStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def BREAK(self): + return self.getToken(Java9Parser.BREAK, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_breakStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBreakStatement" ): + listener.enterBreakStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBreakStatement" ): + listener.exitBreakStatement(self) + + + + + def breakStatement(self): + + localctx = Java9Parser.BreakStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 332, self.RULE_breakStatement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1860 + self.match(Java9Parser.BREAK) + self.state = 1862 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: + self.state = 1861 + self.identifier() + + + self.state = 1864 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ContinueStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def CONTINUE(self): + return self.getToken(Java9Parser.CONTINUE, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_continueStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterContinueStatement" ): + listener.enterContinueStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitContinueStatement" ): + listener.exitContinueStatement(self) + + + + + def continueStatement(self): + + localctx = Java9Parser.ContinueStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 334, self.RULE_continueStatement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1866 + self.match(Java9Parser.CONTINUE) + self.state = 1868 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: + self.state = 1867 + self.identifier() + + + self.state = 1870 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ReturnStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def RETURN(self): + return self.getToken(Java9Parser.RETURN, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_returnStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterReturnStatement" ): + listener.enterReturnStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitReturnStatement" ): + listener.exitReturnStatement(self) + + + + + def returnStatement(self): + + localctx = Java9Parser.ReturnStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 336, self.RULE_returnStatement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1872 + self.match(Java9Parser.RETURN) + self.state = 1874 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 1873 + self.expression() + + + self.state = 1876 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ThrowStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def THROW(self): + return self.getToken(Java9Parser.THROW, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_throwStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterThrowStatement" ): + listener.enterThrowStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitThrowStatement" ): + listener.exitThrowStatement(self) + + + + + def throwStatement(self): + + localctx = Java9Parser.ThrowStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 338, self.RULE_throwStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1878 + self.match(Java9Parser.THROW) + self.state = 1879 + self.expression() + self.state = 1880 + self.match(Java9Parser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SynchronizedStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SYNCHRONIZED(self): + return self.getToken(Java9Parser.SYNCHRONIZED, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_synchronizedStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSynchronizedStatement" ): + listener.enterSynchronizedStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSynchronizedStatement" ): + listener.exitSynchronizedStatement(self) + + + + + def synchronizedStatement(self): + + localctx = Java9Parser.SynchronizedStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 340, self.RULE_synchronizedStatement) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1882 + self.match(Java9Parser.SYNCHRONIZED) + self.state = 1883 + self.match(Java9Parser.LPAREN) + self.state = 1884 + self.expression() + self.state = 1885 + self.match(Java9Parser.RPAREN) + self.state = 1886 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TryStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TRY(self): + return self.getToken(Java9Parser.TRY, 0) + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def catches(self): + return self.getTypedRuleContext(Java9Parser.CatchesContext,0) + + + def finally_(self): + return self.getTypedRuleContext(Java9Parser.Finally_Context,0) + + + def tryWithResourcesStatement(self): + return self.getTypedRuleContext(Java9Parser.TryWithResourcesStatementContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_tryStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTryStatement" ): + listener.enterTryStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTryStatement" ): + listener.exitTryStatement(self) + + + + + def tryStatement(self): + + localctx = Java9Parser.TryStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 342, self.RULE_tryStatement) + self._la = 0 # Token type + try: + self.state = 1900 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,193,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1888 + self.match(Java9Parser.TRY) + self.state = 1889 + self.block() + self.state = 1890 + self.catches() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1892 + self.match(Java9Parser.TRY) + self.state = 1893 + self.block() + self.state = 1895 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.CATCH: + self.state = 1894 + self.catches() + + + self.state = 1897 + self.finally_() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1899 + self.tryWithResourcesStatement() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CatchesContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def catchClause(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.CatchClauseContext) + else: + return self.getTypedRuleContext(Java9Parser.CatchClauseContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_catches + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatches" ): + listener.enterCatches(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatches" ): + listener.exitCatches(self) + + + + + def catches(self): + + localctx = Java9Parser.CatchesContext(self, self._ctx, self.state) + self.enterRule(localctx, 344, self.RULE_catches) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1903 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1902 + self.catchClause() + self.state = 1905 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==Java9Parser.CATCH): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CatchClauseContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def CATCH(self): + return self.getToken(Java9Parser.CATCH, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def catchFormalParameter(self): + return self.getTypedRuleContext(Java9Parser.CatchFormalParameterContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_catchClause + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatchClause" ): + listener.enterCatchClause(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatchClause" ): + listener.exitCatchClause(self) + + + + + def catchClause(self): + + localctx = Java9Parser.CatchClauseContext(self, self._ctx, self.state) + self.enterRule(localctx, 346, self.RULE_catchClause) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1907 + self.match(Java9Parser.CATCH) + self.state = 1908 + self.match(Java9Parser.LPAREN) + self.state = 1909 + self.catchFormalParameter() + self.state = 1910 + self.match(Java9Parser.RPAREN) + self.state = 1911 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CatchFormalParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def catchType(self): + return self.getTypedRuleContext(Java9Parser.CatchTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_catchFormalParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatchFormalParameter" ): + listener.enterCatchFormalParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatchFormalParameter" ): + listener.exitCatchFormalParameter(self) + + + + + def catchFormalParameter(self): + + localctx = Java9Parser.CatchFormalParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 348, self.RULE_catchFormalParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1916 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.FINAL or _la==Java9Parser.AT: + self.state = 1913 + self.variableModifier() + self.state = 1918 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1919 + self.catchType() + self.state = 1920 + self.variableDeclaratorId() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CatchTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannClassType(self): + return self.getTypedRuleContext(Java9Parser.UnannClassTypeContext,0) + + + def BITOR(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.BITOR) + else: + return self.getToken(Java9Parser.BITOR, i) + + def classType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ClassTypeContext) + else: + return self.getTypedRuleContext(Java9Parser.ClassTypeContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_catchType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatchType" ): + listener.enterCatchType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatchType" ): + listener.exitCatchType(self) + + + + + def catchType(self): + + localctx = Java9Parser.CatchTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 350, self.RULE_catchType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1922 + self.unannClassType() + self.state = 1927 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.BITOR: + self.state = 1923 + self.match(Java9Parser.BITOR) + self.state = 1924 + self.classType() + self.state = 1929 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class Finally_Context(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FINALLY(self): + return self.getToken(Java9Parser.FINALLY, 0) + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_finally_ + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFinally_" ): + listener.enterFinally_(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFinally_" ): + listener.exitFinally_(self) + + + + + def finally_(self): + + localctx = Java9Parser.Finally_Context(self, self._ctx, self.state) + self.enterRule(localctx, 352, self.RULE_finally_) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1930 + self.match(Java9Parser.FINALLY) + self.state = 1931 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TryWithResourcesStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TRY(self): + return self.getToken(Java9Parser.TRY, 0) + + def resourceSpecification(self): + return self.getTypedRuleContext(Java9Parser.ResourceSpecificationContext,0) + + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def catches(self): + return self.getTypedRuleContext(Java9Parser.CatchesContext,0) + + + def finally_(self): + return self.getTypedRuleContext(Java9Parser.Finally_Context,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_tryWithResourcesStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTryWithResourcesStatement" ): + listener.enterTryWithResourcesStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTryWithResourcesStatement" ): + listener.exitTryWithResourcesStatement(self) + + + + + def tryWithResourcesStatement(self): + + localctx = Java9Parser.TryWithResourcesStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 354, self.RULE_tryWithResourcesStatement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1933 + self.match(Java9Parser.TRY) + self.state = 1934 + self.resourceSpecification() + self.state = 1935 + self.block() + self.state = 1937 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.CATCH: + self.state = 1936 + self.catches() + + + self.state = 1940 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.FINALLY: + self.state = 1939 + self.finally_() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ResourceSpecificationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def resourceList(self): + return self.getTypedRuleContext(Java9Parser.ResourceListContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def SEMI(self): + return self.getToken(Java9Parser.SEMI, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_resourceSpecification + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResourceSpecification" ): + listener.enterResourceSpecification(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResourceSpecification" ): + listener.exitResourceSpecification(self) + + + + + def resourceSpecification(self): + + localctx = Java9Parser.ResourceSpecificationContext(self, self._ctx, self.state) + self.enterRule(localctx, 356, self.RULE_resourceSpecification) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1942 + self.match(Java9Parser.LPAREN) + self.state = 1943 + self.resourceList() + self.state = 1945 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.SEMI: + self.state = 1944 + self.match(Java9Parser.SEMI) + + + self.state = 1947 + self.match(Java9Parser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ResourceListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def resource(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ResourceContext) + else: + return self.getTypedRuleContext(Java9Parser.ResourceContext,i) + + + def SEMI(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.SEMI) + else: + return self.getToken(Java9Parser.SEMI, i) + + def getRuleIndex(self): + return Java9Parser.RULE_resourceList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResourceList" ): + listener.enterResourceList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResourceList" ): + listener.exitResourceList(self) + + + + + def resourceList(self): + + localctx = Java9Parser.ResourceListContext(self, self._ctx, self.state) + self.enterRule(localctx, 358, self.RULE_resourceList) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1949 + self.resource() + self.state = 1954 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,200,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1950 + self.match(Java9Parser.SEMI) + self.state = 1951 + self.resource() + self.state = 1956 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,200,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ResourceContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unannType(self): + return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) + + + def ASSIGN(self): + return self.getToken(Java9Parser.ASSIGN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) + else: + return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) + + + def variableAccess(self): + return self.getTypedRuleContext(Java9Parser.VariableAccessContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_resource + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResource" ): + listener.enterResource(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResource" ): + listener.exitResource(self) + + + + + def resource(self): + + localctx = Java9Parser.ResourceContext(self, self._ctx, self.state) + self.enterRule(localctx, 360, self.RULE_resource) + self._la = 0 # Token type + try: + self.state = 1969 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,202,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1960 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.FINAL or _la==Java9Parser.AT: + self.state = 1957 + self.variableModifier() + self.state = 1962 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1963 + self.unannType() + self.state = 1964 + self.variableDeclaratorId() + self.state = 1965 + self.match(Java9Parser.ASSIGN) + self.state = 1966 + self.expression() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1968 + self.variableAccess() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableAccessContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def fieldAccess(self): + return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_variableAccess + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableAccess" ): + listener.enterVariableAccess(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableAccess" ): + listener.exitVariableAccess(self) + + + + + def variableAccess(self): + + localctx = Java9Parser.VariableAccessContext(self, self._ctx, self.state) + self.enterRule(localctx, 362, self.RULE_variableAccess) + try: + self.state = 1973 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,203,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1971 + self.expressionName() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1972 + self.fieldAccess() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def primaryNoNewArray_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_primaryContext,0) + + + def arrayCreationExpression(self): + return self.getTypedRuleContext(Java9Parser.ArrayCreationExpressionContext,0) + + + def primaryNoNewArray_lf_primary(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lf_primaryContext) + else: + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_primaryContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimary" ): + listener.enterPrimary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimary" ): + listener.exitPrimary(self) + + + + + def primary(self): + + localctx = Java9Parser.PrimaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 364, self.RULE_primary) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1977 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,204,self._ctx) + if la_ == 1: + self.state = 1975 + self.primaryNoNewArray_lfno_primary() + pass + + elif la_ == 2: + self.state = 1976 + self.arrayCreationExpression() + pass + + + self.state = 1982 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,205,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1979 + self.primaryNoNewArray_lf_primary() + self.state = 1984 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,205,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArrayContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def literal(self): + return self.getTypedRuleContext(Java9Parser.LiteralContext,0) + + + def classLiteral(self): + return self.getTypedRuleContext(Java9Parser.ClassLiteralContext,0) + + + def THIS(self): + return self.getToken(Java9Parser.THIS, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def classInstanceCreationExpression(self): + return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpressionContext,0) + + + def fieldAccess(self): + return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) + + + def arrayAccess(self): + return self.getTypedRuleContext(Java9Parser.ArrayAccessContext,0) + + + def methodInvocation(self): + return self.getTypedRuleContext(Java9Parser.MethodInvocationContext,0) + + + def methodReference(self): + return self.getTypedRuleContext(Java9Parser.MethodReferenceContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray" ): + listener.enterPrimaryNoNewArray(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray" ): + listener.exitPrimaryNoNewArray(self) + + + + + def primaryNoNewArray(self): + + localctx = Java9Parser.PrimaryNoNewArrayContext(self, self._ctx, self.state) + self.enterRule(localctx, 366, self.RULE_primaryNoNewArray) + try: + self.state = 2001 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,206,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1985 + self.literal() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1986 + self.classLiteral() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1987 + self.match(Java9Parser.THIS) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1988 + self.typeName() + self.state = 1989 + self.match(Java9Parser.DOT) + self.state = 1990 + self.match(Java9Parser.THIS) + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1992 + self.match(Java9Parser.LPAREN) + self.state = 1993 + self.expression() + self.state = 1994 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 1996 + self.classInstanceCreationExpression() + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 1997 + self.fieldAccess() + pass + + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 1998 + self.arrayAccess() + pass + + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 1999 + self.methodInvocation() + pass + + elif la_ == 10: + self.enterOuterAlt(localctx, 10) + self.state = 2000 + self.methodReference() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lf_arrayAccessContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lf_arrayAccess + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lf_arrayAccess" ): + listener.enterPrimaryNoNewArray_lf_arrayAccess(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lf_arrayAccess" ): + listener.exitPrimaryNoNewArray_lf_arrayAccess(self) + + + + + def primaryNoNewArray_lf_arrayAccess(self): + + localctx = Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext(self, self._ctx, self.state) + self.enterRule(localctx, 368, self.RULE_primaryNoNewArray_lf_arrayAccess) + try: + self.enterOuterAlt(localctx, 1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lfno_arrayAccessContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def literal(self): + return self.getTypedRuleContext(Java9Parser.LiteralContext,0) + + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def CLASS(self): + return self.getToken(Java9Parser.CLASS, 0) + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def VOID(self): + return self.getToken(Java9Parser.VOID, 0) + + def THIS(self): + return self.getToken(Java9Parser.THIS, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def classInstanceCreationExpression(self): + return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpressionContext,0) + + + def fieldAccess(self): + return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) + + + def methodInvocation(self): + return self.getTypedRuleContext(Java9Parser.MethodInvocationContext,0) + + + def methodReference(self): + return self.getTypedRuleContext(Java9Parser.MethodReferenceContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lfno_arrayAccess + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lfno_arrayAccess" ): + listener.enterPrimaryNoNewArray_lfno_arrayAccess(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lfno_arrayAccess" ): + listener.exitPrimaryNoNewArray_lfno_arrayAccess(self) + + + + + def primaryNoNewArray_lfno_arrayAccess(self): + + localctx = Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext(self, self._ctx, self.state) + self.enterRule(localctx, 370, self.RULE_primaryNoNewArray_lfno_arrayAccess) + self._la = 0 # Token type + try: + self.state = 2033 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,208,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2005 + self.literal() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2006 + self.typeName() + self.state = 2011 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.LBRACK: + self.state = 2007 + self.match(Java9Parser.LBRACK) + self.state = 2008 + self.match(Java9Parser.RBRACK) + self.state = 2013 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2014 + self.match(Java9Parser.DOT) + self.state = 2015 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2017 + self.match(Java9Parser.VOID) + self.state = 2018 + self.match(Java9Parser.DOT) + self.state = 2019 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2020 + self.match(Java9Parser.THIS) + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2021 + self.typeName() + self.state = 2022 + self.match(Java9Parser.DOT) + self.state = 2023 + self.match(Java9Parser.THIS) + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 2025 + self.match(Java9Parser.LPAREN) + self.state = 2026 + self.expression() + self.state = 2027 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 2029 + self.classInstanceCreationExpression() + pass + + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 2030 + self.fieldAccess() + pass + + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 2031 + self.methodInvocation() + pass + + elif la_ == 10: + self.enterOuterAlt(localctx, 10) + self.state = 2032 + self.methodReference() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classInstanceCreationExpression_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lf_primaryContext,0) + + + def fieldAccess_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.FieldAccess_lf_primaryContext,0) + + + def arrayAccess_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.ArrayAccess_lf_primaryContext,0) + + + def methodInvocation_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodInvocation_lf_primaryContext,0) + + + def methodReference_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodReference_lf_primaryContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lf_primary" ): + listener.enterPrimaryNoNewArray_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lf_primary" ): + listener.exitPrimaryNoNewArray_lf_primary(self) + + + + + def primaryNoNewArray_lf_primary(self): + + localctx = Java9Parser.PrimaryNoNewArray_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 372, self.RULE_primaryNoNewArray_lf_primary) + try: + self.state = 2040 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,209,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2035 + self.classInstanceCreationExpression_lf_primary() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2036 + self.fieldAccess_lf_primary() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2037 + self.arrayAccess_lf_primary() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2038 + self.methodInvocation_lf_primary() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2039 + self.methodReference_lf_primary() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary" ): + listener.enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary" ): + listener.exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self) + + + + + def primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self): + + localctx = Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 374, self.RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary) + try: + self.enterOuterAlt(localctx, 1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classInstanceCreationExpression_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lf_primaryContext,0) + + + def fieldAccess_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.FieldAccess_lf_primaryContext,0) + + + def methodInvocation_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodInvocation_lf_primaryContext,0) + + + def methodReference_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodReference_lf_primaryContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary" ): + listener.enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary" ): + listener.exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self) + + + + + def primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self): + + localctx = Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 376, self.RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary) + try: + self.state = 2048 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,210,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2044 + self.classInstanceCreationExpression_lf_primary() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2045 + self.fieldAccess_lf_primary() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2046 + self.methodInvocation_lf_primary() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2047 + self.methodReference_lf_primary() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def literal(self): + return self.getTypedRuleContext(Java9Parser.LiteralContext,0) + + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def CLASS(self): + return self.getToken(Java9Parser.CLASS, 0) + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def unannPrimitiveType(self): + return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) + + + def VOID(self): + return self.getToken(Java9Parser.VOID, 0) + + def THIS(self): + return self.getToken(Java9Parser.THIS, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def classInstanceCreationExpression_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext,0) + + + def fieldAccess_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.FieldAccess_lfno_primaryContext,0) + + + def arrayAccess_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.ArrayAccess_lfno_primaryContext,0) + + + def methodInvocation_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodInvocation_lfno_primaryContext,0) + + + def methodReference_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodReference_lfno_primaryContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lfno_primary" ): + listener.enterPrimaryNoNewArray_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lfno_primary" ): + listener.exitPrimaryNoNewArray_lfno_primary(self) + + + + + def primaryNoNewArray_lfno_primary(self): + + localctx = Java9Parser.PrimaryNoNewArray_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 378, self.RULE_primaryNoNewArray_lfno_primary) + self._la = 0 # Token type + try: + self.state = 2090 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,213,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2050 + self.literal() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2051 + self.typeName() + self.state = 2056 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.LBRACK: + self.state = 2052 + self.match(Java9Parser.LBRACK) + self.state = 2053 + self.match(Java9Parser.RBRACK) + self.state = 2058 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2059 + self.match(Java9Parser.DOT) + self.state = 2060 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2062 + self.unannPrimitiveType() + self.state = 2067 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.LBRACK: + self.state = 2063 + self.match(Java9Parser.LBRACK) + self.state = 2064 + self.match(Java9Parser.RBRACK) + self.state = 2069 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2070 + self.match(Java9Parser.DOT) + self.state = 2071 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2073 + self.match(Java9Parser.VOID) + self.state = 2074 + self.match(Java9Parser.DOT) + self.state = 2075 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2076 + self.match(Java9Parser.THIS) + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 2077 + self.typeName() + self.state = 2078 + self.match(Java9Parser.DOT) + self.state = 2079 + self.match(Java9Parser.THIS) + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 2081 + self.match(Java9Parser.LPAREN) + self.state = 2082 + self.expression() + self.state = 2083 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 2085 + self.classInstanceCreationExpression_lfno_primary() + pass + + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 2086 + self.fieldAccess_lfno_primary() + pass + + elif la_ == 10: + self.enterOuterAlt(localctx, 10) + self.state = 2087 + self.arrayAccess_lfno_primary() + pass + + elif la_ == 11: + self.enterOuterAlt(localctx, 11) + self.state = 2088 + self.methodInvocation_lfno_primary() + pass + + elif la_ == 12: + self.enterOuterAlt(localctx, 12) + self.state = 2089 + self.methodReference_lfno_primary() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary" ): + listener.enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary" ): + listener.exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self) + + + + + def primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self): + + localctx = Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 380, self.RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary) + try: + self.enterOuterAlt(localctx, 1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def literal(self): + return self.getTypedRuleContext(Java9Parser.LiteralContext,0) + + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def CLASS(self): + return self.getToken(Java9Parser.CLASS, 0) + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def unannPrimitiveType(self): + return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) + + + def VOID(self): + return self.getToken(Java9Parser.VOID, 0) + + def THIS(self): + return self.getToken(Java9Parser.THIS, 0) + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def classInstanceCreationExpression_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext,0) + + + def fieldAccess_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.FieldAccess_lfno_primaryContext,0) + + + def methodInvocation_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodInvocation_lfno_primaryContext,0) + + + def methodReference_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.MethodReference_lfno_primaryContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary" ): + listener.enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary" ): + listener.exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self) + + + + + def primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self): + + localctx = Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 382, self.RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary) + self._la = 0 # Token type + try: + self.state = 2133 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,216,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2094 + self.literal() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2095 + self.typeName() + self.state = 2100 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.LBRACK: + self.state = 2096 + self.match(Java9Parser.LBRACK) + self.state = 2097 + self.match(Java9Parser.RBRACK) + self.state = 2102 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2103 + self.match(Java9Parser.DOT) + self.state = 2104 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2106 + self.unannPrimitiveType() + self.state = 2111 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.LBRACK: + self.state = 2107 + self.match(Java9Parser.LBRACK) + self.state = 2108 + self.match(Java9Parser.RBRACK) + self.state = 2113 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2114 + self.match(Java9Parser.DOT) + self.state = 2115 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2117 + self.match(Java9Parser.VOID) + self.state = 2118 + self.match(Java9Parser.DOT) + self.state = 2119 + self.match(Java9Parser.CLASS) + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2120 + self.match(Java9Parser.THIS) + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 2121 + self.typeName() + self.state = 2122 + self.match(Java9Parser.DOT) + self.state = 2123 + self.match(Java9Parser.THIS) + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 2125 + self.match(Java9Parser.LPAREN) + self.state = 2126 + self.expression() + self.state = 2127 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 2129 + self.classInstanceCreationExpression_lfno_primary() + pass + + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 2130 + self.fieldAccess_lfno_primary() + pass + + elif la_ == 10: + self.enterOuterAlt(localctx, 10) + self.state = 2131 + self.methodInvocation_lfno_primary() + pass + + elif la_ == 11: + self.enterOuterAlt(localctx, 11) + self.state = 2132 + self.methodReference_lfno_primary() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassLiteralContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def CLASS(self): + return self.getToken(Java9Parser.CLASS, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def numericType(self): + return self.getTypedRuleContext(Java9Parser.NumericTypeContext,0) + + + def BOOLEAN(self): + return self.getToken(Java9Parser.BOOLEAN, 0) + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def VOID(self): + return self.getToken(Java9Parser.VOID, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_classLiteral + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassLiteral" ): + listener.enterClassLiteral(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassLiteral" ): + listener.exitClassLiteral(self) + + + + + def classLiteral(self): + + localctx = Java9Parser.ClassLiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 384, self.RULE_classLiteral) + self._la = 0 # Token type + try: + self.state = 2152 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 1) + self.state = 2138 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.EXPORTS, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: + self.state = 2135 + self.typeName() + pass + elif token in [Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.SHORT]: + self.state = 2136 + self.numericType() + pass + elif token in [Java9Parser.BOOLEAN]: + self.state = 2137 + self.match(Java9Parser.BOOLEAN) + pass + else: + raise NoViableAltException(self) + + self.state = 2144 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.LBRACK: + self.state = 2140 + self.match(Java9Parser.LBRACK) + self.state = 2141 + self.match(Java9Parser.RBRACK) + self.state = 2146 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2147 + self.match(Java9Parser.DOT) + self.state = 2148 + self.match(Java9Parser.CLASS) + pass + elif token in [Java9Parser.VOID]: + self.enterOuterAlt(localctx, 2) + self.state = 2149 + self.match(Java9Parser.VOID) + self.state = 2150 + self.match(Java9Parser.DOT) + self.state = 2151 + self.match(Java9Parser.CLASS) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassInstanceCreationExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NEW(self): + return self.getToken(Java9Parser.NEW, 0) + + def identifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.IdentifierContext) + else: + return self.getTypedRuleContext(Java9Parser.IdentifierContext,i) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.DOT) + else: + return self.getToken(Java9Parser.DOT, i) + + def typeArgumentsOrDiamond(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsOrDiamondContext,0) + + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def classBody(self): + return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) + + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_classInstanceCreationExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassInstanceCreationExpression" ): + listener.enterClassInstanceCreationExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassInstanceCreationExpression" ): + listener.exitClassInstanceCreationExpression(self) + + + + + def classInstanceCreationExpression(self): + + localctx = Java9Parser.ClassInstanceCreationExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 386, self.RULE_classInstanceCreationExpression) + self._la = 0 # Token type + try: + self.state = 2237 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,237,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2154 + self.match(Java9Parser.NEW) + self.state = 2156 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2155 + self.typeArguments() + + + self.state = 2161 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2158 + self.annotation() + self.state = 2163 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2164 + self.identifier() + self.state = 2175 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.DOT: + self.state = 2165 + self.match(Java9Parser.DOT) + self.state = 2169 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2166 + self.annotation() + self.state = 2171 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2172 + self.identifier() + self.state = 2177 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2179 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2178 + self.typeArgumentsOrDiamond() + + + self.state = 2181 + self.match(Java9Parser.LPAREN) + self.state = 2183 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2182 + self.argumentList() + + + self.state = 2185 + self.match(Java9Parser.RPAREN) + self.state = 2187 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LBRACE: + self.state = 2186 + self.classBody() + + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2189 + self.expressionName() + self.state = 2190 + self.match(Java9Parser.DOT) + self.state = 2191 + self.match(Java9Parser.NEW) + self.state = 2193 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2192 + self.typeArguments() + + + self.state = 2198 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2195 + self.annotation() + self.state = 2200 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2201 + self.identifier() + self.state = 2203 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2202 + self.typeArgumentsOrDiamond() + + + self.state = 2205 + self.match(Java9Parser.LPAREN) + self.state = 2207 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2206 + self.argumentList() + + + self.state = 2209 + self.match(Java9Parser.RPAREN) + self.state = 2211 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LBRACE: + self.state = 2210 + self.classBody() + + + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2213 + self.primary() + self.state = 2214 + self.match(Java9Parser.DOT) + self.state = 2215 + self.match(Java9Parser.NEW) + self.state = 2217 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2216 + self.typeArguments() + + + self.state = 2222 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2219 + self.annotation() + self.state = 2224 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2225 + self.identifier() + self.state = 2227 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2226 + self.typeArgumentsOrDiamond() + + + self.state = 2229 + self.match(Java9Parser.LPAREN) + self.state = 2231 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2230 + self.argumentList() + + + self.state = 2233 + self.match(Java9Parser.RPAREN) + self.state = 2235 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LBRACE: + self.state = 2234 + self.classBody() + + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassInstanceCreationExpression_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def NEW(self): + return self.getToken(Java9Parser.NEW, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def typeArgumentsOrDiamond(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsOrDiamondContext,0) + + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def classBody(self): + return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_classInstanceCreationExpression_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassInstanceCreationExpression_lf_primary" ): + listener.enterClassInstanceCreationExpression_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassInstanceCreationExpression_lf_primary" ): + listener.exitClassInstanceCreationExpression_lf_primary(self) + + + + + def classInstanceCreationExpression_lf_primary(self): + + localctx = Java9Parser.ClassInstanceCreationExpression_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 388, self.RULE_classInstanceCreationExpression_lf_primary) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2239 + self.match(Java9Parser.DOT) + self.state = 2240 + self.match(Java9Parser.NEW) + self.state = 2242 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2241 + self.typeArguments() + + + self.state = 2247 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2244 + self.annotation() + self.state = 2249 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2250 + self.identifier() + self.state = 2252 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2251 + self.typeArgumentsOrDiamond() + + + self.state = 2254 + self.match(Java9Parser.LPAREN) + self.state = 2256 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2255 + self.argumentList() + + + self.state = 2258 + self.match(Java9Parser.RPAREN) + self.state = 2260 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,242,self._ctx) + if la_ == 1: + self.state = 2259 + self.classBody() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassInstanceCreationExpression_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NEW(self): + return self.getToken(Java9Parser.NEW, 0) + + def identifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.IdentifierContext) + else: + return self.getTypedRuleContext(Java9Parser.IdentifierContext,i) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.DOT) + else: + return self.getToken(Java9Parser.DOT, i) + + def typeArgumentsOrDiamond(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsOrDiamondContext,0) + + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def classBody(self): + return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) + + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_classInstanceCreationExpression_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassInstanceCreationExpression_lfno_primary" ): + listener.enterClassInstanceCreationExpression_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassInstanceCreationExpression_lfno_primary" ): + listener.exitClassInstanceCreationExpression_lfno_primary(self) + + + + + def classInstanceCreationExpression_lfno_primary(self): + + localctx = Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 390, self.RULE_classInstanceCreationExpression_lfno_primary) + self._la = 0 # Token type + try: + self.state = 2321 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.NEW]: + self.enterOuterAlt(localctx, 1) + self.state = 2262 + self.match(Java9Parser.NEW) + self.state = 2264 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2263 + self.typeArguments() + + + self.state = 2269 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2266 + self.annotation() + self.state = 2271 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2272 + self.identifier() + self.state = 2283 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.DOT: + self.state = 2273 + self.match(Java9Parser.DOT) + self.state = 2277 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2274 + self.annotation() + self.state = 2279 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2280 + self.identifier() + self.state = 2285 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2287 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2286 + self.typeArgumentsOrDiamond() + + + self.state = 2289 + self.match(Java9Parser.LPAREN) + self.state = 2291 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2290 + self.argumentList() + + + self.state = 2293 + self.match(Java9Parser.RPAREN) + self.state = 2295 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,249,self._ctx) + if la_ == 1: + self.state = 2294 + self.classBody() + + + pass + elif token in [Java9Parser.EXPORTS, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 2) + self.state = 2297 + self.expressionName() + self.state = 2298 + self.match(Java9Parser.DOT) + self.state = 2299 + self.match(Java9Parser.NEW) + self.state = 2301 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2300 + self.typeArguments() + + + self.state = 2306 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2303 + self.annotation() + self.state = 2308 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2309 + self.identifier() + self.state = 2311 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2310 + self.typeArgumentsOrDiamond() + + + self.state = 2313 + self.match(Java9Parser.LPAREN) + self.state = 2315 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2314 + self.argumentList() + + + self.state = 2317 + self.match(Java9Parser.RPAREN) + self.state = 2319 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,254,self._ctx) + if la_ == 1: + self.state = 2318 + self.classBody() + + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeArgumentsOrDiamondContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def LT(self): + return self.getToken(Java9Parser.LT, 0) + + def GT(self): + return self.getToken(Java9Parser.GT, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_typeArgumentsOrDiamond + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArgumentsOrDiamond" ): + listener.enterTypeArgumentsOrDiamond(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArgumentsOrDiamond" ): + listener.exitTypeArgumentsOrDiamond(self) + + + + + def typeArgumentsOrDiamond(self): + + localctx = Java9Parser.TypeArgumentsOrDiamondContext(self, self._ctx, self.state) + self.enterRule(localctx, 392, self.RULE_typeArgumentsOrDiamond) + try: + self.state = 2326 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,256,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2323 + self.typeArguments() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2324 + self.match(Java9Parser.LT) + self.state = 2325 + self.match(Java9Parser.GT) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FieldAccessContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) + + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.DOT) + else: + return self.getToken(Java9Parser.DOT, i) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_fieldAccess + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFieldAccess" ): + listener.enterFieldAccess(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFieldAccess" ): + listener.exitFieldAccess(self) + + + + + def fieldAccess(self): + + localctx = Java9Parser.FieldAccessContext(self, self._ctx, self.state) + self.enterRule(localctx, 394, self.RULE_fieldAccess) + try: + self.state = 2341 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,257,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2328 + self.primary() + self.state = 2329 + self.match(Java9Parser.DOT) + self.state = 2330 + self.identifier() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2332 + self.match(Java9Parser.SUPER) + self.state = 2333 + self.match(Java9Parser.DOT) + self.state = 2334 + self.identifier() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2335 + self.typeName() + self.state = 2336 + self.match(Java9Parser.DOT) + self.state = 2337 + self.match(Java9Parser.SUPER) + self.state = 2338 + self.match(Java9Parser.DOT) + self.state = 2339 + self.identifier() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FieldAccess_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_fieldAccess_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFieldAccess_lf_primary" ): + listener.enterFieldAccess_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFieldAccess_lf_primary" ): + listener.exitFieldAccess_lf_primary(self) + + + + + def fieldAccess_lf_primary(self): + + localctx = Java9Parser.FieldAccess_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 396, self.RULE_fieldAccess_lf_primary) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2343 + self.match(Java9Parser.DOT) + self.state = 2344 + self.identifier() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FieldAccess_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.DOT) + else: + return self.getToken(Java9Parser.DOT, i) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_fieldAccess_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFieldAccess_lfno_primary" ): + listener.enterFieldAccess_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFieldAccess_lfno_primary" ): + listener.exitFieldAccess_lfno_primary(self) + + + + + def fieldAccess_lfno_primary(self): + + localctx = Java9Parser.FieldAccess_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 398, self.RULE_fieldAccess_lfno_primary) + try: + self.state = 2355 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.SUPER]: + self.enterOuterAlt(localctx, 1) + self.state = 2346 + self.match(Java9Parser.SUPER) + self.state = 2347 + self.match(Java9Parser.DOT) + self.state = 2348 + self.identifier() + pass + elif token in [Java9Parser.EXPORTS, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 2) + self.state = 2349 + self.typeName() + self.state = 2350 + self.match(Java9Parser.DOT) + self.state = 2351 + self.match(Java9Parser.SUPER) + self.state = 2352 + self.match(Java9Parser.DOT) + self.state = 2353 + self.identifier() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayAccessContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) + + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def primaryNoNewArray_lfno_arrayAccess(self): + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext,0) + + + def primaryNoNewArray_lf_arrayAccess(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext) + else: + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_arrayAccess + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayAccess" ): + listener.enterArrayAccess(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayAccess" ): + listener.exitArrayAccess(self) + + + + + def arrayAccess(self): + + localctx = Java9Parser.ArrayAccessContext(self, self._ctx, self.state) + self.enterRule(localctx, 400, self.RULE_arrayAccess) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2367 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,259,self._ctx) + if la_ == 1: + self.state = 2357 + self.expressionName() + self.state = 2358 + self.match(Java9Parser.LBRACK) + self.state = 2359 + self.expression() + self.state = 2360 + self.match(Java9Parser.RBRACK) + pass + + elif la_ == 2: + self.state = 2362 + self.primaryNoNewArray_lfno_arrayAccess() + self.state = 2363 + self.match(Java9Parser.LBRACK) + self.state = 2364 + self.expression() + self.state = 2365 + self.match(Java9Parser.RBRACK) + pass + + + self.state = 2376 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.LBRACK: + self.state = 2369 + self.primaryNoNewArray_lf_arrayAccess() + self.state = 2370 + self.match(Java9Parser.LBRACK) + self.state = 2371 + self.expression() + self.state = 2372 + self.match(Java9Parser.RBRACK) + self.state = 2378 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayAccess_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext,0) + + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) + + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext) + else: + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_arrayAccess_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayAccess_lf_primary" ): + listener.enterArrayAccess_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayAccess_lf_primary" ): + listener.exitArrayAccess_lf_primary(self) + + + + + def arrayAccess_lf_primary(self): + + localctx = Java9Parser.ArrayAccess_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 402, self.RULE_arrayAccess_lf_primary) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2379 + self.primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() + self.state = 2380 + self.match(Java9Parser.LBRACK) + self.state = 2381 + self.expression() + self.state = 2382 + self.match(Java9Parser.RBRACK) + self.state = 2391 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,261,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 2384 + self.primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() + self.state = 2385 + self.match(Java9Parser.LBRACK) + self.state = 2386 + self.expression() + self.state = 2387 + self.match(Java9Parser.RBRACK) + self.state = 2393 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,261,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayAccess_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LBRACK) + else: + return self.getToken(Java9Parser.LBRACK, i) + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) + + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.RBRACK) + else: + return self.getToken(Java9Parser.RBRACK, i) + + def primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext,0) + + + def primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext) + else: + return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_arrayAccess_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayAccess_lfno_primary" ): + listener.enterArrayAccess_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayAccess_lfno_primary" ): + listener.exitArrayAccess_lfno_primary(self) + + + + + def arrayAccess_lfno_primary(self): + + localctx = Java9Parser.ArrayAccess_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 404, self.RULE_arrayAccess_lfno_primary) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2404 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,262,self._ctx) + if la_ == 1: + self.state = 2394 + self.expressionName() + self.state = 2395 + self.match(Java9Parser.LBRACK) + self.state = 2396 + self.expression() + self.state = 2397 + self.match(Java9Parser.RBRACK) + pass + + elif la_ == 2: + self.state = 2399 + self.primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() + self.state = 2400 + self.match(Java9Parser.LBRACK) + self.state = 2401 + self.expression() + self.state = 2402 + self.match(Java9Parser.RBRACK) + pass + + + self.state = 2413 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,263,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 2406 + self.primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() + self.state = 2407 + self.match(Java9Parser.LBRACK) + self.state = 2408 + self.expression() + self.state = 2409 + self.match(Java9Parser.RBRACK) + self.state = 2415 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,263,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodInvocationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def methodName(self): + return self.getTypedRuleContext(Java9Parser.MethodNameContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.DOT) + else: + return self.getToken(Java9Parser.DOT, i) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) + + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_methodInvocation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodInvocation" ): + listener.enterMethodInvocation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodInvocation" ): + listener.exitMethodInvocation(self) + + + + + def methodInvocation(self): + + localctx = Java9Parser.MethodInvocationContext(self, self._ctx, self.state) + self.enterRule(localctx, 406, self.RULE_methodInvocation) + self._la = 0 # Token type + try: + self.state = 2485 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,275,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2416 + self.methodName() + self.state = 2417 + self.match(Java9Parser.LPAREN) + self.state = 2419 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2418 + self.argumentList() + + + self.state = 2421 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2423 + self.typeName() + self.state = 2424 + self.match(Java9Parser.DOT) + self.state = 2426 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2425 + self.typeArguments() + + + self.state = 2428 + self.identifier() + self.state = 2429 + self.match(Java9Parser.LPAREN) + self.state = 2431 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2430 + self.argumentList() + + + self.state = 2433 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2435 + self.expressionName() + self.state = 2436 + self.match(Java9Parser.DOT) + self.state = 2438 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2437 + self.typeArguments() + + + self.state = 2440 + self.identifier() + self.state = 2441 + self.match(Java9Parser.LPAREN) + self.state = 2443 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2442 + self.argumentList() + + + self.state = 2445 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2447 + self.primary() + self.state = 2448 + self.match(Java9Parser.DOT) + self.state = 2450 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2449 + self.typeArguments() + + + self.state = 2452 + self.identifier() + self.state = 2453 + self.match(Java9Parser.LPAREN) + self.state = 2455 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2454 + self.argumentList() + + + self.state = 2457 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2459 + self.match(Java9Parser.SUPER) + self.state = 2460 + self.match(Java9Parser.DOT) + self.state = 2462 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2461 + self.typeArguments() + + + self.state = 2464 + self.identifier() + self.state = 2465 + self.match(Java9Parser.LPAREN) + self.state = 2467 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2466 + self.argumentList() + + + self.state = 2469 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 2471 + self.typeName() + self.state = 2472 + self.match(Java9Parser.DOT) + self.state = 2473 + self.match(Java9Parser.SUPER) + self.state = 2474 + self.match(Java9Parser.DOT) + self.state = 2476 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2475 + self.typeArguments() + + + self.state = 2478 + self.identifier() + self.state = 2479 + self.match(Java9Parser.LPAREN) + self.state = 2481 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2480 + self.argumentList() + + + self.state = 2483 + self.match(Java9Parser.RPAREN) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodInvocation_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodInvocation_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodInvocation_lf_primary" ): + listener.enterMethodInvocation_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodInvocation_lf_primary" ): + listener.exitMethodInvocation_lf_primary(self) + + + + + def methodInvocation_lf_primary(self): + + localctx = Java9Parser.MethodInvocation_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 408, self.RULE_methodInvocation_lf_primary) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2487 + self.match(Java9Parser.DOT) + self.state = 2489 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2488 + self.typeArguments() + + + self.state = 2491 + self.identifier() + self.state = 2492 + self.match(Java9Parser.LPAREN) + self.state = 2494 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2493 + self.argumentList() + + + self.state = 2496 + self.match(Java9Parser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodInvocation_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def methodName(self): + return self.getTypedRuleContext(Java9Parser.MethodNameContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def argumentList(self): + return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) + + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.DOT) + else: + return self.getToken(Java9Parser.DOT, i) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_methodInvocation_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodInvocation_lfno_primary" ): + listener.enterMethodInvocation_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodInvocation_lfno_primary" ): + listener.exitMethodInvocation_lfno_primary(self) + + + + + def methodInvocation_lfno_primary(self): + + localctx = Java9Parser.MethodInvocation_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 410, self.RULE_methodInvocation_lfno_primary) + self._la = 0 # Token type + try: + self.state = 2555 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,287,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2498 + self.methodName() + self.state = 2499 + self.match(Java9Parser.LPAREN) + self.state = 2501 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2500 + self.argumentList() + + + self.state = 2503 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2505 + self.typeName() + self.state = 2506 + self.match(Java9Parser.DOT) + self.state = 2508 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2507 + self.typeArguments() + + + self.state = 2510 + self.identifier() + self.state = 2511 + self.match(Java9Parser.LPAREN) + self.state = 2513 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2512 + self.argumentList() + + + self.state = 2515 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2517 + self.expressionName() + self.state = 2518 + self.match(Java9Parser.DOT) + self.state = 2520 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2519 + self.typeArguments() + + + self.state = 2522 + self.identifier() + self.state = 2523 + self.match(Java9Parser.LPAREN) + self.state = 2525 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2524 + self.argumentList() + + + self.state = 2527 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2529 + self.match(Java9Parser.SUPER) + self.state = 2530 + self.match(Java9Parser.DOT) + self.state = 2532 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2531 + self.typeArguments() + + + self.state = 2534 + self.identifier() + self.state = 2535 + self.match(Java9Parser.LPAREN) + self.state = 2537 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2536 + self.argumentList() + + + self.state = 2539 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2541 + self.typeName() + self.state = 2542 + self.match(Java9Parser.DOT) + self.state = 2543 + self.match(Java9Parser.SUPER) + self.state = 2544 + self.match(Java9Parser.DOT) + self.state = 2546 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2545 + self.typeArguments() + + + self.state = 2548 + self.identifier() + self.state = 2549 + self.match(Java9Parser.LPAREN) + self.state = 2551 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): + self.state = 2550 + self.argumentList() + + + self.state = 2553 + self.match(Java9Parser.RPAREN) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArgumentListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.ExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_argumentList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArgumentList" ): + listener.enterArgumentList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArgumentList" ): + listener.exitArgumentList(self) + + + + + def argumentList(self): + + localctx = Java9Parser.ArgumentListContext(self, self._ctx, self.state) + self.enterRule(localctx, 412, self.RULE_argumentList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2557 + self.expression() + self.state = 2562 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 2558 + self.match(Java9Parser.COMMA) + self.state = 2559 + self.expression() + self.state = 2564 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodReferenceContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def COLONCOLON(self): + return self.getToken(Java9Parser.COLONCOLON, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def referenceType(self): + return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) + + + def primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) + + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def classType(self): + return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) + + + def NEW(self): + return self.getToken(Java9Parser.NEW, 0) + + def arrayType(self): + return self.getTypedRuleContext(Java9Parser.ArrayTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodReference + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodReference" ): + listener.enterMethodReference(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodReference" ): + listener.exitMethodReference(self) + + + + + def methodReference(self): + + localctx = Java9Parser.MethodReferenceContext(self, self._ctx, self.state) + self.enterRule(localctx, 414, self.RULE_methodReference) + self._la = 0 # Token type + try: + self.state = 2612 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,295,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2565 + self.expressionName() + self.state = 2566 + self.match(Java9Parser.COLONCOLON) + self.state = 2568 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2567 + self.typeArguments() + + + self.state = 2570 + self.identifier() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2572 + self.referenceType() + self.state = 2573 + self.match(Java9Parser.COLONCOLON) + self.state = 2575 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2574 + self.typeArguments() + + + self.state = 2577 + self.identifier() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2579 + self.primary() + self.state = 2580 + self.match(Java9Parser.COLONCOLON) + self.state = 2582 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2581 + self.typeArguments() + + + self.state = 2584 + self.identifier() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2586 + self.match(Java9Parser.SUPER) + self.state = 2587 + self.match(Java9Parser.COLONCOLON) + self.state = 2589 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2588 + self.typeArguments() + + + self.state = 2591 + self.identifier() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2592 + self.typeName() + self.state = 2593 + self.match(Java9Parser.DOT) + self.state = 2594 + self.match(Java9Parser.SUPER) + self.state = 2595 + self.match(Java9Parser.COLONCOLON) + self.state = 2597 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2596 + self.typeArguments() + + + self.state = 2599 + self.identifier() + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 2601 + self.classType() + self.state = 2602 + self.match(Java9Parser.COLONCOLON) + self.state = 2604 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2603 + self.typeArguments() + + + self.state = 2606 + self.match(Java9Parser.NEW) + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 2608 + self.arrayType() + self.state = 2609 + self.match(Java9Parser.COLONCOLON) + self.state = 2610 + self.match(Java9Parser.NEW) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodReference_lf_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def COLONCOLON(self): + return self.getToken(Java9Parser.COLONCOLON, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodReference_lf_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodReference_lf_primary" ): + listener.enterMethodReference_lf_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodReference_lf_primary" ): + listener.exitMethodReference_lf_primary(self) + + + + + def methodReference_lf_primary(self): + + localctx = Java9Parser.MethodReference_lf_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 416, self.RULE_methodReference_lf_primary) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2614 + self.match(Java9Parser.COLONCOLON) + self.state = 2616 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2615 + self.typeArguments() + + + self.state = 2618 + self.identifier() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodReference_lfno_primaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def COLONCOLON(self): + return self.getToken(Java9Parser.COLONCOLON, 0) + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def typeArguments(self): + return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) + + + def referenceType(self): + return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) + + + def SUPER(self): + return self.getToken(Java9Parser.SUPER, 0) + + def typeName(self): + return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) + + + def DOT(self): + return self.getToken(Java9Parser.DOT, 0) + + def classType(self): + return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) + + + def NEW(self): + return self.getToken(Java9Parser.NEW, 0) + + def arrayType(self): + return self.getTypedRuleContext(Java9Parser.ArrayTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_methodReference_lfno_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodReference_lfno_primary" ): + listener.enterMethodReference_lfno_primary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodReference_lfno_primary" ): + listener.exitMethodReference_lfno_primary(self) + + + + + def methodReference_lfno_primary(self): + + localctx = Java9Parser.MethodReference_lfno_primaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 418, self.RULE_methodReference_lfno_primary) + self._la = 0 # Token type + try: + self.state = 2660 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,302,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2620 + self.expressionName() + self.state = 2621 + self.match(Java9Parser.COLONCOLON) + self.state = 2623 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2622 + self.typeArguments() + + + self.state = 2625 + self.identifier() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2627 + self.referenceType() + self.state = 2628 + self.match(Java9Parser.COLONCOLON) + self.state = 2630 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2629 + self.typeArguments() + + + self.state = 2632 + self.identifier() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2634 + self.match(Java9Parser.SUPER) + self.state = 2635 + self.match(Java9Parser.COLONCOLON) + self.state = 2637 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2636 + self.typeArguments() + + + self.state = 2639 + self.identifier() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2640 + self.typeName() + self.state = 2641 + self.match(Java9Parser.DOT) + self.state = 2642 + self.match(Java9Parser.SUPER) + self.state = 2643 + self.match(Java9Parser.COLONCOLON) + self.state = 2645 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2644 + self.typeArguments() + + + self.state = 2647 + self.identifier() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 2649 + self.classType() + self.state = 2650 + self.match(Java9Parser.COLONCOLON) + self.state = 2652 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==Java9Parser.LT: + self.state = 2651 + self.typeArguments() + + + self.state = 2654 + self.match(Java9Parser.NEW) + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 2656 + self.arrayType() + self.state = 2657 + self.match(Java9Parser.COLONCOLON) + self.state = 2658 + self.match(Java9Parser.NEW) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayCreationExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NEW(self): + return self.getToken(Java9Parser.NEW, 0) + + def primitiveType(self): + return self.getTypedRuleContext(Java9Parser.PrimitiveTypeContext,0) + + + def dimExprs(self): + return self.getTypedRuleContext(Java9Parser.DimExprsContext,0) + + + def dims(self): + return self.getTypedRuleContext(Java9Parser.DimsContext,0) + + + def classOrInterfaceType(self): + return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) + + + def arrayInitializer(self): + return self.getTypedRuleContext(Java9Parser.ArrayInitializerContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_arrayCreationExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayCreationExpression" ): + listener.enterArrayCreationExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayCreationExpression" ): + listener.exitArrayCreationExpression(self) + + + + + def arrayCreationExpression(self): + + localctx = Java9Parser.ArrayCreationExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 420, self.RULE_arrayCreationExpression) + try: + self.state = 2684 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,305,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2662 + self.match(Java9Parser.NEW) + self.state = 2663 + self.primitiveType() + self.state = 2664 + self.dimExprs() + self.state = 2666 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,303,self._ctx) + if la_ == 1: + self.state = 2665 + self.dims() + + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2668 + self.match(Java9Parser.NEW) + self.state = 2669 + self.classOrInterfaceType() + self.state = 2670 + self.dimExprs() + self.state = 2672 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,304,self._ctx) + if la_ == 1: + self.state = 2671 + self.dims() + + + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2674 + self.match(Java9Parser.NEW) + self.state = 2675 + self.primitiveType() + self.state = 2676 + self.dims() + self.state = 2677 + self.arrayInitializer() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2679 + self.match(Java9Parser.NEW) + self.state = 2680 + self.classOrInterfaceType() + self.state = 2681 + self.dims() + self.state = 2682 + self.arrayInitializer() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DimExprsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def dimExpr(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.DimExprContext) + else: + return self.getTypedRuleContext(Java9Parser.DimExprContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_dimExprs + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDimExprs" ): + listener.enterDimExprs(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDimExprs" ): + listener.exitDimExprs(self) + + + + + def dimExprs(self): + + localctx = Java9Parser.DimExprsContext(self, self._ctx, self.state) + self.enterRule(localctx, 422, self.RULE_dimExprs) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2687 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 2686 + self.dimExpr() + + else: + raise NoViableAltException(self) + self.state = 2689 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,306,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DimExprContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACK(self): + return self.getToken(Java9Parser.LBRACK, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def RBRACK(self): + return self.getToken(Java9Parser.RBRACK, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AnnotationContext) + else: + return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_dimExpr + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDimExpr" ): + listener.enterDimExpr(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDimExpr" ): + listener.exitDimExpr(self) + + + + + def dimExpr(self): + + localctx = Java9Parser.DimExprContext(self, self._ctx, self.state) + self.enterRule(localctx, 424, self.RULE_dimExpr) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2694 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.AT: + self.state = 2691 + self.annotation() + self.state = 2696 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2697 + self.match(Java9Parser.LBRACK) + self.state = 2698 + self.expression() + self.state = 2699 + self.match(Java9Parser.RBRACK) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstantExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_constantExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstantExpression" ): + listener.enterConstantExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstantExpression" ): + listener.exitConstantExpression(self) + + + + + def constantExpression(self): + + localctx = Java9Parser.ConstantExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 426, self.RULE_constantExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2701 + self.expression() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def lambdaExpression(self): + return self.getTypedRuleContext(Java9Parser.LambdaExpressionContext,0) + + + def assignmentExpression(self): + return self.getTypedRuleContext(Java9Parser.AssignmentExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_expression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExpression" ): + listener.enterExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExpression" ): + listener.exitExpression(self) + + + + + def expression(self): + + localctx = Java9Parser.ExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 428, self.RULE_expression) + try: + self.state = 2705 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,308,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2703 + self.lambdaExpression() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2704 + self.assignmentExpression() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LambdaExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def lambdaParameters(self): + return self.getTypedRuleContext(Java9Parser.LambdaParametersContext,0) + + + def ARROW(self): + return self.getToken(Java9Parser.ARROW, 0) + + def lambdaBody(self): + return self.getTypedRuleContext(Java9Parser.LambdaBodyContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_lambdaExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaExpression" ): + listener.enterLambdaExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaExpression" ): + listener.exitLambdaExpression(self) + + + + + def lambdaExpression(self): + + localctx = Java9Parser.LambdaExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 430, self.RULE_lambdaExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2707 + self.lambdaParameters() + self.state = 2708 + self.match(Java9Parser.ARROW) + self.state = 2709 + self.lambdaBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LambdaParametersContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self): + return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) + + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def formalParameterList(self): + return self.getTypedRuleContext(Java9Parser.FormalParameterListContext,0) + + + def inferredFormalParameterList(self): + return self.getTypedRuleContext(Java9Parser.InferredFormalParameterListContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_lambdaParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaParameters" ): + listener.enterLambdaParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaParameters" ): + listener.exitLambdaParameters(self) + + + + + def lambdaParameters(self): + + localctx = Java9Parser.LambdaParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 432, self.RULE_lambdaParameters) + self._la = 0 # Token type + try: + self.state = 2721 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,310,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2711 + self.identifier() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2712 + self.match(Java9Parser.LPAREN) + self.state = 2714 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: + self.state = 2713 + self.formalParameterList() + + + self.state = 2716 + self.match(Java9Parser.RPAREN) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2717 + self.match(Java9Parser.LPAREN) + self.state = 2718 + self.inferredFormalParameterList() + self.state = 2719 + self.match(Java9Parser.RPAREN) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InferredFormalParameterListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def identifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.IdentifierContext) + else: + return self.getTypedRuleContext(Java9Parser.IdentifierContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.COMMA) + else: + return self.getToken(Java9Parser.COMMA, i) + + def getRuleIndex(self): + return Java9Parser.RULE_inferredFormalParameterList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInferredFormalParameterList" ): + listener.enterInferredFormalParameterList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInferredFormalParameterList" ): + listener.exitInferredFormalParameterList(self) + + + + + def inferredFormalParameterList(self): + + localctx = Java9Parser.InferredFormalParameterListContext(self, self._ctx, self.state) + self.enterRule(localctx, 434, self.RULE_inferredFormalParameterList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2723 + self.identifier() + self.state = 2728 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.COMMA: + self.state = 2724 + self.match(Java9Parser.COMMA) + self.state = 2725 + self.identifier() + self.state = 2730 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LambdaBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def block(self): + return self.getTypedRuleContext(Java9Parser.BlockContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_lambdaBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaBody" ): + listener.enterLambdaBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaBody" ): + listener.exitLambdaBody(self) + + + + + def lambdaBody(self): + + localctx = Java9Parser.LambdaBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 436, self.RULE_lambdaBody) + try: + self.state = 2733 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.BANG, Java9Parser.TILDE, Java9Parser.INC, Java9Parser.DEC, Java9Parser.ADD, Java9Parser.SUB, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 1) + self.state = 2731 + self.expression() + pass + elif token in [Java9Parser.LBRACE]: + self.enterOuterAlt(localctx, 2) + self.state = 2732 + self.block() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AssignmentExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def conditionalExpression(self): + return self.getTypedRuleContext(Java9Parser.ConditionalExpressionContext,0) + + + def assignment(self): + return self.getTypedRuleContext(Java9Parser.AssignmentContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_assignmentExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAssignmentExpression" ): + listener.enterAssignmentExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAssignmentExpression" ): + listener.exitAssignmentExpression(self) + + + + + def assignmentExpression(self): + + localctx = Java9Parser.AssignmentExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 438, self.RULE_assignmentExpression) + try: + self.state = 2737 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,313,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2735 + self.conditionalExpression() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2736 + self.assignment() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AssignmentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def leftHandSide(self): + return self.getTypedRuleContext(Java9Parser.LeftHandSideContext,0) + + + def assignmentOperator(self): + return self.getTypedRuleContext(Java9Parser.AssignmentOperatorContext,0) + + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_assignment + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAssignment" ): + listener.enterAssignment(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAssignment" ): + listener.exitAssignment(self) + + + + + def assignment(self): + + localctx = Java9Parser.AssignmentContext(self, self._ctx, self.state) + self.enterRule(localctx, 440, self.RULE_assignment) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2739 + self.leftHandSide() + self.state = 2740 + self.assignmentOperator() + self.state = 2741 + self.expression() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LeftHandSideContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def fieldAccess(self): + return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) + + + def arrayAccess(self): + return self.getTypedRuleContext(Java9Parser.ArrayAccessContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_leftHandSide + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLeftHandSide" ): + listener.enterLeftHandSide(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLeftHandSide" ): + listener.exitLeftHandSide(self) + + + + + def leftHandSide(self): + + localctx = Java9Parser.LeftHandSideContext(self, self._ctx, self.state) + self.enterRule(localctx, 442, self.RULE_leftHandSide) + try: + self.state = 2746 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,314,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2743 + self.expressionName() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2744 + self.fieldAccess() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2745 + self.arrayAccess() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AssignmentOperatorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def ASSIGN(self): + return self.getToken(Java9Parser.ASSIGN, 0) + + def MUL_ASSIGN(self): + return self.getToken(Java9Parser.MUL_ASSIGN, 0) + + def DIV_ASSIGN(self): + return self.getToken(Java9Parser.DIV_ASSIGN, 0) + + def MOD_ASSIGN(self): + return self.getToken(Java9Parser.MOD_ASSIGN, 0) + + def ADD_ASSIGN(self): + return self.getToken(Java9Parser.ADD_ASSIGN, 0) + + def SUB_ASSIGN(self): + return self.getToken(Java9Parser.SUB_ASSIGN, 0) + + def LSHIFT_ASSIGN(self): + return self.getToken(Java9Parser.LSHIFT_ASSIGN, 0) + + def RSHIFT_ASSIGN(self): + return self.getToken(Java9Parser.RSHIFT_ASSIGN, 0) + + def URSHIFT_ASSIGN(self): + return self.getToken(Java9Parser.URSHIFT_ASSIGN, 0) + + def AND_ASSIGN(self): + return self.getToken(Java9Parser.AND_ASSIGN, 0) + + def XOR_ASSIGN(self): + return self.getToken(Java9Parser.XOR_ASSIGN, 0) + + def OR_ASSIGN(self): + return self.getToken(Java9Parser.OR_ASSIGN, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_assignmentOperator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAssignmentOperator" ): + listener.enterAssignmentOperator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAssignmentOperator" ): + listener.exitAssignmentOperator(self) + + + + + def assignmentOperator(self): + + localctx = Java9Parser.AssignmentOperatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 444, self.RULE_assignmentOperator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2748 + _la = self._input.LA(1) + if not(((((_la - 80)) & ~0x3f) == 0 and ((1 << (_la - 80)) & ((1 << (Java9Parser.ASSIGN - 80)) | (1 << (Java9Parser.ADD_ASSIGN - 80)) | (1 << (Java9Parser.SUB_ASSIGN - 80)) | (1 << (Java9Parser.MUL_ASSIGN - 80)) | (1 << (Java9Parser.DIV_ASSIGN - 80)) | (1 << (Java9Parser.AND_ASSIGN - 80)) | (1 << (Java9Parser.OR_ASSIGN - 80)) | (1 << (Java9Parser.XOR_ASSIGN - 80)) | (1 << (Java9Parser.MOD_ASSIGN - 80)) | (1 << (Java9Parser.LSHIFT_ASSIGN - 80)) | (1 << (Java9Parser.RSHIFT_ASSIGN - 80)) | (1 << (Java9Parser.URSHIFT_ASSIGN - 80)))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConditionalExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def conditionalOrExpression(self): + return self.getTypedRuleContext(Java9Parser.ConditionalOrExpressionContext,0) + + + def QUESTION(self): + return self.getToken(Java9Parser.QUESTION, 0) + + def expression(self): + return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) + + + def COLON(self): + return self.getToken(Java9Parser.COLON, 0) + + def conditionalExpression(self): + return self.getTypedRuleContext(Java9Parser.ConditionalExpressionContext,0) + + + def lambdaExpression(self): + return self.getTypedRuleContext(Java9Parser.LambdaExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_conditionalExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConditionalExpression" ): + listener.enterConditionalExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConditionalExpression" ): + listener.exitConditionalExpression(self) + + + + + def conditionalExpression(self): + + localctx = Java9Parser.ConditionalExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 446, self.RULE_conditionalExpression) + try: + self.state = 2759 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,316,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2750 + self.conditionalOrExpression(0) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2751 + self.conditionalOrExpression(0) + self.state = 2752 + self.match(Java9Parser.QUESTION) + self.state = 2753 + self.expression() + self.state = 2754 + self.match(Java9Parser.COLON) + self.state = 2757 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,315,self._ctx) + if la_ == 1: + self.state = 2755 + self.conditionalExpression() + pass + + elif la_ == 2: + self.state = 2756 + self.lambdaExpression() + pass + + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConditionalOrExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def conditionalAndExpression(self): + return self.getTypedRuleContext(Java9Parser.ConditionalAndExpressionContext,0) + + + def conditionalOrExpression(self): + return self.getTypedRuleContext(Java9Parser.ConditionalOrExpressionContext,0) + + + def OR(self): + return self.getToken(Java9Parser.OR, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_conditionalOrExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConditionalOrExpression" ): + listener.enterConditionalOrExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConditionalOrExpression" ): + listener.exitConditionalOrExpression(self) + + + + def conditionalOrExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.ConditionalOrExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 448 + self.enterRecursionRule(localctx, 448, self.RULE_conditionalOrExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2762 + self.conditionalAndExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2769 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,317,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.ConditionalOrExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_conditionalOrExpression) + self.state = 2764 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2765 + self.match(Java9Parser.OR) + self.state = 2766 + self.conditionalAndExpression(0) + self.state = 2771 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,317,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class ConditionalAndExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def inclusiveOrExpression(self): + return self.getTypedRuleContext(Java9Parser.InclusiveOrExpressionContext,0) + + + def conditionalAndExpression(self): + return self.getTypedRuleContext(Java9Parser.ConditionalAndExpressionContext,0) + + + def AND(self): + return self.getToken(Java9Parser.AND, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_conditionalAndExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConditionalAndExpression" ): + listener.enterConditionalAndExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConditionalAndExpression" ): + listener.exitConditionalAndExpression(self) + + + + def conditionalAndExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.ConditionalAndExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 450 + self.enterRecursionRule(localctx, 450, self.RULE_conditionalAndExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2773 + self.inclusiveOrExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2780 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,318,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.ConditionalAndExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_conditionalAndExpression) + self.state = 2775 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2776 + self.match(Java9Parser.AND) + self.state = 2777 + self.inclusiveOrExpression(0) + self.state = 2782 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,318,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class InclusiveOrExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def exclusiveOrExpression(self): + return self.getTypedRuleContext(Java9Parser.ExclusiveOrExpressionContext,0) + + + def inclusiveOrExpression(self): + return self.getTypedRuleContext(Java9Parser.InclusiveOrExpressionContext,0) + + + def BITOR(self): + return self.getToken(Java9Parser.BITOR, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_inclusiveOrExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInclusiveOrExpression" ): + listener.enterInclusiveOrExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInclusiveOrExpression" ): + listener.exitInclusiveOrExpression(self) + + + + def inclusiveOrExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.InclusiveOrExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 452 + self.enterRecursionRule(localctx, 452, self.RULE_inclusiveOrExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2784 + self.exclusiveOrExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2791 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,319,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.InclusiveOrExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_inclusiveOrExpression) + self.state = 2786 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2787 + self.match(Java9Parser.BITOR) + self.state = 2788 + self.exclusiveOrExpression(0) + self.state = 2793 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,319,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class ExclusiveOrExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def andExpression(self): + return self.getTypedRuleContext(Java9Parser.AndExpressionContext,0) + + + def exclusiveOrExpression(self): + return self.getTypedRuleContext(Java9Parser.ExclusiveOrExpressionContext,0) + + + def CARET(self): + return self.getToken(Java9Parser.CARET, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_exclusiveOrExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExclusiveOrExpression" ): + listener.enterExclusiveOrExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExclusiveOrExpression" ): + listener.exitExclusiveOrExpression(self) + + + + def exclusiveOrExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.ExclusiveOrExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 454 + self.enterRecursionRule(localctx, 454, self.RULE_exclusiveOrExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2795 + self.andExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2802 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,320,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.ExclusiveOrExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_exclusiveOrExpression) + self.state = 2797 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2798 + self.match(Java9Parser.CARET) + self.state = 2799 + self.andExpression(0) + self.state = 2804 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,320,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class AndExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def equalityExpression(self): + return self.getTypedRuleContext(Java9Parser.EqualityExpressionContext,0) + + + def andExpression(self): + return self.getTypedRuleContext(Java9Parser.AndExpressionContext,0) + + + def BITAND(self): + return self.getToken(Java9Parser.BITAND, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_andExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAndExpression" ): + listener.enterAndExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAndExpression" ): + listener.exitAndExpression(self) + + + + def andExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.AndExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 456 + self.enterRecursionRule(localctx, 456, self.RULE_andExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2806 + self.equalityExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2813 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,321,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + localctx = Java9Parser.AndExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_andExpression) + self.state = 2808 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2809 + self.match(Java9Parser.BITAND) + self.state = 2810 + self.equalityExpression(0) + self.state = 2815 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,321,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class EqualityExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def relationalExpression(self): + return self.getTypedRuleContext(Java9Parser.RelationalExpressionContext,0) + + + def equalityExpression(self): + return self.getTypedRuleContext(Java9Parser.EqualityExpressionContext,0) + + + def EQUAL(self): + return self.getToken(Java9Parser.EQUAL, 0) + + def NOTEQUAL(self): + return self.getToken(Java9Parser.NOTEQUAL, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_equalityExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEqualityExpression" ): + listener.enterEqualityExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEqualityExpression" ): + listener.exitEqualityExpression(self) + + + + def equalityExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.EqualityExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 458 + self.enterRecursionRule(localctx, 458, self.RULE_equalityExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2817 + self.relationalExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2827 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,323,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + self.state = 2825 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,322,self._ctx) + if la_ == 1: + localctx = Java9Parser.EqualityExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_equalityExpression) + self.state = 2819 + if not self.precpred(self._ctx, 2): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") + self.state = 2820 + self.match(Java9Parser.EQUAL) + self.state = 2821 + self.relationalExpression(0) + pass + + elif la_ == 2: + localctx = Java9Parser.EqualityExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_equalityExpression) + self.state = 2822 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2823 + self.match(Java9Parser.NOTEQUAL) + self.state = 2824 + self.relationalExpression(0) + pass + + + self.state = 2829 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,323,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class RelationalExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def shiftExpression(self): + return self.getTypedRuleContext(Java9Parser.ShiftExpressionContext,0) + + + def relationalExpression(self): + return self.getTypedRuleContext(Java9Parser.RelationalExpressionContext,0) + + + def LT(self): + return self.getToken(Java9Parser.LT, 0) + + def GT(self): + return self.getToken(Java9Parser.GT, 0) + + def LE(self): + return self.getToken(Java9Parser.LE, 0) + + def GE(self): + return self.getToken(Java9Parser.GE, 0) + + def INSTANCEOF(self): + return self.getToken(Java9Parser.INSTANCEOF, 0) + + def referenceType(self): + return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_relationalExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterRelationalExpression" ): + listener.enterRelationalExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitRelationalExpression" ): + listener.exitRelationalExpression(self) + + + + def relationalExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.RelationalExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 460 + self.enterRecursionRule(localctx, 460, self.RULE_relationalExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2831 + self.shiftExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2850 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,325,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + self.state = 2848 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,324,self._ctx) + if la_ == 1: + localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) + self.state = 2833 + if not self.precpred(self._ctx, 5): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 5)") + self.state = 2834 + self.match(Java9Parser.LT) + self.state = 2835 + self.shiftExpression(0) + pass + + elif la_ == 2: + localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) + self.state = 2836 + if not self.precpred(self._ctx, 4): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 4)") + self.state = 2837 + self.match(Java9Parser.GT) + self.state = 2838 + self.shiftExpression(0) + pass + + elif la_ == 3: + localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) + self.state = 2839 + if not self.precpred(self._ctx, 3): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") + self.state = 2840 + self.match(Java9Parser.LE) + self.state = 2841 + self.shiftExpression(0) + pass + + elif la_ == 4: + localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) + self.state = 2842 + if not self.precpred(self._ctx, 2): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") + self.state = 2843 + self.match(Java9Parser.GE) + self.state = 2844 + self.shiftExpression(0) + pass + + elif la_ == 5: + localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) + self.state = 2845 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2846 + self.match(Java9Parser.INSTANCEOF) + self.state = 2847 + self.referenceType() + pass + + + self.state = 2852 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,325,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class ShiftExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def additiveExpression(self): + return self.getTypedRuleContext(Java9Parser.AdditiveExpressionContext,0) + + + def shiftExpression(self): + return self.getTypedRuleContext(Java9Parser.ShiftExpressionContext,0) + + + def LT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.LT) + else: + return self.getToken(Java9Parser.LT, i) + + def GT(self, i:int=None): + if i is None: + return self.getTokens(Java9Parser.GT) + else: + return self.getToken(Java9Parser.GT, i) + + def getRuleIndex(self): + return Java9Parser.RULE_shiftExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterShiftExpression" ): + listener.enterShiftExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitShiftExpression" ): + listener.exitShiftExpression(self) + + + + def shiftExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.ShiftExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 462 + self.enterRecursionRule(localctx, 462, self.RULE_shiftExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2854 + self.additiveExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2871 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,327,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + self.state = 2869 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,326,self._ctx) + if la_ == 1: + localctx = Java9Parser.ShiftExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_shiftExpression) + self.state = 2856 + if not self.precpred(self._ctx, 3): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") + self.state = 2857 + self.match(Java9Parser.LT) + self.state = 2858 + self.match(Java9Parser.LT) + self.state = 2859 + self.additiveExpression(0) + pass + + elif la_ == 2: + localctx = Java9Parser.ShiftExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_shiftExpression) + self.state = 2860 + if not self.precpred(self._ctx, 2): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") + self.state = 2861 + self.match(Java9Parser.GT) + self.state = 2862 + self.match(Java9Parser.GT) + self.state = 2863 + self.additiveExpression(0) + pass + + elif la_ == 3: + localctx = Java9Parser.ShiftExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_shiftExpression) + self.state = 2864 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2865 + self.match(Java9Parser.GT) + self.state = 2866 + self.match(Java9Parser.GT) + self.state = 2867 + self.match(Java9Parser.GT) + self.state = 2868 + self.additiveExpression(0) + pass + + + self.state = 2873 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,327,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class AdditiveExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def multiplicativeExpression(self): + return self.getTypedRuleContext(Java9Parser.MultiplicativeExpressionContext,0) + + + def additiveExpression(self): + return self.getTypedRuleContext(Java9Parser.AdditiveExpressionContext,0) + + + def ADD(self): + return self.getToken(Java9Parser.ADD, 0) + + def SUB(self): + return self.getToken(Java9Parser.SUB, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_additiveExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAdditiveExpression" ): + listener.enterAdditiveExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAdditiveExpression" ): + listener.exitAdditiveExpression(self) + + + + def additiveExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.AdditiveExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 464 + self.enterRecursionRule(localctx, 464, self.RULE_additiveExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2875 + self.multiplicativeExpression(0) + self._ctx.stop = self._input.LT(-1) + self.state = 2885 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,329,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + self.state = 2883 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,328,self._ctx) + if la_ == 1: + localctx = Java9Parser.AdditiveExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_additiveExpression) + self.state = 2877 + if not self.precpred(self._ctx, 2): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") + self.state = 2878 + self.match(Java9Parser.ADD) + self.state = 2879 + self.multiplicativeExpression(0) + pass + + elif la_ == 2: + localctx = Java9Parser.AdditiveExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_additiveExpression) + self.state = 2880 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2881 + self.match(Java9Parser.SUB) + self.state = 2882 + self.multiplicativeExpression(0) + pass + + + self.state = 2887 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,329,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class MultiplicativeExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def unaryExpression(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) + + + def multiplicativeExpression(self): + return self.getTypedRuleContext(Java9Parser.MultiplicativeExpressionContext,0) + + + def MUL(self): + return self.getToken(Java9Parser.MUL, 0) + + def DIV(self): + return self.getToken(Java9Parser.DIV, 0) + + def MOD(self): + return self.getToken(Java9Parser.MOD, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_multiplicativeExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMultiplicativeExpression" ): + listener.enterMultiplicativeExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMultiplicativeExpression" ): + listener.exitMultiplicativeExpression(self) + + + + def multiplicativeExpression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = Java9Parser.MultiplicativeExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 466 + self.enterRecursionRule(localctx, 466, self.RULE_multiplicativeExpression, _p) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2889 + self.unaryExpression() + self._ctx.stop = self._input.LT(-1) + self.state = 2902 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,331,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + self.state = 2900 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,330,self._ctx) + if la_ == 1: + localctx = Java9Parser.MultiplicativeExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_multiplicativeExpression) + self.state = 2891 + if not self.precpred(self._ctx, 3): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") + self.state = 2892 + self.match(Java9Parser.MUL) + self.state = 2893 + self.unaryExpression() + pass + + elif la_ == 2: + localctx = Java9Parser.MultiplicativeExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_multiplicativeExpression) + self.state = 2894 + if not self.precpred(self._ctx, 2): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") + self.state = 2895 + self.match(Java9Parser.DIV) + self.state = 2896 + self.unaryExpression() + pass + + elif la_ == 3: + localctx = Java9Parser.MultiplicativeExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_multiplicativeExpression) + self.state = 2897 + if not self.precpred(self._ctx, 1): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") + self.state = 2898 + self.match(Java9Parser.MOD) + self.state = 2899 + self.unaryExpression() + pass + + + self.state = 2904 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,331,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class UnaryExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def preIncrementExpression(self): + return self.getTypedRuleContext(Java9Parser.PreIncrementExpressionContext,0) + + + def preDecrementExpression(self): + return self.getTypedRuleContext(Java9Parser.PreDecrementExpressionContext,0) + + + def ADD(self): + return self.getToken(Java9Parser.ADD, 0) + + def unaryExpression(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) + + + def SUB(self): + return self.getToken(Java9Parser.SUB, 0) + + def unaryExpressionNotPlusMinus(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionNotPlusMinusContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unaryExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnaryExpression" ): + listener.enterUnaryExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnaryExpression" ): + listener.exitUnaryExpression(self) + + + + + def unaryExpression(self): + + localctx = Java9Parser.UnaryExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 468, self.RULE_unaryExpression) + try: + self.state = 2912 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.INC]: + self.enterOuterAlt(localctx, 1) + self.state = 2905 + self.preIncrementExpression() + pass + elif token in [Java9Parser.DEC]: + self.enterOuterAlt(localctx, 2) + self.state = 2906 + self.preDecrementExpression() + pass + elif token in [Java9Parser.ADD]: + self.enterOuterAlt(localctx, 3) + self.state = 2907 + self.match(Java9Parser.ADD) + self.state = 2908 + self.unaryExpression() + pass + elif token in [Java9Parser.SUB]: + self.enterOuterAlt(localctx, 4) + self.state = 2909 + self.match(Java9Parser.SUB) + self.state = 2910 + self.unaryExpression() + pass + elif token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.BANG, Java9Parser.TILDE, Java9Parser.Identifier]: + self.enterOuterAlt(localctx, 5) + self.state = 2911 + self.unaryExpressionNotPlusMinus() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PreIncrementExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def INC(self): + return self.getToken(Java9Parser.INC, 0) + + def unaryExpression(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_preIncrementExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPreIncrementExpression" ): + listener.enterPreIncrementExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPreIncrementExpression" ): + listener.exitPreIncrementExpression(self) + + + + + def preIncrementExpression(self): + + localctx = Java9Parser.PreIncrementExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 470, self.RULE_preIncrementExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2914 + self.match(Java9Parser.INC) + self.state = 2915 + self.unaryExpression() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PreDecrementExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DEC(self): + return self.getToken(Java9Parser.DEC, 0) + + def unaryExpression(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_preDecrementExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPreDecrementExpression" ): + listener.enterPreDecrementExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPreDecrementExpression" ): + listener.exitPreDecrementExpression(self) + + + + + def preDecrementExpression(self): + + localctx = Java9Parser.PreDecrementExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 472, self.RULE_preDecrementExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2917 + self.match(Java9Parser.DEC) + self.state = 2918 + self.unaryExpression() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class UnaryExpressionNotPlusMinusContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def postfixExpression(self): + return self.getTypedRuleContext(Java9Parser.PostfixExpressionContext,0) + + + def TILDE(self): + return self.getToken(Java9Parser.TILDE, 0) + + def unaryExpression(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) + + + def BANG(self): + return self.getToken(Java9Parser.BANG, 0) + + def castExpression(self): + return self.getTypedRuleContext(Java9Parser.CastExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_unaryExpressionNotPlusMinus + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterUnaryExpressionNotPlusMinus" ): + listener.enterUnaryExpressionNotPlusMinus(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitUnaryExpressionNotPlusMinus" ): + listener.exitUnaryExpressionNotPlusMinus(self) + + + + + def unaryExpressionNotPlusMinus(self): + + localctx = Java9Parser.UnaryExpressionNotPlusMinusContext(self, self._ctx, self.state) + self.enterRule(localctx, 474, self.RULE_unaryExpressionNotPlusMinus) + try: + self.state = 2926 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,333,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2920 + self.postfixExpression() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2921 + self.match(Java9Parser.TILDE) + self.state = 2922 + self.unaryExpression() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2923 + self.match(Java9Parser.BANG) + self.state = 2924 + self.unaryExpression() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 2925 + self.castExpression() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PostfixExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def primary(self): + return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) + + + def expressionName(self): + return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) + + + def postIncrementExpression_lf_postfixExpression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.PostIncrementExpression_lf_postfixExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.PostIncrementExpression_lf_postfixExpressionContext,i) + + + def postDecrementExpression_lf_postfixExpression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.PostDecrementExpression_lf_postfixExpressionContext) + else: + return self.getTypedRuleContext(Java9Parser.PostDecrementExpression_lf_postfixExpressionContext,i) + + + def getRuleIndex(self): + return Java9Parser.RULE_postfixExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPostfixExpression" ): + listener.enterPostfixExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPostfixExpression" ): + listener.exitPostfixExpression(self) + + + + + def postfixExpression(self): + + localctx = Java9Parser.PostfixExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 476, self.RULE_postfixExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2930 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,334,self._ctx) + if la_ == 1: + self.state = 2928 + self.primary() + pass + + elif la_ == 2: + self.state = 2929 + self.expressionName() + pass + + + self.state = 2936 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,336,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 2934 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [Java9Parser.INC]: + self.state = 2932 + self.postIncrementExpression_lf_postfixExpression() + pass + elif token in [Java9Parser.DEC]: + self.state = 2933 + self.postDecrementExpression_lf_postfixExpression() + pass + else: + raise NoViableAltException(self) + + self.state = 2938 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,336,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PostIncrementExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def postfixExpression(self): + return self.getTypedRuleContext(Java9Parser.PostfixExpressionContext,0) + + + def INC(self): + return self.getToken(Java9Parser.INC, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_postIncrementExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPostIncrementExpression" ): + listener.enterPostIncrementExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPostIncrementExpression" ): + listener.exitPostIncrementExpression(self) + + + + + def postIncrementExpression(self): + + localctx = Java9Parser.PostIncrementExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 478, self.RULE_postIncrementExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2939 + self.postfixExpression() + self.state = 2940 + self.match(Java9Parser.INC) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PostIncrementExpression_lf_postfixExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def INC(self): + return self.getToken(Java9Parser.INC, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_postIncrementExpression_lf_postfixExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPostIncrementExpression_lf_postfixExpression" ): + listener.enterPostIncrementExpression_lf_postfixExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPostIncrementExpression_lf_postfixExpression" ): + listener.exitPostIncrementExpression_lf_postfixExpression(self) + + + + + def postIncrementExpression_lf_postfixExpression(self): + + localctx = Java9Parser.PostIncrementExpression_lf_postfixExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 480, self.RULE_postIncrementExpression_lf_postfixExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2942 + self.match(Java9Parser.INC) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PostDecrementExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def postfixExpression(self): + return self.getTypedRuleContext(Java9Parser.PostfixExpressionContext,0) + + + def DEC(self): + return self.getToken(Java9Parser.DEC, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_postDecrementExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPostDecrementExpression" ): + listener.enterPostDecrementExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPostDecrementExpression" ): + listener.exitPostDecrementExpression(self) + + + + + def postDecrementExpression(self): + + localctx = Java9Parser.PostDecrementExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 482, self.RULE_postDecrementExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2944 + self.postfixExpression() + self.state = 2945 + self.match(Java9Parser.DEC) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PostDecrementExpression_lf_postfixExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DEC(self): + return self.getToken(Java9Parser.DEC, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_postDecrementExpression_lf_postfixExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPostDecrementExpression_lf_postfixExpression" ): + listener.enterPostDecrementExpression_lf_postfixExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPostDecrementExpression_lf_postfixExpression" ): + listener.exitPostDecrementExpression_lf_postfixExpression(self) + + + + + def postDecrementExpression_lf_postfixExpression(self): + + localctx = Java9Parser.PostDecrementExpression_lf_postfixExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 484, self.RULE_postDecrementExpression_lf_postfixExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 2947 + self.match(Java9Parser.DEC) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CastExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LPAREN(self): + return self.getToken(Java9Parser.LPAREN, 0) + + def primitiveType(self): + return self.getTypedRuleContext(Java9Parser.PrimitiveTypeContext,0) + + + def RPAREN(self): + return self.getToken(Java9Parser.RPAREN, 0) + + def unaryExpression(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) + + + def referenceType(self): + return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) + + + def unaryExpressionNotPlusMinus(self): + return self.getTypedRuleContext(Java9Parser.UnaryExpressionNotPlusMinusContext,0) + + + def additionalBound(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(Java9Parser.AdditionalBoundContext) + else: + return self.getTypedRuleContext(Java9Parser.AdditionalBoundContext,i) + + + def lambdaExpression(self): + return self.getTypedRuleContext(Java9Parser.LambdaExpressionContext,0) + + + def getRuleIndex(self): + return Java9Parser.RULE_castExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCastExpression" ): + listener.enterCastExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCastExpression" ): + listener.exitCastExpression(self) + + + + + def castExpression(self): + + localctx = Java9Parser.CastExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 486, self.RULE_castExpression) + self._la = 0 # Token type + try: + self.state = 2976 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,339,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 2949 + self.match(Java9Parser.LPAREN) + self.state = 2950 + self.primitiveType() + self.state = 2951 + self.match(Java9Parser.RPAREN) + self.state = 2952 + self.unaryExpression() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 2954 + self.match(Java9Parser.LPAREN) + self.state = 2955 + self.referenceType() + self.state = 2959 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.BITAND: + self.state = 2956 + self.additionalBound() + self.state = 2961 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2962 + self.match(Java9Parser.RPAREN) + self.state = 2963 + self.unaryExpressionNotPlusMinus() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 2965 + self.match(Java9Parser.LPAREN) + self.state = 2966 + self.referenceType() + self.state = 2970 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==Java9Parser.BITAND: + self.state = 2967 + self.additionalBound() + self.state = 2972 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 2973 + self.match(Java9Parser.RPAREN) + self.state = 2974 + self.lambdaExpression() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class IdentifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def Identifier(self): + return self.getToken(Java9Parser.Identifier, 0) + + def TO(self): + return self.getToken(Java9Parser.TO, 0) + + def MODULE(self): + return self.getToken(Java9Parser.MODULE, 0) + + def OPEN(self): + return self.getToken(Java9Parser.OPEN, 0) + + def WITH(self): + return self.getToken(Java9Parser.WITH, 0) + + def PROVIDES(self): + return self.getToken(Java9Parser.PROVIDES, 0) + + def USES(self): + return self.getToken(Java9Parser.USES, 0) + + def OPERNS(self): + return self.getToken(Java9Parser.OPERNS, 0) + + def REQUIRES(self): + return self.getToken(Java9Parser.REQUIRES, 0) + + def EXPORTS(self): + return self.getToken(Java9Parser.EXPORTS, 0) + + def getRuleIndex(self): + return Java9Parser.RULE_identifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterIdentifier" ): + listener.enterIdentifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitIdentifier" ): + listener.exitIdentifier(self) + + + + + def identifier(self): + + localctx = Java9Parser.IdentifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 488, self.RULE_identifier) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 2978 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + + def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): + if self._predicates == None: + self._predicates = dict() + self._predicates[25] = self.moduleName_sempred + self._predicates[26] = self.packageName_sempred + self._predicates[28] = self.packageOrTypeName_sempred + self._predicates[31] = self.ambiguousName_sempred + self._predicates[224] = self.conditionalOrExpression_sempred + self._predicates[225] = self.conditionalAndExpression_sempred + self._predicates[226] = self.inclusiveOrExpression_sempred + self._predicates[227] = self.exclusiveOrExpression_sempred + self._predicates[228] = self.andExpression_sempred + self._predicates[229] = self.equalityExpression_sempred + self._predicates[230] = self.relationalExpression_sempred + self._predicates[231] = self.shiftExpression_sempred + self._predicates[232] = self.additiveExpression_sempred + self._predicates[233] = self.multiplicativeExpression_sempred + pred = self._predicates.get(ruleIndex, None) + if pred is None: + raise Exception("No predicate with index:" + str(ruleIndex)) + else: + return pred(localctx, predIndex) + + def moduleName_sempred(self, localctx:ModuleNameContext, predIndex:int): + if predIndex == 0: + return self.precpred(self._ctx, 1) + + + def packageName_sempred(self, localctx:PackageNameContext, predIndex:int): + if predIndex == 1: + return self.precpred(self._ctx, 1) + + + def packageOrTypeName_sempred(self, localctx:PackageOrTypeNameContext, predIndex:int): + if predIndex == 2: + return self.precpred(self._ctx, 1) + + + def ambiguousName_sempred(self, localctx:AmbiguousNameContext, predIndex:int): + if predIndex == 3: + return self.precpred(self._ctx, 1) + + + def conditionalOrExpression_sempred(self, localctx:ConditionalOrExpressionContext, predIndex:int): + if predIndex == 4: + return self.precpred(self._ctx, 1) + + + def conditionalAndExpression_sempred(self, localctx:ConditionalAndExpressionContext, predIndex:int): + if predIndex == 5: + return self.precpred(self._ctx, 1) + + + def inclusiveOrExpression_sempred(self, localctx:InclusiveOrExpressionContext, predIndex:int): + if predIndex == 6: + return self.precpred(self._ctx, 1) + + + def exclusiveOrExpression_sempred(self, localctx:ExclusiveOrExpressionContext, predIndex:int): + if predIndex == 7: + return self.precpred(self._ctx, 1) + + + def andExpression_sempred(self, localctx:AndExpressionContext, predIndex:int): + if predIndex == 8: + return self.precpred(self._ctx, 1) + + + def equalityExpression_sempred(self, localctx:EqualityExpressionContext, predIndex:int): + if predIndex == 9: + return self.precpred(self._ctx, 2) + + + if predIndex == 10: + return self.precpred(self._ctx, 1) + + + def relationalExpression_sempred(self, localctx:RelationalExpressionContext, predIndex:int): + if predIndex == 11: + return self.precpred(self._ctx, 5) + + + if predIndex == 12: + return self.precpred(self._ctx, 4) + + + if predIndex == 13: + return self.precpred(self._ctx, 3) + + + if predIndex == 14: + return self.precpred(self._ctx, 2) + + + if predIndex == 15: + return self.precpred(self._ctx, 1) + + + def shiftExpression_sempred(self, localctx:ShiftExpressionContext, predIndex:int): + if predIndex == 16: + return self.precpred(self._ctx, 3) + + + if predIndex == 17: + return self.precpred(self._ctx, 2) + + + if predIndex == 18: + return self.precpred(self._ctx, 1) + + + def additiveExpression_sempred(self, localctx:AdditiveExpressionContext, predIndex:int): + if predIndex == 19: + return self.precpred(self._ctx, 2) + + + if predIndex == 20: + return self.precpred(self._ctx, 1) + + + def multiplicativeExpression_sempred(self, localctx:MultiplicativeExpressionContext, predIndex:int): + if predIndex == 21: + return self.precpred(self._ctx, 3) + + + if predIndex == 22: + return self.precpred(self._ctx, 2) + + + if predIndex == 23: + return self.precpred(self._ctx, 1) + + + + + diff --git a/java2python/lang/Java9Parser.tokens b/java2python/lang/Java9Parser.tokens new file mode 100644 index 0000000..9c8b31a --- /dev/null +++ b/java2python/lang/Java9Parser.tokens @@ -0,0 +1,227 @@ +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 +EXPORTS=17 +EXTENDS=18 +FINAL=19 +FINALLY=20 +FLOAT=21 +FOR=22 +IF=23 +GOTO=24 +IMPLEMENTS=25 +IMPORT=26 +INSTANCEOF=27 +INT=28 +INTERFACE=29 +LONG=30 +MODULE=31 +NATIVE=32 +NEW=33 +OPEN=34 +OPERNS=35 +PACKAGE=36 +PRIVATE=37 +PROTECTED=38 +PROVIDES=39 +PUBLIC=40 +REQUIRES=41 +RETURN=42 +SHORT=43 +STATIC=44 +STRICTFP=45 +SUPER=46 +SWITCH=47 +SYNCHRONIZED=48 +THIS=49 +THROW=50 +THROWS=51 +TO=52 +TRANSIENT=53 +TRANSITIVE=54 +TRY=55 +USES=56 +VOID=57 +VOLATILE=58 +WHILE=59 +WITH=60 +UNDER_SCORE=61 +IntegerLiteral=62 +FloatingPointLiteral=63 +BooleanLiteral=64 +CharacterLiteral=65 +StringLiteral=66 +NullLiteral=67 +LPAREN=68 +RPAREN=69 +LBRACE=70 +RBRACE=71 +LBRACK=72 +RBRACK=73 +SEMI=74 +COMMA=75 +DOT=76 +ELLIPSIS=77 +AT=78 +COLONCOLON=79 +ASSIGN=80 +GT=81 +LT=82 +BANG=83 +TILDE=84 +QUESTION=85 +COLON=86 +ARROW=87 +EQUAL=88 +LE=89 +GE=90 +NOTEQUAL=91 +AND=92 +OR=93 +INC=94 +DEC=95 +ADD=96 +SUB=97 +MUL=98 +DIV=99 +BITAND=100 +BITOR=101 +CARET=102 +MOD=103 +ADD_ASSIGN=104 +SUB_ASSIGN=105 +MUL_ASSIGN=106 +DIV_ASSIGN=107 +AND_ASSIGN=108 +OR_ASSIGN=109 +XOR_ASSIGN=110 +MOD_ASSIGN=111 +LSHIFT_ASSIGN=112 +RSHIFT_ASSIGN=113 +URSHIFT_ASSIGN=114 +Identifier=115 +WS=116 +COMMENT=117 +LINE_COMMENT=118 +'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 +'exports'=17 +'extends'=18 +'final'=19 +'finally'=20 +'float'=21 +'for'=22 +'if'=23 +'goto'=24 +'implements'=25 +'import'=26 +'instanceof'=27 +'int'=28 +'interface'=29 +'long'=30 +'module'=31 +'native'=32 +'new'=33 +'open'=34 +'opens'=35 +'package'=36 +'private'=37 +'protected'=38 +'provides'=39 +'public'=40 +'requires'=41 +'return'=42 +'short'=43 +'static'=44 +'strictfp'=45 +'super'=46 +'switch'=47 +'synchronized'=48 +'this'=49 +'throw'=50 +'throws'=51 +'to'=52 +'transient'=53 +'transitive'=54 +'try'=55 +'uses'=56 +'void'=57 +'volatile'=58 +'while'=59 +'with'=60 +'_'=61 +'null'=67 +'('=68 +')'=69 +'{'=70 +'}'=71 +'['=72 +']'=73 +';'=74 +','=75 +'.'=76 +'...'=77 +'@'=78 +'::'=79 +'='=80 +'>'=81 +'<'=82 +'!'=83 +'~'=84 +'?'=85 +':'=86 +'->'=87 +'=='=88 +'<='=89 +'>='=90 +'!='=91 +'&&'=92 +'||'=93 +'++'=94 +'--'=95 +'+'=96 +'-'=97 +'*'=98 +'/'=99 +'&'=100 +'|'=101 +'^'=102 +'%'=103 +'+='=104 +'-='=105 +'*='=106 +'/='=107 +'&='=108 +'|='=109 +'^='=110 +'%='=111 +'<<='=112 +'>>='=113 +'>>>='=114 diff --git a/java2python/lang/Java9ParserListener.py b/java2python/lang/Java9ParserListener.py new file mode 100644 index 0000000..ae0ea8b --- /dev/null +++ b/java2python/lang/Java9ParserListener.py @@ -0,0 +1,2215 @@ +# Generated from Java9Parser.g4 by ANTLR 4.7.2 +from antlr4 import * +if __name__ is not None and "." in __name__: + from .Java9Parser import Java9Parser +else: + from Java9Parser import Java9Parser + +# This class defines a complete listener for a parse tree produced by Java9Parser. +class Java9ParserListener(ParseTreeListener): + + # Enter a parse tree produced by Java9Parser#literal. + def enterLiteral(self, ctx:Java9Parser.LiteralContext): + pass + + # Exit a parse tree produced by Java9Parser#literal. + def exitLiteral(self, ctx:Java9Parser.LiteralContext): + pass + + + # Enter a parse tree produced by Java9Parser#primitiveType. + def enterPrimitiveType(self, ctx:Java9Parser.PrimitiveTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#primitiveType. + def exitPrimitiveType(self, ctx:Java9Parser.PrimitiveTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#numericType. + def enterNumericType(self, ctx:Java9Parser.NumericTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#numericType. + def exitNumericType(self, ctx:Java9Parser.NumericTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#integralType. + def enterIntegralType(self, ctx:Java9Parser.IntegralTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#integralType. + def exitIntegralType(self, ctx:Java9Parser.IntegralTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#floatingPointType. + def enterFloatingPointType(self, ctx:Java9Parser.FloatingPointTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#floatingPointType. + def exitFloatingPointType(self, ctx:Java9Parser.FloatingPointTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#referenceType. + def enterReferenceType(self, ctx:Java9Parser.ReferenceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#referenceType. + def exitReferenceType(self, ctx:Java9Parser.ReferenceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#classOrInterfaceType. + def enterClassOrInterfaceType(self, ctx:Java9Parser.ClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#classOrInterfaceType. + def exitClassOrInterfaceType(self, ctx:Java9Parser.ClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#classType. + def enterClassType(self, ctx:Java9Parser.ClassTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#classType. + def exitClassType(self, ctx:Java9Parser.ClassTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#classType_lf_classOrInterfaceType. + def enterClassType_lf_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lf_classOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#classType_lf_classOrInterfaceType. + def exitClassType_lf_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lf_classOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#classType_lfno_classOrInterfaceType. + def enterClassType_lfno_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lfno_classOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#classType_lfno_classOrInterfaceType. + def exitClassType_lfno_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lfno_classOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceType. + def enterInterfaceType(self, ctx:Java9Parser.InterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceType. + def exitInterfaceType(self, ctx:Java9Parser.InterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceType_lf_classOrInterfaceType. + def enterInterfaceType_lf_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceType_lf_classOrInterfaceType. + def exitInterfaceType_lf_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceType_lfno_classOrInterfaceType. + def enterInterfaceType_lfno_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceType_lfno_classOrInterfaceType. + def exitInterfaceType_lfno_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeVariable. + def enterTypeVariable(self, ctx:Java9Parser.TypeVariableContext): + pass + + # Exit a parse tree produced by Java9Parser#typeVariable. + def exitTypeVariable(self, ctx:Java9Parser.TypeVariableContext): + pass + + + # Enter a parse tree produced by Java9Parser#arrayType. + def enterArrayType(self, ctx:Java9Parser.ArrayTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#arrayType. + def exitArrayType(self, ctx:Java9Parser.ArrayTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#dims. + def enterDims(self, ctx:Java9Parser.DimsContext): + pass + + # Exit a parse tree produced by Java9Parser#dims. + def exitDims(self, ctx:Java9Parser.DimsContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeParameter. + def enterTypeParameter(self, ctx:Java9Parser.TypeParameterContext): + pass + + # Exit a parse tree produced by Java9Parser#typeParameter. + def exitTypeParameter(self, ctx:Java9Parser.TypeParameterContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeParameterModifier. + def enterTypeParameterModifier(self, ctx:Java9Parser.TypeParameterModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#typeParameterModifier. + def exitTypeParameterModifier(self, ctx:Java9Parser.TypeParameterModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeBound. + def enterTypeBound(self, ctx:Java9Parser.TypeBoundContext): + pass + + # Exit a parse tree produced by Java9Parser#typeBound. + def exitTypeBound(self, ctx:Java9Parser.TypeBoundContext): + pass + + + # Enter a parse tree produced by Java9Parser#additionalBound. + def enterAdditionalBound(self, ctx:Java9Parser.AdditionalBoundContext): + pass + + # Exit a parse tree produced by Java9Parser#additionalBound. + def exitAdditionalBound(self, ctx:Java9Parser.AdditionalBoundContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeArguments. + def enterTypeArguments(self, ctx:Java9Parser.TypeArgumentsContext): + pass + + # Exit a parse tree produced by Java9Parser#typeArguments. + def exitTypeArguments(self, ctx:Java9Parser.TypeArgumentsContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeArgumentList. + def enterTypeArgumentList(self, ctx:Java9Parser.TypeArgumentListContext): + pass + + # Exit a parse tree produced by Java9Parser#typeArgumentList. + def exitTypeArgumentList(self, ctx:Java9Parser.TypeArgumentListContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeArgument. + def enterTypeArgument(self, ctx:Java9Parser.TypeArgumentContext): + pass + + # Exit a parse tree produced by Java9Parser#typeArgument. + def exitTypeArgument(self, ctx:Java9Parser.TypeArgumentContext): + pass + + + # Enter a parse tree produced by Java9Parser#wildcard. + def enterWildcard(self, ctx:Java9Parser.WildcardContext): + pass + + # Exit a parse tree produced by Java9Parser#wildcard. + def exitWildcard(self, ctx:Java9Parser.WildcardContext): + pass + + + # Enter a parse tree produced by Java9Parser#wildcardBounds. + def enterWildcardBounds(self, ctx:Java9Parser.WildcardBoundsContext): + pass + + # Exit a parse tree produced by Java9Parser#wildcardBounds. + def exitWildcardBounds(self, ctx:Java9Parser.WildcardBoundsContext): + pass + + + # Enter a parse tree produced by Java9Parser#moduleName. + def enterModuleName(self, ctx:Java9Parser.ModuleNameContext): + pass + + # Exit a parse tree produced by Java9Parser#moduleName. + def exitModuleName(self, ctx:Java9Parser.ModuleNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#packageName. + def enterPackageName(self, ctx:Java9Parser.PackageNameContext): + pass + + # Exit a parse tree produced by Java9Parser#packageName. + def exitPackageName(self, ctx:Java9Parser.PackageNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeName. + def enterTypeName(self, ctx:Java9Parser.TypeNameContext): + pass + + # Exit a parse tree produced by Java9Parser#typeName. + def exitTypeName(self, ctx:Java9Parser.TypeNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#packageOrTypeName. + def enterPackageOrTypeName(self, ctx:Java9Parser.PackageOrTypeNameContext): + pass + + # Exit a parse tree produced by Java9Parser#packageOrTypeName. + def exitPackageOrTypeName(self, ctx:Java9Parser.PackageOrTypeNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#expressionName. + def enterExpressionName(self, ctx:Java9Parser.ExpressionNameContext): + pass + + # Exit a parse tree produced by Java9Parser#expressionName. + def exitExpressionName(self, ctx:Java9Parser.ExpressionNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodName. + def enterMethodName(self, ctx:Java9Parser.MethodNameContext): + pass + + # Exit a parse tree produced by Java9Parser#methodName. + def exitMethodName(self, ctx:Java9Parser.MethodNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#ambiguousName. + def enterAmbiguousName(self, ctx:Java9Parser.AmbiguousNameContext): + pass + + # Exit a parse tree produced by Java9Parser#ambiguousName. + def exitAmbiguousName(self, ctx:Java9Parser.AmbiguousNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#compilationUnit. + def enterCompilationUnit(self, ctx:Java9Parser.CompilationUnitContext): + pass + + # Exit a parse tree produced by Java9Parser#compilationUnit. + def exitCompilationUnit(self, ctx:Java9Parser.CompilationUnitContext): + pass + + + # Enter a parse tree produced by Java9Parser#ordinaryCompilation. + def enterOrdinaryCompilation(self, ctx:Java9Parser.OrdinaryCompilationContext): + pass + + # Exit a parse tree produced by Java9Parser#ordinaryCompilation. + def exitOrdinaryCompilation(self, ctx:Java9Parser.OrdinaryCompilationContext): + pass + + + # Enter a parse tree produced by Java9Parser#modularCompilation. + def enterModularCompilation(self, ctx:Java9Parser.ModularCompilationContext): + pass + + # Exit a parse tree produced by Java9Parser#modularCompilation. + def exitModularCompilation(self, ctx:Java9Parser.ModularCompilationContext): + pass + + + # Enter a parse tree produced by Java9Parser#packageDeclaration. + def enterPackageDeclaration(self, ctx:Java9Parser.PackageDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#packageDeclaration. + def exitPackageDeclaration(self, ctx:Java9Parser.PackageDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#packageModifier. + def enterPackageModifier(self, ctx:Java9Parser.PackageModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#packageModifier. + def exitPackageModifier(self, ctx:Java9Parser.PackageModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#importDeclaration. + def enterImportDeclaration(self, ctx:Java9Parser.ImportDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#importDeclaration. + def exitImportDeclaration(self, ctx:Java9Parser.ImportDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#singleTypeImportDeclaration. + def enterSingleTypeImportDeclaration(self, ctx:Java9Parser.SingleTypeImportDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#singleTypeImportDeclaration. + def exitSingleTypeImportDeclaration(self, ctx:Java9Parser.SingleTypeImportDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeImportOnDemandDeclaration. + def enterTypeImportOnDemandDeclaration(self, ctx:Java9Parser.TypeImportOnDemandDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#typeImportOnDemandDeclaration. + def exitTypeImportOnDemandDeclaration(self, ctx:Java9Parser.TypeImportOnDemandDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#singleStaticImportDeclaration. + def enterSingleStaticImportDeclaration(self, ctx:Java9Parser.SingleStaticImportDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#singleStaticImportDeclaration. + def exitSingleStaticImportDeclaration(self, ctx:Java9Parser.SingleStaticImportDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#staticImportOnDemandDeclaration. + def enterStaticImportOnDemandDeclaration(self, ctx:Java9Parser.StaticImportOnDemandDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#staticImportOnDemandDeclaration. + def exitStaticImportOnDemandDeclaration(self, ctx:Java9Parser.StaticImportOnDemandDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeDeclaration. + def enterTypeDeclaration(self, ctx:Java9Parser.TypeDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#typeDeclaration. + def exitTypeDeclaration(self, ctx:Java9Parser.TypeDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#moduleDeclaration. + def enterModuleDeclaration(self, ctx:Java9Parser.ModuleDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#moduleDeclaration. + def exitModuleDeclaration(self, ctx:Java9Parser.ModuleDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#moduleDirective. + def enterModuleDirective(self, ctx:Java9Parser.ModuleDirectiveContext): + pass + + # Exit a parse tree produced by Java9Parser#moduleDirective. + def exitModuleDirective(self, ctx:Java9Parser.ModuleDirectiveContext): + pass + + + # Enter a parse tree produced by Java9Parser#requiresModifier. + def enterRequiresModifier(self, ctx:Java9Parser.RequiresModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#requiresModifier. + def exitRequiresModifier(self, ctx:Java9Parser.RequiresModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#classDeclaration. + def enterClassDeclaration(self, ctx:Java9Parser.ClassDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#classDeclaration. + def exitClassDeclaration(self, ctx:Java9Parser.ClassDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#normalClassDeclaration. + def enterNormalClassDeclaration(self, ctx:Java9Parser.NormalClassDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#normalClassDeclaration. + def exitNormalClassDeclaration(self, ctx:Java9Parser.NormalClassDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#classModifier. + def enterClassModifier(self, ctx:Java9Parser.ClassModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#classModifier. + def exitClassModifier(self, ctx:Java9Parser.ClassModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeParameters. + def enterTypeParameters(self, ctx:Java9Parser.TypeParametersContext): + pass + + # Exit a parse tree produced by Java9Parser#typeParameters. + def exitTypeParameters(self, ctx:Java9Parser.TypeParametersContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeParameterList. + def enterTypeParameterList(self, ctx:Java9Parser.TypeParameterListContext): + pass + + # Exit a parse tree produced by Java9Parser#typeParameterList. + def exitTypeParameterList(self, ctx:Java9Parser.TypeParameterListContext): + pass + + + # Enter a parse tree produced by Java9Parser#superclass. + def enterSuperclass(self, ctx:Java9Parser.SuperclassContext): + pass + + # Exit a parse tree produced by Java9Parser#superclass. + def exitSuperclass(self, ctx:Java9Parser.SuperclassContext): + pass + + + # Enter a parse tree produced by Java9Parser#superinterfaces. + def enterSuperinterfaces(self, ctx:Java9Parser.SuperinterfacesContext): + pass + + # Exit a parse tree produced by Java9Parser#superinterfaces. + def exitSuperinterfaces(self, ctx:Java9Parser.SuperinterfacesContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceTypeList. + def enterInterfaceTypeList(self, ctx:Java9Parser.InterfaceTypeListContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceTypeList. + def exitInterfaceTypeList(self, ctx:Java9Parser.InterfaceTypeListContext): + pass + + + # Enter a parse tree produced by Java9Parser#classBody. + def enterClassBody(self, ctx:Java9Parser.ClassBodyContext): + pass + + # Exit a parse tree produced by Java9Parser#classBody. + def exitClassBody(self, ctx:Java9Parser.ClassBodyContext): + pass + + + # Enter a parse tree produced by Java9Parser#classBodyDeclaration. + def enterClassBodyDeclaration(self, ctx:Java9Parser.ClassBodyDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#classBodyDeclaration. + def exitClassBodyDeclaration(self, ctx:Java9Parser.ClassBodyDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#classMemberDeclaration. + def enterClassMemberDeclaration(self, ctx:Java9Parser.ClassMemberDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#classMemberDeclaration. + def exitClassMemberDeclaration(self, ctx:Java9Parser.ClassMemberDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#fieldDeclaration. + def enterFieldDeclaration(self, ctx:Java9Parser.FieldDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#fieldDeclaration. + def exitFieldDeclaration(self, ctx:Java9Parser.FieldDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#fieldModifier. + def enterFieldModifier(self, ctx:Java9Parser.FieldModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#fieldModifier. + def exitFieldModifier(self, ctx:Java9Parser.FieldModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#variableDeclaratorList. + def enterVariableDeclaratorList(self, ctx:Java9Parser.VariableDeclaratorListContext): + pass + + # Exit a parse tree produced by Java9Parser#variableDeclaratorList. + def exitVariableDeclaratorList(self, ctx:Java9Parser.VariableDeclaratorListContext): + pass + + + # Enter a parse tree produced by Java9Parser#variableDeclarator. + def enterVariableDeclarator(self, ctx:Java9Parser.VariableDeclaratorContext): + pass + + # Exit a parse tree produced by Java9Parser#variableDeclarator. + def exitVariableDeclarator(self, ctx:Java9Parser.VariableDeclaratorContext): + pass + + + # Enter a parse tree produced by Java9Parser#variableDeclaratorId. + def enterVariableDeclaratorId(self, ctx:Java9Parser.VariableDeclaratorIdContext): + pass + + # Exit a parse tree produced by Java9Parser#variableDeclaratorId. + def exitVariableDeclaratorId(self, ctx:Java9Parser.VariableDeclaratorIdContext): + pass + + + # Enter a parse tree produced by Java9Parser#variableInitializer. + def enterVariableInitializer(self, ctx:Java9Parser.VariableInitializerContext): + pass + + # Exit a parse tree produced by Java9Parser#variableInitializer. + def exitVariableInitializer(self, ctx:Java9Parser.VariableInitializerContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannType. + def enterUnannType(self, ctx:Java9Parser.UnannTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannType. + def exitUnannType(self, ctx:Java9Parser.UnannTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannPrimitiveType. + def enterUnannPrimitiveType(self, ctx:Java9Parser.UnannPrimitiveTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannPrimitiveType. + def exitUnannPrimitiveType(self, ctx:Java9Parser.UnannPrimitiveTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannReferenceType. + def enterUnannReferenceType(self, ctx:Java9Parser.UnannReferenceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannReferenceType. + def exitUnannReferenceType(self, ctx:Java9Parser.UnannReferenceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannClassOrInterfaceType. + def enterUnannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannClassOrInterfaceType. + def exitUnannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannClassType. + def enterUnannClassType(self, ctx:Java9Parser.UnannClassTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannClassType. + def exitUnannClassType(self, ctx:Java9Parser.UnannClassTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannClassType_lf_unannClassOrInterfaceType. + def enterUnannClassType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannClassType_lf_unannClassOrInterfaceType. + def exitUnannClassType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannClassType_lfno_unannClassOrInterfaceType. + def enterUnannClassType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannClassType_lfno_unannClassOrInterfaceType. + def exitUnannClassType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannInterfaceType. + def enterUnannInterfaceType(self, ctx:Java9Parser.UnannInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannInterfaceType. + def exitUnannInterfaceType(self, ctx:Java9Parser.UnannInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannInterfaceType_lf_unannClassOrInterfaceType. + def enterUnannInterfaceType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannInterfaceType_lf_unannClassOrInterfaceType. + def exitUnannInterfaceType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannInterfaceType_lfno_unannClassOrInterfaceType. + def enterUnannInterfaceType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannInterfaceType_lfno_unannClassOrInterfaceType. + def exitUnannInterfaceType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannTypeVariable. + def enterUnannTypeVariable(self, ctx:Java9Parser.UnannTypeVariableContext): + pass + + # Exit a parse tree produced by Java9Parser#unannTypeVariable. + def exitUnannTypeVariable(self, ctx:Java9Parser.UnannTypeVariableContext): + pass + + + # Enter a parse tree produced by Java9Parser#unannArrayType. + def enterUnannArrayType(self, ctx:Java9Parser.UnannArrayTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#unannArrayType. + def exitUnannArrayType(self, ctx:Java9Parser.UnannArrayTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodDeclaration. + def enterMethodDeclaration(self, ctx:Java9Parser.MethodDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#methodDeclaration. + def exitMethodDeclaration(self, ctx:Java9Parser.MethodDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodModifier. + def enterMethodModifier(self, ctx:Java9Parser.MethodModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#methodModifier. + def exitMethodModifier(self, ctx:Java9Parser.MethodModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodHeader. + def enterMethodHeader(self, ctx:Java9Parser.MethodHeaderContext): + pass + + # Exit a parse tree produced by Java9Parser#methodHeader. + def exitMethodHeader(self, ctx:Java9Parser.MethodHeaderContext): + pass + + + # Enter a parse tree produced by Java9Parser#result. + def enterResult(self, ctx:Java9Parser.ResultContext): + pass + + # Exit a parse tree produced by Java9Parser#result. + def exitResult(self, ctx:Java9Parser.ResultContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodDeclarator. + def enterMethodDeclarator(self, ctx:Java9Parser.MethodDeclaratorContext): + pass + + # Exit a parse tree produced by Java9Parser#methodDeclarator. + def exitMethodDeclarator(self, ctx:Java9Parser.MethodDeclaratorContext): + pass + + + # Enter a parse tree produced by Java9Parser#formalParameterList. + def enterFormalParameterList(self, ctx:Java9Parser.FormalParameterListContext): + pass + + # Exit a parse tree produced by Java9Parser#formalParameterList. + def exitFormalParameterList(self, ctx:Java9Parser.FormalParameterListContext): + pass + + + # Enter a parse tree produced by Java9Parser#formalParameters. + def enterFormalParameters(self, ctx:Java9Parser.FormalParametersContext): + pass + + # Exit a parse tree produced by Java9Parser#formalParameters. + def exitFormalParameters(self, ctx:Java9Parser.FormalParametersContext): + pass + + + # Enter a parse tree produced by Java9Parser#formalParameter. + def enterFormalParameter(self, ctx:Java9Parser.FormalParameterContext): + pass + + # Exit a parse tree produced by Java9Parser#formalParameter. + def exitFormalParameter(self, ctx:Java9Parser.FormalParameterContext): + pass + + + # Enter a parse tree produced by Java9Parser#variableModifier. + def enterVariableModifier(self, ctx:Java9Parser.VariableModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#variableModifier. + def exitVariableModifier(self, ctx:Java9Parser.VariableModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#lastFormalParameter. + def enterLastFormalParameter(self, ctx:Java9Parser.LastFormalParameterContext): + pass + + # Exit a parse tree produced by Java9Parser#lastFormalParameter. + def exitLastFormalParameter(self, ctx:Java9Parser.LastFormalParameterContext): + pass + + + # Enter a parse tree produced by Java9Parser#receiverParameter. + def enterReceiverParameter(self, ctx:Java9Parser.ReceiverParameterContext): + pass + + # Exit a parse tree produced by Java9Parser#receiverParameter. + def exitReceiverParameter(self, ctx:Java9Parser.ReceiverParameterContext): + pass + + + # Enter a parse tree produced by Java9Parser#throws_. + def enterThrows_(self, ctx:Java9Parser.Throws_Context): + pass + + # Exit a parse tree produced by Java9Parser#throws_. + def exitThrows_(self, ctx:Java9Parser.Throws_Context): + pass + + + # Enter a parse tree produced by Java9Parser#exceptionTypeList. + def enterExceptionTypeList(self, ctx:Java9Parser.ExceptionTypeListContext): + pass + + # Exit a parse tree produced by Java9Parser#exceptionTypeList. + def exitExceptionTypeList(self, ctx:Java9Parser.ExceptionTypeListContext): + pass + + + # Enter a parse tree produced by Java9Parser#exceptionType. + def enterExceptionType(self, ctx:Java9Parser.ExceptionTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#exceptionType. + def exitExceptionType(self, ctx:Java9Parser.ExceptionTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodBody. + def enterMethodBody(self, ctx:Java9Parser.MethodBodyContext): + pass + + # Exit a parse tree produced by Java9Parser#methodBody. + def exitMethodBody(self, ctx:Java9Parser.MethodBodyContext): + pass + + + # Enter a parse tree produced by Java9Parser#instanceInitializer. + def enterInstanceInitializer(self, ctx:Java9Parser.InstanceInitializerContext): + pass + + # Exit a parse tree produced by Java9Parser#instanceInitializer. + def exitInstanceInitializer(self, ctx:Java9Parser.InstanceInitializerContext): + pass + + + # Enter a parse tree produced by Java9Parser#staticInitializer. + def enterStaticInitializer(self, ctx:Java9Parser.StaticInitializerContext): + pass + + # Exit a parse tree produced by Java9Parser#staticInitializer. + def exitStaticInitializer(self, ctx:Java9Parser.StaticInitializerContext): + pass + + + # Enter a parse tree produced by Java9Parser#constructorDeclaration. + def enterConstructorDeclaration(self, ctx:Java9Parser.ConstructorDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#constructorDeclaration. + def exitConstructorDeclaration(self, ctx:Java9Parser.ConstructorDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#constructorModifier. + def enterConstructorModifier(self, ctx:Java9Parser.ConstructorModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#constructorModifier. + def exitConstructorModifier(self, ctx:Java9Parser.ConstructorModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#constructorDeclarator. + def enterConstructorDeclarator(self, ctx:Java9Parser.ConstructorDeclaratorContext): + pass + + # Exit a parse tree produced by Java9Parser#constructorDeclarator. + def exitConstructorDeclarator(self, ctx:Java9Parser.ConstructorDeclaratorContext): + pass + + + # Enter a parse tree produced by Java9Parser#simpleTypeName. + def enterSimpleTypeName(self, ctx:Java9Parser.SimpleTypeNameContext): + pass + + # Exit a parse tree produced by Java9Parser#simpleTypeName. + def exitSimpleTypeName(self, ctx:Java9Parser.SimpleTypeNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#constructorBody. + def enterConstructorBody(self, ctx:Java9Parser.ConstructorBodyContext): + pass + + # Exit a parse tree produced by Java9Parser#constructorBody. + def exitConstructorBody(self, ctx:Java9Parser.ConstructorBodyContext): + pass + + + # Enter a parse tree produced by Java9Parser#explicitConstructorInvocation. + def enterExplicitConstructorInvocation(self, ctx:Java9Parser.ExplicitConstructorInvocationContext): + pass + + # Exit a parse tree produced by Java9Parser#explicitConstructorInvocation. + def exitExplicitConstructorInvocation(self, ctx:Java9Parser.ExplicitConstructorInvocationContext): + pass + + + # Enter a parse tree produced by Java9Parser#enumDeclaration. + def enterEnumDeclaration(self, ctx:Java9Parser.EnumDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#enumDeclaration. + def exitEnumDeclaration(self, ctx:Java9Parser.EnumDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#enumBody. + def enterEnumBody(self, ctx:Java9Parser.EnumBodyContext): + pass + + # Exit a parse tree produced by Java9Parser#enumBody. + def exitEnumBody(self, ctx:Java9Parser.EnumBodyContext): + pass + + + # Enter a parse tree produced by Java9Parser#enumConstantList. + def enterEnumConstantList(self, ctx:Java9Parser.EnumConstantListContext): + pass + + # Exit a parse tree produced by Java9Parser#enumConstantList. + def exitEnumConstantList(self, ctx:Java9Parser.EnumConstantListContext): + pass + + + # Enter a parse tree produced by Java9Parser#enumConstant. + def enterEnumConstant(self, ctx:Java9Parser.EnumConstantContext): + pass + + # Exit a parse tree produced by Java9Parser#enumConstant. + def exitEnumConstant(self, ctx:Java9Parser.EnumConstantContext): + pass + + + # Enter a parse tree produced by Java9Parser#enumConstantModifier. + def enterEnumConstantModifier(self, ctx:Java9Parser.EnumConstantModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#enumConstantModifier. + def exitEnumConstantModifier(self, ctx:Java9Parser.EnumConstantModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#enumBodyDeclarations. + def enterEnumBodyDeclarations(self, ctx:Java9Parser.EnumBodyDeclarationsContext): + pass + + # Exit a parse tree produced by Java9Parser#enumBodyDeclarations. + def exitEnumBodyDeclarations(self, ctx:Java9Parser.EnumBodyDeclarationsContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceDeclaration. + def enterInterfaceDeclaration(self, ctx:Java9Parser.InterfaceDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceDeclaration. + def exitInterfaceDeclaration(self, ctx:Java9Parser.InterfaceDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#normalInterfaceDeclaration. + def enterNormalInterfaceDeclaration(self, ctx:Java9Parser.NormalInterfaceDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#normalInterfaceDeclaration. + def exitNormalInterfaceDeclaration(self, ctx:Java9Parser.NormalInterfaceDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceModifier. + def enterInterfaceModifier(self, ctx:Java9Parser.InterfaceModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceModifier. + def exitInterfaceModifier(self, ctx:Java9Parser.InterfaceModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#extendsInterfaces. + def enterExtendsInterfaces(self, ctx:Java9Parser.ExtendsInterfacesContext): + pass + + # Exit a parse tree produced by Java9Parser#extendsInterfaces. + def exitExtendsInterfaces(self, ctx:Java9Parser.ExtendsInterfacesContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceBody. + def enterInterfaceBody(self, ctx:Java9Parser.InterfaceBodyContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceBody. + def exitInterfaceBody(self, ctx:Java9Parser.InterfaceBodyContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceMemberDeclaration. + def enterInterfaceMemberDeclaration(self, ctx:Java9Parser.InterfaceMemberDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceMemberDeclaration. + def exitInterfaceMemberDeclaration(self, ctx:Java9Parser.InterfaceMemberDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#constantDeclaration. + def enterConstantDeclaration(self, ctx:Java9Parser.ConstantDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#constantDeclaration. + def exitConstantDeclaration(self, ctx:Java9Parser.ConstantDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#constantModifier. + def enterConstantModifier(self, ctx:Java9Parser.ConstantModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#constantModifier. + def exitConstantModifier(self, ctx:Java9Parser.ConstantModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceMethodDeclaration. + def enterInterfaceMethodDeclaration(self, ctx:Java9Parser.InterfaceMethodDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceMethodDeclaration. + def exitInterfaceMethodDeclaration(self, ctx:Java9Parser.InterfaceMethodDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#interfaceMethodModifier. + def enterInterfaceMethodModifier(self, ctx:Java9Parser.InterfaceMethodModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#interfaceMethodModifier. + def exitInterfaceMethodModifier(self, ctx:Java9Parser.InterfaceMethodModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#annotationTypeDeclaration. + def enterAnnotationTypeDeclaration(self, ctx:Java9Parser.AnnotationTypeDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#annotationTypeDeclaration. + def exitAnnotationTypeDeclaration(self, ctx:Java9Parser.AnnotationTypeDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#annotationTypeBody. + def enterAnnotationTypeBody(self, ctx:Java9Parser.AnnotationTypeBodyContext): + pass + + # Exit a parse tree produced by Java9Parser#annotationTypeBody. + def exitAnnotationTypeBody(self, ctx:Java9Parser.AnnotationTypeBodyContext): + pass + + + # Enter a parse tree produced by Java9Parser#annotationTypeMemberDeclaration. + def enterAnnotationTypeMemberDeclaration(self, ctx:Java9Parser.AnnotationTypeMemberDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#annotationTypeMemberDeclaration. + def exitAnnotationTypeMemberDeclaration(self, ctx:Java9Parser.AnnotationTypeMemberDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#annotationTypeElementDeclaration. + def enterAnnotationTypeElementDeclaration(self, ctx:Java9Parser.AnnotationTypeElementDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#annotationTypeElementDeclaration. + def exitAnnotationTypeElementDeclaration(self, ctx:Java9Parser.AnnotationTypeElementDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#annotationTypeElementModifier. + def enterAnnotationTypeElementModifier(self, ctx:Java9Parser.AnnotationTypeElementModifierContext): + pass + + # Exit a parse tree produced by Java9Parser#annotationTypeElementModifier. + def exitAnnotationTypeElementModifier(self, ctx:Java9Parser.AnnotationTypeElementModifierContext): + pass + + + # Enter a parse tree produced by Java9Parser#defaultValue. + def enterDefaultValue(self, ctx:Java9Parser.DefaultValueContext): + pass + + # Exit a parse tree produced by Java9Parser#defaultValue. + def exitDefaultValue(self, ctx:Java9Parser.DefaultValueContext): + pass + + + # Enter a parse tree produced by Java9Parser#annotation. + def enterAnnotation(self, ctx:Java9Parser.AnnotationContext): + pass + + # Exit a parse tree produced by Java9Parser#annotation. + def exitAnnotation(self, ctx:Java9Parser.AnnotationContext): + pass + + + # Enter a parse tree produced by Java9Parser#normalAnnotation. + def enterNormalAnnotation(self, ctx:Java9Parser.NormalAnnotationContext): + pass + + # Exit a parse tree produced by Java9Parser#normalAnnotation. + def exitNormalAnnotation(self, ctx:Java9Parser.NormalAnnotationContext): + pass + + + # Enter a parse tree produced by Java9Parser#elementValuePairList. + def enterElementValuePairList(self, ctx:Java9Parser.ElementValuePairListContext): + pass + + # Exit a parse tree produced by Java9Parser#elementValuePairList. + def exitElementValuePairList(self, ctx:Java9Parser.ElementValuePairListContext): + pass + + + # Enter a parse tree produced by Java9Parser#elementValuePair. + def enterElementValuePair(self, ctx:Java9Parser.ElementValuePairContext): + pass + + # Exit a parse tree produced by Java9Parser#elementValuePair. + def exitElementValuePair(self, ctx:Java9Parser.ElementValuePairContext): + pass + + + # Enter a parse tree produced by Java9Parser#elementValue. + def enterElementValue(self, ctx:Java9Parser.ElementValueContext): + pass + + # Exit a parse tree produced by Java9Parser#elementValue. + def exitElementValue(self, ctx:Java9Parser.ElementValueContext): + pass + + + # Enter a parse tree produced by Java9Parser#elementValueArrayInitializer. + def enterElementValueArrayInitializer(self, ctx:Java9Parser.ElementValueArrayInitializerContext): + pass + + # Exit a parse tree produced by Java9Parser#elementValueArrayInitializer. + def exitElementValueArrayInitializer(self, ctx:Java9Parser.ElementValueArrayInitializerContext): + pass + + + # Enter a parse tree produced by Java9Parser#elementValueList. + def enterElementValueList(self, ctx:Java9Parser.ElementValueListContext): + pass + + # Exit a parse tree produced by Java9Parser#elementValueList. + def exitElementValueList(self, ctx:Java9Parser.ElementValueListContext): + pass + + + # Enter a parse tree produced by Java9Parser#markerAnnotation. + def enterMarkerAnnotation(self, ctx:Java9Parser.MarkerAnnotationContext): + pass + + # Exit a parse tree produced by Java9Parser#markerAnnotation. + def exitMarkerAnnotation(self, ctx:Java9Parser.MarkerAnnotationContext): + pass + + + # Enter a parse tree produced by Java9Parser#singleElementAnnotation. + def enterSingleElementAnnotation(self, ctx:Java9Parser.SingleElementAnnotationContext): + pass + + # Exit a parse tree produced by Java9Parser#singleElementAnnotation. + def exitSingleElementAnnotation(self, ctx:Java9Parser.SingleElementAnnotationContext): + pass + + + # Enter a parse tree produced by Java9Parser#arrayInitializer. + def enterArrayInitializer(self, ctx:Java9Parser.ArrayInitializerContext): + pass + + # Exit a parse tree produced by Java9Parser#arrayInitializer. + def exitArrayInitializer(self, ctx:Java9Parser.ArrayInitializerContext): + pass + + + # Enter a parse tree produced by Java9Parser#variableInitializerList. + def enterVariableInitializerList(self, ctx:Java9Parser.VariableInitializerListContext): + pass + + # Exit a parse tree produced by Java9Parser#variableInitializerList. + def exitVariableInitializerList(self, ctx:Java9Parser.VariableInitializerListContext): + pass + + + # Enter a parse tree produced by Java9Parser#block. + def enterBlock(self, ctx:Java9Parser.BlockContext): + pass + + # Exit a parse tree produced by Java9Parser#block. + def exitBlock(self, ctx:Java9Parser.BlockContext): + pass + + + # Enter a parse tree produced by Java9Parser#blockStatements. + def enterBlockStatements(self, ctx:Java9Parser.BlockStatementsContext): + pass + + # Exit a parse tree produced by Java9Parser#blockStatements. + def exitBlockStatements(self, ctx:Java9Parser.BlockStatementsContext): + pass + + + # Enter a parse tree produced by Java9Parser#blockStatement. + def enterBlockStatement(self, ctx:Java9Parser.BlockStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#blockStatement. + def exitBlockStatement(self, ctx:Java9Parser.BlockStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#localVariableDeclarationStatement. + def enterLocalVariableDeclarationStatement(self, ctx:Java9Parser.LocalVariableDeclarationStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#localVariableDeclarationStatement. + def exitLocalVariableDeclarationStatement(self, ctx:Java9Parser.LocalVariableDeclarationStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#localVariableDeclaration. + def enterLocalVariableDeclaration(self, ctx:Java9Parser.LocalVariableDeclarationContext): + pass + + # Exit a parse tree produced by Java9Parser#localVariableDeclaration. + def exitLocalVariableDeclaration(self, ctx:Java9Parser.LocalVariableDeclarationContext): + pass + + + # Enter a parse tree produced by Java9Parser#statement. + def enterStatement(self, ctx:Java9Parser.StatementContext): + pass + + # Exit a parse tree produced by Java9Parser#statement. + def exitStatement(self, ctx:Java9Parser.StatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#statementNoShortIf. + def enterStatementNoShortIf(self, ctx:Java9Parser.StatementNoShortIfContext): + pass + + # Exit a parse tree produced by Java9Parser#statementNoShortIf. + def exitStatementNoShortIf(self, ctx:Java9Parser.StatementNoShortIfContext): + pass + + + # Enter a parse tree produced by Java9Parser#statementWithoutTrailingSubstatement. + def enterStatementWithoutTrailingSubstatement(self, ctx:Java9Parser.StatementWithoutTrailingSubstatementContext): + pass + + # Exit a parse tree produced by Java9Parser#statementWithoutTrailingSubstatement. + def exitStatementWithoutTrailingSubstatement(self, ctx:Java9Parser.StatementWithoutTrailingSubstatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#emptyStatement. + def enterEmptyStatement(self, ctx:Java9Parser.EmptyStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#emptyStatement. + def exitEmptyStatement(self, ctx:Java9Parser.EmptyStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#labeledStatement. + def enterLabeledStatement(self, ctx:Java9Parser.LabeledStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#labeledStatement. + def exitLabeledStatement(self, ctx:Java9Parser.LabeledStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#labeledStatementNoShortIf. + def enterLabeledStatementNoShortIf(self, ctx:Java9Parser.LabeledStatementNoShortIfContext): + pass + + # Exit a parse tree produced by Java9Parser#labeledStatementNoShortIf. + def exitLabeledStatementNoShortIf(self, ctx:Java9Parser.LabeledStatementNoShortIfContext): + pass + + + # Enter a parse tree produced by Java9Parser#expressionStatement. + def enterExpressionStatement(self, ctx:Java9Parser.ExpressionStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#expressionStatement. + def exitExpressionStatement(self, ctx:Java9Parser.ExpressionStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#statementExpression. + def enterStatementExpression(self, ctx:Java9Parser.StatementExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#statementExpression. + def exitStatementExpression(self, ctx:Java9Parser.StatementExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#ifThenStatement. + def enterIfThenStatement(self, ctx:Java9Parser.IfThenStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#ifThenStatement. + def exitIfThenStatement(self, ctx:Java9Parser.IfThenStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#ifThenElseStatement. + def enterIfThenElseStatement(self, ctx:Java9Parser.IfThenElseStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#ifThenElseStatement. + def exitIfThenElseStatement(self, ctx:Java9Parser.IfThenElseStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#ifThenElseStatementNoShortIf. + def enterIfThenElseStatementNoShortIf(self, ctx:Java9Parser.IfThenElseStatementNoShortIfContext): + pass + + # Exit a parse tree produced by Java9Parser#ifThenElseStatementNoShortIf. + def exitIfThenElseStatementNoShortIf(self, ctx:Java9Parser.IfThenElseStatementNoShortIfContext): + pass + + + # Enter a parse tree produced by Java9Parser#assertStatement. + def enterAssertStatement(self, ctx:Java9Parser.AssertStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#assertStatement. + def exitAssertStatement(self, ctx:Java9Parser.AssertStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#switchStatement. + def enterSwitchStatement(self, ctx:Java9Parser.SwitchStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#switchStatement. + def exitSwitchStatement(self, ctx:Java9Parser.SwitchStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#switchBlock. + def enterSwitchBlock(self, ctx:Java9Parser.SwitchBlockContext): + pass + + # Exit a parse tree produced by Java9Parser#switchBlock. + def exitSwitchBlock(self, ctx:Java9Parser.SwitchBlockContext): + pass + + + # Enter a parse tree produced by Java9Parser#switchBlockStatementGroup. + def enterSwitchBlockStatementGroup(self, ctx:Java9Parser.SwitchBlockStatementGroupContext): + pass + + # Exit a parse tree produced by Java9Parser#switchBlockStatementGroup. + def exitSwitchBlockStatementGroup(self, ctx:Java9Parser.SwitchBlockStatementGroupContext): + pass + + + # Enter a parse tree produced by Java9Parser#switchLabels. + def enterSwitchLabels(self, ctx:Java9Parser.SwitchLabelsContext): + pass + + # Exit a parse tree produced by Java9Parser#switchLabels. + def exitSwitchLabels(self, ctx:Java9Parser.SwitchLabelsContext): + pass + + + # Enter a parse tree produced by Java9Parser#switchLabel. + def enterSwitchLabel(self, ctx:Java9Parser.SwitchLabelContext): + pass + + # Exit a parse tree produced by Java9Parser#switchLabel. + def exitSwitchLabel(self, ctx:Java9Parser.SwitchLabelContext): + pass + + + # Enter a parse tree produced by Java9Parser#enumConstantName. + def enterEnumConstantName(self, ctx:Java9Parser.EnumConstantNameContext): + pass + + # Exit a parse tree produced by Java9Parser#enumConstantName. + def exitEnumConstantName(self, ctx:Java9Parser.EnumConstantNameContext): + pass + + + # Enter a parse tree produced by Java9Parser#whileStatement. + def enterWhileStatement(self, ctx:Java9Parser.WhileStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#whileStatement. + def exitWhileStatement(self, ctx:Java9Parser.WhileStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#whileStatementNoShortIf. + def enterWhileStatementNoShortIf(self, ctx:Java9Parser.WhileStatementNoShortIfContext): + pass + + # Exit a parse tree produced by Java9Parser#whileStatementNoShortIf. + def exitWhileStatementNoShortIf(self, ctx:Java9Parser.WhileStatementNoShortIfContext): + pass + + + # Enter a parse tree produced by Java9Parser#doStatement. + def enterDoStatement(self, ctx:Java9Parser.DoStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#doStatement. + def exitDoStatement(self, ctx:Java9Parser.DoStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#forStatement. + def enterForStatement(self, ctx:Java9Parser.ForStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#forStatement. + def exitForStatement(self, ctx:Java9Parser.ForStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#forStatementNoShortIf. + def enterForStatementNoShortIf(self, ctx:Java9Parser.ForStatementNoShortIfContext): + pass + + # Exit a parse tree produced by Java9Parser#forStatementNoShortIf. + def exitForStatementNoShortIf(self, ctx:Java9Parser.ForStatementNoShortIfContext): + pass + + + # Enter a parse tree produced by Java9Parser#basicForStatement. + def enterBasicForStatement(self, ctx:Java9Parser.BasicForStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#basicForStatement. + def exitBasicForStatement(self, ctx:Java9Parser.BasicForStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#basicForStatementNoShortIf. + def enterBasicForStatementNoShortIf(self, ctx:Java9Parser.BasicForStatementNoShortIfContext): + pass + + # Exit a parse tree produced by Java9Parser#basicForStatementNoShortIf. + def exitBasicForStatementNoShortIf(self, ctx:Java9Parser.BasicForStatementNoShortIfContext): + pass + + + # Enter a parse tree produced by Java9Parser#forInit. + def enterForInit(self, ctx:Java9Parser.ForInitContext): + pass + + # Exit a parse tree produced by Java9Parser#forInit. + def exitForInit(self, ctx:Java9Parser.ForInitContext): + pass + + + # Enter a parse tree produced by Java9Parser#forUpdate. + def enterForUpdate(self, ctx:Java9Parser.ForUpdateContext): + pass + + # Exit a parse tree produced by Java9Parser#forUpdate. + def exitForUpdate(self, ctx:Java9Parser.ForUpdateContext): + pass + + + # Enter a parse tree produced by Java9Parser#statementExpressionList. + def enterStatementExpressionList(self, ctx:Java9Parser.StatementExpressionListContext): + pass + + # Exit a parse tree produced by Java9Parser#statementExpressionList. + def exitStatementExpressionList(self, ctx:Java9Parser.StatementExpressionListContext): + pass + + + # Enter a parse tree produced by Java9Parser#enhancedForStatement. + def enterEnhancedForStatement(self, ctx:Java9Parser.EnhancedForStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#enhancedForStatement. + def exitEnhancedForStatement(self, ctx:Java9Parser.EnhancedForStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#enhancedForStatementNoShortIf. + def enterEnhancedForStatementNoShortIf(self, ctx:Java9Parser.EnhancedForStatementNoShortIfContext): + pass + + # Exit a parse tree produced by Java9Parser#enhancedForStatementNoShortIf. + def exitEnhancedForStatementNoShortIf(self, ctx:Java9Parser.EnhancedForStatementNoShortIfContext): + pass + + + # Enter a parse tree produced by Java9Parser#breakStatement. + def enterBreakStatement(self, ctx:Java9Parser.BreakStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#breakStatement. + def exitBreakStatement(self, ctx:Java9Parser.BreakStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#continueStatement. + def enterContinueStatement(self, ctx:Java9Parser.ContinueStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#continueStatement. + def exitContinueStatement(self, ctx:Java9Parser.ContinueStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#returnStatement. + def enterReturnStatement(self, ctx:Java9Parser.ReturnStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#returnStatement. + def exitReturnStatement(self, ctx:Java9Parser.ReturnStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#throwStatement. + def enterThrowStatement(self, ctx:Java9Parser.ThrowStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#throwStatement. + def exitThrowStatement(self, ctx:Java9Parser.ThrowStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#synchronizedStatement. + def enterSynchronizedStatement(self, ctx:Java9Parser.SynchronizedStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#synchronizedStatement. + def exitSynchronizedStatement(self, ctx:Java9Parser.SynchronizedStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#tryStatement. + def enterTryStatement(self, ctx:Java9Parser.TryStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#tryStatement. + def exitTryStatement(self, ctx:Java9Parser.TryStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#catches. + def enterCatches(self, ctx:Java9Parser.CatchesContext): + pass + + # Exit a parse tree produced by Java9Parser#catches. + def exitCatches(self, ctx:Java9Parser.CatchesContext): + pass + + + # Enter a parse tree produced by Java9Parser#catchClause. + def enterCatchClause(self, ctx:Java9Parser.CatchClauseContext): + pass + + # Exit a parse tree produced by Java9Parser#catchClause. + def exitCatchClause(self, ctx:Java9Parser.CatchClauseContext): + pass + + + # Enter a parse tree produced by Java9Parser#catchFormalParameter. + def enterCatchFormalParameter(self, ctx:Java9Parser.CatchFormalParameterContext): + pass + + # Exit a parse tree produced by Java9Parser#catchFormalParameter. + def exitCatchFormalParameter(self, ctx:Java9Parser.CatchFormalParameterContext): + pass + + + # Enter a parse tree produced by Java9Parser#catchType. + def enterCatchType(self, ctx:Java9Parser.CatchTypeContext): + pass + + # Exit a parse tree produced by Java9Parser#catchType. + def exitCatchType(self, ctx:Java9Parser.CatchTypeContext): + pass + + + # Enter a parse tree produced by Java9Parser#finally_. + def enterFinally_(self, ctx:Java9Parser.Finally_Context): + pass + + # Exit a parse tree produced by Java9Parser#finally_. + def exitFinally_(self, ctx:Java9Parser.Finally_Context): + pass + + + # Enter a parse tree produced by Java9Parser#tryWithResourcesStatement. + def enterTryWithResourcesStatement(self, ctx:Java9Parser.TryWithResourcesStatementContext): + pass + + # Exit a parse tree produced by Java9Parser#tryWithResourcesStatement. + def exitTryWithResourcesStatement(self, ctx:Java9Parser.TryWithResourcesStatementContext): + pass + + + # Enter a parse tree produced by Java9Parser#resourceSpecification. + def enterResourceSpecification(self, ctx:Java9Parser.ResourceSpecificationContext): + pass + + # Exit a parse tree produced by Java9Parser#resourceSpecification. + def exitResourceSpecification(self, ctx:Java9Parser.ResourceSpecificationContext): + pass + + + # Enter a parse tree produced by Java9Parser#resourceList. + def enterResourceList(self, ctx:Java9Parser.ResourceListContext): + pass + + # Exit a parse tree produced by Java9Parser#resourceList. + def exitResourceList(self, ctx:Java9Parser.ResourceListContext): + pass + + + # Enter a parse tree produced by Java9Parser#resource. + def enterResource(self, ctx:Java9Parser.ResourceContext): + pass + + # Exit a parse tree produced by Java9Parser#resource. + def exitResource(self, ctx:Java9Parser.ResourceContext): + pass + + + # Enter a parse tree produced by Java9Parser#variableAccess. + def enterVariableAccess(self, ctx:Java9Parser.VariableAccessContext): + pass + + # Exit a parse tree produced by Java9Parser#variableAccess. + def exitVariableAccess(self, ctx:Java9Parser.VariableAccessContext): + pass + + + # Enter a parse tree produced by Java9Parser#primary. + def enterPrimary(self, ctx:Java9Parser.PrimaryContext): + pass + + # Exit a parse tree produced by Java9Parser#primary. + def exitPrimary(self, ctx:Java9Parser.PrimaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray. + def enterPrimaryNoNewArray(self, ctx:Java9Parser.PrimaryNoNewArrayContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray. + def exitPrimaryNoNewArray(self, ctx:Java9Parser.PrimaryNoNewArrayContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_arrayAccess. + def enterPrimaryNoNewArray_lf_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_arrayAccess. + def exitPrimaryNoNewArray_lf_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_arrayAccess. + def enterPrimaryNoNewArray_lfno_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_arrayAccess. + def exitPrimaryNoNewArray_lfno_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary. + def enterPrimaryNoNewArray_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary. + def exitPrimaryNoNewArray_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary. + def enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary. + def exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary. + def enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary. + def exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary. + def enterPrimaryNoNewArray_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary. + def exitPrimaryNoNewArray_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary. + def enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary. + def exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary. + def enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary. + def exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#classLiteral. + def enterClassLiteral(self, ctx:Java9Parser.ClassLiteralContext): + pass + + # Exit a parse tree produced by Java9Parser#classLiteral. + def exitClassLiteral(self, ctx:Java9Parser.ClassLiteralContext): + pass + + + # Enter a parse tree produced by Java9Parser#classInstanceCreationExpression. + def enterClassInstanceCreationExpression(self, ctx:Java9Parser.ClassInstanceCreationExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#classInstanceCreationExpression. + def exitClassInstanceCreationExpression(self, ctx:Java9Parser.ClassInstanceCreationExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#classInstanceCreationExpression_lf_primary. + def enterClassInstanceCreationExpression_lf_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#classInstanceCreationExpression_lf_primary. + def exitClassInstanceCreationExpression_lf_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#classInstanceCreationExpression_lfno_primary. + def enterClassInstanceCreationExpression_lfno_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#classInstanceCreationExpression_lfno_primary. + def exitClassInstanceCreationExpression_lfno_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#typeArgumentsOrDiamond. + def enterTypeArgumentsOrDiamond(self, ctx:Java9Parser.TypeArgumentsOrDiamondContext): + pass + + # Exit a parse tree produced by Java9Parser#typeArgumentsOrDiamond. + def exitTypeArgumentsOrDiamond(self, ctx:Java9Parser.TypeArgumentsOrDiamondContext): + pass + + + # Enter a parse tree produced by Java9Parser#fieldAccess. + def enterFieldAccess(self, ctx:Java9Parser.FieldAccessContext): + pass + + # Exit a parse tree produced by Java9Parser#fieldAccess. + def exitFieldAccess(self, ctx:Java9Parser.FieldAccessContext): + pass + + + # Enter a parse tree produced by Java9Parser#fieldAccess_lf_primary. + def enterFieldAccess_lf_primary(self, ctx:Java9Parser.FieldAccess_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#fieldAccess_lf_primary. + def exitFieldAccess_lf_primary(self, ctx:Java9Parser.FieldAccess_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#fieldAccess_lfno_primary. + def enterFieldAccess_lfno_primary(self, ctx:Java9Parser.FieldAccess_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#fieldAccess_lfno_primary. + def exitFieldAccess_lfno_primary(self, ctx:Java9Parser.FieldAccess_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#arrayAccess. + def enterArrayAccess(self, ctx:Java9Parser.ArrayAccessContext): + pass + + # Exit a parse tree produced by Java9Parser#arrayAccess. + def exitArrayAccess(self, ctx:Java9Parser.ArrayAccessContext): + pass + + + # Enter a parse tree produced by Java9Parser#arrayAccess_lf_primary. + def enterArrayAccess_lf_primary(self, ctx:Java9Parser.ArrayAccess_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#arrayAccess_lf_primary. + def exitArrayAccess_lf_primary(self, ctx:Java9Parser.ArrayAccess_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#arrayAccess_lfno_primary. + def enterArrayAccess_lfno_primary(self, ctx:Java9Parser.ArrayAccess_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#arrayAccess_lfno_primary. + def exitArrayAccess_lfno_primary(self, ctx:Java9Parser.ArrayAccess_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodInvocation. + def enterMethodInvocation(self, ctx:Java9Parser.MethodInvocationContext): + pass + + # Exit a parse tree produced by Java9Parser#methodInvocation. + def exitMethodInvocation(self, ctx:Java9Parser.MethodInvocationContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodInvocation_lf_primary. + def enterMethodInvocation_lf_primary(self, ctx:Java9Parser.MethodInvocation_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#methodInvocation_lf_primary. + def exitMethodInvocation_lf_primary(self, ctx:Java9Parser.MethodInvocation_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodInvocation_lfno_primary. + def enterMethodInvocation_lfno_primary(self, ctx:Java9Parser.MethodInvocation_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#methodInvocation_lfno_primary. + def exitMethodInvocation_lfno_primary(self, ctx:Java9Parser.MethodInvocation_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#argumentList. + def enterArgumentList(self, ctx:Java9Parser.ArgumentListContext): + pass + + # Exit a parse tree produced by Java9Parser#argumentList. + def exitArgumentList(self, ctx:Java9Parser.ArgumentListContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodReference. + def enterMethodReference(self, ctx:Java9Parser.MethodReferenceContext): + pass + + # Exit a parse tree produced by Java9Parser#methodReference. + def exitMethodReference(self, ctx:Java9Parser.MethodReferenceContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodReference_lf_primary. + def enterMethodReference_lf_primary(self, ctx:Java9Parser.MethodReference_lf_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#methodReference_lf_primary. + def exitMethodReference_lf_primary(self, ctx:Java9Parser.MethodReference_lf_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#methodReference_lfno_primary. + def enterMethodReference_lfno_primary(self, ctx:Java9Parser.MethodReference_lfno_primaryContext): + pass + + # Exit a parse tree produced by Java9Parser#methodReference_lfno_primary. + def exitMethodReference_lfno_primary(self, ctx:Java9Parser.MethodReference_lfno_primaryContext): + pass + + + # Enter a parse tree produced by Java9Parser#arrayCreationExpression. + def enterArrayCreationExpression(self, ctx:Java9Parser.ArrayCreationExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#arrayCreationExpression. + def exitArrayCreationExpression(self, ctx:Java9Parser.ArrayCreationExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#dimExprs. + def enterDimExprs(self, ctx:Java9Parser.DimExprsContext): + pass + + # Exit a parse tree produced by Java9Parser#dimExprs. + def exitDimExprs(self, ctx:Java9Parser.DimExprsContext): + pass + + + # Enter a parse tree produced by Java9Parser#dimExpr. + def enterDimExpr(self, ctx:Java9Parser.DimExprContext): + pass + + # Exit a parse tree produced by Java9Parser#dimExpr. + def exitDimExpr(self, ctx:Java9Parser.DimExprContext): + pass + + + # Enter a parse tree produced by Java9Parser#constantExpression. + def enterConstantExpression(self, ctx:Java9Parser.ConstantExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#constantExpression. + def exitConstantExpression(self, ctx:Java9Parser.ConstantExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#expression. + def enterExpression(self, ctx:Java9Parser.ExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#expression. + def exitExpression(self, ctx:Java9Parser.ExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#lambdaExpression. + def enterLambdaExpression(self, ctx:Java9Parser.LambdaExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#lambdaExpression. + def exitLambdaExpression(self, ctx:Java9Parser.LambdaExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#lambdaParameters. + def enterLambdaParameters(self, ctx:Java9Parser.LambdaParametersContext): + pass + + # Exit a parse tree produced by Java9Parser#lambdaParameters. + def exitLambdaParameters(self, ctx:Java9Parser.LambdaParametersContext): + pass + + + # Enter a parse tree produced by Java9Parser#inferredFormalParameterList. + def enterInferredFormalParameterList(self, ctx:Java9Parser.InferredFormalParameterListContext): + pass + + # Exit a parse tree produced by Java9Parser#inferredFormalParameterList. + def exitInferredFormalParameterList(self, ctx:Java9Parser.InferredFormalParameterListContext): + pass + + + # Enter a parse tree produced by Java9Parser#lambdaBody. + def enterLambdaBody(self, ctx:Java9Parser.LambdaBodyContext): + pass + + # Exit a parse tree produced by Java9Parser#lambdaBody. + def exitLambdaBody(self, ctx:Java9Parser.LambdaBodyContext): + pass + + + # Enter a parse tree produced by Java9Parser#assignmentExpression. + def enterAssignmentExpression(self, ctx:Java9Parser.AssignmentExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#assignmentExpression. + def exitAssignmentExpression(self, ctx:Java9Parser.AssignmentExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#assignment. + def enterAssignment(self, ctx:Java9Parser.AssignmentContext): + pass + + # Exit a parse tree produced by Java9Parser#assignment. + def exitAssignment(self, ctx:Java9Parser.AssignmentContext): + pass + + + # Enter a parse tree produced by Java9Parser#leftHandSide. + def enterLeftHandSide(self, ctx:Java9Parser.LeftHandSideContext): + pass + + # Exit a parse tree produced by Java9Parser#leftHandSide. + def exitLeftHandSide(self, ctx:Java9Parser.LeftHandSideContext): + pass + + + # Enter a parse tree produced by Java9Parser#assignmentOperator. + def enterAssignmentOperator(self, ctx:Java9Parser.AssignmentOperatorContext): + pass + + # Exit a parse tree produced by Java9Parser#assignmentOperator. + def exitAssignmentOperator(self, ctx:Java9Parser.AssignmentOperatorContext): + pass + + + # Enter a parse tree produced by Java9Parser#conditionalExpression. + def enterConditionalExpression(self, ctx:Java9Parser.ConditionalExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#conditionalExpression. + def exitConditionalExpression(self, ctx:Java9Parser.ConditionalExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#conditionalOrExpression. + def enterConditionalOrExpression(self, ctx:Java9Parser.ConditionalOrExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#conditionalOrExpression. + def exitConditionalOrExpression(self, ctx:Java9Parser.ConditionalOrExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#conditionalAndExpression. + def enterConditionalAndExpression(self, ctx:Java9Parser.ConditionalAndExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#conditionalAndExpression. + def exitConditionalAndExpression(self, ctx:Java9Parser.ConditionalAndExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#inclusiveOrExpression. + def enterInclusiveOrExpression(self, ctx:Java9Parser.InclusiveOrExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#inclusiveOrExpression. + def exitInclusiveOrExpression(self, ctx:Java9Parser.InclusiveOrExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#exclusiveOrExpression. + def enterExclusiveOrExpression(self, ctx:Java9Parser.ExclusiveOrExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#exclusiveOrExpression. + def exitExclusiveOrExpression(self, ctx:Java9Parser.ExclusiveOrExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#andExpression. + def enterAndExpression(self, ctx:Java9Parser.AndExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#andExpression. + def exitAndExpression(self, ctx:Java9Parser.AndExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#equalityExpression. + def enterEqualityExpression(self, ctx:Java9Parser.EqualityExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#equalityExpression. + def exitEqualityExpression(self, ctx:Java9Parser.EqualityExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#relationalExpression. + def enterRelationalExpression(self, ctx:Java9Parser.RelationalExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#relationalExpression. + def exitRelationalExpression(self, ctx:Java9Parser.RelationalExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#shiftExpression. + def enterShiftExpression(self, ctx:Java9Parser.ShiftExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#shiftExpression. + def exitShiftExpression(self, ctx:Java9Parser.ShiftExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#additiveExpression. + def enterAdditiveExpression(self, ctx:Java9Parser.AdditiveExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#additiveExpression. + def exitAdditiveExpression(self, ctx:Java9Parser.AdditiveExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#multiplicativeExpression. + def enterMultiplicativeExpression(self, ctx:Java9Parser.MultiplicativeExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#multiplicativeExpression. + def exitMultiplicativeExpression(self, ctx:Java9Parser.MultiplicativeExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#unaryExpression. + def enterUnaryExpression(self, ctx:Java9Parser.UnaryExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#unaryExpression. + def exitUnaryExpression(self, ctx:Java9Parser.UnaryExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#preIncrementExpression. + def enterPreIncrementExpression(self, ctx:Java9Parser.PreIncrementExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#preIncrementExpression. + def exitPreIncrementExpression(self, ctx:Java9Parser.PreIncrementExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#preDecrementExpression. + def enterPreDecrementExpression(self, ctx:Java9Parser.PreDecrementExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#preDecrementExpression. + def exitPreDecrementExpression(self, ctx:Java9Parser.PreDecrementExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#unaryExpressionNotPlusMinus. + def enterUnaryExpressionNotPlusMinus(self, ctx:Java9Parser.UnaryExpressionNotPlusMinusContext): + pass + + # Exit a parse tree produced by Java9Parser#unaryExpressionNotPlusMinus. + def exitUnaryExpressionNotPlusMinus(self, ctx:Java9Parser.UnaryExpressionNotPlusMinusContext): + pass + + + # Enter a parse tree produced by Java9Parser#postfixExpression. + def enterPostfixExpression(self, ctx:Java9Parser.PostfixExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#postfixExpression. + def exitPostfixExpression(self, ctx:Java9Parser.PostfixExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#postIncrementExpression. + def enterPostIncrementExpression(self, ctx:Java9Parser.PostIncrementExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#postIncrementExpression. + def exitPostIncrementExpression(self, ctx:Java9Parser.PostIncrementExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#postIncrementExpression_lf_postfixExpression. + def enterPostIncrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostIncrementExpression_lf_postfixExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#postIncrementExpression_lf_postfixExpression. + def exitPostIncrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostIncrementExpression_lf_postfixExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#postDecrementExpression. + def enterPostDecrementExpression(self, ctx:Java9Parser.PostDecrementExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#postDecrementExpression. + def exitPostDecrementExpression(self, ctx:Java9Parser.PostDecrementExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#postDecrementExpression_lf_postfixExpression. + def enterPostDecrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostDecrementExpression_lf_postfixExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#postDecrementExpression_lf_postfixExpression. + def exitPostDecrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostDecrementExpression_lf_postfixExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#castExpression. + def enterCastExpression(self, ctx:Java9Parser.CastExpressionContext): + pass + + # Exit a parse tree produced by Java9Parser#castExpression. + def exitCastExpression(self, ctx:Java9Parser.CastExpressionContext): + pass + + + # Enter a parse tree produced by Java9Parser#identifier. + def enterIdentifier(self, ctx:Java9Parser.IdentifierContext): + pass + + # Exit a parse tree produced by Java9Parser#identifier. + def exitIdentifier(self, ctx:Java9Parser.IdentifierContext): + pass + + diff --git a/java2python/lang/JavaLexer.py b/java2python/lang/JavaLexer.py deleted file mode 100644 index 9c1725a..0000000 --- a/java2python/lang/JavaLexer.py +++ /dev/null @@ -1,5285 +0,0 @@ -# $ANTLR 3.1.3 Mar 18, 2009 10:09:25 Java.g 2012-01-29 13:54:05 - -import sys -from antlr3 import * -from antlr3.compat import set, frozenset - - -# for convenience in actions -HIDDEN = BaseRecognizer.HIDDEN - -# token types -PACKAGE=84 -EXPONENT=173 -STAR=49 -WHILE=103 -MOD=32 -MOD_ASSIGN=33 -CASE=58 -CHAR=60 -NEW=82 -DO=64 -GENERIC_TYPE_PARAM_LIST=138 -CLASS_INSTANCE_INITIALIZER=121 -ARRAY_ELEMENT_ACCESS=115 -FOR_CONDITION=129 -NOT=34 -VAR_DECLARATION=160 -ANNOTATION_METHOD_DECL=109 -EOF=-1 -DIV_ASSIGN=14 -BREAK=56 -LOGICAL_AND=26 -BIT_SHIFT_RIGHT_ASSIGN=9 -UNARY_PLUS=159 -TYPE=157 -FINAL=70 -INC=21 -RPAREN=43 -IMPORT=78 -STRING_LITERAL=170 -FOR_UPDATE=132 -FLOATING_POINT_LITERAL=168 -CAST_EXPR=118 -NOT_EQUAL=35 -VOID_METHOD_DECL=163 -RETURN=88 -THIS=95 -DOUBLE=65 -VOID=101 -ENUM_TOP_LEVEL_SCOPE=125 -SUPER=92 -COMMENT=181 -ANNOTATION_INIT_KEY_LIST=107 -JAVA_ID_START=178 -FLOAT_TYPE_SUFFIX=174 -PRE_DEC=149 -RBRACK=41 -IMPLEMENTS_CLAUSE=140 -SWITCH_BLOCK_LABEL_LIST=154 -LINE_COMMENT=182 -PRIVATE=85 -STATIC=90 -BLOCK_SCOPE=117 -ANNOTATION_INIT_DEFAULT_KEY=106 -SWITCH=93 -NULL=83 -VAR_DECLARATOR=161 -MINUS_ASSIGN=31 -ELSE=66 -STRICTFP=91 -CHARACTER_LITERAL=169 -PRE_INC=150 -ANNOTATION_LIST=108 -ELLIPSIS=17 -NATIVE=81 -OCTAL_ESCAPE=177 -UNARY_MINUS=158 -THROWS=97 -LCURLY=23 -INT=79 -FORMAL_PARAM_VARARG_DECL=135 -METHOD_CALL=144 -ASSERT=54 -TRY=100 -INTERFACE_TOP_LEVEL_SCOPE=139 -SHIFT_LEFT=45 -WS=180 -SHIFT_RIGHT=47 -FORMAL_PARAM_STD_DECL=134 -LOCAL_MODIFIER_LIST=142 -OR=36 -LESS_THAN=25 -SHIFT_RIGHT_ASSIGN=48 -EXTENDS_BOUND_LIST=127 -JAVA_SOURCE=143 -CATCH=59 -FALSE=69 -INTEGER_TYPE_SUFFIX=172 -DECIMAL_LITERAL=167 -THROW=96 -FOR_INIT=131 -PROTECTED=86 -DEC=12 -CLASS=61 -LBRACK=22 -BIT_SHIFT_RIGHT=8 -THROWS_CLAUSE=156 -GREATER_OR_EQUAL=19 -FOR=73 -LOGICAL_NOT=27 -THIS_CONSTRUCTOR_CALL=155 -FLOAT=72 -JAVADOC_COMMENT=183 -ABSTRACT=53 -AND=4 -POST_DEC=147 -AND_ASSIGN=5 -ANNOTATION_SCOPE=110 -MODIFIER_LIST=145 -STATIC_ARRAY_CREATOR=152 -LPAREN=29 -IF=74 -AT=7 -CONSTRUCTOR_DECL=124 -ESCAPE_SEQUENCE=175 -LABELED_STATEMENT=141 -UNICODE_ESCAPE=176 -BOOLEAN=55 -SYNCHRONIZED=94 -EXPR=126 -CLASS_TOP_LEVEL_SCOPE=123 -IMPLEMENTS=75 -CONTINUE=62 -COMMA=11 -TRANSIENT=98 -XOR_ASSIGN=52 -EQUAL=18 -LOGICAL_OR=28 -ARGUMENT_LIST=112 -QUALIFIED_TYPE_IDENT=151 -IDENT=164 -PLUS=38 -ANNOTATION_INIT_BLOCK=105 -HEX_LITERAL=165 -DOT=15 -SHIFT_LEFT_ASSIGN=46 -FORMAL_PARAM_LIST=133 -GENERIC_TYPE_ARG_LIST=137 -DOTSTAR=16 -ANNOTATION_TOP_LEVEL_SCOPE=111 -BYTE=57 -XOR=51 -JAVA_ID_PART=179 -GREATER_THAN=20 -VOLATILE=102 -PARENTESIZED_EXPR=146 -LESS_OR_EQUAL=24 -ARRAY_DECLARATOR_LIST=114 -CLASS_STATIC_INITIALIZER=122 -DEFAULT=63 -OCTAL_LITERAL=166 -HEX_DIGIT=171 -SHORT=89 -INSTANCEOF=76 -MINUS=30 -SEMI=44 -TRUE=99 -EXTENDS_CLAUSE=128 -STAR_ASSIGN=50 -VAR_DECLARATOR_LIST=162 -COLON=10 -ARRAY_DECLARATOR=113 -OR_ASSIGN=37 -ENUM=67 -QUESTION=40 -FINALLY=71 -RCURLY=42 -ASSIGN=6 -PLUS_ASSIGN=39 -ANNOTATION_INIT_ARRAY_ELEMENT=104 -FUNCTION_METHOD_DECL=136 -INTERFACE=77 -DIV=13 -POST_INC=148 -LONG=80 -CLASS_CONSTRUCTOR_CALL=120 -PUBLIC=87 -EXTENDS=68 -FOR_EACH=130 -ARRAY_INITIALIZER=116 -CATCH_CLAUSE_LIST=119 -SUPER_CONSTRUCTOR_CALL=153 - - -class JavaLexer(Lexer): - - grammarFileName = "Java.g" - antlr_version = version_str_to_tuple("3.1.3 Mar 18, 2009 10:09:25") - antlr_version_str = "3.1.3 Mar 18, 2009 10:09:25" - - def __init__(self, input=None, state=None): - if state is None: - state = RecognizerSharedState() - super(JavaLexer, self).__init__(input, state) - - - self.dfa29 = self.DFA29( - self, 29, - eot = self.DFA29_eot, - eof = self.DFA29_eof, - min = self.DFA29_min, - max = self.DFA29_max, - accept = self.DFA29_accept, - special = self.DFA29_special, - transition = self.DFA29_transition - ) - - - - - - - # $ANTLR start "AND" - def mAND(self, ): - - try: - _type = AND - _channel = DEFAULT_CHANNEL - - # Java.g:7:5: ( '&' ) - # Java.g:7:7: '&' - pass - self.match(38) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "AND" - - - - # $ANTLR start "AND_ASSIGN" - def mAND_ASSIGN(self, ): - - try: - _type = AND_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:8:12: ( '&=' ) - # Java.g:8:14: '&=' - pass - self.match("&=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "AND_ASSIGN" - - - - # $ANTLR start "ASSIGN" - def mASSIGN(self, ): - - try: - _type = ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:9:8: ( '=' ) - # Java.g:9:10: '=' - pass - self.match(61) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ASSIGN" - - - - # $ANTLR start "AT" - def mAT(self, ): - - try: - _type = AT - _channel = DEFAULT_CHANNEL - - # Java.g:10:4: ( '@' ) - # Java.g:10:6: '@' - pass - self.match(64) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "AT" - - - - # $ANTLR start "BIT_SHIFT_RIGHT" - def mBIT_SHIFT_RIGHT(self, ): - - try: - _type = BIT_SHIFT_RIGHT - _channel = DEFAULT_CHANNEL - - # Java.g:11:17: ( '>>>' ) - # Java.g:11:19: '>>>' - pass - self.match(">>>") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BIT_SHIFT_RIGHT" - - - - # $ANTLR start "BIT_SHIFT_RIGHT_ASSIGN" - def mBIT_SHIFT_RIGHT_ASSIGN(self, ): - - try: - _type = BIT_SHIFT_RIGHT_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:12:24: ( '>>>=' ) - # Java.g:12:26: '>>>=' - pass - self.match(">>>=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BIT_SHIFT_RIGHT_ASSIGN" - - - - # $ANTLR start "COLON" - def mCOLON(self, ): - - try: - _type = COLON - _channel = DEFAULT_CHANNEL - - # Java.g:13:7: ( ':' ) - # Java.g:13:9: ':' - pass - self.match(58) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "COLON" - - - - # $ANTLR start "COMMA" - def mCOMMA(self, ): - - try: - _type = COMMA - _channel = DEFAULT_CHANNEL - - # Java.g:14:7: ( ',' ) - # Java.g:14:9: ',' - pass - self.match(44) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "COMMA" - - - - # $ANTLR start "DEC" - def mDEC(self, ): - - try: - _type = DEC - _channel = DEFAULT_CHANNEL - - # Java.g:15:5: ( '--' ) - # Java.g:15:7: '--' - pass - self.match("--") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DEC" - - - - # $ANTLR start "DIV" - def mDIV(self, ): - - try: - _type = DIV - _channel = DEFAULT_CHANNEL - - # Java.g:16:5: ( '/' ) - # Java.g:16:7: '/' - pass - self.match(47) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DIV" - - - - # $ANTLR start "DIV_ASSIGN" - def mDIV_ASSIGN(self, ): - - try: - _type = DIV_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:17:12: ( '/=' ) - # Java.g:17:14: '/=' - pass - self.match("/=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DIV_ASSIGN" - - - - # $ANTLR start "DOT" - def mDOT(self, ): - - try: - _type = DOT - _channel = DEFAULT_CHANNEL - - # Java.g:18:5: ( '.' ) - # Java.g:18:7: '.' - pass - self.match(46) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DOT" - - - - # $ANTLR start "DOTSTAR" - def mDOTSTAR(self, ): - - try: - _type = DOTSTAR - _channel = DEFAULT_CHANNEL - - # Java.g:19:9: ( '.*' ) - # Java.g:19:11: '.*' - pass - self.match(".*") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DOTSTAR" - - - - # $ANTLR start "ELLIPSIS" - def mELLIPSIS(self, ): - - try: - _type = ELLIPSIS - _channel = DEFAULT_CHANNEL - - # Java.g:20:10: ( '...' ) - # Java.g:20:12: '...' - pass - self.match("...") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ELLIPSIS" - - - - # $ANTLR start "EQUAL" - def mEQUAL(self, ): - - try: - _type = EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:21:7: ( '==' ) - # Java.g:21:9: '==' - pass - self.match("==") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "EQUAL" - - - - # $ANTLR start "GREATER_OR_EQUAL" - def mGREATER_OR_EQUAL(self, ): - - try: - _type = GREATER_OR_EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:22:18: ( '>=' ) - # Java.g:22:20: '>=' - pass - self.match(">=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "GREATER_OR_EQUAL" - - - - # $ANTLR start "GREATER_THAN" - def mGREATER_THAN(self, ): - - try: - _type = GREATER_THAN - _channel = DEFAULT_CHANNEL - - # Java.g:23:14: ( '>' ) - # Java.g:23:16: '>' - pass - self.match(62) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "GREATER_THAN" - - - - # $ANTLR start "INC" - def mINC(self, ): - - try: - _type = INC - _channel = DEFAULT_CHANNEL - - # Java.g:24:5: ( '++' ) - # Java.g:24:7: '++' - pass - self.match("++") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INC" - - - - # $ANTLR start "LBRACK" - def mLBRACK(self, ): - - try: - _type = LBRACK - _channel = DEFAULT_CHANNEL - - # Java.g:25:8: ( '[' ) - # Java.g:25:10: '[' - pass - self.match(91) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LBRACK" - - - - # $ANTLR start "LCURLY" - def mLCURLY(self, ): - - try: - _type = LCURLY - _channel = DEFAULT_CHANNEL - - # Java.g:26:8: ( '{' ) - # Java.g:26:10: '{' - pass - self.match(123) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LCURLY" - - - - # $ANTLR start "LESS_OR_EQUAL" - def mLESS_OR_EQUAL(self, ): - - try: - _type = LESS_OR_EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:27:15: ( '<=' ) - # Java.g:27:17: '<=' - pass - self.match("<=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LESS_OR_EQUAL" - - - - # $ANTLR start "LESS_THAN" - def mLESS_THAN(self, ): - - try: - _type = LESS_THAN - _channel = DEFAULT_CHANNEL - - # Java.g:28:11: ( '<' ) - # Java.g:28:13: '<' - pass - self.match(60) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LESS_THAN" - - - - # $ANTLR start "LOGICAL_AND" - def mLOGICAL_AND(self, ): - - try: - _type = LOGICAL_AND - _channel = DEFAULT_CHANNEL - - # Java.g:29:13: ( '&&' ) - # Java.g:29:15: '&&' - pass - self.match("&&") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LOGICAL_AND" - - - - # $ANTLR start "LOGICAL_NOT" - def mLOGICAL_NOT(self, ): - - try: - _type = LOGICAL_NOT - _channel = DEFAULT_CHANNEL - - # Java.g:30:13: ( '!' ) - # Java.g:30:15: '!' - pass - self.match(33) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LOGICAL_NOT" - - - - # $ANTLR start "LOGICAL_OR" - def mLOGICAL_OR(self, ): - - try: - _type = LOGICAL_OR - _channel = DEFAULT_CHANNEL - - # Java.g:31:12: ( '||' ) - # Java.g:31:14: '||' - pass - self.match("||") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LOGICAL_OR" - - - - # $ANTLR start "LPAREN" - def mLPAREN(self, ): - - try: - _type = LPAREN - _channel = DEFAULT_CHANNEL - - # Java.g:32:8: ( '(' ) - # Java.g:32:10: '(' - pass - self.match(40) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LPAREN" - - - - # $ANTLR start "MINUS" - def mMINUS(self, ): - - try: - _type = MINUS - _channel = DEFAULT_CHANNEL - - # Java.g:33:7: ( '-' ) - # Java.g:33:9: '-' - pass - self.match(45) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MINUS" - - - - # $ANTLR start "MINUS_ASSIGN" - def mMINUS_ASSIGN(self, ): - - try: - _type = MINUS_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:34:14: ( '-=' ) - # Java.g:34:16: '-=' - pass - self.match("-=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MINUS_ASSIGN" - - - - # $ANTLR start "MOD" - def mMOD(self, ): - - try: - _type = MOD - _channel = DEFAULT_CHANNEL - - # Java.g:35:5: ( '%' ) - # Java.g:35:7: '%' - pass - self.match(37) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MOD" - - - - # $ANTLR start "MOD_ASSIGN" - def mMOD_ASSIGN(self, ): - - try: - _type = MOD_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:36:12: ( '%=' ) - # Java.g:36:14: '%=' - pass - self.match("%=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "MOD_ASSIGN" - - - - # $ANTLR start "NOT" - def mNOT(self, ): - - try: - _type = NOT - _channel = DEFAULT_CHANNEL - - # Java.g:37:5: ( '~' ) - # Java.g:37:7: '~' - pass - self.match(126) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NOT" - - - - # $ANTLR start "NOT_EQUAL" - def mNOT_EQUAL(self, ): - - try: - _type = NOT_EQUAL - _channel = DEFAULT_CHANNEL - - # Java.g:38:11: ( '!=' ) - # Java.g:38:13: '!=' - pass - self.match("!=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NOT_EQUAL" - - - - # $ANTLR start "OR" - def mOR(self, ): - - try: - _type = OR - _channel = DEFAULT_CHANNEL - - # Java.g:39:4: ( '|' ) - # Java.g:39:6: '|' - pass - self.match(124) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "OR" - - - - # $ANTLR start "OR_ASSIGN" - def mOR_ASSIGN(self, ): - - try: - _type = OR_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:40:11: ( '|=' ) - # Java.g:40:13: '|=' - pass - self.match("|=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "OR_ASSIGN" - - - - # $ANTLR start "PLUS" - def mPLUS(self, ): - - try: - _type = PLUS - _channel = DEFAULT_CHANNEL - - # Java.g:41:6: ( '+' ) - # Java.g:41:8: '+' - pass - self.match(43) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PLUS" - - - - # $ANTLR start "PLUS_ASSIGN" - def mPLUS_ASSIGN(self, ): - - try: - _type = PLUS_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:42:13: ( '+=' ) - # Java.g:42:15: '+=' - pass - self.match("+=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PLUS_ASSIGN" - - - - # $ANTLR start "QUESTION" - def mQUESTION(self, ): - - try: - _type = QUESTION - _channel = DEFAULT_CHANNEL - - # Java.g:43:10: ( '?' ) - # Java.g:43:12: '?' - pass - self.match(63) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "QUESTION" - - - - # $ANTLR start "RBRACK" - def mRBRACK(self, ): - - try: - _type = RBRACK - _channel = DEFAULT_CHANNEL - - # Java.g:44:8: ( ']' ) - # Java.g:44:10: ']' - pass - self.match(93) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RBRACK" - - - - # $ANTLR start "RCURLY" - def mRCURLY(self, ): - - try: - _type = RCURLY - _channel = DEFAULT_CHANNEL - - # Java.g:45:8: ( '}' ) - # Java.g:45:10: '}' - pass - self.match(125) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RCURLY" - - - - # $ANTLR start "RPAREN" - def mRPAREN(self, ): - - try: - _type = RPAREN - _channel = DEFAULT_CHANNEL - - # Java.g:46:8: ( ')' ) - # Java.g:46:10: ')' - pass - self.match(41) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RPAREN" - - - - # $ANTLR start "SEMI" - def mSEMI(self, ): - - try: - _type = SEMI - _channel = DEFAULT_CHANNEL - - # Java.g:47:6: ( ';' ) - # Java.g:47:8: ';' - pass - self.match(59) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SEMI" - - - - # $ANTLR start "SHIFT_LEFT" - def mSHIFT_LEFT(self, ): - - try: - _type = SHIFT_LEFT - _channel = DEFAULT_CHANNEL - - # Java.g:48:12: ( '<<' ) - # Java.g:48:14: '<<' - pass - self.match("<<") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_LEFT" - - - - # $ANTLR start "SHIFT_LEFT_ASSIGN" - def mSHIFT_LEFT_ASSIGN(self, ): - - try: - _type = SHIFT_LEFT_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:49:19: ( '<<=' ) - # Java.g:49:21: '<<=' - pass - self.match("<<=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_LEFT_ASSIGN" - - - - # $ANTLR start "SHIFT_RIGHT" - def mSHIFT_RIGHT(self, ): - - try: - _type = SHIFT_RIGHT - _channel = DEFAULT_CHANNEL - - # Java.g:50:13: ( '>>' ) - # Java.g:50:15: '>>' - pass - self.match(">>") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_RIGHT" - - - - # $ANTLR start "SHIFT_RIGHT_ASSIGN" - def mSHIFT_RIGHT_ASSIGN(self, ): - - try: - _type = SHIFT_RIGHT_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:51:20: ( '>>=' ) - # Java.g:51:22: '>>=' - pass - self.match(">>=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHIFT_RIGHT_ASSIGN" - - - - # $ANTLR start "STAR" - def mSTAR(self, ): - - try: - _type = STAR - _channel = DEFAULT_CHANNEL - - # Java.g:52:6: ( '*' ) - # Java.g:52:8: '*' - pass - self.match(42) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STAR" - - - - # $ANTLR start "STAR_ASSIGN" - def mSTAR_ASSIGN(self, ): - - try: - _type = STAR_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:53:13: ( '*=' ) - # Java.g:53:15: '*=' - pass - self.match("*=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STAR_ASSIGN" - - - - # $ANTLR start "XOR" - def mXOR(self, ): - - try: - _type = XOR - _channel = DEFAULT_CHANNEL - - # Java.g:54:5: ( '^' ) - # Java.g:54:7: '^' - pass - self.match(94) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "XOR" - - - - # $ANTLR start "XOR_ASSIGN" - def mXOR_ASSIGN(self, ): - - try: - _type = XOR_ASSIGN - _channel = DEFAULT_CHANNEL - - # Java.g:55:12: ( '^=' ) - # Java.g:55:14: '^=' - pass - self.match("^=") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "XOR_ASSIGN" - - - - # $ANTLR start "ABSTRACT" - def mABSTRACT(self, ): - - try: - _type = ABSTRACT - _channel = DEFAULT_CHANNEL - - # Java.g:56:10: ( 'abstract' ) - # Java.g:56:12: 'abstract' - pass - self.match("abstract") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ABSTRACT" - - - - # $ANTLR start "ASSERT" - def mASSERT(self, ): - - try: - _type = ASSERT - _channel = DEFAULT_CHANNEL - - # Java.g:57:8: ( 'assert' ) - # Java.g:57:10: 'assert' - pass - self.match("assert") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ASSERT" - - - - # $ANTLR start "BOOLEAN" - def mBOOLEAN(self, ): - - try: - _type = BOOLEAN - _channel = DEFAULT_CHANNEL - - # Java.g:58:9: ( 'boolean' ) - # Java.g:58:11: 'boolean' - pass - self.match("boolean") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BOOLEAN" - - - - # $ANTLR start "BREAK" - def mBREAK(self, ): - - try: - _type = BREAK - _channel = DEFAULT_CHANNEL - - # Java.g:59:7: ( 'break' ) - # Java.g:59:9: 'break' - pass - self.match("break") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BREAK" - - - - # $ANTLR start "BYTE" - def mBYTE(self, ): - - try: - _type = BYTE - _channel = DEFAULT_CHANNEL - - # Java.g:60:6: ( 'byte' ) - # Java.g:60:8: 'byte' - pass - self.match("byte") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "BYTE" - - - - # $ANTLR start "CASE" - def mCASE(self, ): - - try: - _type = CASE - _channel = DEFAULT_CHANNEL - - # Java.g:61:6: ( 'case' ) - # Java.g:61:8: 'case' - pass - self.match("case") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CASE" - - - - # $ANTLR start "CATCH" - def mCATCH(self, ): - - try: - _type = CATCH - _channel = DEFAULT_CHANNEL - - # Java.g:62:7: ( 'catch' ) - # Java.g:62:9: 'catch' - pass - self.match("catch") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CATCH" - - - - # $ANTLR start "CHAR" - def mCHAR(self, ): - - try: - _type = CHAR - _channel = DEFAULT_CHANNEL - - # Java.g:63:6: ( 'char' ) - # Java.g:63:8: 'char' - pass - self.match("char") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CHAR" - - - - # $ANTLR start "CLASS" - def mCLASS(self, ): - - try: - _type = CLASS - _channel = DEFAULT_CHANNEL - - # Java.g:64:7: ( 'class' ) - # Java.g:64:9: 'class' - pass - self.match("class") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CLASS" - - - - # $ANTLR start "CONTINUE" - def mCONTINUE(self, ): - - try: - _type = CONTINUE - _channel = DEFAULT_CHANNEL - - # Java.g:65:10: ( 'continue' ) - # Java.g:65:12: 'continue' - pass - self.match("continue") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CONTINUE" - - - - # $ANTLR start "DEFAULT" - def mDEFAULT(self, ): - - try: - _type = DEFAULT - _channel = DEFAULT_CHANNEL - - # Java.g:66:9: ( 'default' ) - # Java.g:66:11: 'default' - pass - self.match("default") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DEFAULT" - - - - # $ANTLR start "DO" - def mDO(self, ): - - try: - _type = DO - _channel = DEFAULT_CHANNEL - - # Java.g:67:4: ( 'do' ) - # Java.g:67:6: 'do' - pass - self.match("do") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DO" - - - - # $ANTLR start "DOUBLE" - def mDOUBLE(self, ): - - try: - _type = DOUBLE - _channel = DEFAULT_CHANNEL - - # Java.g:68:8: ( 'double' ) - # Java.g:68:10: 'double' - pass - self.match("double") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DOUBLE" - - - - # $ANTLR start "ELSE" - def mELSE(self, ): - - try: - _type = ELSE - _channel = DEFAULT_CHANNEL - - # Java.g:69:6: ( 'else' ) - # Java.g:69:8: 'else' - pass - self.match("else") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ELSE" - - - - # $ANTLR start "ENUM" - def mENUM(self, ): - - try: - _type = ENUM - _channel = DEFAULT_CHANNEL - - # Java.g:70:6: ( 'enum' ) - # Java.g:70:8: 'enum' - pass - self.match("enum") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "ENUM" - - - - # $ANTLR start "EXTENDS" - def mEXTENDS(self, ): - - try: - _type = EXTENDS - _channel = DEFAULT_CHANNEL - - # Java.g:71:9: ( 'extends' ) - # Java.g:71:11: 'extends' - pass - self.match("extends") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "EXTENDS" - - - - # $ANTLR start "FALSE" - def mFALSE(self, ): - - try: - _type = FALSE - _channel = DEFAULT_CHANNEL - - # Java.g:72:7: ( 'false' ) - # Java.g:72:9: 'false' - pass - self.match("false") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FALSE" - - - - # $ANTLR start "FINAL" - def mFINAL(self, ): - - try: - _type = FINAL - _channel = DEFAULT_CHANNEL - - # Java.g:73:7: ( 'final' ) - # Java.g:73:9: 'final' - pass - self.match("final") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FINAL" - - - - # $ANTLR start "FINALLY" - def mFINALLY(self, ): - - try: - _type = FINALLY - _channel = DEFAULT_CHANNEL - - # Java.g:74:9: ( 'finally' ) - # Java.g:74:11: 'finally' - pass - self.match("finally") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FINALLY" - - - - # $ANTLR start "FLOAT" - def mFLOAT(self, ): - - try: - _type = FLOAT - _channel = DEFAULT_CHANNEL - - # Java.g:75:7: ( 'float' ) - # Java.g:75:9: 'float' - pass - self.match("float") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FLOAT" - - - - # $ANTLR start "FOR" - def mFOR(self, ): - - try: - _type = FOR - _channel = DEFAULT_CHANNEL - - # Java.g:76:5: ( 'for' ) - # Java.g:76:7: 'for' - pass - self.match("for") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FOR" - - - - # $ANTLR start "IF" - def mIF(self, ): - - try: - _type = IF - _channel = DEFAULT_CHANNEL - - # Java.g:77:4: ( 'if' ) - # Java.g:77:6: 'if' - pass - self.match("if") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IF" - - - - # $ANTLR start "IMPLEMENTS" - def mIMPLEMENTS(self, ): - - try: - _type = IMPLEMENTS - _channel = DEFAULT_CHANNEL - - # Java.g:78:12: ( 'implements' ) - # Java.g:78:14: 'implements' - pass - self.match("implements") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IMPLEMENTS" - - - - # $ANTLR start "INSTANCEOF" - def mINSTANCEOF(self, ): - - try: - _type = INSTANCEOF - _channel = DEFAULT_CHANNEL - - # Java.g:79:12: ( 'instanceof' ) - # Java.g:79:14: 'instanceof' - pass - self.match("instanceof") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INSTANCEOF" - - - - # $ANTLR start "INTERFACE" - def mINTERFACE(self, ): - - try: - _type = INTERFACE - _channel = DEFAULT_CHANNEL - - # Java.g:80:11: ( 'interface' ) - # Java.g:80:13: 'interface' - pass - self.match("interface") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INTERFACE" - - - - # $ANTLR start "IMPORT" - def mIMPORT(self, ): - - try: - _type = IMPORT - _channel = DEFAULT_CHANNEL - - # Java.g:81:8: ( 'import' ) - # Java.g:81:10: 'import' - pass - self.match("import") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IMPORT" - - - - # $ANTLR start "INT" - def mINT(self, ): - - try: - _type = INT - _channel = DEFAULT_CHANNEL - - # Java.g:82:5: ( 'int' ) - # Java.g:82:7: 'int' - pass - self.match("int") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "INT" - - - - # $ANTLR start "LONG" - def mLONG(self, ): - - try: - _type = LONG - _channel = DEFAULT_CHANNEL - - # Java.g:83:6: ( 'long' ) - # Java.g:83:8: 'long' - pass - self.match("long") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LONG" - - - - # $ANTLR start "NATIVE" - def mNATIVE(self, ): - - try: - _type = NATIVE - _channel = DEFAULT_CHANNEL - - # Java.g:84:8: ( 'native' ) - # Java.g:84:10: 'native' - pass - self.match("native") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NATIVE" - - - - # $ANTLR start "NEW" - def mNEW(self, ): - - try: - _type = NEW - _channel = DEFAULT_CHANNEL - - # Java.g:85:5: ( 'new' ) - # Java.g:85:7: 'new' - pass - self.match("new") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NEW" - - - - # $ANTLR start "NULL" - def mNULL(self, ): - - try: - _type = NULL - _channel = DEFAULT_CHANNEL - - # Java.g:86:6: ( 'null' ) - # Java.g:86:8: 'null' - pass - self.match("null") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "NULL" - - - - # $ANTLR start "PACKAGE" - def mPACKAGE(self, ): - - try: - _type = PACKAGE - _channel = DEFAULT_CHANNEL - - # Java.g:87:9: ( 'package' ) - # Java.g:87:11: 'package' - pass - self.match("package") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PACKAGE" - - - - # $ANTLR start "PRIVATE" - def mPRIVATE(self, ): - - try: - _type = PRIVATE - _channel = DEFAULT_CHANNEL - - # Java.g:88:9: ( 'private' ) - # Java.g:88:11: 'private' - pass - self.match("private") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PRIVATE" - - - - # $ANTLR start "PROTECTED" - def mPROTECTED(self, ): - - try: - _type = PROTECTED - _channel = DEFAULT_CHANNEL - - # Java.g:89:11: ( 'protected' ) - # Java.g:89:13: 'protected' - pass - self.match("protected") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PROTECTED" - - - - # $ANTLR start "PUBLIC" - def mPUBLIC(self, ): - - try: - _type = PUBLIC - _channel = DEFAULT_CHANNEL - - # Java.g:90:8: ( 'public' ) - # Java.g:90:10: 'public' - pass - self.match("public") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "PUBLIC" - - - - # $ANTLR start "RETURN" - def mRETURN(self, ): - - try: - _type = RETURN - _channel = DEFAULT_CHANNEL - - # Java.g:91:8: ( 'return' ) - # Java.g:91:10: 'return' - pass - self.match("return") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "RETURN" - - - - # $ANTLR start "SHORT" - def mSHORT(self, ): - - try: - _type = SHORT - _channel = DEFAULT_CHANNEL - - # Java.g:92:7: ( 'short' ) - # Java.g:92:9: 'short' - pass - self.match("short") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SHORT" - - - - # $ANTLR start "STATIC" - def mSTATIC(self, ): - - try: - _type = STATIC - _channel = DEFAULT_CHANNEL - - # Java.g:93:8: ( 'static' ) - # Java.g:93:10: 'static' - pass - self.match("static") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STATIC" - - - - # $ANTLR start "STRICTFP" - def mSTRICTFP(self, ): - - try: - _type = STRICTFP - _channel = DEFAULT_CHANNEL - - # Java.g:94:10: ( 'strictfp' ) - # Java.g:94:12: 'strictfp' - pass - self.match("strictfp") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STRICTFP" - - - - # $ANTLR start "SUPER" - def mSUPER(self, ): - - try: - _type = SUPER - _channel = DEFAULT_CHANNEL - - # Java.g:95:7: ( 'super' ) - # Java.g:95:9: 'super' - pass - self.match("super") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SUPER" - - - - # $ANTLR start "SWITCH" - def mSWITCH(self, ): - - try: - _type = SWITCH - _channel = DEFAULT_CHANNEL - - # Java.g:96:8: ( 'switch' ) - # Java.g:96:10: 'switch' - pass - self.match("switch") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SWITCH" - - - - # $ANTLR start "SYNCHRONIZED" - def mSYNCHRONIZED(self, ): - - try: - _type = SYNCHRONIZED - _channel = DEFAULT_CHANNEL - - # Java.g:97:14: ( 'synchronized' ) - # Java.g:97:16: 'synchronized' - pass - self.match("synchronized") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "SYNCHRONIZED" - - - - # $ANTLR start "THIS" - def mTHIS(self, ): - - try: - _type = THIS - _channel = DEFAULT_CHANNEL - - # Java.g:98:6: ( 'this' ) - # Java.g:98:8: 'this' - pass - self.match("this") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "THIS" - - - - # $ANTLR start "THROW" - def mTHROW(self, ): - - try: - _type = THROW - _channel = DEFAULT_CHANNEL - - # Java.g:99:7: ( 'throw' ) - # Java.g:99:9: 'throw' - pass - self.match("throw") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "THROW" - - - - # $ANTLR start "THROWS" - def mTHROWS(self, ): - - try: - _type = THROWS - _channel = DEFAULT_CHANNEL - - # Java.g:100:8: ( 'throws' ) - # Java.g:100:10: 'throws' - pass - self.match("throws") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "THROWS" - - - - # $ANTLR start "TRANSIENT" - def mTRANSIENT(self, ): - - try: - _type = TRANSIENT - _channel = DEFAULT_CHANNEL - - # Java.g:101:11: ( 'transient' ) - # Java.g:101:13: 'transient' - pass - self.match("transient") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "TRANSIENT" - - - - # $ANTLR start "TRUE" - def mTRUE(self, ): - - try: - _type = TRUE - _channel = DEFAULT_CHANNEL - - # Java.g:102:6: ( 'true' ) - # Java.g:102:8: 'true' - pass - self.match("true") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "TRUE" - - - - # $ANTLR start "TRY" - def mTRY(self, ): - - try: - _type = TRY - _channel = DEFAULT_CHANNEL - - # Java.g:103:5: ( 'try' ) - # Java.g:103:7: 'try' - pass - self.match("try") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "TRY" - - - - # $ANTLR start "VOID" - def mVOID(self, ): - - try: - _type = VOID - _channel = DEFAULT_CHANNEL - - # Java.g:104:6: ( 'void' ) - # Java.g:104:8: 'void' - pass - self.match("void") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "VOID" - - - - # $ANTLR start "VOLATILE" - def mVOLATILE(self, ): - - try: - _type = VOLATILE - _channel = DEFAULT_CHANNEL - - # Java.g:105:10: ( 'volatile' ) - # Java.g:105:12: 'volatile' - pass - self.match("volatile") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "VOLATILE" - - - - # $ANTLR start "WHILE" - def mWHILE(self, ): - - try: - _type = WHILE - _channel = DEFAULT_CHANNEL - - # Java.g:106:7: ( 'while' ) - # Java.g:106:9: 'while' - pass - self.match("while") - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "WHILE" - - - - # $ANTLR start "HEX_LITERAL" - def mHEX_LITERAL(self, ): - - try: - _type = HEX_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:985:13: ( '0' ( 'x' | 'X' ) ( HEX_DIGIT )+ ( INTEGER_TYPE_SUFFIX )? ) - # Java.g:985:15: '0' ( 'x' | 'X' ) ( HEX_DIGIT )+ ( INTEGER_TYPE_SUFFIX )? - pass - self.match(48) - if self.input.LA(1) == 88 or self.input.LA(1) == 120: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - # Java.g:985:29: ( HEX_DIGIT )+ - cnt1 = 0 - while True: #loop1 - alt1 = 2 - LA1_0 = self.input.LA(1) - - if ((48 <= LA1_0 <= 57) or (65 <= LA1_0 <= 70) or (97 <= LA1_0 <= 102)) : - alt1 = 1 - - - if alt1 == 1: - # Java.g:985:29: HEX_DIGIT - pass - self.mHEX_DIGIT() - - - else: - if cnt1 >= 1: - break #loop1 - - eee = EarlyExitException(1, self.input) - raise eee - - cnt1 += 1 - # Java.g:985:40: ( INTEGER_TYPE_SUFFIX )? - alt2 = 2 - LA2_0 = self.input.LA(1) - - if (LA2_0 == 76 or LA2_0 == 108) : - alt2 = 1 - if alt2 == 1: - # Java.g:985:40: INTEGER_TYPE_SUFFIX - pass - self.mINTEGER_TYPE_SUFFIX() - - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "HEX_LITERAL" - - - - # $ANTLR start "DECIMAL_LITERAL" - def mDECIMAL_LITERAL(self, ): - - try: - _type = DECIMAL_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:987:17: ( ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( INTEGER_TYPE_SUFFIX )? ) - # Java.g:987:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) ( INTEGER_TYPE_SUFFIX )? - pass - # Java.g:987:19: ( '0' | '1' .. '9' ( '0' .. '9' )* ) - alt4 = 2 - LA4_0 = self.input.LA(1) - - if (LA4_0 == 48) : - alt4 = 1 - elif ((49 <= LA4_0 <= 57)) : - alt4 = 2 - else: - nvae = NoViableAltException("", 4, 0, self.input) - - raise nvae - - if alt4 == 1: - # Java.g:987:20: '0' - pass - self.match(48) - - - elif alt4 == 2: - # Java.g:987:26: '1' .. '9' ( '0' .. '9' )* - pass - self.matchRange(49, 57) - # Java.g:987:35: ( '0' .. '9' )* - while True: #loop3 - alt3 = 2 - LA3_0 = self.input.LA(1) - - if ((48 <= LA3_0 <= 57)) : - alt3 = 1 - - - if alt3 == 1: - # Java.g:987:35: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - break #loop3 - - - - # Java.g:987:46: ( INTEGER_TYPE_SUFFIX )? - alt5 = 2 - LA5_0 = self.input.LA(1) - - if (LA5_0 == 76 or LA5_0 == 108) : - alt5 = 1 - if alt5 == 1: - # Java.g:987:46: INTEGER_TYPE_SUFFIX - pass - self.mINTEGER_TYPE_SUFFIX() - - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "DECIMAL_LITERAL" - - - - # $ANTLR start "OCTAL_LITERAL" - def mOCTAL_LITERAL(self, ): - - try: - _type = OCTAL_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:989:15: ( '0' ( '0' .. '7' )+ ( INTEGER_TYPE_SUFFIX )? ) - # Java.g:989:17: '0' ( '0' .. '7' )+ ( INTEGER_TYPE_SUFFIX )? - pass - self.match(48) - # Java.g:989:21: ( '0' .. '7' )+ - cnt6 = 0 - while True: #loop6 - alt6 = 2 - LA6_0 = self.input.LA(1) - - if ((48 <= LA6_0 <= 55)) : - alt6 = 1 - - - if alt6 == 1: - # Java.g:989:22: '0' .. '7' - pass - self.matchRange(48, 55) - - - else: - if cnt6 >= 1: - break #loop6 - - eee = EarlyExitException(6, self.input) - raise eee - - cnt6 += 1 - # Java.g:989:33: ( INTEGER_TYPE_SUFFIX )? - alt7 = 2 - LA7_0 = self.input.LA(1) - - if (LA7_0 == 76 or LA7_0 == 108) : - alt7 = 1 - if alt7 == 1: - # Java.g:989:33: INTEGER_TYPE_SUFFIX - pass - self.mINTEGER_TYPE_SUFFIX() - - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "OCTAL_LITERAL" - - - - # $ANTLR start "HEX_DIGIT" - def mHEX_DIGIT(self, ): - - try: - # Java.g:992:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) ) - # Java.g:992:13: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) - pass - if (48 <= self.input.LA(1) <= 57) or (65 <= self.input.LA(1) <= 70) or (97 <= self.input.LA(1) <= 102): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "HEX_DIGIT" - - - - # $ANTLR start "INTEGER_TYPE_SUFFIX" - def mINTEGER_TYPE_SUFFIX(self, ): - - try: - # Java.g:995:21: ( ( 'l' | 'L' ) ) - # Java.g:995:23: ( 'l' | 'L' ) - pass - if self.input.LA(1) == 76 or self.input.LA(1) == 108: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "INTEGER_TYPE_SUFFIX" - - - - # $ANTLR start "FLOATING_POINT_LITERAL" - def mFLOATING_POINT_LITERAL(self, ): - - try: - _type = FLOATING_POINT_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:998:5: ( ( '0' .. '9' )+ ( DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? | EXPONENT ( FLOAT_TYPE_SUFFIX )? | FLOAT_TYPE_SUFFIX ) | DOT ( '0' .. '9' )+ ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? ) - alt17 = 2 - LA17_0 = self.input.LA(1) - - if ((48 <= LA17_0 <= 57)) : - alt17 = 1 - elif (LA17_0 == 46) : - alt17 = 2 - else: - nvae = NoViableAltException("", 17, 0, self.input) - - raise nvae - - if alt17 == 1: - # Java.g:998:9: ( '0' .. '9' )+ ( DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? | EXPONENT ( FLOAT_TYPE_SUFFIX )? | FLOAT_TYPE_SUFFIX ) - pass - # Java.g:998:9: ( '0' .. '9' )+ - cnt8 = 0 - while True: #loop8 - alt8 = 2 - LA8_0 = self.input.LA(1) - - if ((48 <= LA8_0 <= 57)) : - alt8 = 1 - - - if alt8 == 1: - # Java.g:998:10: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - if cnt8 >= 1: - break #loop8 - - eee = EarlyExitException(8, self.input) - raise eee - - cnt8 += 1 - # Java.g:999:9: ( DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? | EXPONENT ( FLOAT_TYPE_SUFFIX )? | FLOAT_TYPE_SUFFIX ) - alt13 = 3 - LA13 = self.input.LA(1) - if LA13 == 46: - alt13 = 1 - elif LA13 == 69 or LA13 == 101: - alt13 = 2 - elif LA13 == 68 or LA13 == 70 or LA13 == 100 or LA13 == 102: - alt13 = 3 - else: - nvae = NoViableAltException("", 13, 0, self.input) - - raise nvae - - if alt13 == 1: - # Java.g:1000:13: DOT ( '0' .. '9' )* ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? - pass - self.mDOT() - # Java.g:1000:17: ( '0' .. '9' )* - while True: #loop9 - alt9 = 2 - LA9_0 = self.input.LA(1) - - if ((48 <= LA9_0 <= 57)) : - alt9 = 1 - - - if alt9 == 1: - # Java.g:1000:18: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - break #loop9 - # Java.g:1000:29: ( EXPONENT )? - alt10 = 2 - LA10_0 = self.input.LA(1) - - if (LA10_0 == 69 or LA10_0 == 101) : - alt10 = 1 - if alt10 == 1: - # Java.g:1000:29: EXPONENT - pass - self.mEXPONENT() - - - - # Java.g:1000:39: ( FLOAT_TYPE_SUFFIX )? - alt11 = 2 - LA11_0 = self.input.LA(1) - - if (LA11_0 == 68 or LA11_0 == 70 or LA11_0 == 100 or LA11_0 == 102) : - alt11 = 1 - if alt11 == 1: - # Java.g:1000:39: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - elif alt13 == 2: - # Java.g:1001:13: EXPONENT ( FLOAT_TYPE_SUFFIX )? - pass - self.mEXPONENT() - # Java.g:1001:22: ( FLOAT_TYPE_SUFFIX )? - alt12 = 2 - LA12_0 = self.input.LA(1) - - if (LA12_0 == 68 or LA12_0 == 70 or LA12_0 == 100 or LA12_0 == 102) : - alt12 = 1 - if alt12 == 1: - # Java.g:1001:22: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - elif alt13 == 3: - # Java.g:1002:13: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - elif alt17 == 2: - # Java.g:1004:9: DOT ( '0' .. '9' )+ ( EXPONENT )? ( FLOAT_TYPE_SUFFIX )? - pass - self.mDOT() - # Java.g:1004:13: ( '0' .. '9' )+ - cnt14 = 0 - while True: #loop14 - alt14 = 2 - LA14_0 = self.input.LA(1) - - if ((48 <= LA14_0 <= 57)) : - alt14 = 1 - - - if alt14 == 1: - # Java.g:1004:14: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - if cnt14 >= 1: - break #loop14 - - eee = EarlyExitException(14, self.input) - raise eee - - cnt14 += 1 - # Java.g:1004:25: ( EXPONENT )? - alt15 = 2 - LA15_0 = self.input.LA(1) - - if (LA15_0 == 69 or LA15_0 == 101) : - alt15 = 1 - if alt15 == 1: - # Java.g:1004:25: EXPONENT - pass - self.mEXPONENT() - - - - # Java.g:1004:35: ( FLOAT_TYPE_SUFFIX )? - alt16 = 2 - LA16_0 = self.input.LA(1) - - if (LA16_0 == 68 or LA16_0 == 70 or LA16_0 == 100 or LA16_0 == 102) : - alt16 = 1 - if alt16 == 1: - # Java.g:1004:35: FLOAT_TYPE_SUFFIX - pass - self.mFLOAT_TYPE_SUFFIX() - - - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "FLOATING_POINT_LITERAL" - - - - # $ANTLR start "EXPONENT" - def mEXPONENT(self, ): - - try: - # Java.g:1008:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ ) - # Java.g:1008:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ - pass - if self.input.LA(1) == 69 or self.input.LA(1) == 101: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - # Java.g:1008:22: ( '+' | '-' )? - alt18 = 2 - LA18_0 = self.input.LA(1) - - if (LA18_0 == 43 or LA18_0 == 45) : - alt18 = 1 - if alt18 == 1: - # Java.g: - pass - if self.input.LA(1) == 43 or self.input.LA(1) == 45: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - # Java.g:1008:33: ( '0' .. '9' )+ - cnt19 = 0 - while True: #loop19 - alt19 = 2 - LA19_0 = self.input.LA(1) - - if ((48 <= LA19_0 <= 57)) : - alt19 = 1 - - - if alt19 == 1: - # Java.g:1008:34: '0' .. '9' - pass - self.matchRange(48, 57) - - - else: - if cnt19 >= 1: - break #loop19 - - eee = EarlyExitException(19, self.input) - raise eee - - cnt19 += 1 - - - - - finally: - - pass - - # $ANTLR end "EXPONENT" - - - - # $ANTLR start "FLOAT_TYPE_SUFFIX" - def mFLOAT_TYPE_SUFFIX(self, ): - - try: - # Java.g:1011:19: ( ( 'f' | 'F' | 'd' | 'D' ) ) - # Java.g:1011:21: ( 'f' | 'F' | 'd' | 'D' ) - pass - if self.input.LA(1) == 68 or self.input.LA(1) == 70 or self.input.LA(1) == 100 or self.input.LA(1) == 102: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "FLOAT_TYPE_SUFFIX" - - - - # $ANTLR start "CHARACTER_LITERAL" - def mCHARACTER_LITERAL(self, ): - - try: - _type = CHARACTER_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:1014:5: ( '\\'' ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) '\\'' ) - # Java.g:1014:9: '\\'' ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) '\\'' - pass - self.match(39) - # Java.g:1014:14: ( ESCAPE_SEQUENCE | ~ ( '\\'' | '\\\\' ) ) - alt20 = 2 - LA20_0 = self.input.LA(1) - - if (LA20_0 == 92) : - alt20 = 1 - elif ((0 <= LA20_0 <= 38) or (40 <= LA20_0 <= 91) or (93 <= LA20_0 <= 65535)) : - alt20 = 2 - else: - nvae = NoViableAltException("", 20, 0, self.input) - - raise nvae - - if alt20 == 1: - # Java.g:1014:16: ESCAPE_SEQUENCE - pass - self.mESCAPE_SEQUENCE() - - - elif alt20 == 2: - # Java.g:1014:34: ~ ( '\\'' | '\\\\' ) - pass - if (0 <= self.input.LA(1) <= 38) or (40 <= self.input.LA(1) <= 91) or (93 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - self.match(39) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "CHARACTER_LITERAL" - - - - # $ANTLR start "STRING_LITERAL" - def mSTRING_LITERAL(self, ): - - try: - _type = STRING_LITERAL - _channel = DEFAULT_CHANNEL - - # Java.g:1018:5: ( '\"' ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* '\"' ) - # Java.g:1018:8: '\"' ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* '\"' - pass - self.match(34) - # Java.g:1018:12: ( ESCAPE_SEQUENCE | ~ ( '\\\\' | '\"' ) )* - while True: #loop21 - alt21 = 3 - LA21_0 = self.input.LA(1) - - if (LA21_0 == 92) : - alt21 = 1 - elif ((0 <= LA21_0 <= 33) or (35 <= LA21_0 <= 91) or (93 <= LA21_0 <= 65535)) : - alt21 = 2 - - - if alt21 == 1: - # Java.g:1018:14: ESCAPE_SEQUENCE - pass - self.mESCAPE_SEQUENCE() - - - elif alt21 == 2: - # Java.g:1018:32: ~ ( '\\\\' | '\"' ) - pass - if (0 <= self.input.LA(1) <= 33) or (35 <= self.input.LA(1) <= 91) or (93 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - else: - break #loop21 - self.match(34) - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "STRING_LITERAL" - - - - # $ANTLR start "ESCAPE_SEQUENCE" - def mESCAPE_SEQUENCE(self, ): - - try: - # Java.g:1023:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESCAPE | OCTAL_ESCAPE ) - alt22 = 3 - LA22_0 = self.input.LA(1) - - if (LA22_0 == 92) : - LA22 = self.input.LA(2) - if LA22 == 34 or LA22 == 39 or LA22 == 92 or LA22 == 98 or LA22 == 102 or LA22 == 110 or LA22 == 114 or LA22 == 116: - alt22 = 1 - elif LA22 == 117: - alt22 = 2 - elif LA22 == 48 or LA22 == 49 or LA22 == 50 or LA22 == 51 or LA22 == 52 or LA22 == 53 or LA22 == 54 or LA22 == 55: - alt22 = 3 - else: - nvae = NoViableAltException("", 22, 1, self.input) - - raise nvae - - else: - nvae = NoViableAltException("", 22, 0, self.input) - - raise nvae - - if alt22 == 1: - # Java.g:1023:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) - pass - self.match(92) - if self.input.LA(1) == 34 or self.input.LA(1) == 39 or self.input.LA(1) == 92 or self.input.LA(1) == 98 or self.input.LA(1) == 102 or self.input.LA(1) == 110 or self.input.LA(1) == 114 or self.input.LA(1) == 116: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - elif alt22 == 2: - # Java.g:1024:9: UNICODE_ESCAPE - pass - self.mUNICODE_ESCAPE() - - - elif alt22 == 3: - # Java.g:1025:9: OCTAL_ESCAPE - pass - self.mOCTAL_ESCAPE() - - - - finally: - - pass - - # $ANTLR end "ESCAPE_SEQUENCE" - - - - # $ANTLR start "OCTAL_ESCAPE" - def mOCTAL_ESCAPE(self, ): - - try: - # Java.g:1030:5: ( '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) | '\\\\' ( '0' .. '7' ) ) - alt23 = 3 - LA23_0 = self.input.LA(1) - - if (LA23_0 == 92) : - LA23_1 = self.input.LA(2) - - if ((48 <= LA23_1 <= 51)) : - LA23_2 = self.input.LA(3) - - if ((48 <= LA23_2 <= 55)) : - LA23_4 = self.input.LA(4) - - if ((48 <= LA23_4 <= 55)) : - alt23 = 1 - else: - alt23 = 2 - else: - alt23 = 3 - elif ((52 <= LA23_1 <= 55)) : - LA23_3 = self.input.LA(3) - - if ((48 <= LA23_3 <= 55)) : - alt23 = 2 - else: - alt23 = 3 - else: - nvae = NoViableAltException("", 23, 1, self.input) - - raise nvae - - else: - nvae = NoViableAltException("", 23, 0, self.input) - - raise nvae - - if alt23 == 1: - # Java.g:1030:9: '\\\\' ( '0' .. '3' ) ( '0' .. '7' ) ( '0' .. '7' ) - pass - self.match(92) - # Java.g:1030:14: ( '0' .. '3' ) - # Java.g:1030:15: '0' .. '3' - pass - self.matchRange(48, 51) - - - - # Java.g:1030:25: ( '0' .. '7' ) - # Java.g:1030:26: '0' .. '7' - pass - self.matchRange(48, 55) - - - - # Java.g:1030:36: ( '0' .. '7' ) - # Java.g:1030:37: '0' .. '7' - pass - self.matchRange(48, 55) - - - - - - elif alt23 == 2: - # Java.g:1031:9: '\\\\' ( '0' .. '7' ) ( '0' .. '7' ) - pass - self.match(92) - # Java.g:1031:14: ( '0' .. '7' ) - # Java.g:1031:15: '0' .. '7' - pass - self.matchRange(48, 55) - - - - # Java.g:1031:25: ( '0' .. '7' ) - # Java.g:1031:26: '0' .. '7' - pass - self.matchRange(48, 55) - - - - - - elif alt23 == 3: - # Java.g:1032:9: '\\\\' ( '0' .. '7' ) - pass - self.match(92) - # Java.g:1032:14: ( '0' .. '7' ) - # Java.g:1032:15: '0' .. '7' - pass - self.matchRange(48, 55) - - - - - - - finally: - - pass - - # $ANTLR end "OCTAL_ESCAPE" - - - - # $ANTLR start "UNICODE_ESCAPE" - def mUNICODE_ESCAPE(self, ): - - try: - # Java.g:1037:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT ) - # Java.g:1037:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT - pass - self.match(92) - self.match(117) - self.mHEX_DIGIT() - self.mHEX_DIGIT() - self.mHEX_DIGIT() - self.mHEX_DIGIT() - - - - - finally: - - pass - - # $ANTLR end "UNICODE_ESCAPE" - - - - # $ANTLR start "IDENT" - def mIDENT(self, ): - - try: - _type = IDENT - _channel = DEFAULT_CHANNEL - - # Java.g:1041:5: ( JAVA_ID_START ( JAVA_ID_PART )* ) - # Java.g:1041:9: JAVA_ID_START ( JAVA_ID_PART )* - pass - self.mJAVA_ID_START() - # Java.g:1041:23: ( JAVA_ID_PART )* - while True: #loop24 - alt24 = 2 - LA24_0 = self.input.LA(1) - - if (LA24_0 == 36 or (48 <= LA24_0 <= 57) or (65 <= LA24_0 <= 90) or LA24_0 == 95 or (97 <= LA24_0 <= 122) or (192 <= LA24_0 <= 214) or (216 <= LA24_0 <= 246) or (248 <= LA24_0 <= 8191) or (12352 <= LA24_0 <= 12687) or (13056 <= LA24_0 <= 13183) or (13312 <= LA24_0 <= 15661) or (19968 <= LA24_0 <= 40959) or (63744 <= LA24_0 <= 64255)) : - alt24 = 1 - - - if alt24 == 1: - # Java.g:1041:24: JAVA_ID_PART - pass - self.mJAVA_ID_PART() - - - else: - break #loop24 - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "IDENT" - - - - # $ANTLR start "JAVA_ID_START" - def mJAVA_ID_START(self, ): - - try: - # Java.g:1046:5: ( '\\u0024' | '\\u0041' .. '\\u005a' | '\\u005f' | '\\u0061' .. '\\u007a' | '\\u00c0' .. '\\u00d6' | '\\u00d8' .. '\\u00f6' | '\\u00f8' .. '\\u00ff' | '\\u0100' .. '\\u1fff' | '\\u3040' .. '\\u318f' | '\\u3300' .. '\\u337f' | '\\u3400' .. '\\u3d2d' | '\\u4e00' .. '\\u9fff' | '\\uf900' .. '\\ufaff' ) - # Java.g: - pass - if self.input.LA(1) == 36 or (65 <= self.input.LA(1) <= 90) or self.input.LA(1) == 95 or (97 <= self.input.LA(1) <= 122) or (192 <= self.input.LA(1) <= 214) or (216 <= self.input.LA(1) <= 246) or (248 <= self.input.LA(1) <= 8191) or (12352 <= self.input.LA(1) <= 12687) or (13056 <= self.input.LA(1) <= 13183) or (13312 <= self.input.LA(1) <= 15661) or (19968 <= self.input.LA(1) <= 40959) or (63744 <= self.input.LA(1) <= 64255): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "JAVA_ID_START" - - - - # $ANTLR start "JAVA_ID_PART" - def mJAVA_ID_PART(self, ): - - try: - # Java.g:1063:5: ( JAVA_ID_START | '\\u0030' .. '\\u0039' ) - # Java.g: - pass - if self.input.LA(1) == 36 or (48 <= self.input.LA(1) <= 57) or (65 <= self.input.LA(1) <= 90) or self.input.LA(1) == 95 or (97 <= self.input.LA(1) <= 122) or (192 <= self.input.LA(1) <= 214) or (216 <= self.input.LA(1) <= 246) or (248 <= self.input.LA(1) <= 8191) or (12352 <= self.input.LA(1) <= 12687) or (13056 <= self.input.LA(1) <= 13183) or (13312 <= self.input.LA(1) <= 15661) or (19968 <= self.input.LA(1) <= 40959) or (63744 <= self.input.LA(1) <= 64255): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - - - finally: - - pass - - # $ANTLR end "JAVA_ID_PART" - - - - # $ANTLR start "WS" - def mWS(self, ): - - try: - _type = WS - _channel = DEFAULT_CHANNEL - - # Java.g:1067:5: ( ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) ) - # Java.g:1067:8: ( ' ' | '\\r' | '\\t' | '\\u000C' | '\\n' ) - pass - if (9 <= self.input.LA(1) <= 10) or (12 <= self.input.LA(1) <= 13) or self.input.LA(1) == 32: - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "WS" - - - - # $ANTLR start "COMMENT" - def mCOMMENT(self, ): - - try: - _type = COMMENT - _channel = DEFAULT_CHANNEL - - # Java.g:1074:5: ( '/*' ~ ( '*' ) ( options {greedy=false; } : . )* '*/' ) - # Java.g:1074:9: '/*' ~ ( '*' ) ( options {greedy=false; } : . )* '*/' - pass - self.match("/*") - if (0 <= self.input.LA(1) <= 41) or (43 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - # Java.g:1074:21: ( options {greedy=false; } : . )* - while True: #loop25 - alt25 = 2 - LA25_0 = self.input.LA(1) - - if (LA25_0 == 42) : - LA25_1 = self.input.LA(2) - - if (LA25_1 == 47) : - alt25 = 2 - elif ((0 <= LA25_1 <= 46) or (48 <= LA25_1 <= 65535)) : - alt25 = 1 - - - elif ((0 <= LA25_0 <= 41) or (43 <= LA25_0 <= 65535)) : - alt25 = 1 - - - if alt25 == 1: - # Java.g:1074:49: . - pass - self.matchAny() - - - else: - break #loop25 - self.match("*/") - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "COMMENT" - - - - # $ANTLR start "LINE_COMMENT" - def mLINE_COMMENT(self, ): - - try: - _type = LINE_COMMENT - _channel = DEFAULT_CHANNEL - - # Java.g:1081:5: ( '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' ) - # Java.g:1081:7: '//' (~ ( '\\n' | '\\r' ) )* ( '\\r' )? '\\n' - pass - self.match("//") - # Java.g:1081:12: (~ ( '\\n' | '\\r' ) )* - while True: #loop26 - alt26 = 2 - LA26_0 = self.input.LA(1) - - if ((0 <= LA26_0 <= 9) or (11 <= LA26_0 <= 12) or (14 <= LA26_0 <= 65535)) : - alt26 = 1 - - - if alt26 == 1: - # Java.g:1081:12: ~ ( '\\n' | '\\r' ) - pass - if (0 <= self.input.LA(1) <= 9) or (11 <= self.input.LA(1) <= 12) or (14 <= self.input.LA(1) <= 65535): - self.input.consume() - else: - mse = MismatchedSetException(None, self.input) - self.recover(mse) - raise mse - - - - else: - break #loop26 - # Java.g:1081:26: ( '\\r' )? - alt27 = 2 - LA27_0 = self.input.LA(1) - - if (LA27_0 == 13) : - alt27 = 1 - if alt27 == 1: - # Java.g:1081:26: '\\r' - pass - self.match(13) - - - - self.match(10) - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "LINE_COMMENT" - - - - # $ANTLR start "JAVADOC_COMMENT" - def mJAVADOC_COMMENT(self, ): - - try: - _type = JAVADOC_COMMENT - _channel = DEFAULT_CHANNEL - - # Java.g:1088:5: ( '/**' ( options {greedy=false; } : . )* '*/' ) - # Java.g:1088:9: '/**' ( options {greedy=false; } : . )* '*/' - pass - self.match("/**") - # Java.g:1088:15: ( options {greedy=false; } : . )* - while True: #loop28 - alt28 = 2 - LA28_0 = self.input.LA(1) - - if (LA28_0 == 42) : - LA28_1 = self.input.LA(2) - - if (LA28_1 == 47) : - alt28 = 2 - elif ((0 <= LA28_1 <= 46) or (48 <= LA28_1 <= 65535)) : - alt28 = 1 - - - elif ((0 <= LA28_0 <= 41) or (43 <= LA28_0 <= 65535)) : - alt28 = 1 - - - if alt28 == 1: - # Java.g:1088:43: . - pass - self.matchAny() - - - else: - break #loop28 - self.match("*/") - #action start - - _channel = HIDDEN - - #action end - - - - self._state.type = _type - self._state.channel = _channel - - finally: - - pass - - # $ANTLR end "JAVADOC_COMMENT" - - - - def mTokens(self): - # Java.g:1:8: ( AND | AND_ASSIGN | ASSIGN | AT | BIT_SHIFT_RIGHT | BIT_SHIFT_RIGHT_ASSIGN | COLON | COMMA | DEC | DIV | DIV_ASSIGN | DOT | DOTSTAR | ELLIPSIS | EQUAL | GREATER_OR_EQUAL | GREATER_THAN | INC | LBRACK | LCURLY | LESS_OR_EQUAL | LESS_THAN | LOGICAL_AND | LOGICAL_NOT | LOGICAL_OR | LPAREN | MINUS | MINUS_ASSIGN | MOD | MOD_ASSIGN | NOT | NOT_EQUAL | OR | OR_ASSIGN | PLUS | PLUS_ASSIGN | QUESTION | RBRACK | RCURLY | RPAREN | SEMI | SHIFT_LEFT | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT | SHIFT_RIGHT_ASSIGN | STAR | STAR_ASSIGN | XOR | XOR_ASSIGN | ABSTRACT | ASSERT | BOOLEAN | BREAK | BYTE | CASE | CATCH | CHAR | CLASS | CONTINUE | DEFAULT | DO | DOUBLE | ELSE | ENUM | EXTENDS | FALSE | FINAL | FINALLY | FLOAT | FOR | IF | IMPLEMENTS | INSTANCEOF | INTERFACE | IMPORT | INT | LONG | NATIVE | NEW | NULL | PACKAGE | PRIVATE | PROTECTED | PUBLIC | RETURN | SHORT | STATIC | STRICTFP | SUPER | SWITCH | SYNCHRONIZED | THIS | THROW | THROWS | TRANSIENT | TRUE | TRY | VOID | VOLATILE | WHILE | HEX_LITERAL | DECIMAL_LITERAL | OCTAL_LITERAL | FLOATING_POINT_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | IDENT | WS | COMMENT | LINE_COMMENT | JAVADOC_COMMENT ) - alt29 = 111 - alt29 = self.dfa29.predict(self.input) - if alt29 == 1: - # Java.g:1:10: AND - pass - self.mAND() - - - elif alt29 == 2: - # Java.g:1:14: AND_ASSIGN - pass - self.mAND_ASSIGN() - - - elif alt29 == 3: - # Java.g:1:25: ASSIGN - pass - self.mASSIGN() - - - elif alt29 == 4: - # Java.g:1:32: AT - pass - self.mAT() - - - elif alt29 == 5: - # Java.g:1:35: BIT_SHIFT_RIGHT - pass - self.mBIT_SHIFT_RIGHT() - - - elif alt29 == 6: - # Java.g:1:51: BIT_SHIFT_RIGHT_ASSIGN - pass - self.mBIT_SHIFT_RIGHT_ASSIGN() - - - elif alt29 == 7: - # Java.g:1:74: COLON - pass - self.mCOLON() - - - elif alt29 == 8: - # Java.g:1:80: COMMA - pass - self.mCOMMA() - - - elif alt29 == 9: - # Java.g:1:86: DEC - pass - self.mDEC() - - - elif alt29 == 10: - # Java.g:1:90: DIV - pass - self.mDIV() - - - elif alt29 == 11: - # Java.g:1:94: DIV_ASSIGN - pass - self.mDIV_ASSIGN() - - - elif alt29 == 12: - # Java.g:1:105: DOT - pass - self.mDOT() - - - elif alt29 == 13: - # Java.g:1:109: DOTSTAR - pass - self.mDOTSTAR() - - - elif alt29 == 14: - # Java.g:1:117: ELLIPSIS - pass - self.mELLIPSIS() - - - elif alt29 == 15: - # Java.g:1:126: EQUAL - pass - self.mEQUAL() - - - elif alt29 == 16: - # Java.g:1:132: GREATER_OR_EQUAL - pass - self.mGREATER_OR_EQUAL() - - - elif alt29 == 17: - # Java.g:1:149: GREATER_THAN - pass - self.mGREATER_THAN() - - - elif alt29 == 18: - # Java.g:1:162: INC - pass - self.mINC() - - - elif alt29 == 19: - # Java.g:1:166: LBRACK - pass - self.mLBRACK() - - - elif alt29 == 20: - # Java.g:1:173: LCURLY - pass - self.mLCURLY() - - - elif alt29 == 21: - # Java.g:1:180: LESS_OR_EQUAL - pass - self.mLESS_OR_EQUAL() - - - elif alt29 == 22: - # Java.g:1:194: LESS_THAN - pass - self.mLESS_THAN() - - - elif alt29 == 23: - # Java.g:1:204: LOGICAL_AND - pass - self.mLOGICAL_AND() - - - elif alt29 == 24: - # Java.g:1:216: LOGICAL_NOT - pass - self.mLOGICAL_NOT() - - - elif alt29 == 25: - # Java.g:1:228: LOGICAL_OR - pass - self.mLOGICAL_OR() - - - elif alt29 == 26: - # Java.g:1:239: LPAREN - pass - self.mLPAREN() - - - elif alt29 == 27: - # Java.g:1:246: MINUS - pass - self.mMINUS() - - - elif alt29 == 28: - # Java.g:1:252: MINUS_ASSIGN - pass - self.mMINUS_ASSIGN() - - - elif alt29 == 29: - # Java.g:1:265: MOD - pass - self.mMOD() - - - elif alt29 == 30: - # Java.g:1:269: MOD_ASSIGN - pass - self.mMOD_ASSIGN() - - - elif alt29 == 31: - # Java.g:1:280: NOT - pass - self.mNOT() - - - elif alt29 == 32: - # Java.g:1:284: NOT_EQUAL - pass - self.mNOT_EQUAL() - - - elif alt29 == 33: - # Java.g:1:294: OR - pass - self.mOR() - - - elif alt29 == 34: - # Java.g:1:297: OR_ASSIGN - pass - self.mOR_ASSIGN() - - - elif alt29 == 35: - # Java.g:1:307: PLUS - pass - self.mPLUS() - - - elif alt29 == 36: - # Java.g:1:312: PLUS_ASSIGN - pass - self.mPLUS_ASSIGN() - - - elif alt29 == 37: - # Java.g:1:324: QUESTION - pass - self.mQUESTION() - - - elif alt29 == 38: - # Java.g:1:333: RBRACK - pass - self.mRBRACK() - - - elif alt29 == 39: - # Java.g:1:340: RCURLY - pass - self.mRCURLY() - - - elif alt29 == 40: - # Java.g:1:347: RPAREN - pass - self.mRPAREN() - - - elif alt29 == 41: - # Java.g:1:354: SEMI - pass - self.mSEMI() - - - elif alt29 == 42: - # Java.g:1:359: SHIFT_LEFT - pass - self.mSHIFT_LEFT() - - - elif alt29 == 43: - # Java.g:1:370: SHIFT_LEFT_ASSIGN - pass - self.mSHIFT_LEFT_ASSIGN() - - - elif alt29 == 44: - # Java.g:1:388: SHIFT_RIGHT - pass - self.mSHIFT_RIGHT() - - - elif alt29 == 45: - # Java.g:1:400: SHIFT_RIGHT_ASSIGN - pass - self.mSHIFT_RIGHT_ASSIGN() - - - elif alt29 == 46: - # Java.g:1:419: STAR - pass - self.mSTAR() - - - elif alt29 == 47: - # Java.g:1:424: STAR_ASSIGN - pass - self.mSTAR_ASSIGN() - - - elif alt29 == 48: - # Java.g:1:436: XOR - pass - self.mXOR() - - - elif alt29 == 49: - # Java.g:1:440: XOR_ASSIGN - pass - self.mXOR_ASSIGN() - - - elif alt29 == 50: - # Java.g:1:451: ABSTRACT - pass - self.mABSTRACT() - - - elif alt29 == 51: - # Java.g:1:460: ASSERT - pass - self.mASSERT() - - - elif alt29 == 52: - # Java.g:1:467: BOOLEAN - pass - self.mBOOLEAN() - - - elif alt29 == 53: - # Java.g:1:475: BREAK - pass - self.mBREAK() - - - elif alt29 == 54: - # Java.g:1:481: BYTE - pass - self.mBYTE() - - - elif alt29 == 55: - # Java.g:1:486: CASE - pass - self.mCASE() - - - elif alt29 == 56: - # Java.g:1:491: CATCH - pass - self.mCATCH() - - - elif alt29 == 57: - # Java.g:1:497: CHAR - pass - self.mCHAR() - - - elif alt29 == 58: - # Java.g:1:502: CLASS - pass - self.mCLASS() - - - elif alt29 == 59: - # Java.g:1:508: CONTINUE - pass - self.mCONTINUE() - - - elif alt29 == 60: - # Java.g:1:517: DEFAULT - pass - self.mDEFAULT() - - - elif alt29 == 61: - # Java.g:1:525: DO - pass - self.mDO() - - - elif alt29 == 62: - # Java.g:1:528: DOUBLE - pass - self.mDOUBLE() - - - elif alt29 == 63: - # Java.g:1:535: ELSE - pass - self.mELSE() - - - elif alt29 == 64: - # Java.g:1:540: ENUM - pass - self.mENUM() - - - elif alt29 == 65: - # Java.g:1:545: EXTENDS - pass - self.mEXTENDS() - - - elif alt29 == 66: - # Java.g:1:553: FALSE - pass - self.mFALSE() - - - elif alt29 == 67: - # Java.g:1:559: FINAL - pass - self.mFINAL() - - - elif alt29 == 68: - # Java.g:1:565: FINALLY - pass - self.mFINALLY() - - - elif alt29 == 69: - # Java.g:1:573: FLOAT - pass - self.mFLOAT() - - - elif alt29 == 70: - # Java.g:1:579: FOR - pass - self.mFOR() - - - elif alt29 == 71: - # Java.g:1:583: IF - pass - self.mIF() - - - elif alt29 == 72: - # Java.g:1:586: IMPLEMENTS - pass - self.mIMPLEMENTS() - - - elif alt29 == 73: - # Java.g:1:597: INSTANCEOF - pass - self.mINSTANCEOF() - - - elif alt29 == 74: - # Java.g:1:608: INTERFACE - pass - self.mINTERFACE() - - - elif alt29 == 75: - # Java.g:1:618: IMPORT - pass - self.mIMPORT() - - - elif alt29 == 76: - # Java.g:1:625: INT - pass - self.mINT() - - - elif alt29 == 77: - # Java.g:1:629: LONG - pass - self.mLONG() - - - elif alt29 == 78: - # Java.g:1:634: NATIVE - pass - self.mNATIVE() - - - elif alt29 == 79: - # Java.g:1:641: NEW - pass - self.mNEW() - - - elif alt29 == 80: - # Java.g:1:645: NULL - pass - self.mNULL() - - - elif alt29 == 81: - # Java.g:1:650: PACKAGE - pass - self.mPACKAGE() - - - elif alt29 == 82: - # Java.g:1:658: PRIVATE - pass - self.mPRIVATE() - - - elif alt29 == 83: - # Java.g:1:666: PROTECTED - pass - self.mPROTECTED() - - - elif alt29 == 84: - # Java.g:1:676: PUBLIC - pass - self.mPUBLIC() - - - elif alt29 == 85: - # Java.g:1:683: RETURN - pass - self.mRETURN() - - - elif alt29 == 86: - # Java.g:1:690: SHORT - pass - self.mSHORT() - - - elif alt29 == 87: - # Java.g:1:696: STATIC - pass - self.mSTATIC() - - - elif alt29 == 88: - # Java.g:1:703: STRICTFP - pass - self.mSTRICTFP() - - - elif alt29 == 89: - # Java.g:1:712: SUPER - pass - self.mSUPER() - - - elif alt29 == 90: - # Java.g:1:718: SWITCH - pass - self.mSWITCH() - - - elif alt29 == 91: - # Java.g:1:725: SYNCHRONIZED - pass - self.mSYNCHRONIZED() - - - elif alt29 == 92: - # Java.g:1:738: THIS - pass - self.mTHIS() - - - elif alt29 == 93: - # Java.g:1:743: THROW - pass - self.mTHROW() - - - elif alt29 == 94: - # Java.g:1:749: THROWS - pass - self.mTHROWS() - - - elif alt29 == 95: - # Java.g:1:756: TRANSIENT - pass - self.mTRANSIENT() - - - elif alt29 == 96: - # Java.g:1:766: TRUE - pass - self.mTRUE() - - - elif alt29 == 97: - # Java.g:1:771: TRY - pass - self.mTRY() - - - elif alt29 == 98: - # Java.g:1:775: VOID - pass - self.mVOID() - - - elif alt29 == 99: - # Java.g:1:780: VOLATILE - pass - self.mVOLATILE() - - - elif alt29 == 100: - # Java.g:1:789: WHILE - pass - self.mWHILE() - - - elif alt29 == 101: - # Java.g:1:795: HEX_LITERAL - pass - self.mHEX_LITERAL() - - - elif alt29 == 102: - # Java.g:1:807: DECIMAL_LITERAL - pass - self.mDECIMAL_LITERAL() - - - elif alt29 == 103: - # Java.g:1:823: OCTAL_LITERAL - pass - self.mOCTAL_LITERAL() - - - elif alt29 == 104: - # Java.g:1:837: FLOATING_POINT_LITERAL - pass - self.mFLOATING_POINT_LITERAL() - - - elif alt29 == 105: - # Java.g:1:860: CHARACTER_LITERAL - pass - self.mCHARACTER_LITERAL() - - - elif alt29 == 106: - # Java.g:1:878: STRING_LITERAL - pass - self.mSTRING_LITERAL() - - - elif alt29 == 107: - # Java.g:1:893: IDENT - pass - self.mIDENT() - - - elif alt29 == 108: - # Java.g:1:899: WS - pass - self.mWS() - - - elif alt29 == 109: - # Java.g:1:902: COMMENT - pass - self.mCOMMENT() - - - elif alt29 == 110: - # Java.g:1:910: LINE_COMMENT - pass - self.mLINE_COMMENT() - - - elif alt29 == 111: - # Java.g:1:923: JAVADOC_COMMENT - pass - self.mJAVADOC_COMMENT() - - - - - - - - # lookup tables for DFA #29 - - DFA29_eot = DFA.unpack( - u"\1\uffff\1\61\1\63\1\uffff\1\66\2\uffff\1\71\1\75\1\100\1\104\2" - u"\uffff\1\107\1\111\1\114\1\uffff\1\116\6\uffff\1\120\1\122\17\55" - u"\2\173\11\uffff\1\177\21\uffff\1\u0083\14\uffff\12\55\1\u0090\7" - u"\55\1\u0098\23\55\1\uffff\1\u00b3\1\uffff\1\173\1\u00b5\6\uffff" - u"\14\55\1\uffff\6\55\1\u00c8\1\uffff\2\55\1\u00cd\2\55\1\u00d0\20" - u"\55\1\u00e1\3\55\3\uffff\4\55\1\u00e9\1\u00ea\1\55\1\u00ec\4\55" - u"\1\u00f1\1\u00f2\4\55\1\uffff\4\55\1\uffff\1\u00fb\1\55\1\uffff" - u"\1\u00fd\13\55\1\u0109\2\55\1\u010c\1\uffff\1\u010d\5\55\1\u0113" - u"\2\uffff\1\u0114\1\uffff\1\u0115\3\55\2\uffff\1\55\1\u011a\1\u011c" - u"\1\u011d\4\55\1\uffff\1\55\1\uffff\5\55\1\u0128\2\55\1\u012b\2" - u"\55\1\uffff\1\u012f\1\55\2\uffff\1\55\1\u0132\1\55\1\u0134\1\55" - u"\3\uffff\2\55\1\u0138\1\55\1\uffff\1\55\2\uffff\1\55\1\u013c\2" - u"\55\1\u013f\3\55\1\u0143\1\u0144\1\uffff\1\u0145\1\55\1\uffff\1" - u"\u0147\1\55\1\u0149\1\uffff\2\55\1\uffff\1\55\1\uffff\1\u014d\1" - u"\55\1\u014f\1\uffff\1\u0150\1\u0151\1\55\1\uffff\2\55\1\uffff\1" - u"\u0155\1\u0156\1\55\3\uffff\1\55\1\uffff\1\55\1\uffff\2\55\1\u015c" - u"\1\uffff\1\u015d\3\uffff\3\55\2\uffff\1\55\1\u0162\2\55\1\u0165" - u"\2\uffff\2\55\1\u0168\1\u0169\1\uffff\1\55\1\u016b\1\uffff\1\u016c" - u"\1\u016d\2\uffff\1\55\3\uffff\1\55\1\u0170\1\uffff" - ) - - DFA29_eof = DFA.unpack( - u"\u0171\uffff" - ) - - DFA29_min = DFA.unpack( - u"\1\11\1\46\1\75\1\uffff\1\75\2\uffff\1\55\2\52\1\53\2\uffff\1\74" - u"\2\75\1\uffff\1\75\6\uffff\2\75\1\142\1\157\1\141\1\145\1\154\1" - u"\141\1\146\1\157\2\141\1\145\2\150\1\157\1\150\2\56\11\uffff\1" - u"\75\6\uffff\1\0\12\uffff\1\75\14\uffff\2\163\1\157\1\145\1\164" - u"\1\163\2\141\1\156\1\146\1\44\1\163\1\165\1\164\1\154\1\156\1\157" - u"\1\162\1\44\1\160\1\163\1\156\1\164\1\167\1\154\1\143\1\151\1\142" - u"\1\164\1\157\1\141\1\160\1\151\1\156\1\151\1\141\2\151\1\uffff" - u"\1\56\1\uffff\1\56\1\75\6\uffff\1\164\1\145\1\154\1\141\2\145\1" - u"\143\1\162\1\163\1\164\1\141\1\142\1\uffff\1\145\1\155\1\145\1" - u"\163\2\141\1\44\1\uffff\1\154\1\164\1\44\1\147\1\151\1\44\1\154" - u"\1\153\1\166\1\164\1\154\1\165\1\162\1\164\1\151\1\145\1\164\1" - u"\143\1\163\1\157\1\156\1\145\1\44\1\144\1\141\1\154\3\uffff\2\162" - u"\1\145\1\153\2\44\1\150\1\44\1\163\1\151\1\165\1\154\2\44\1\156" - u"\1\145\1\154\1\164\1\uffff\1\145\1\162\1\141\1\162\1\uffff\1\44" - u"\1\166\1\uffff\1\44\2\141\1\145\1\151\1\162\1\164\1\151\1\143\1" - u"\162\1\143\1\150\1\44\1\167\1\163\1\44\1\uffff\1\44\1\164\1\145" - u"\1\141\1\164\1\141\1\44\2\uffff\1\44\1\uffff\1\44\1\156\1\154\1" - u"\145\2\uffff\1\144\3\44\1\155\1\164\1\156\1\146\1\uffff\1\145\1" - u"\uffff\1\147\1\164\2\143\1\156\1\44\1\143\1\164\1\44\1\150\1\162" - u"\1\uffff\1\44\1\151\2\uffff\1\151\1\44\1\143\1\44\1\156\3\uffff" - u"\1\165\1\164\1\44\1\163\1\uffff\1\171\2\uffff\1\145\1\44\1\143" - u"\1\141\1\44\2\145\1\164\2\44\1\uffff\1\44\1\146\1\uffff\1\44\1" - u"\157\1\44\1\uffff\1\145\1\154\1\uffff\1\164\1\uffff\1\44\1\145" - u"\1\44\1\uffff\2\44\1\156\1\uffff\1\145\1\143\1\uffff\2\44\1\145" - u"\3\uffff\1\160\1\uffff\1\156\1\uffff\1\156\1\145\1\44\1\uffff\1" - u"\44\3\uffff\1\164\1\157\1\145\2\uffff\1\144\1\44\1\151\1\164\1" - u"\44\2\uffff\1\163\1\146\2\44\1\uffff\1\172\1\44\1\uffff\2\44\2" - u"\uffff\1\145\3\uffff\1\144\1\44\1\uffff" - ) - - DFA29_max = DFA.unpack( - u"\1\ufaff\2\75\1\uffff\1\76\2\uffff\2\75\1\71\1\75\2\uffff\2\75" - u"\1\174\1\uffff\1\75\6\uffff\2\75\1\163\1\171\2\157\1\170\1\157" - u"\1\156\1\157\2\165\1\145\1\171\1\162\1\157\1\150\1\170\1\146\11" - u"\uffff\1\76\6\uffff\1\uffff\12\uffff\1\75\14\uffff\2\163\1\157" - u"\1\145\2\164\2\141\1\156\1\146\1\ufaff\1\163\1\165\1\164\1\154" - u"\1\156\1\157\1\162\1\ufaff\1\160\1\164\1\156\1\164\1\167\1\154" - u"\1\143\1\157\1\142\1\164\1\157\1\162\1\160\1\151\1\156\1\162\1" - u"\171\1\154\1\151\1\uffff\1\146\1\uffff\1\146\1\75\6\uffff\1\164" - u"\1\145\1\154\1\141\2\145\1\143\1\162\1\163\1\164\1\141\1\142\1" - u"\uffff\1\145\1\155\1\145\1\163\2\141\1\ufaff\1\uffff\1\157\1\164" - u"\1\ufaff\1\147\1\151\1\ufaff\1\154\1\153\1\166\1\164\1\154\1\165" - u"\1\162\1\164\1\151\1\145\1\164\1\143\1\163\1\157\1\156\1\145\1" - u"\ufaff\1\144\1\141\1\154\3\uffff\2\162\1\145\1\153\2\ufaff\1\150" - u"\1\ufaff\1\163\1\151\1\165\1\154\2\ufaff\1\156\1\145\1\154\1\164" - u"\1\uffff\1\145\1\162\1\141\1\162\1\uffff\1\ufaff\1\166\1\uffff" - u"\1\ufaff\2\141\1\145\1\151\1\162\1\164\1\151\1\143\1\162\1\143" - u"\1\150\1\ufaff\1\167\1\163\1\ufaff\1\uffff\1\ufaff\1\164\1\145" - u"\1\141\1\164\1\141\1\ufaff\2\uffff\1\ufaff\1\uffff\1\ufaff\1\156" - u"\1\154\1\145\2\uffff\1\144\3\ufaff\1\155\1\164\1\156\1\146\1\uffff" - u"\1\145\1\uffff\1\147\1\164\2\143\1\156\1\ufaff\1\143\1\164\1\ufaff" - u"\1\150\1\162\1\uffff\1\ufaff\1\151\2\uffff\1\151\1\ufaff\1\143" - u"\1\ufaff\1\156\3\uffff\1\165\1\164\1\ufaff\1\163\1\uffff\1\171" - u"\2\uffff\1\145\1\ufaff\1\143\1\141\1\ufaff\2\145\1\164\2\ufaff" - u"\1\uffff\1\ufaff\1\146\1\uffff\1\ufaff\1\157\1\ufaff\1\uffff\1" - u"\145\1\154\1\uffff\1\164\1\uffff\1\ufaff\1\145\1\ufaff\1\uffff" - u"\2\ufaff\1\156\1\uffff\1\145\1\143\1\uffff\2\ufaff\1\145\3\uffff" - u"\1\160\1\uffff\1\156\1\uffff\1\156\1\145\1\ufaff\1\uffff\1\ufaff" - u"\3\uffff\1\164\1\157\1\145\2\uffff\1\144\1\ufaff\1\151\1\164\1" - u"\ufaff\2\uffff\1\163\1\146\2\ufaff\1\uffff\1\172\1\ufaff\1\uffff" - u"\2\ufaff\2\uffff\1\145\3\uffff\1\144\1\ufaff\1\uffff" - ) - - DFA29_accept = DFA.unpack( - u"\3\uffff\1\4\1\uffff\1\7\1\10\4\uffff\1\23\1\24\3\uffff\1\32\1" - u"\uffff\1\37\1\45\1\46\1\47\1\50\1\51\23\uffff\1\151\1\152\1\153" - u"\1\154\1\2\1\27\1\1\1\17\1\3\1\uffff\1\20\1\21\1\11\1\34\1\33\1" - u"\13\1\uffff\1\156\1\12\1\15\1\16\1\14\1\150\1\22\1\44\1\43\1\25" - u"\1\uffff\1\26\1\40\1\30\1\31\1\42\1\41\1\36\1\35\1\57\1\56\1\61" - u"\1\60\46\uffff\1\145\1\uffff\1\146\2\uffff\1\55\1\54\1\155\1\157" - u"\1\53\1\52\14\uffff\1\75\7\uffff\1\107\32\uffff\1\147\1\6\1\5\22" - u"\uffff\1\106\4\uffff\1\114\2\uffff\1\117\20\uffff\1\141\7\uffff" - u"\1\66\1\67\1\uffff\1\71\4\uffff\1\77\1\100\10\uffff\1\115\1\uffff" - u"\1\120\13\uffff\1\134\2\uffff\1\140\1\142\5\uffff\1\65\1\70\1\72" - u"\4\uffff\1\102\1\uffff\1\103\1\105\12\uffff\1\126\2\uffff\1\131" - u"\3\uffff\1\135\2\uffff\1\144\1\uffff\1\63\3\uffff\1\76\3\uffff" - u"\1\113\2\uffff\1\116\3\uffff\1\124\1\125\1\127\1\uffff\1\132\1" - u"\uffff\1\136\3\uffff\1\64\1\uffff\1\74\1\101\1\104\3\uffff\1\121" - u"\1\122\5\uffff\1\62\1\73\4\uffff\1\130\2\uffff\1\143\2\uffff\1" - u"\112\1\123\1\uffff\1\137\1\110\1\111\2\uffff\1\133" - ) - - DFA29_special = DFA.unpack( - u"\73\uffff\1\0\u0135\uffff" - ) - - - DFA29_transition = [ - DFA.unpack(u"\2\56\1\uffff\2\56\22\uffff\1\56\1\16\1\54\1\uffff\1" - u"\55\1\21\1\1\1\53\1\20\1\26\1\30\1\12\1\6\1\7\1\11\1\10\1\51\11" - u"\52\1\5\1\27\1\15\1\2\1\4\1\23\1\3\32\55\1\13\1\uffff\1\24\1\31" - u"\1\55\1\uffff\1\32\1\33\1\34\1\35\1\36\1\37\2\55\1\40\2\55\1\41" - u"\1\55\1\42\1\55\1\43\1\55\1\44\1\45\1\46\1\55\1\47\1\50\3\55\1" - u"\14\1\17\1\25\1\22\101\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\60\26\uffff\1\57"), - DFA.unpack(u"\1\62"), - DFA.unpack(u""), - DFA.unpack(u"\1\65\1\64"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\67\17\uffff\1\70"), - DFA.unpack(u"\1\73\4\uffff\1\74\15\uffff\1\72"), - DFA.unpack(u"\1\76\3\uffff\1\77\1\uffff\12\101"), - DFA.unpack(u"\1\102\21\uffff\1\103"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\106\1\105"), - DFA.unpack(u"\1\110"), - DFA.unpack(u"\1\113\76\uffff\1\112"), - DFA.unpack(u""), - DFA.unpack(u"\1\115"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\117"), - DFA.unpack(u"\1\121"), - DFA.unpack(u"\1\123\20\uffff\1\124"), - DFA.unpack(u"\1\125\2\uffff\1\126\6\uffff\1\127"), - DFA.unpack(u"\1\130\6\uffff\1\131\3\uffff\1\132\2\uffff\1\133"), - DFA.unpack(u"\1\134\11\uffff\1\135"), - DFA.unpack(u"\1\136\1\uffff\1\137\11\uffff\1\140"), - DFA.unpack(u"\1\141\7\uffff\1\142\2\uffff\1\143\2\uffff\1\144"), - DFA.unpack(u"\1\145\6\uffff\1\146\1\147"), - DFA.unpack(u"\1\150"), - DFA.unpack(u"\1\151\3\uffff\1\152\17\uffff\1\153"), - DFA.unpack(u"\1\154\20\uffff\1\155\2\uffff\1\156"), - DFA.unpack(u"\1\157"), - DFA.unpack(u"\1\160\13\uffff\1\161\1\162\1\uffff\1\163\1\uffff\1" - u"\164"), - DFA.unpack(u"\1\165\11\uffff\1\166"), - DFA.unpack(u"\1\167"), - DFA.unpack(u"\1\170"), - DFA.unpack(u"\1\101\1\uffff\10\172\2\101\12\uffff\3\101\21\uffff" - u"\1\171\13\uffff\3\101\21\uffff\1\171"), - DFA.unpack(u"\1\101\1\uffff\12\174\12\uffff\3\101\35\uffff\3\101"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\176\1\175"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\52\u0080\1\u0081\uffd5\u0080"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0082"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0084"), - DFA.unpack(u"\1\u0085"), - DFA.unpack(u"\1\u0086"), - DFA.unpack(u"\1\u0087"), - DFA.unpack(u"\1\u0088"), - DFA.unpack(u"\1\u0089\1\u008a"), - DFA.unpack(u"\1\u008b"), - DFA.unpack(u"\1\u008c"), - DFA.unpack(u"\1\u008d"), - DFA.unpack(u"\1\u008e"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\24\55\1\u008f\5\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0091"), - DFA.unpack(u"\1\u0092"), - DFA.unpack(u"\1\u0093"), - DFA.unpack(u"\1\u0094"), - DFA.unpack(u"\1\u0095"), - DFA.unpack(u"\1\u0096"), - DFA.unpack(u"\1\u0097"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0099"), - DFA.unpack(u"\1\u009a\1\u009b"), - DFA.unpack(u"\1\u009c"), - DFA.unpack(u"\1\u009d"), - DFA.unpack(u"\1\u009e"), - DFA.unpack(u"\1\u009f"), - DFA.unpack(u"\1\u00a0"), - DFA.unpack(u"\1\u00a1\5\uffff\1\u00a2"), - DFA.unpack(u"\1\u00a3"), - DFA.unpack(u"\1\u00a4"), - DFA.unpack(u"\1\u00a5"), - DFA.unpack(u"\1\u00a6\20\uffff\1\u00a7"), - DFA.unpack(u"\1\u00a8"), - DFA.unpack(u"\1\u00a9"), - DFA.unpack(u"\1\u00aa"), - DFA.unpack(u"\1\u00ab\10\uffff\1\u00ac"), - DFA.unpack(u"\1\u00ad\23\uffff\1\u00ae\3\uffff\1\u00af"), - DFA.unpack(u"\1\u00b0\2\uffff\1\u00b1"), - DFA.unpack(u"\1\u00b2"), - DFA.unpack(u""), - DFA.unpack(u"\1\101\1\uffff\10\172\2\101\12\uffff\3\101\35\uffff" - u"\3\101"), - DFA.unpack(u""), - DFA.unpack(u"\1\101\1\uffff\12\174\12\uffff\3\101\35\uffff\3\101"), - DFA.unpack(u"\1\u00b4"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u00b6"), - DFA.unpack(u"\1\u00b7"), - DFA.unpack(u"\1\u00b8"), - DFA.unpack(u"\1\u00b9"), - DFA.unpack(u"\1\u00ba"), - DFA.unpack(u"\1\u00bb"), - DFA.unpack(u"\1\u00bc"), - DFA.unpack(u"\1\u00bd"), - DFA.unpack(u"\1\u00be"), - DFA.unpack(u"\1\u00bf"), - DFA.unpack(u"\1\u00c0"), - DFA.unpack(u"\1\u00c1"), - DFA.unpack(u""), - DFA.unpack(u"\1\u00c2"), - DFA.unpack(u"\1\u00c3"), - DFA.unpack(u"\1\u00c4"), - DFA.unpack(u"\1\u00c5"), - DFA.unpack(u"\1\u00c6"), - DFA.unpack(u"\1\u00c7"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\u00c9\2\uffff\1\u00ca"), - DFA.unpack(u"\1\u00cb"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\4\55\1\u00cc\25\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00ce"), - DFA.unpack(u"\1\u00cf"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00d1"), - DFA.unpack(u"\1\u00d2"), - DFA.unpack(u"\1\u00d3"), - DFA.unpack(u"\1\u00d4"), - DFA.unpack(u"\1\u00d5"), - DFA.unpack(u"\1\u00d6"), - DFA.unpack(u"\1\u00d7"), - DFA.unpack(u"\1\u00d8"), - DFA.unpack(u"\1\u00d9"), - DFA.unpack(u"\1\u00da"), - DFA.unpack(u"\1\u00db"), - DFA.unpack(u"\1\u00dc"), - DFA.unpack(u"\1\u00dd"), - DFA.unpack(u"\1\u00de"), - DFA.unpack(u"\1\u00df"), - DFA.unpack(u"\1\u00e0"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00e2"), - DFA.unpack(u"\1\u00e3"), - DFA.unpack(u"\1\u00e4"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u00e5"), - DFA.unpack(u"\1\u00e6"), - DFA.unpack(u"\1\u00e7"), - DFA.unpack(u"\1\u00e8"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00eb"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00ed"), - DFA.unpack(u"\1\u00ee"), - DFA.unpack(u"\1\u00ef"), - DFA.unpack(u"\1\u00f0"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00f3"), - DFA.unpack(u"\1\u00f4"), - DFA.unpack(u"\1\u00f5"), - DFA.unpack(u"\1\u00f6"), - DFA.unpack(u""), - DFA.unpack(u"\1\u00f7"), - DFA.unpack(u"\1\u00f8"), - DFA.unpack(u"\1\u00f9"), - DFA.unpack(u"\1\u00fa"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00fc"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u00fe"), - DFA.unpack(u"\1\u00ff"), - DFA.unpack(u"\1\u0100"), - DFA.unpack(u"\1\u0101"), - DFA.unpack(u"\1\u0102"), - DFA.unpack(u"\1\u0103"), - DFA.unpack(u"\1\u0104"), - DFA.unpack(u"\1\u0105"), - DFA.unpack(u"\1\u0106"), - DFA.unpack(u"\1\u0107"), - DFA.unpack(u"\1\u0108"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u010a"), - DFA.unpack(u"\1\u010b"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u010e"), - DFA.unpack(u"\1\u010f"), - DFA.unpack(u"\1\u0110"), - DFA.unpack(u"\1\u0111"), - DFA.unpack(u"\1\u0112"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0116"), - DFA.unpack(u"\1\u0117"), - DFA.unpack(u"\1\u0118"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0119"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\13\55\1\u011b\16\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u011e"), - DFA.unpack(u"\1\u011f"), - DFA.unpack(u"\1\u0120"), - DFA.unpack(u"\1\u0121"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0122"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0123"), - DFA.unpack(u"\1\u0124"), - DFA.unpack(u"\1\u0125"), - DFA.unpack(u"\1\u0126"), - DFA.unpack(u"\1\u0127"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0129"), - DFA.unpack(u"\1\u012a"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u012c"), - DFA.unpack(u"\1\u012d"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\22\55\1\u012e\7\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08" - u"\55\u1040\uffff\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e" - u"\55\u10d2\uffff\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0130"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0131"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0133"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0135"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0136"), - DFA.unpack(u"\1\u0137"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0139"), - DFA.unpack(u""), - DFA.unpack(u"\1\u013a"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u013b"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u013d"), - DFA.unpack(u"\1\u013e"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0140"), - DFA.unpack(u"\1\u0141"), - DFA.unpack(u"\1\u0142"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0146"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0148"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\u014a"), - DFA.unpack(u"\1\u014b"), - DFA.unpack(u""), - DFA.unpack(u"\1\u014c"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u014e"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0152"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0153"), - DFA.unpack(u"\1\u0154"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0157"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0158"), - DFA.unpack(u""), - DFA.unpack(u"\1\u0159"), - DFA.unpack(u""), - DFA.unpack(u"\1\u015a"), - DFA.unpack(u"\1\u015b"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u015e"), - DFA.unpack(u"\1\u015f"), - DFA.unpack(u"\1\u0160"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0161"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\u0163"), - DFA.unpack(u"\1\u0164"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u0166"), - DFA.unpack(u"\1\u0167"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\u016a"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u016e"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\u016f"), - DFA.unpack(u"\1\55\13\uffff\12\55\7\uffff\32\55\4\uffff\1\55\1\uffff" - u"\32\55\105\uffff\27\55\1\uffff\37\55\1\uffff\u1f08\55\u1040\uffff" - u"\u0150\55\u0170\uffff\u0080\55\u0080\uffff\u092e\55\u10d2\uffff" - u"\u5200\55\u5900\uffff\u0200\55"), - DFA.unpack(u"") - ] - - # class definition for DFA #29 - - class DFA29(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA29_59 = input.LA(1) - - s = -1 - if ((0 <= LA29_59 <= 41) or (43 <= LA29_59 <= 65535)): - s = 128 - - elif (LA29_59 == 42): - s = 129 - - if s >= 0: - return s - - nvae = NoViableAltException(self_.getDescription(), 29, _s, input) - self_.error(nvae) - raise nvae - - - - -def main(argv, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr): - from antlr3.main import LexerMain - main = LexerMain(JavaLexer) - main.stdin = stdin - main.stdout = stdout - main.stderr = stderr - main.execute(argv) - - -if __name__ == '__main__': - main(sys.argv) diff --git a/java2python/lang/JavaParser.py b/java2python/lang/JavaParser.py deleted file mode 100644 index 28b9c64..0000000 --- a/java2python/lang/JavaParser.py +++ /dev/null @@ -1,23337 +0,0 @@ -# $ANTLR 3.1.3 Mar 18, 2009 10:09:25 Java.g 2012-01-29 13:54:04 - -import sys -from antlr3 import * -from antlr3.compat import set, frozenset - -from antlr3.tree import * - - - -# for convenience in actions -HIDDEN = BaseRecognizer.HIDDEN - -# token types -PACKAGE=84 -EXPONENT=173 -STAR=49 -WHILE=103 -MOD=32 -MOD_ASSIGN=33 -CASE=58 -CHAR=60 -NEW=82 -DO=64 -GENERIC_TYPE_PARAM_LIST=138 -CLASS_INSTANCE_INITIALIZER=121 -ARRAY_ELEMENT_ACCESS=115 -FOR_CONDITION=129 -NOT=34 -VAR_DECLARATION=160 -ANNOTATION_METHOD_DECL=109 -EOF=-1 -DIV_ASSIGN=14 -LOGICAL_AND=26 -BREAK=56 -UNARY_PLUS=159 -BIT_SHIFT_RIGHT_ASSIGN=9 -TYPE=157 -RPAREN=43 -INC=21 -FINAL=70 -IMPORT=78 -STRING_LITERAL=170 -FOR_UPDATE=132 -FLOATING_POINT_LITERAL=168 -CAST_EXPR=118 -NOT_EQUAL=35 -VOID_METHOD_DECL=163 -THIS=95 -RETURN=88 -DOUBLE=65 -ENUM_TOP_LEVEL_SCOPE=125 -VOID=101 -SUPER=92 -COMMENT=181 -ANNOTATION_INIT_KEY_LIST=107 -JAVA_ID_START=178 -FLOAT_TYPE_SUFFIX=174 -PRE_DEC=149 -RBRACK=41 -IMPLEMENTS_CLAUSE=140 -SWITCH_BLOCK_LABEL_LIST=154 -LINE_COMMENT=182 -PRIVATE=85 -STATIC=90 -BLOCK_SCOPE=117 -ANNOTATION_INIT_DEFAULT_KEY=106 -SWITCH=93 -NULL=83 -VAR_DECLARATOR=161 -MINUS_ASSIGN=31 -ELSE=66 -STRICTFP=91 -CHARACTER_LITERAL=169 -PRE_INC=150 -ANNOTATION_LIST=108 -ELLIPSIS=17 -NATIVE=81 -OCTAL_ESCAPE=177 -UNARY_MINUS=158 -THROWS=97 -LCURLY=23 -INT=79 -FORMAL_PARAM_VARARG_DECL=135 -METHOD_CALL=144 -ASSERT=54 -TRY=100 -INTERFACE_TOP_LEVEL_SCOPE=139 -SHIFT_LEFT=45 -WS=180 -SHIFT_RIGHT=47 -FORMAL_PARAM_STD_DECL=134 -LOCAL_MODIFIER_LIST=142 -OR=36 -LESS_THAN=25 -SHIFT_RIGHT_ASSIGN=48 -EXTENDS_BOUND_LIST=127 -JAVA_SOURCE=143 -CATCH=59 -FALSE=69 -INTEGER_TYPE_SUFFIX=172 -DECIMAL_LITERAL=167 -THROW=96 -FOR_INIT=131 -DEC=12 -PROTECTED=86 -CLASS=61 -LBRACK=22 -BIT_SHIFT_RIGHT=8 -THROWS_CLAUSE=156 -GREATER_OR_EQUAL=19 -FOR=73 -THIS_CONSTRUCTOR_CALL=155 -LOGICAL_NOT=27 -JAVADOC_COMMENT=183 -FLOAT=72 -ABSTRACT=53 -AND=4 -POST_DEC=147 -AND_ASSIGN=5 -STATIC_ARRAY_CREATOR=152 -MODIFIER_LIST=145 -ANNOTATION_SCOPE=110 -LPAREN=29 -IF=74 -AT=7 -ESCAPE_SEQUENCE=175 -CONSTRUCTOR_DECL=124 -LABELED_STATEMENT=141 -UNICODE_ESCAPE=176 -EXPR=126 -SYNCHRONIZED=94 -BOOLEAN=55 -CLASS_TOP_LEVEL_SCOPE=123 -IMPLEMENTS=75 -CONTINUE=62 -COMMA=11 -TRANSIENT=98 -EQUAL=18 -XOR_ASSIGN=52 -LOGICAL_OR=28 -IDENT=164 -QUALIFIED_TYPE_IDENT=151 -ARGUMENT_LIST=112 -PLUS=38 -HEX_LITERAL=165 -ANNOTATION_INIT_BLOCK=105 -DOT=15 -SHIFT_LEFT_ASSIGN=46 -FORMAL_PARAM_LIST=133 -GENERIC_TYPE_ARG_LIST=137 -ANNOTATION_TOP_LEVEL_SCOPE=111 -DOTSTAR=16 -BYTE=57 -XOR=51 -JAVA_ID_PART=179 -GREATER_THAN=20 -VOLATILE=102 -PARENTESIZED_EXPR=146 -CLASS_STATIC_INITIALIZER=122 -ARRAY_DECLARATOR_LIST=114 -LESS_OR_EQUAL=24 -DEFAULT=63 -OCTAL_LITERAL=166 -HEX_DIGIT=171 -SHORT=89 -INSTANCEOF=76 -MINUS=30 -EXTENDS_CLAUSE=128 -TRUE=99 -SEMI=44 -STAR_ASSIGN=50 -VAR_DECLARATOR_LIST=162 -ARRAY_DECLARATOR=113 -COLON=10 -OR_ASSIGN=37 -ENUM=67 -QUESTION=40 -FINALLY=71 -RCURLY=42 -PLUS_ASSIGN=39 -ASSIGN=6 -ANNOTATION_INIT_ARRAY_ELEMENT=104 -FUNCTION_METHOD_DECL=136 -INTERFACE=77 -POST_INC=148 -DIV=13 -CLASS_CONSTRUCTOR_CALL=120 -LONG=80 -FOR_EACH=130 -EXTENDS=68 -PUBLIC=87 -ARRAY_INITIALIZER=116 -CATCH_CLAUSE_LIST=119 -SUPER_CONSTRUCTOR_CALL=153 - -# token names -tokenNames = [ - "", "", "", "", - "AND", "AND_ASSIGN", "ASSIGN", "AT", "BIT_SHIFT_RIGHT", "BIT_SHIFT_RIGHT_ASSIGN", - "COLON", "COMMA", "DEC", "DIV", "DIV_ASSIGN", "DOT", "DOTSTAR", "ELLIPSIS", - "EQUAL", "GREATER_OR_EQUAL", "GREATER_THAN", "INC", "LBRACK", "LCURLY", - "LESS_OR_EQUAL", "LESS_THAN", "LOGICAL_AND", "LOGICAL_NOT", "LOGICAL_OR", - "LPAREN", "MINUS", "MINUS_ASSIGN", "MOD", "MOD_ASSIGN", "NOT", "NOT_EQUAL", - "OR", "OR_ASSIGN", "PLUS", "PLUS_ASSIGN", "QUESTION", "RBRACK", "RCURLY", - "RPAREN", "SEMI", "SHIFT_LEFT", "SHIFT_LEFT_ASSIGN", "SHIFT_RIGHT", - "SHIFT_RIGHT_ASSIGN", "STAR", "STAR_ASSIGN", "XOR", "XOR_ASSIGN", "ABSTRACT", - "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR", "CLASS", - "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", "EXTENDS", "FALSE", - "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "IMPLEMENTS", "INSTANCEOF", - "INTERFACE", "IMPORT", "INT", "LONG", "NATIVE", "NEW", "NULL", "PACKAGE", - "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", "STRICTFP", - "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TRANSIENT", - "TRUE", "TRY", "VOID", "VOLATILE", "WHILE", "ANNOTATION_INIT_ARRAY_ELEMENT", - "ANNOTATION_INIT_BLOCK", "ANNOTATION_INIT_DEFAULT_KEY", "ANNOTATION_INIT_KEY_LIST", - "ANNOTATION_LIST", "ANNOTATION_METHOD_DECL", "ANNOTATION_SCOPE", "ANNOTATION_TOP_LEVEL_SCOPE", - "ARGUMENT_LIST", "ARRAY_DECLARATOR", "ARRAY_DECLARATOR_LIST", "ARRAY_ELEMENT_ACCESS", - "ARRAY_INITIALIZER", "BLOCK_SCOPE", "CAST_EXPR", "CATCH_CLAUSE_LIST", - "CLASS_CONSTRUCTOR_CALL", "CLASS_INSTANCE_INITIALIZER", "CLASS_STATIC_INITIALIZER", - "CLASS_TOP_LEVEL_SCOPE", "CONSTRUCTOR_DECL", "ENUM_TOP_LEVEL_SCOPE", - "EXPR", "EXTENDS_BOUND_LIST", "EXTENDS_CLAUSE", "FOR_CONDITION", "FOR_EACH", - "FOR_INIT", "FOR_UPDATE", "FORMAL_PARAM_LIST", "FORMAL_PARAM_STD_DECL", - "FORMAL_PARAM_VARARG_DECL", "FUNCTION_METHOD_DECL", "GENERIC_TYPE_ARG_LIST", - "GENERIC_TYPE_PARAM_LIST", "INTERFACE_TOP_LEVEL_SCOPE", "IMPLEMENTS_CLAUSE", - "LABELED_STATEMENT", "LOCAL_MODIFIER_LIST", "JAVA_SOURCE", "METHOD_CALL", - "MODIFIER_LIST", "PARENTESIZED_EXPR", "POST_DEC", "POST_INC", "PRE_DEC", - "PRE_INC", "QUALIFIED_TYPE_IDENT", "STATIC_ARRAY_CREATOR", "SUPER_CONSTRUCTOR_CALL", - "SWITCH_BLOCK_LABEL_LIST", "THIS_CONSTRUCTOR_CALL", "THROWS_CLAUSE", - "TYPE", "UNARY_MINUS", "UNARY_PLUS", "VAR_DECLARATION", "VAR_DECLARATOR", - "VAR_DECLARATOR_LIST", "VOID_METHOD_DECL", "IDENT", "HEX_LITERAL", "OCTAL_LITERAL", - "DECIMAL_LITERAL", "FLOATING_POINT_LITERAL", "CHARACTER_LITERAL", "STRING_LITERAL", - "HEX_DIGIT", "INTEGER_TYPE_SUFFIX", "EXPONENT", "FLOAT_TYPE_SUFFIX", - "ESCAPE_SEQUENCE", "UNICODE_ESCAPE", "OCTAL_ESCAPE", "JAVA_ID_START", - "JAVA_ID_PART", "WS", "COMMENT", "LINE_COMMENT", "JAVADOC_COMMENT" -] - - - - -class JavaParser(Parser): - grammarFileName = "Java.g" - antlr_version = version_str_to_tuple("3.1.3 Mar 18, 2009 10:09:25") - antlr_version_str = "3.1.3 Mar 18, 2009 10:09:25" - tokenNames = tokenNames - - def __init__(self, input, state=None, *args, **kwargs): - if state is None: - state = RecognizerSharedState() - - super(JavaParser, self).__init__(input, state, *args, **kwargs) - - self._state.ruleMemo = {} - self.dfa36 = self.DFA36( - self, 36, - eot = self.DFA36_eot, - eof = self.DFA36_eof, - min = self.DFA36_min, - max = self.DFA36_max, - accept = self.DFA36_accept, - special = self.DFA36_special, - transition = self.DFA36_transition - ) - - self.dfa43 = self.DFA43( - self, 43, - eot = self.DFA43_eot, - eof = self.DFA43_eof, - min = self.DFA43_min, - max = self.DFA43_max, - accept = self.DFA43_accept, - special = self.DFA43_special, - transition = self.DFA43_transition - ) - - self.dfa86 = self.DFA86( - self, 86, - eot = self.DFA86_eot, - eof = self.DFA86_eof, - min = self.DFA86_min, - max = self.DFA86_max, - accept = self.DFA86_accept, - special = self.DFA86_special, - transition = self.DFA86_transition - ) - - self.dfa88 = self.DFA88( - self, 88, - eot = self.DFA88_eot, - eof = self.DFA88_eof, - min = self.DFA88_min, - max = self.DFA88_max, - accept = self.DFA88_accept, - special = self.DFA88_special, - transition = self.DFA88_transition - ) - - self.dfa98 = self.DFA98( - self, 98, - eot = self.DFA98_eot, - eof = self.DFA98_eof, - min = self.DFA98_min, - max = self.DFA98_max, - accept = self.DFA98_accept, - special = self.DFA98_special, - transition = self.DFA98_transition - ) - - self.dfa91 = self.DFA91( - self, 91, - eot = self.DFA91_eot, - eof = self.DFA91_eof, - min = self.DFA91_min, - max = self.DFA91_max, - accept = self.DFA91_accept, - special = self.DFA91_special, - transition = self.DFA91_transition - ) - - self.dfa106 = self.DFA106( - self, 106, - eot = self.DFA106_eot, - eof = self.DFA106_eof, - min = self.DFA106_min, - max = self.DFA106_max, - accept = self.DFA106_accept, - special = self.DFA106_special, - transition = self.DFA106_transition - ) - - self.dfa130 = self.DFA130( - self, 130, - eot = self.DFA130_eot, - eof = self.DFA130_eof, - min = self.DFA130_min, - max = self.DFA130_max, - accept = self.DFA130_accept, - special = self.DFA130_special, - transition = self.DFA130_transition - ) - - self.dfa142 = self.DFA142( - self, 142, - eot = self.DFA142_eot, - eof = self.DFA142_eof, - min = self.DFA142_min, - max = self.DFA142_max, - accept = self.DFA142_accept, - special = self.DFA142_special, - transition = self.DFA142_transition - ) - - self.dfa146 = self.DFA146( - self, 146, - eot = self.DFA146_eot, - eof = self.DFA146_eof, - min = self.DFA146_min, - max = self.DFA146_max, - accept = self.DFA146_accept, - special = self.DFA146_special, - transition = self.DFA146_transition - ) - - self.dfa153 = self.DFA153( - self, 153, - eot = self.DFA153_eot, - eof = self.DFA153_eof, - min = self.DFA153_min, - max = self.DFA153_max, - accept = self.DFA153_accept, - special = self.DFA153_special, - transition = self.DFA153_transition - ) - - - - - - - self._adaptor = None - self.adaptor = CommonTreeAdaptor() - - - - - def getTreeAdaptor(self): - return self._adaptor - - def setTreeAdaptor(self, adaptor): - self._adaptor = adaptor - - adaptor = property(getTreeAdaptor, setTreeAdaptor) - - - class javaSource_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.javaSource_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "javaSource" - # Java.g:222:1: javaSource : compilationUnit -> ^( JAVA_SOURCE compilationUnit ) ; - def javaSource(self, ): - - retval = self.javaSource_return() - retval.start = self.input.LT(1) - javaSource_StartIndex = self.input.index() - root_0 = None - - compilationUnit1 = None - - - stream_compilationUnit = RewriteRuleSubtreeStream(self._adaptor, "rule compilationUnit") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 1): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:223:5: ( compilationUnit -> ^( JAVA_SOURCE compilationUnit ) ) - # Java.g:223:9: compilationUnit - pass - self._state.following.append(self.FOLLOW_compilationUnit_in_javaSource4461) - compilationUnit1 = self.compilationUnit() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_compilationUnit.add(compilationUnit1.tree) - - # AST Rewrite - # elements: compilationUnit - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 224:9: -> ^( JAVA_SOURCE compilationUnit ) - # Java.g:224:13: ^( JAVA_SOURCE compilationUnit ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(JAVA_SOURCE, "JAVA_SOURCE"), root_1) - - self._adaptor.addChild(root_1, stream_compilationUnit.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 1, javaSource_StartIndex, success) - - pass - return retval - - # $ANTLR end "javaSource" - - class compilationUnit_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.compilationUnit_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "compilationUnit" - # Java.g:227:1: compilationUnit : annotationList ( packageDeclaration )? ( importDeclaration )* ( typeDecls )* ; - def compilationUnit(self, ): - - retval = self.compilationUnit_return() - retval.start = self.input.LT(1) - compilationUnit_StartIndex = self.input.index() - root_0 = None - - annotationList2 = None - - packageDeclaration3 = None - - importDeclaration4 = None - - typeDecls5 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 2): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:228:5: ( annotationList ( packageDeclaration )? ( importDeclaration )* ( typeDecls )* ) - # Java.g:228:9: annotationList ( packageDeclaration )? ( importDeclaration )* ( typeDecls )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotationList_in_compilationUnit4497) - annotationList2 = self.annotationList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationList2.tree) - # Java.g:229:9: ( packageDeclaration )? - alt1 = 2 - LA1_0 = self.input.LA(1) - - if (LA1_0 == PACKAGE) : - alt1 = 1 - if alt1 == 1: - # Java.g:0:0: packageDeclaration - pass - self._state.following.append(self.FOLLOW_packageDeclaration_in_compilationUnit4507) - packageDeclaration3 = self.packageDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, packageDeclaration3.tree) - - - - # Java.g:230:9: ( importDeclaration )* - while True: #loop2 - alt2 = 2 - LA2_0 = self.input.LA(1) - - if (LA2_0 == IMPORT) : - alt2 = 1 - - - if alt2 == 1: - # Java.g:0:0: importDeclaration - pass - self._state.following.append(self.FOLLOW_importDeclaration_in_compilationUnit4518) - importDeclaration4 = self.importDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, importDeclaration4.tree) - - - else: - break #loop2 - # Java.g:231:9: ( typeDecls )* - while True: #loop3 - alt3 = 2 - LA3_0 = self.input.LA(1) - - if (LA3_0 == AT or LA3_0 == LESS_THAN or LA3_0 == SEMI or LA3_0 == ABSTRACT or LA3_0 == BOOLEAN or LA3_0 == BYTE or (CHAR <= LA3_0 <= CLASS) or LA3_0 == DOUBLE or LA3_0 == ENUM or LA3_0 == FINAL or LA3_0 == FLOAT or LA3_0 == INTERFACE or (INT <= LA3_0 <= NATIVE) or (PRIVATE <= LA3_0 <= PUBLIC) or (SHORT <= LA3_0 <= STRICTFP) or LA3_0 == SYNCHRONIZED or LA3_0 == TRANSIENT or (VOID <= LA3_0 <= VOLATILE) or LA3_0 == IDENT) : - alt3 = 1 - - - if alt3 == 1: - # Java.g:0:0: typeDecls - pass - self._state.following.append(self.FOLLOW_typeDecls_in_compilationUnit4529) - typeDecls5 = self.typeDecls() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDecls5.tree) - - - else: - break #loop3 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 2, compilationUnit_StartIndex, success) - - pass - return retval - - # $ANTLR end "compilationUnit" - - class typeDecls_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeDecls_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "typeDecls" - # Java.g:234:1: typeDecls : ( typeDeclaration | SEMI ); - def typeDecls(self, ): - - retval = self.typeDecls_return() - retval.start = self.input.LT(1) - typeDecls_StartIndex = self.input.index() - root_0 = None - - SEMI7 = None - typeDeclaration6 = None - - - SEMI7_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 3): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:235:5: ( typeDeclaration | SEMI ) - alt4 = 2 - LA4_0 = self.input.LA(1) - - if (LA4_0 == AT or LA4_0 == LESS_THAN or LA4_0 == ABSTRACT or LA4_0 == BOOLEAN or LA4_0 == BYTE or (CHAR <= LA4_0 <= CLASS) or LA4_0 == DOUBLE or LA4_0 == ENUM or LA4_0 == FINAL or LA4_0 == FLOAT or LA4_0 == INTERFACE or (INT <= LA4_0 <= NATIVE) or (PRIVATE <= LA4_0 <= PUBLIC) or (SHORT <= LA4_0 <= STRICTFP) or LA4_0 == SYNCHRONIZED or LA4_0 == TRANSIENT or (VOID <= LA4_0 <= VOLATILE) or LA4_0 == IDENT) : - alt4 = 1 - elif (LA4_0 == SEMI) : - alt4 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 4, 0, self.input) - - raise nvae - - if alt4 == 1: - # Java.g:235:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_typeDeclaration_in_typeDecls4549) - typeDeclaration6 = self.typeDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration6.tree) - - - elif alt4 == 2: - # Java.g:236:9: SEMI - pass - root_0 = self._adaptor.nil() - - SEMI7=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_typeDecls4559) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 3, typeDecls_StartIndex, success) - - pass - return retval - - # $ANTLR end "typeDecls" - - class packageDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.packageDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "packageDeclaration" - # Java.g:239:1: packageDeclaration : PACKAGE qualifiedIdentifier SEMI ; - def packageDeclaration(self, ): - - retval = self.packageDeclaration_return() - retval.start = self.input.LT(1) - packageDeclaration_StartIndex = self.input.index() - root_0 = None - - PACKAGE8 = None - SEMI10 = None - qualifiedIdentifier9 = None - - - PACKAGE8_tree = None - SEMI10_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 4): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:240:5: ( PACKAGE qualifiedIdentifier SEMI ) - # Java.g:240:9: PACKAGE qualifiedIdentifier SEMI - pass - root_0 = self._adaptor.nil() - - PACKAGE8=self.match(self.input, PACKAGE, self.FOLLOW_PACKAGE_in_packageDeclaration4579) - if self._state.backtracking == 0: - - PACKAGE8_tree = self._adaptor.createWithPayload(PACKAGE8) - root_0 = self._adaptor.becomeRoot(PACKAGE8_tree, root_0) - - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_packageDeclaration4582) - qualifiedIdentifier9 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier9.tree) - SEMI10=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_packageDeclaration4584) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 4, packageDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "packageDeclaration" - - class importDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.importDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "importDeclaration" - # Java.g:243:1: importDeclaration : IMPORT ( STATIC )? qualifiedIdentifier ( DOTSTAR )? SEMI ; - def importDeclaration(self, ): - - retval = self.importDeclaration_return() - retval.start = self.input.LT(1) - importDeclaration_StartIndex = self.input.index() - root_0 = None - - IMPORT11 = None - STATIC12 = None - DOTSTAR14 = None - SEMI15 = None - qualifiedIdentifier13 = None - - - IMPORT11_tree = None - STATIC12_tree = None - DOTSTAR14_tree = None - SEMI15_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 5): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:244:5: ( IMPORT ( STATIC )? qualifiedIdentifier ( DOTSTAR )? SEMI ) - # Java.g:244:9: IMPORT ( STATIC )? qualifiedIdentifier ( DOTSTAR )? SEMI - pass - root_0 = self._adaptor.nil() - - IMPORT11=self.match(self.input, IMPORT, self.FOLLOW_IMPORT_in_importDeclaration4604) - if self._state.backtracking == 0: - - IMPORT11_tree = self._adaptor.createWithPayload(IMPORT11) - root_0 = self._adaptor.becomeRoot(IMPORT11_tree, root_0) - - # Java.g:244:17: ( STATIC )? - alt5 = 2 - LA5_0 = self.input.LA(1) - - if (LA5_0 == STATIC) : - alt5 = 1 - if alt5 == 1: - # Java.g:0:0: STATIC - pass - STATIC12=self.match(self.input, STATIC, self.FOLLOW_STATIC_in_importDeclaration4607) - if self._state.backtracking == 0: - - STATIC12_tree = self._adaptor.createWithPayload(STATIC12) - self._adaptor.addChild(root_0, STATIC12_tree) - - - - - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_importDeclaration4610) - qualifiedIdentifier13 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier13.tree) - # Java.g:244:45: ( DOTSTAR )? - alt6 = 2 - LA6_0 = self.input.LA(1) - - if (LA6_0 == DOTSTAR) : - alt6 = 1 - if alt6 == 1: - # Java.g:0:0: DOTSTAR - pass - DOTSTAR14=self.match(self.input, DOTSTAR, self.FOLLOW_DOTSTAR_in_importDeclaration4612) - if self._state.backtracking == 0: - - DOTSTAR14_tree = self._adaptor.createWithPayload(DOTSTAR14) - self._adaptor.addChild(root_0, DOTSTAR14_tree) - - - - - SEMI15=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_importDeclaration4615) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 5, importDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "importDeclaration" - - class typeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "typeDeclaration" - # Java.g:247:1: typeDeclaration : modifierList ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) ; - def typeDeclaration(self, ): - - retval = self.typeDeclaration_return() - retval.start = self.input.LT(1) - typeDeclaration_StartIndex = self.input.index() - root_0 = None - - modifierList16 = None - - classTypeDeclaration17 = None - - interfaceTypeDeclaration18 = None - - enumTypeDeclaration19 = None - - annotationTypeDeclaration20 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 6): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:248:5: ( modifierList ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) ) - # Java.g:248:9: modifierList ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_modifierList_in_typeDeclaration4635) - modifierList16 = self.modifierList() - - self._state.following.pop() - # Java.g:249:9: ( classTypeDeclaration[$modifierList.tree] | interfaceTypeDeclaration[$modifierList.tree] | enumTypeDeclaration[$modifierList.tree] | annotationTypeDeclaration[$modifierList.tree] ) - alt7 = 4 - LA7 = self.input.LA(1) - if LA7 == CLASS: - alt7 = 1 - elif LA7 == INTERFACE: - alt7 = 2 - elif LA7 == ENUM: - alt7 = 3 - elif LA7 == AT: - alt7 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 7, 0, self.input) - - raise nvae - - if alt7 == 1: - # Java.g:249:13: classTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_classTypeDeclaration_in_typeDeclaration4650) - classTypeDeclaration17 = self.classTypeDeclaration(modifierList16.tree) - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, classTypeDeclaration17.tree) - - - elif alt7 == 2: - # Java.g:250:13: interfaceTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_interfaceTypeDeclaration_in_typeDeclaration4665) - interfaceTypeDeclaration18 = self.interfaceTypeDeclaration(modifierList16.tree) - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, interfaceTypeDeclaration18.tree) - - - elif alt7 == 3: - # Java.g:251:13: enumTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_enumTypeDeclaration_in_typeDeclaration4680) - enumTypeDeclaration19 = self.enumTypeDeclaration(modifierList16.tree) - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumTypeDeclaration19.tree) - - - elif alt7 == 4: - # Java.g:252:13: annotationTypeDeclaration[$modifierList.tree] - pass - self._state.following.append(self.FOLLOW_annotationTypeDeclaration_in_typeDeclaration4695) - annotationTypeDeclaration20 = self.annotationTypeDeclaration(modifierList16.tree) - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationTypeDeclaration20.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 6, typeDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "typeDeclaration" - - class classTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classTypeDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "classTypeDeclaration" - # Java.g:256:1: classTypeDeclaration[modifiers] : CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody -> ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) ; - def classTypeDeclaration(self, modifiers): - - retval = self.classTypeDeclaration_return() - retval.start = self.input.LT(1) - classTypeDeclaration_StartIndex = self.input.index() - root_0 = None - - CLASS21 = None - IDENT22 = None - genericTypeParameterList23 = None - - classExtendsClause24 = None - - implementsClause25 = None - - classBody26 = None - - - CLASS21_tree = None - IDENT22_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_CLASS = RewriteRuleTokenStream(self._adaptor, "token CLASS") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_classExtendsClause = RewriteRuleSubtreeStream(self._adaptor, "rule classExtendsClause") - stream_implementsClause = RewriteRuleSubtreeStream(self._adaptor, "rule implementsClause") - stream_classBody = RewriteRuleSubtreeStream(self._adaptor, "rule classBody") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 7): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:257:5: ( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody -> ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) ) - # Java.g:257:9: CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody - pass - CLASS21=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_classTypeDeclaration4726) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS21) - IDENT22=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classTypeDeclaration4728) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT22) - # Java.g:257:21: ( genericTypeParameterList )? - alt8 = 2 - LA8_0 = self.input.LA(1) - - if (LA8_0 == LESS_THAN) : - alt8 = 1 - if alt8 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_classTypeDeclaration4730) - genericTypeParameterList23 = self.genericTypeParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList23.tree) - - - - # Java.g:257:47: ( classExtendsClause )? - alt9 = 2 - LA9_0 = self.input.LA(1) - - if (LA9_0 == EXTENDS) : - alt9 = 1 - if alt9 == 1: - # Java.g:0:0: classExtendsClause - pass - self._state.following.append(self.FOLLOW_classExtendsClause_in_classTypeDeclaration4733) - classExtendsClause24 = self.classExtendsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classExtendsClause.add(classExtendsClause24.tree) - - - - # Java.g:257:67: ( implementsClause )? - alt10 = 2 - LA10_0 = self.input.LA(1) - - if (LA10_0 == IMPLEMENTS) : - alt10 = 1 - if alt10 == 1: - # Java.g:0:0: implementsClause - pass - self._state.following.append(self.FOLLOW_implementsClause_in_classTypeDeclaration4736) - implementsClause25 = self.implementsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_implementsClause.add(implementsClause25.tree) - - - - self._state.following.append(self.FOLLOW_classBody_in_classTypeDeclaration4739) - classBody26 = self.classBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classBody.add(classBody26.tree) - - # AST Rewrite - # elements: classExtendsClause, IDENT, genericTypeParameterList, implementsClause, classBody, CLASS - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 258:9: -> ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) - # Java.g:258:13: ^( CLASS IDENT ( genericTypeParameterList )? ( classExtendsClause )? ( implementsClause )? classBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_CLASS.nextNode(), root_1) - - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:258:40: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - - - stream_genericTypeParameterList.reset(); - # Java.g:258:66: ( classExtendsClause )? - if stream_classExtendsClause.hasNext(): - self._adaptor.addChild(root_1, stream_classExtendsClause.nextTree()) - - - stream_classExtendsClause.reset(); - # Java.g:259:15: ( implementsClause )? - if stream_implementsClause.hasNext(): - self._adaptor.addChild(root_1, stream_implementsClause.nextTree()) - - - stream_implementsClause.reset(); - self._adaptor.addChild(root_1, stream_classBody.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 7, classTypeDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "classTypeDeclaration" - - class classExtendsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classExtendsClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "classExtendsClause" - # Java.g:262:1: classExtendsClause : EXTENDS type -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) ; - def classExtendsClause(self, ): - - retval = self.classExtendsClause_return() - retval.start = self.input.LT(1) - classExtendsClause_StartIndex = self.input.index() - root_0 = None - - EXTENDS27 = None - type28 = None - - - EXTENDS27_tree = None - stream_EXTENDS = RewriteRuleTokenStream(self._adaptor, "token EXTENDS") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 8): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:263:5: ( EXTENDS type -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) ) - # Java.g:263:9: EXTENDS type - pass - EXTENDS27=self.match(self.input, EXTENDS, self.FOLLOW_EXTENDS_in_classExtendsClause4802) - if self._state.backtracking == 0: - stream_EXTENDS.add(EXTENDS27) - self._state.following.append(self.FOLLOW_type_in_classExtendsClause4804) - type28 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type28.tree) - - # AST Rewrite - # elements: type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 264:9: -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) - # Java.g:264:13: ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] type ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(EXTENDS_CLAUSE, EXTENDS27, "EXTENDS_CLAUSE"), root_1) - - self._adaptor.addChild(root_1, stream_type.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 8, classExtendsClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "classExtendsClause" - - class interfaceExtendsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceExtendsClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "interfaceExtendsClause" - # Java.g:267:1: interfaceExtendsClause : EXTENDS typeList -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) ; - def interfaceExtendsClause(self, ): - - retval = self.interfaceExtendsClause_return() - retval.start = self.input.LT(1) - interfaceExtendsClause_StartIndex = self.input.index() - root_0 = None - - EXTENDS29 = None - typeList30 = None - - - EXTENDS29_tree = None - stream_EXTENDS = RewriteRuleTokenStream(self._adaptor, "token EXTENDS") - stream_typeList = RewriteRuleSubtreeStream(self._adaptor, "rule typeList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 9): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:268:5: ( EXTENDS typeList -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) ) - # Java.g:268:9: EXTENDS typeList - pass - EXTENDS29=self.match(self.input, EXTENDS, self.FOLLOW_EXTENDS_in_interfaceExtendsClause4841) - if self._state.backtracking == 0: - stream_EXTENDS.add(EXTENDS29) - self._state.following.append(self.FOLLOW_typeList_in_interfaceExtendsClause4843) - typeList30 = self.typeList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeList.add(typeList30.tree) - - # AST Rewrite - # elements: typeList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 269:9: -> ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) - # Java.g:269:13: ^( EXTENDS_CLAUSE[$EXTENDS, \"EXTENDS_CLAUSE\"] typeList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(EXTENDS_CLAUSE, EXTENDS29, "EXTENDS_CLAUSE"), root_1) - - self._adaptor.addChild(root_1, stream_typeList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 9, interfaceExtendsClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceExtendsClause" - - class implementsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.implementsClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "implementsClause" - # Java.g:272:1: implementsClause : IMPLEMENTS typeList -> ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) ; - def implementsClause(self, ): - - retval = self.implementsClause_return() - retval.start = self.input.LT(1) - implementsClause_StartIndex = self.input.index() - root_0 = None - - IMPLEMENTS31 = None - typeList32 = None - - - IMPLEMENTS31_tree = None - stream_IMPLEMENTS = RewriteRuleTokenStream(self._adaptor, "token IMPLEMENTS") - stream_typeList = RewriteRuleSubtreeStream(self._adaptor, "rule typeList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 10): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:273:5: ( IMPLEMENTS typeList -> ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) ) - # Java.g:273:9: IMPLEMENTS typeList - pass - IMPLEMENTS31=self.match(self.input, IMPLEMENTS, self.FOLLOW_IMPLEMENTS_in_implementsClause4880) - if self._state.backtracking == 0: - stream_IMPLEMENTS.add(IMPLEMENTS31) - self._state.following.append(self.FOLLOW_typeList_in_implementsClause4882) - typeList32 = self.typeList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeList.add(typeList32.tree) - - # AST Rewrite - # elements: typeList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 274:9: -> ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) - # Java.g:274:13: ^( IMPLEMENTS_CLAUSE[$IMPLEMENTS, \"IMPLEMENTS_CLAUSE\"] typeList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(IMPLEMENTS_CLAUSE, IMPLEMENTS31, "IMPLEMENTS_CLAUSE"), root_1) - - self._adaptor.addChild(root_1, stream_typeList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 10, implementsClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "implementsClause" - - class genericTypeParameterList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeParameterList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeParameterList" - # Java.g:277:1: genericTypeParameterList : LESS_THAN genericTypeParameter ( COMMA genericTypeParameter )* genericTypeListClosing -> ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) ; - def genericTypeParameterList(self, ): - - retval = self.genericTypeParameterList_return() - retval.start = self.input.LT(1) - genericTypeParameterList_StartIndex = self.input.index() - root_0 = None - - LESS_THAN33 = None - COMMA35 = None - genericTypeParameter34 = None - - genericTypeParameter36 = None - - genericTypeListClosing37 = None - - - LESS_THAN33_tree = None - COMMA35_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LESS_THAN = RewriteRuleTokenStream(self._adaptor, "token LESS_THAN") - stream_genericTypeParameter = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameter") - stream_genericTypeListClosing = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeListClosing") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 11): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:278:5: ( LESS_THAN genericTypeParameter ( COMMA genericTypeParameter )* genericTypeListClosing -> ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) ) - # Java.g:278:9: LESS_THAN genericTypeParameter ( COMMA genericTypeParameter )* genericTypeListClosing - pass - LESS_THAN33=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_genericTypeParameterList4919) - if self._state.backtracking == 0: - stream_LESS_THAN.add(LESS_THAN33) - self._state.following.append(self.FOLLOW_genericTypeParameter_in_genericTypeParameterList4921) - genericTypeParameter34 = self.genericTypeParameter() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameter.add(genericTypeParameter34.tree) - # Java.g:278:40: ( COMMA genericTypeParameter )* - while True: #loop11 - alt11 = 2 - LA11_0 = self.input.LA(1) - - if (LA11_0 == COMMA) : - alt11 = 1 - - - if alt11 == 1: - # Java.g:278:41: COMMA genericTypeParameter - pass - COMMA35=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_genericTypeParameterList4924) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA35) - self._state.following.append(self.FOLLOW_genericTypeParameter_in_genericTypeParameterList4926) - genericTypeParameter36 = self.genericTypeParameter() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameter.add(genericTypeParameter36.tree) - - - else: - break #loop11 - self._state.following.append(self.FOLLOW_genericTypeListClosing_in_genericTypeParameterList4930) - genericTypeListClosing37 = self.genericTypeListClosing() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeListClosing.add(genericTypeListClosing37.tree) - - # AST Rewrite - # elements: genericTypeParameter - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 279:9: -> ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) - # Java.g:279:13: ^( GENERIC_TYPE_PARAM_LIST[$LESS_THAN, \"GENERIC_TYPE_PARAM_LIST\"] ( genericTypeParameter )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(GENERIC_TYPE_PARAM_LIST, LESS_THAN33, "GENERIC_TYPE_PARAM_LIST"), root_1) - - # Java.g:279:78: ( genericTypeParameter )+ - if not (stream_genericTypeParameter.hasNext()): - raise RewriteEarlyExitException() - - while stream_genericTypeParameter.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameter.nextTree()) - - - stream_genericTypeParameter.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 11, genericTypeParameterList_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeParameterList" - - class genericTypeListClosing_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeListClosing_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeListClosing" - # Java.g:282:1: genericTypeListClosing : ( GREATER_THAN | SHIFT_RIGHT | BIT_SHIFT_RIGHT | ); - def genericTypeListClosing(self, ): - - retval = self.genericTypeListClosing_return() - retval.start = self.input.LT(1) - genericTypeListClosing_StartIndex = self.input.index() - root_0 = None - - GREATER_THAN38 = None - SHIFT_RIGHT39 = None - BIT_SHIFT_RIGHT40 = None - - GREATER_THAN38_tree = None - SHIFT_RIGHT39_tree = None - BIT_SHIFT_RIGHT40_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 12): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:286:5: ( GREATER_THAN | SHIFT_RIGHT | BIT_SHIFT_RIGHT | ) - alt12 = 4 - LA12 = self.input.LA(1) - if LA12 == GREATER_THAN: - LA12_1 = self.input.LA(2) - - if (self.synpred14_Java()) : - alt12 = 1 - elif (True) : - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 12, 1, self.input) - - raise nvae - - elif LA12 == SHIFT_RIGHT: - LA12_2 = self.input.LA(2) - - if (self.synpred15_Java()) : - alt12 = 2 - elif (True) : - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 12, 2, self.input) - - raise nvae - - elif LA12 == BIT_SHIFT_RIGHT: - LA12_3 = self.input.LA(2) - - if (self.synpred16_Java()) : - alt12 = 3 - elif (True) : - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 12, 3, self.input) - - raise nvae - - elif LA12 == EOF or LA12 == AND or LA12 == AND_ASSIGN or LA12 == ASSIGN or LA12 == BIT_SHIFT_RIGHT_ASSIGN or LA12 == COLON or LA12 == COMMA or LA12 == DIV_ASSIGN or LA12 == DOT or LA12 == ELLIPSIS or LA12 == EQUAL or LA12 == LBRACK or LA12 == LCURLY or LA12 == LOGICAL_AND or LA12 == LOGICAL_OR or LA12 == LPAREN or LA12 == MINUS_ASSIGN or LA12 == MOD_ASSIGN or LA12 == NOT_EQUAL or LA12 == OR or LA12 == OR_ASSIGN or LA12 == PLUS_ASSIGN or LA12 == QUESTION or LA12 == RBRACK or LA12 == RCURLY or LA12 == RPAREN or LA12 == SEMI or LA12 == SHIFT_LEFT_ASSIGN or LA12 == SHIFT_RIGHT_ASSIGN or LA12 == STAR_ASSIGN or LA12 == XOR or LA12 == XOR_ASSIGN or LA12 == BOOLEAN or LA12 == BYTE or LA12 == CHAR or LA12 == DOUBLE or LA12 == EXTENDS or LA12 == FLOAT or LA12 == IMPLEMENTS or LA12 == INT or LA12 == LONG or LA12 == SHORT or LA12 == SUPER or LA12 == THIS or LA12 == VOID or LA12 == IDENT: - alt12 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 12, 0, self.input) - - raise nvae - - if alt12 == 1: - # Java.g:286:9: GREATER_THAN - pass - root_0 = self._adaptor.nil() - - GREATER_THAN38=self.match(self.input, GREATER_THAN, self.FOLLOW_GREATER_THAN_in_genericTypeListClosing5045) - if self._state.backtracking == 0: - - GREATER_THAN38_tree = self._adaptor.createWithPayload(GREATER_THAN38) - self._adaptor.addChild(root_0, GREATER_THAN38_tree) - - - - elif alt12 == 2: - # Java.g:287:9: SHIFT_RIGHT - pass - root_0 = self._adaptor.nil() - - SHIFT_RIGHT39=self.match(self.input, SHIFT_RIGHT, self.FOLLOW_SHIFT_RIGHT_in_genericTypeListClosing5055) - if self._state.backtracking == 0: - - SHIFT_RIGHT39_tree = self._adaptor.createWithPayload(SHIFT_RIGHT39) - self._adaptor.addChild(root_0, SHIFT_RIGHT39_tree) - - - - elif alt12 == 3: - # Java.g:288:9: BIT_SHIFT_RIGHT - pass - root_0 = self._adaptor.nil() - - BIT_SHIFT_RIGHT40=self.match(self.input, BIT_SHIFT_RIGHT, self.FOLLOW_BIT_SHIFT_RIGHT_in_genericTypeListClosing5065) - if self._state.backtracking == 0: - - BIT_SHIFT_RIGHT40_tree = self._adaptor.createWithPayload(BIT_SHIFT_RIGHT40) - self._adaptor.addChild(root_0, BIT_SHIFT_RIGHT40_tree) - - - - elif alt12 == 4: - # Java.g:290:5: - pass - root_0 = self._adaptor.nil() - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 12, genericTypeListClosing_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeListClosing" - - class genericTypeParameter_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeParameter_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeParameter" - # Java.g:292:1: genericTypeParameter : IDENT ( bound )? -> ^( IDENT ( bound )? ) ; - def genericTypeParameter(self, ): - - retval = self.genericTypeParameter_return() - retval.start = self.input.LT(1) - genericTypeParameter_StartIndex = self.input.index() - root_0 = None - - IDENT41 = None - bound42 = None - - - IDENT41_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_bound = RewriteRuleSubtreeStream(self._adaptor, "rule bound") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 13): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:293:5: ( IDENT ( bound )? -> ^( IDENT ( bound )? ) ) - # Java.g:293:9: IDENT ( bound )? - pass - IDENT41=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_genericTypeParameter5093) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT41) - # Java.g:293:15: ( bound )? - alt13 = 2 - LA13_0 = self.input.LA(1) - - if (LA13_0 == EXTENDS) : - LA13_1 = self.input.LA(2) - - if (LA13_1 == BOOLEAN or LA13_1 == BYTE or LA13_1 == CHAR or LA13_1 == DOUBLE or LA13_1 == FLOAT or (INT <= LA13_1 <= LONG) or LA13_1 == SHORT) : - LA13_3 = self.input.LA(3) - - if (self.synpred17_Java()) : - alt13 = 1 - elif (LA13_1 == IDENT) : - LA13_4 = self.input.LA(3) - - if (self.synpred17_Java()) : - alt13 = 1 - if alt13 == 1: - # Java.g:0:0: bound - pass - self._state.following.append(self.FOLLOW_bound_in_genericTypeParameter5095) - bound42 = self.bound() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_bound.add(bound42.tree) - - - - - # AST Rewrite - # elements: IDENT, bound - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 294:9: -> ^( IDENT ( bound )? ) - # Java.g:294:13: ^( IDENT ( bound )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_IDENT.nextNode(), root_1) - - # Java.g:294:21: ( bound )? - if stream_bound.hasNext(): - self._adaptor.addChild(root_1, stream_bound.nextTree()) - - - stream_bound.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 13, genericTypeParameter_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeParameter" - - class bound_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.bound_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "bound" - # Java.g:297:1: bound : EXTENDS type ( AND type )* -> ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) ; - def bound(self, ): - - retval = self.bound_return() - retval.start = self.input.LT(1) - bound_StartIndex = self.input.index() - root_0 = None - - EXTENDS43 = None - AND45 = None - type44 = None - - type46 = None - - - EXTENDS43_tree = None - AND45_tree = None - stream_AND = RewriteRuleTokenStream(self._adaptor, "token AND") - stream_EXTENDS = RewriteRuleTokenStream(self._adaptor, "token EXTENDS") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 14): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:298:5: ( EXTENDS type ( AND type )* -> ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) ) - # Java.g:298:9: EXTENDS type ( AND type )* - pass - EXTENDS43=self.match(self.input, EXTENDS, self.FOLLOW_EXTENDS_in_bound5133) - if self._state.backtracking == 0: - stream_EXTENDS.add(EXTENDS43) - self._state.following.append(self.FOLLOW_type_in_bound5135) - type44 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type44.tree) - # Java.g:298:22: ( AND type )* - while True: #loop14 - alt14 = 2 - LA14_0 = self.input.LA(1) - - if (LA14_0 == AND) : - alt14 = 1 - - - if alt14 == 1: - # Java.g:298:23: AND type - pass - AND45=self.match(self.input, AND, self.FOLLOW_AND_in_bound5138) - if self._state.backtracking == 0: - stream_AND.add(AND45) - self._state.following.append(self.FOLLOW_type_in_bound5140) - type46 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type46.tree) - - - else: - break #loop14 - - # AST Rewrite - # elements: type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 299:9: -> ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) - # Java.g:299:13: ^( EXTENDS_BOUND_LIST[$EXTENDS, \"EXTENDS_BOUND_LIST\"] ( type )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(EXTENDS_BOUND_LIST, EXTENDS43, "EXTENDS_BOUND_LIST"), root_1) - - # Java.g:299:66: ( type )+ - if not (stream_type.hasNext()): - raise RewriteEarlyExitException() - - while stream_type.hasNext(): - self._adaptor.addChild(root_1, stream_type.nextTree()) - - - stream_type.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 14, bound_StartIndex, success) - - pass - return retval - - # $ANTLR end "bound" - - class enumTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumTypeDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "enumTypeDeclaration" - # Java.g:302:1: enumTypeDeclaration[modifiers] : ENUM IDENT ( implementsClause )? enumBody -> ^( ENUM IDENT ( implementsClause )? enumBody ) ; - def enumTypeDeclaration(self, modifiers): - - retval = self.enumTypeDeclaration_return() - retval.start = self.input.LT(1) - enumTypeDeclaration_StartIndex = self.input.index() - root_0 = None - - ENUM47 = None - IDENT48 = None - implementsClause49 = None - - enumBody50 = None - - - ENUM47_tree = None - IDENT48_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_ENUM = RewriteRuleTokenStream(self._adaptor, "token ENUM") - stream_implementsClause = RewriteRuleSubtreeStream(self._adaptor, "rule implementsClause") - stream_enumBody = RewriteRuleSubtreeStream(self._adaptor, "rule enumBody") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 15): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:303:5: ( ENUM IDENT ( implementsClause )? enumBody -> ^( ENUM IDENT ( implementsClause )? enumBody ) ) - # Java.g:303:9: ENUM IDENT ( implementsClause )? enumBody - pass - ENUM47=self.match(self.input, ENUM, self.FOLLOW_ENUM_in_enumTypeDeclaration5181) - if self._state.backtracking == 0: - stream_ENUM.add(ENUM47) - IDENT48=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_enumTypeDeclaration5183) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT48) - # Java.g:303:20: ( implementsClause )? - alt15 = 2 - LA15_0 = self.input.LA(1) - - if (LA15_0 == IMPLEMENTS) : - alt15 = 1 - if alt15 == 1: - # Java.g:0:0: implementsClause - pass - self._state.following.append(self.FOLLOW_implementsClause_in_enumTypeDeclaration5185) - implementsClause49 = self.implementsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_implementsClause.add(implementsClause49.tree) - - - - self._state.following.append(self.FOLLOW_enumBody_in_enumTypeDeclaration5188) - enumBody50 = self.enumBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_enumBody.add(enumBody50.tree) - - # AST Rewrite - # elements: ENUM, IDENT, enumBody, implementsClause - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 304:9: -> ^( ENUM IDENT ( implementsClause )? enumBody ) - # Java.g:304:13: ^( ENUM IDENT ( implementsClause )? enumBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_ENUM.nextNode(), root_1) - - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:304:39: ( implementsClause )? - if stream_implementsClause.hasNext(): - self._adaptor.addChild(root_1, stream_implementsClause.nextTree()) - - - stream_implementsClause.reset(); - self._adaptor.addChild(root_1, stream_enumBody.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 15, enumTypeDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "enumTypeDeclaration" - - class enumBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumBody_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "enumBody" - # Java.g:307:1: enumBody : LCURLY enumScopeDeclarations RCURLY -> ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) ; - def enumBody(self, ): - - retval = self.enumBody_return() - retval.start = self.input.LT(1) - enumBody_StartIndex = self.input.index() - root_0 = None - - LCURLY51 = None - RCURLY53 = None - enumScopeDeclarations52 = None - - - LCURLY51_tree = None - RCURLY53_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_enumScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule enumScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 16): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:308:5: ( LCURLY enumScopeDeclarations RCURLY -> ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) ) - # Java.g:308:9: LCURLY enumScopeDeclarations RCURLY - pass - LCURLY51=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_enumBody5231) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY51) - self._state.following.append(self.FOLLOW_enumScopeDeclarations_in_enumBody5233) - enumScopeDeclarations52 = self.enumScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_enumScopeDeclarations.add(enumScopeDeclarations52.tree) - RCURLY53=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_enumBody5235) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY53) - - # AST Rewrite - # elements: enumScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 309:9: -> ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) - # Java.g:309:13: ^( ENUM_TOP_LEVEL_SCOPE[$LCURLY, \"ENUM_TOP_LEVEL_SCOPE\"] enumScopeDeclarations ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ENUM_TOP_LEVEL_SCOPE, LCURLY51, "ENUM_TOP_LEVEL_SCOPE"), root_1) - - self._adaptor.addChild(root_1, stream_enumScopeDeclarations.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 16, enumBody_StartIndex, success) - - pass - return retval - - # $ANTLR end "enumBody" - - class enumScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumScopeDeclarations_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "enumScopeDeclarations" - # Java.g:312:1: enumScopeDeclarations : enumConstants ( COMMA )? ( enumClassScopeDeclarations )? ; - def enumScopeDeclarations(self, ): - - retval = self.enumScopeDeclarations_return() - retval.start = self.input.LT(1) - enumScopeDeclarations_StartIndex = self.input.index() - root_0 = None - - COMMA55 = None - enumConstants54 = None - - enumClassScopeDeclarations56 = None - - - COMMA55_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 17): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:313:5: ( enumConstants ( COMMA )? ( enumClassScopeDeclarations )? ) - # Java.g:313:9: enumConstants ( COMMA )? ( enumClassScopeDeclarations )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_enumConstants_in_enumScopeDeclarations5272) - enumConstants54 = self.enumConstants() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumConstants54.tree) - # Java.g:313:23: ( COMMA )? - alt16 = 2 - LA16_0 = self.input.LA(1) - - if (LA16_0 == COMMA) : - alt16 = 1 - if alt16 == 1: - # Java.g:313:24: COMMA - pass - COMMA55=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_enumScopeDeclarations5275) - - - - # Java.g:313:33: ( enumClassScopeDeclarations )? - alt17 = 2 - LA17_0 = self.input.LA(1) - - if (LA17_0 == SEMI) : - alt17 = 1 - if alt17 == 1: - # Java.g:0:0: enumClassScopeDeclarations - pass - self._state.following.append(self.FOLLOW_enumClassScopeDeclarations_in_enumScopeDeclarations5280) - enumClassScopeDeclarations56 = self.enumClassScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumClassScopeDeclarations56.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 17, enumScopeDeclarations_StartIndex, success) - - pass - return retval - - # $ANTLR end "enumScopeDeclarations" - - class enumClassScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumClassScopeDeclarations_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "enumClassScopeDeclarations" - # Java.g:316:1: enumClassScopeDeclarations : SEMI ( classScopeDeclarations )* -> ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ; - def enumClassScopeDeclarations(self, ): - - retval = self.enumClassScopeDeclarations_return() - retval.start = self.input.LT(1) - enumClassScopeDeclarations_StartIndex = self.input.index() - root_0 = None - - SEMI57 = None - classScopeDeclarations58 = None - - - SEMI57_tree = None - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_classScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule classScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 18): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:317:5: ( SEMI ( classScopeDeclarations )* -> ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ) - # Java.g:317:9: SEMI ( classScopeDeclarations )* - pass - SEMI57=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_enumClassScopeDeclarations5300) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI57) - # Java.g:317:14: ( classScopeDeclarations )* - while True: #loop18 - alt18 = 2 - LA18_0 = self.input.LA(1) - - if (LA18_0 == AT or LA18_0 == LCURLY or LA18_0 == LESS_THAN or LA18_0 == SEMI or LA18_0 == ABSTRACT or LA18_0 == BOOLEAN or LA18_0 == BYTE or (CHAR <= LA18_0 <= CLASS) or LA18_0 == DOUBLE or LA18_0 == ENUM or LA18_0 == FINAL or LA18_0 == FLOAT or LA18_0 == INTERFACE or (INT <= LA18_0 <= NATIVE) or (PRIVATE <= LA18_0 <= PUBLIC) or (SHORT <= LA18_0 <= STRICTFP) or LA18_0 == SYNCHRONIZED or LA18_0 == TRANSIENT or (VOID <= LA18_0 <= VOLATILE) or LA18_0 == IDENT) : - alt18 = 1 - - - if alt18 == 1: - # Java.g:0:0: classScopeDeclarations - pass - self._state.following.append(self.FOLLOW_classScopeDeclarations_in_enumClassScopeDeclarations5302) - classScopeDeclarations58 = self.classScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classScopeDeclarations.add(classScopeDeclarations58.tree) - - - else: - break #loop18 - - # AST Rewrite - # elements: classScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 318:9: -> ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - # Java.g:318:13: ^( CLASS_TOP_LEVEL_SCOPE[$SEMI, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_TOP_LEVEL_SCOPE, SEMI57, "CLASS_TOP_LEVEL_SCOPE"), root_1) - - # Java.g:318:69: ( classScopeDeclarations )* - while stream_classScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_classScopeDeclarations.nextTree()) - - - stream_classScopeDeclarations.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 18, enumClassScopeDeclarations_StartIndex, success) - - pass - return retval - - # $ANTLR end "enumClassScopeDeclarations" - - class enumConstants_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumConstants_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "enumConstants" - # Java.g:321:1: enumConstants : enumConstant ( COMMA enumConstant )* ; - def enumConstants(self, ): - - retval = self.enumConstants_return() - retval.start = self.input.LT(1) - enumConstants_StartIndex = self.input.index() - root_0 = None - - COMMA60 = None - enumConstant59 = None - - enumConstant61 = None - - - COMMA60_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 19): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:322:5: ( enumConstant ( COMMA enumConstant )* ) - # Java.g:322:9: enumConstant ( COMMA enumConstant )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_enumConstant_in_enumConstants5341) - enumConstant59 = self.enumConstant() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumConstant59.tree) - # Java.g:322:22: ( COMMA enumConstant )* - while True: #loop19 - alt19 = 2 - LA19_0 = self.input.LA(1) - - if (LA19_0 == COMMA) : - LA19_1 = self.input.LA(2) - - if (LA19_1 == AT or LA19_1 == IDENT) : - alt19 = 1 - - - - - if alt19 == 1: - # Java.g:322:23: COMMA enumConstant - pass - COMMA60=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_enumConstants5344) - self._state.following.append(self.FOLLOW_enumConstant_in_enumConstants5347) - enumConstant61 = self.enumConstant() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, enumConstant61.tree) - - - else: - break #loop19 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 19, enumConstants_StartIndex, success) - - pass - return retval - - # $ANTLR end "enumConstants" - - class enumConstant_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.enumConstant_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "enumConstant" - # Java.g:325:1: enumConstant : annotationList IDENT ( arguments )? ( classBody )? ; - def enumConstant(self, ): - - retval = self.enumConstant_return() - retval.start = self.input.LT(1) - enumConstant_StartIndex = self.input.index() - root_0 = None - - IDENT63 = None - annotationList62 = None - - arguments64 = None - - classBody65 = None - - - IDENT63_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 20): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:326:5: ( annotationList IDENT ( arguments )? ( classBody )? ) - # Java.g:326:9: annotationList IDENT ( arguments )? ( classBody )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotationList_in_enumConstant5368) - annotationList62 = self.annotationList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationList62.tree) - IDENT63=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_enumConstant5370) - if self._state.backtracking == 0: - - IDENT63_tree = self._adaptor.createWithPayload(IDENT63) - root_0 = self._adaptor.becomeRoot(IDENT63_tree, root_0) - - # Java.g:326:31: ( arguments )? - alt20 = 2 - LA20_0 = self.input.LA(1) - - if (LA20_0 == LPAREN) : - alt20 = 1 - if alt20 == 1: - # Java.g:0:0: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_enumConstant5373) - arguments64 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arguments64.tree) - - - - # Java.g:326:42: ( classBody )? - alt21 = 2 - LA21_0 = self.input.LA(1) - - if (LA21_0 == LCURLY) : - alt21 = 1 - if alt21 == 1: - # Java.g:0:0: classBody - pass - self._state.following.append(self.FOLLOW_classBody_in_enumConstant5376) - classBody65 = self.classBody() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, classBody65.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 20, enumConstant_StartIndex, success) - - pass - return retval - - # $ANTLR end "enumConstant" - - class interfaceTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceTypeDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "interfaceTypeDeclaration" - # Java.g:329:1: interfaceTypeDeclaration[modifiers] : INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody -> ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) ; - def interfaceTypeDeclaration(self, modifiers): - - retval = self.interfaceTypeDeclaration_return() - retval.start = self.input.LT(1) - interfaceTypeDeclaration_StartIndex = self.input.index() - root_0 = None - - INTERFACE66 = None - IDENT67 = None - genericTypeParameterList68 = None - - interfaceExtendsClause69 = None - - interfaceBody70 = None - - - INTERFACE66_tree = None - IDENT67_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_INTERFACE = RewriteRuleTokenStream(self._adaptor, "token INTERFACE") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_interfaceBody = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceBody") - stream_interfaceExtendsClause = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceExtendsClause") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 21): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:330:5: ( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody -> ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) ) - # Java.g:330:9: INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody - pass - INTERFACE66=self.match(self.input, INTERFACE, self.FOLLOW_INTERFACE_in_interfaceTypeDeclaration5397) - if self._state.backtracking == 0: - stream_INTERFACE.add(INTERFACE66) - IDENT67=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_interfaceTypeDeclaration5399) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT67) - # Java.g:330:25: ( genericTypeParameterList )? - alt22 = 2 - LA22_0 = self.input.LA(1) - - if (LA22_0 == LESS_THAN) : - alt22 = 1 - if alt22 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_interfaceTypeDeclaration5401) - genericTypeParameterList68 = self.genericTypeParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList68.tree) - - - - # Java.g:330:51: ( interfaceExtendsClause )? - alt23 = 2 - LA23_0 = self.input.LA(1) - - if (LA23_0 == EXTENDS) : - alt23 = 1 - if alt23 == 1: - # Java.g:0:0: interfaceExtendsClause - pass - self._state.following.append(self.FOLLOW_interfaceExtendsClause_in_interfaceTypeDeclaration5404) - interfaceExtendsClause69 = self.interfaceExtendsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceExtendsClause.add(interfaceExtendsClause69.tree) - - - - self._state.following.append(self.FOLLOW_interfaceBody_in_interfaceTypeDeclaration5407) - interfaceBody70 = self.interfaceBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceBody.add(interfaceBody70.tree) - - # AST Rewrite - # elements: INTERFACE, genericTypeParameterList, IDENT, interfaceExtendsClause, interfaceBody - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 331:9: -> ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) - # Java.g:331:13: ^( INTERFACE IDENT ( genericTypeParameterList )? ( interfaceExtendsClause )? interfaceBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_INTERFACE.nextNode(), root_1) - - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:331:44: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - - - stream_genericTypeParameterList.reset(); - # Java.g:331:70: ( interfaceExtendsClause )? - if stream_interfaceExtendsClause.hasNext(): - self._adaptor.addChild(root_1, stream_interfaceExtendsClause.nextTree()) - - - stream_interfaceExtendsClause.reset(); - self._adaptor.addChild(root_1, stream_interfaceBody.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 21, interfaceTypeDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceTypeDeclaration" - - class typeList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "typeList" - # Java.g:334:1: typeList : type ( COMMA type )* ; - def typeList(self, ): - - retval = self.typeList_return() - retval.start = self.input.LT(1) - typeList_StartIndex = self.input.index() - root_0 = None - - COMMA72 = None - type71 = None - - type73 = None - - - COMMA72_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 22): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:335:5: ( type ( COMMA type )* ) - # Java.g:335:9: type ( COMMA type )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_type_in_typeList5453) - type71 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type71.tree) - # Java.g:335:14: ( COMMA type )* - while True: #loop24 - alt24 = 2 - LA24_0 = self.input.LA(1) - - if (LA24_0 == COMMA) : - alt24 = 1 - - - if alt24 == 1: - # Java.g:335:15: COMMA type - pass - COMMA72=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_typeList5456) - self._state.following.append(self.FOLLOW_type_in_typeList5459) - type73 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type73.tree) - - - else: - break #loop24 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 22, typeList_StartIndex, success) - - pass - return retval - - # $ANTLR end "typeList" - - class classBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classBody_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "classBody" - # Java.g:338:1: classBody : LCURLY ( classScopeDeclarations )* RCURLY -> ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ; - def classBody(self, ): - - retval = self.classBody_return() - retval.start = self.input.LT(1) - classBody_StartIndex = self.input.index() - root_0 = None - - LCURLY74 = None - RCURLY76 = None - classScopeDeclarations75 = None - - - LCURLY74_tree = None - RCURLY76_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_classScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule classScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 23): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:339:5: ( LCURLY ( classScopeDeclarations )* RCURLY -> ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) ) - # Java.g:339:9: LCURLY ( classScopeDeclarations )* RCURLY - pass - LCURLY74=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_classBody5480) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY74) - # Java.g:339:16: ( classScopeDeclarations )* - while True: #loop25 - alt25 = 2 - LA25_0 = self.input.LA(1) - - if (LA25_0 == AT or LA25_0 == LCURLY or LA25_0 == LESS_THAN or LA25_0 == SEMI or LA25_0 == ABSTRACT or LA25_0 == BOOLEAN or LA25_0 == BYTE or (CHAR <= LA25_0 <= CLASS) or LA25_0 == DOUBLE or LA25_0 == ENUM or LA25_0 == FINAL or LA25_0 == FLOAT or LA25_0 == INTERFACE or (INT <= LA25_0 <= NATIVE) or (PRIVATE <= LA25_0 <= PUBLIC) or (SHORT <= LA25_0 <= STRICTFP) or LA25_0 == SYNCHRONIZED or LA25_0 == TRANSIENT or (VOID <= LA25_0 <= VOLATILE) or LA25_0 == IDENT) : - alt25 = 1 - - - if alt25 == 1: - # Java.g:0:0: classScopeDeclarations - pass - self._state.following.append(self.FOLLOW_classScopeDeclarations_in_classBody5482) - classScopeDeclarations75 = self.classScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classScopeDeclarations.add(classScopeDeclarations75.tree) - - - else: - break #loop25 - RCURLY76=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_classBody5485) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY76) - - # AST Rewrite - # elements: classScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 340:9: -> ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - # Java.g:340:13: ^( CLASS_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( classScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_TOP_LEVEL_SCOPE, LCURLY74, "CLASS_TOP_LEVEL_SCOPE"), root_1) - - # Java.g:340:71: ( classScopeDeclarations )* - while stream_classScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_classScopeDeclarations.nextTree()) - - - stream_classScopeDeclarations.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 23, classBody_StartIndex, success) - - pass - return retval - - # $ANTLR end "classBody" - - class interfaceBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceBody_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "interfaceBody" - # Java.g:343:1: interfaceBody : LCURLY ( interfaceScopeDeclarations )* RCURLY -> ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) ; - def interfaceBody(self, ): - - retval = self.interfaceBody_return() - retval.start = self.input.LT(1) - interfaceBody_StartIndex = self.input.index() - root_0 = None - - LCURLY77 = None - RCURLY79 = None - interfaceScopeDeclarations78 = None - - - LCURLY77_tree = None - RCURLY79_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_interfaceScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 24): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:344:5: ( LCURLY ( interfaceScopeDeclarations )* RCURLY -> ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) ) - # Java.g:344:9: LCURLY ( interfaceScopeDeclarations )* RCURLY - pass - LCURLY77=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_interfaceBody5523) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY77) - # Java.g:344:16: ( interfaceScopeDeclarations )* - while True: #loop26 - alt26 = 2 - LA26_0 = self.input.LA(1) - - if (LA26_0 == AT or LA26_0 == LESS_THAN or LA26_0 == SEMI or LA26_0 == ABSTRACT or LA26_0 == BOOLEAN or LA26_0 == BYTE or (CHAR <= LA26_0 <= CLASS) or LA26_0 == DOUBLE or LA26_0 == ENUM or LA26_0 == FINAL or LA26_0 == FLOAT or LA26_0 == INTERFACE or (INT <= LA26_0 <= NATIVE) or (PRIVATE <= LA26_0 <= PUBLIC) or (SHORT <= LA26_0 <= STRICTFP) or LA26_0 == SYNCHRONIZED or LA26_0 == TRANSIENT or (VOID <= LA26_0 <= VOLATILE) or LA26_0 == IDENT) : - alt26 = 1 - - - if alt26 == 1: - # Java.g:0:0: interfaceScopeDeclarations - pass - self._state.following.append(self.FOLLOW_interfaceScopeDeclarations_in_interfaceBody5525) - interfaceScopeDeclarations78 = self.interfaceScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceScopeDeclarations.add(interfaceScopeDeclarations78.tree) - - - else: - break #loop26 - RCURLY79=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_interfaceBody5528) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY79) - - # AST Rewrite - # elements: interfaceScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 345:9: -> ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) - # Java.g:345:13: ^( INTERFACE_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( interfaceScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(INTERFACE_TOP_LEVEL_SCOPE, LCURLY77, "CLASS_TOP_LEVEL_SCOPE"), root_1) - - # Java.g:345:75: ( interfaceScopeDeclarations )* - while stream_interfaceScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_interfaceScopeDeclarations.nextTree()) - - - stream_interfaceScopeDeclarations.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 24, interfaceBody_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceBody" - - class classScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classScopeDeclarations_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "classScopeDeclarations" - # Java.g:348:1: classScopeDeclarations : ( block -> ^( CLASS_INSTANCE_INITIALIZER block ) | STATIC block -> ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) | modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration | SEMI ); - def classScopeDeclarations(self, ): - - retval = self.classScopeDeclarations_return() - retval.start = self.input.LT(1) - classScopeDeclarations_StartIndex = self.input.index() - root_0 = None - - ident = None - STATIC81 = None - IDENT86 = None - SEMI91 = None - VOID92 = None - IDENT93 = None - SEMI97 = None - SEMI103 = None - SEMI105 = None - block80 = None - - block82 = None - - modifierList83 = None - - genericTypeParameterList84 = None - - type85 = None - - formalParameterList87 = None - - arrayDeclaratorList88 = None - - throwsClause89 = None - - block90 = None - - formalParameterList94 = None - - throwsClause95 = None - - block96 = None - - formalParameterList98 = None - - throwsClause99 = None - - block100 = None - - type101 = None - - classFieldDeclaratorList102 = None - - typeDeclaration104 = None - - - ident_tree = None - STATIC81_tree = None - IDENT86_tree = None - SEMI91_tree = None - VOID92_tree = None - IDENT93_tree = None - SEMI97_tree = None - SEMI103_tree = None - SEMI105_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_VOID = RewriteRuleTokenStream(self._adaptor, "token VOID") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_STATIC = RewriteRuleTokenStream(self._adaptor, "token STATIC") - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_throwsClause = RewriteRuleSubtreeStream(self._adaptor, "rule throwsClause") - stream_modifierList = RewriteRuleSubtreeStream(self._adaptor, "rule modifierList") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_block = RewriteRuleSubtreeStream(self._adaptor, "rule block") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_classFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclaratorList") - stream_formalParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 25): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:349:5: ( block -> ^( CLASS_INSTANCE_INITIALIZER block ) | STATIC block -> ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) | modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration | SEMI ) - alt36 = 5 - alt36 = self.dfa36.predict(self.input) - if alt36 == 1: - # Java.g:349:9: block - pass - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5566) - block80 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block80.tree) - - # AST Rewrite - # elements: block - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 349:25: -> ^( CLASS_INSTANCE_INITIALIZER block ) - # Java.g:349:29: ^( CLASS_INSTANCE_INITIALIZER block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(CLASS_INSTANCE_INITIALIZER, "CLASS_INSTANCE_INITIALIZER"), root_1) - - self._adaptor.addChild(root_1, stream_block.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt36 == 2: - # Java.g:350:9: STATIC block - pass - STATIC81=self.match(self.input, STATIC, self.FOLLOW_STATIC_in_classScopeDeclarations5595) - if self._state.backtracking == 0: - stream_STATIC.add(STATIC81) - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5597) - block82 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block82.tree) - - # AST Rewrite - # elements: block - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 350:25: -> ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) - # Java.g:350:29: ^( CLASS_STATIC_INITIALIZER[$STATIC, \"CLASS_STATIC_INITIALIZER\"] block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_STATIC_INITIALIZER, STATIC81, "CLASS_STATIC_INITIALIZER"), root_1) - - self._adaptor.addChild(root_1, stream_block.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt36 == 3: - # Java.g:351:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_classScopeDeclarations5620) - modifierList83 = self.modifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifierList.add(modifierList83.tree) - # Java.g:352:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) | type classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - alt35 = 2 - LA35 = self.input.LA(1) - if LA35 == LESS_THAN or LA35 == VOID: - alt35 = 1 - elif LA35 == BOOLEAN or LA35 == BYTE or LA35 == CHAR or LA35 == DOUBLE or LA35 == FLOAT or LA35 == INT or LA35 == LONG or LA35 == SHORT: - LA35_2 = self.input.LA(2) - - if (self.synpred42_Java()) : - alt35 = 1 - elif (True) : - alt35 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 35, 2, self.input) - - raise nvae - - elif LA35 == IDENT: - LA35_3 = self.input.LA(2) - - if (self.synpred42_Java()) : - alt35 = 1 - elif (True) : - alt35 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 35, 3, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 35, 0, self.input) - - raise nvae - - if alt35 == 1: - # Java.g:352:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) - pass - # Java.g:352:13: ( genericTypeParameterList )? - alt27 = 2 - LA27_0 = self.input.LA(1) - - if (LA27_0 == LESS_THAN) : - alt27 = 1 - if alt27 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_classScopeDeclarations5634) - genericTypeParameterList84 = self.genericTypeParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList84.tree) - - - - # Java.g:353:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) | ident= IDENT formalParameterList ( throwsClause )? block -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) ) - alt34 = 3 - LA34 = self.input.LA(1) - if LA34 == BOOLEAN or LA34 == BYTE or LA34 == CHAR or LA34 == DOUBLE or LA34 == FLOAT or LA34 == INT or LA34 == LONG or LA34 == SHORT: - alt34 = 1 - elif LA34 == IDENT: - LA34_2 = self.input.LA(2) - - if (LA34_2 == LPAREN) : - alt34 = 3 - elif (LA34_2 == DOT or LA34_2 == LBRACK or LA34_2 == LESS_THAN or LA34_2 == IDENT) : - alt34 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 34, 2, self.input) - - raise nvae - - elif LA34 == VOID: - alt34 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 34, 0, self.input) - - raise nvae - - if alt34 == 1: - # Java.g:353:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) - pass - self._state.following.append(self.FOLLOW_type_in_classScopeDeclarations5653) - type85 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type85.tree) - IDENT86=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classScopeDeclarations5655) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT86) - self._state.following.append(self.FOLLOW_formalParameterList_in_classScopeDeclarations5657) - formalParameterList87 = self.formalParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList87.tree) - # Java.g:353:48: ( arrayDeclaratorList )? - alt28 = 2 - LA28_0 = self.input.LA(1) - - if (LA28_0 == LBRACK) : - alt28 = 1 - if alt28 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_classScopeDeclarations5659) - arrayDeclaratorList88 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList88.tree) - - - - # Java.g:353:69: ( throwsClause )? - alt29 = 2 - LA29_0 = self.input.LA(1) - - if (LA29_0 == THROWS) : - alt29 = 1 - if alt29 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_classScopeDeclarations5662) - throwsClause89 = self.throwsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause89.tree) - - - - # Java.g:353:83: ( block | SEMI ) - alt30 = 2 - LA30_0 = self.input.LA(1) - - if (LA30_0 == LCURLY) : - alt30 = 1 - elif (LA30_0 == SEMI) : - alt30 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 30, 0, self.input) - - raise nvae - - if alt30 == 1: - # Java.g:353:84: block - pass - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5666) - block90 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block90.tree) - - - elif alt30 == 2: - # Java.g:353:92: SEMI - pass - SEMI91=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5670) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI91) - - - - - # AST Rewrite - # elements: arrayDeclaratorList, type, modifierList, block, throwsClause, formalParameterList, IDENT, genericTypeParameterList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 354:17: -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) - # Java.g:354:21: ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FUNCTION_METHOD_DECL, "FUNCTION_METHOD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:354:57: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - - - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:354:114: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) - - - stream_arrayDeclaratorList.reset(); - # Java.g:354:135: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) - - - stream_throwsClause.reset(); - # Java.g:354:149: ( block )? - if stream_block.hasNext(): - self._adaptor.addChild(root_1, stream_block.nextTree()) - - - stream_block.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt34 == 2: - # Java.g:355:17: VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) - pass - VOID92=self.match(self.input, VOID, self.FOLLOW_VOID_in_classScopeDeclarations5732) - if self._state.backtracking == 0: - stream_VOID.add(VOID92) - IDENT93=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classScopeDeclarations5734) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT93) - self._state.following.append(self.FOLLOW_formalParameterList_in_classScopeDeclarations5736) - formalParameterList94 = self.formalParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList94.tree) - # Java.g:355:48: ( throwsClause )? - alt31 = 2 - LA31_0 = self.input.LA(1) - - if (LA31_0 == THROWS) : - alt31 = 1 - if alt31 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_classScopeDeclarations5738) - throwsClause95 = self.throwsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause95.tree) - - - - # Java.g:355:62: ( block | SEMI ) - alt32 = 2 - LA32_0 = self.input.LA(1) - - if (LA32_0 == LCURLY) : - alt32 = 1 - elif (LA32_0 == SEMI) : - alt32 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 32, 0, self.input) - - raise nvae - - if alt32 == 1: - # Java.g:355:63: block - pass - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5742) - block96 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block96.tree) - - - elif alt32 == 2: - # Java.g:355:71: SEMI - pass - SEMI97=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5746) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI97) - - - - - # AST Rewrite - # elements: block, genericTypeParameterList, modifierList, formalParameterList, throwsClause, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 356:17: -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) - # Java.g:356:21: ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ( block )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VOID_METHOD_DECL, "VOID_METHOD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:356:53: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - - - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:356:105: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) - - - stream_throwsClause.reset(); - # Java.g:356:119: ( block )? - if stream_block.hasNext(): - self._adaptor.addChild(root_1, stream_block.nextTree()) - - - stream_block.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt34 == 3: - # Java.g:357:17: ident= IDENT formalParameterList ( throwsClause )? block - pass - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_classScopeDeclarations5805) - if self._state.backtracking == 0: - stream_IDENT.add(ident) - self._state.following.append(self.FOLLOW_formalParameterList_in_classScopeDeclarations5807) - formalParameterList98 = self.formalParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList98.tree) - # Java.g:357:49: ( throwsClause )? - alt33 = 2 - LA33_0 = self.input.LA(1) - - if (LA33_0 == THROWS) : - alt33 = 1 - if alt33 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_classScopeDeclarations5809) - throwsClause99 = self.throwsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause99.tree) - - - - self._state.following.append(self.FOLLOW_block_in_classScopeDeclarations5812) - block100 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block100.tree) - - # AST Rewrite - # elements: formalParameterList, modifierList, block, throwsClause, genericTypeParameterList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 358:17: -> ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) - # Java.g:358:21: ^( CONSTRUCTOR_DECL[$ident, \"CONSTRUCTOR_DECL\"] modifierList ( genericTypeParameterList )? formalParameterList ( throwsClause )? block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CONSTRUCTOR_DECL, ident, "CONSTRUCTOR_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:358:81: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - - - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:358:127: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) - - - stream_throwsClause.reset(); - self._adaptor.addChild(root_1, stream_block.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt35 == 2: - # Java.g:360:13: type classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_classScopeDeclarations5876) - type101 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type101.tree) - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_classScopeDeclarations5878) - classFieldDeclaratorList102 = self.classFieldDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclaratorList.add(classFieldDeclaratorList102.tree) - SEMI103=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5880) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI103) - - # AST Rewrite - # elements: type, modifierList, classFieldDeclaratorList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 361:13: -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - # Java.g:361:17: ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_classFieldDeclaratorList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt36 == 4: - # Java.g:363:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_typeDeclaration_in_classScopeDeclarations5925) - typeDeclaration104 = self.typeDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration104.tree) - - - elif alt36 == 5: - # Java.g:364:9: SEMI - pass - root_0 = self._adaptor.nil() - - SEMI105=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_classScopeDeclarations5935) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 25, classScopeDeclarations_StartIndex, success) - - pass - return retval - - # $ANTLR end "classScopeDeclarations" - - class interfaceScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceScopeDeclarations_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "interfaceScopeDeclarations" - # Java.g:367:1: interfaceScopeDeclarations : ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) | typeDeclaration | SEMI ); - def interfaceScopeDeclarations(self, ): - - retval = self.interfaceScopeDeclarations_return() - retval.start = self.input.LT(1) - interfaceScopeDeclarations_StartIndex = self.input.index() - root_0 = None - - IDENT109 = None - SEMI113 = None - VOID114 = None - IDENT115 = None - SEMI118 = None - SEMI121 = None - SEMI123 = None - modifierList106 = None - - genericTypeParameterList107 = None - - type108 = None - - formalParameterList110 = None - - arrayDeclaratorList111 = None - - throwsClause112 = None - - formalParameterList116 = None - - throwsClause117 = None - - type119 = None - - interfaceFieldDeclaratorList120 = None - - typeDeclaration122 = None - - - IDENT109_tree = None - SEMI113_tree = None - VOID114_tree = None - IDENT115_tree = None - SEMI118_tree = None - SEMI121_tree = None - SEMI123_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_VOID = RewriteRuleTokenStream(self._adaptor, "token VOID") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_throwsClause = RewriteRuleSubtreeStream(self._adaptor, "rule throwsClause") - stream_modifierList = RewriteRuleSubtreeStream(self._adaptor, "rule modifierList") - stream_genericTypeParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeParameterList") - stream_interfaceFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceFieldDeclaratorList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_formalParameterList = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 26): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:368:5: ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) | typeDeclaration | SEMI ) - alt43 = 3 - alt43 = self.dfa43.predict(self.input) - if alt43 == 1: - # Java.g:368:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_interfaceScopeDeclarations5955) - modifierList106 = self.modifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifierList.add(modifierList106.tree) - # Java.g:369:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) | type interfaceFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) ) - alt42 = 2 - LA42 = self.input.LA(1) - if LA42 == LESS_THAN or LA42 == VOID: - alt42 = 1 - elif LA42 == BOOLEAN or LA42 == BYTE or LA42 == CHAR or LA42 == DOUBLE or LA42 == FLOAT or LA42 == INT or LA42 == LONG or LA42 == SHORT: - LA42_2 = self.input.LA(2) - - if (self.synpred50_Java()) : - alt42 = 1 - elif (True) : - alt42 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 42, 2, self.input) - - raise nvae - - elif LA42 == IDENT: - LA42_3 = self.input.LA(2) - - if (self.synpred50_Java()) : - alt42 = 1 - elif (True) : - alt42 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 42, 3, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 42, 0, self.input) - - raise nvae - - if alt42 == 1: - # Java.g:369:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) - pass - # Java.g:369:13: ( genericTypeParameterList )? - alt37 = 2 - LA37_0 = self.input.LA(1) - - if (LA37_0 == LESS_THAN) : - alt37 = 1 - if alt37 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_interfaceScopeDeclarations5969) - genericTypeParameterList107 = self.genericTypeParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeParameterList.add(genericTypeParameterList107.tree) - - - - # Java.g:370:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) | VOID IDENT formalParameterList ( throwsClause )? SEMI -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) ) - alt41 = 2 - LA41_0 = self.input.LA(1) - - if (LA41_0 == BOOLEAN or LA41_0 == BYTE or LA41_0 == CHAR or LA41_0 == DOUBLE or LA41_0 == FLOAT or (INT <= LA41_0 <= LONG) or LA41_0 == SHORT or LA41_0 == IDENT) : - alt41 = 1 - elif (LA41_0 == VOID) : - alt41 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 41, 0, self.input) - - raise nvae - - if alt41 == 1: - # Java.g:370:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI - pass - self._state.following.append(self.FOLLOW_type_in_interfaceScopeDeclarations5988) - type108 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type108.tree) - IDENT109=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_interfaceScopeDeclarations5990) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT109) - self._state.following.append(self.FOLLOW_formalParameterList_in_interfaceScopeDeclarations5992) - formalParameterList110 = self.formalParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList110.tree) - # Java.g:370:48: ( arrayDeclaratorList )? - alt38 = 2 - LA38_0 = self.input.LA(1) - - if (LA38_0 == LBRACK) : - alt38 = 1 - if alt38 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_interfaceScopeDeclarations5994) - arrayDeclaratorList111 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList111.tree) - - - - # Java.g:370:69: ( throwsClause )? - alt39 = 2 - LA39_0 = self.input.LA(1) - - if (LA39_0 == THROWS) : - alt39 = 1 - if alt39 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_interfaceScopeDeclarations5997) - throwsClause112 = self.throwsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause112.tree) - - - - SEMI113=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6000) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI113) - - # AST Rewrite - # elements: throwsClause, IDENT, arrayDeclaratorList, modifierList, genericTypeParameterList, formalParameterList, type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 371:17: -> ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) - # Java.g:371:21: ^( FUNCTION_METHOD_DECL modifierList ( genericTypeParameterList )? type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FUNCTION_METHOD_DECL, "FUNCTION_METHOD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:371:57: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - - - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:371:114: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) - - - stream_arrayDeclaratorList.reset(); - # Java.g:371:135: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) - - - stream_throwsClause.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt41 == 2: - # Java.g:372:17: VOID IDENT formalParameterList ( throwsClause )? SEMI - pass - VOID114=self.match(self.input, VOID, self.FOLLOW_VOID_in_interfaceScopeDeclarations6058) - if self._state.backtracking == 0: - stream_VOID.add(VOID114) - IDENT115=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_interfaceScopeDeclarations6060) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT115) - self._state.following.append(self.FOLLOW_formalParameterList_in_interfaceScopeDeclarations6062) - formalParameterList116 = self.formalParameterList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterList.add(formalParameterList116.tree) - # Java.g:372:48: ( throwsClause )? - alt40 = 2 - LA40_0 = self.input.LA(1) - - if (LA40_0 == THROWS) : - alt40 = 1 - if alt40 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_interfaceScopeDeclarations6064) - throwsClause117 = self.throwsClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_throwsClause.add(throwsClause117.tree) - - - - SEMI118=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6067) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI118) - - # AST Rewrite - # elements: throwsClause, formalParameterList, IDENT, genericTypeParameterList, modifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 373:17: -> ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) - # Java.g:373:21: ^( VOID_METHOD_DECL modifierList ( genericTypeParameterList )? IDENT formalParameterList ( throwsClause )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VOID_METHOD_DECL, "VOID_METHOD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - # Java.g:373:53: ( genericTypeParameterList )? - if stream_genericTypeParameterList.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeParameterList.nextTree()) - - - stream_genericTypeParameterList.reset(); - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_formalParameterList.nextTree()) - # Java.g:373:105: ( throwsClause )? - if stream_throwsClause.hasNext(): - self._adaptor.addChild(root_1, stream_throwsClause.nextTree()) - - - stream_throwsClause.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt42 == 2: - # Java.g:375:13: type interfaceFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_interfaceScopeDeclarations6130) - type119 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type119.tree) - self._state.following.append(self.FOLLOW_interfaceFieldDeclaratorList_in_interfaceScopeDeclarations6132) - interfaceFieldDeclaratorList120 = self.interfaceFieldDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceFieldDeclaratorList.add(interfaceFieldDeclaratorList120.tree) - SEMI121=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6134) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI121) - - # AST Rewrite - # elements: interfaceFieldDeclaratorList, type, modifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 376:13: -> ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) - # Java.g:376:17: ^( VAR_DECLARATION modifierList type interfaceFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_interfaceFieldDeclaratorList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt43 == 2: - # Java.g:378:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_typeDeclaration_in_interfaceScopeDeclarations6179) - typeDeclaration122 = self.typeDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration122.tree) - - - elif alt43 == 3: - # Java.g:379:9: SEMI - pass - root_0 = self._adaptor.nil() - - SEMI123=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_interfaceScopeDeclarations6189) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 26, interfaceScopeDeclarations_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceScopeDeclarations" - - class classFieldDeclaratorList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classFieldDeclaratorList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "classFieldDeclaratorList" - # Java.g:382:1: classFieldDeclaratorList : classFieldDeclarator ( COMMA classFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) ; - def classFieldDeclaratorList(self, ): - - retval = self.classFieldDeclaratorList_return() - retval.start = self.input.LT(1) - classFieldDeclaratorList_StartIndex = self.input.index() - root_0 = None - - COMMA125 = None - classFieldDeclarator124 = None - - classFieldDeclarator126 = None - - - COMMA125_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_classFieldDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclarator") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 27): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:383:5: ( classFieldDeclarator ( COMMA classFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) ) - # Java.g:383:9: classFieldDeclarator ( COMMA classFieldDeclarator )* - pass - self._state.following.append(self.FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6209) - classFieldDeclarator124 = self.classFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclarator.add(classFieldDeclarator124.tree) - # Java.g:383:30: ( COMMA classFieldDeclarator )* - while True: #loop44 - alt44 = 2 - LA44_0 = self.input.LA(1) - - if (LA44_0 == COMMA) : - alt44 = 1 - - - if alt44 == 1: - # Java.g:383:31: COMMA classFieldDeclarator - pass - COMMA125=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_classFieldDeclaratorList6212) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA125) - self._state.following.append(self.FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6214) - classFieldDeclarator126 = self.classFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclarator.add(classFieldDeclarator126.tree) - - - else: - break #loop44 - - # AST Rewrite - # elements: classFieldDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 384:9: -> ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) - # Java.g:384:13: ^( VAR_DECLARATOR_LIST ( classFieldDeclarator )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR_LIST, "VAR_DECLARATOR_LIST"), root_1) - - # Java.g:384:35: ( classFieldDeclarator )+ - if not (stream_classFieldDeclarator.hasNext()): - raise RewriteEarlyExitException() - - while stream_classFieldDeclarator.hasNext(): - self._adaptor.addChild(root_1, stream_classFieldDeclarator.nextTree()) - - - stream_classFieldDeclarator.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 27, classFieldDeclaratorList_StartIndex, success) - - pass - return retval - - # $ANTLR end "classFieldDeclaratorList" - - class classFieldDeclarator_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.classFieldDeclarator_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "classFieldDeclarator" - # Java.g:387:1: classFieldDeclarator : variableDeclaratorId ( ASSIGN variableInitializer )? -> ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) ; - def classFieldDeclarator(self, ): - - retval = self.classFieldDeclarator_return() - retval.start = self.input.LT(1) - classFieldDeclarator_StartIndex = self.input.index() - root_0 = None - - ASSIGN128 = None - variableDeclaratorId127 = None - - variableInitializer129 = None - - - ASSIGN128_tree = None - stream_ASSIGN = RewriteRuleTokenStream(self._adaptor, "token ASSIGN") - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_variableInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule variableInitializer") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 28): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:388:5: ( variableDeclaratorId ( ASSIGN variableInitializer )? -> ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) ) - # Java.g:388:9: variableDeclaratorId ( ASSIGN variableInitializer )? - pass - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_classFieldDeclarator6253) - variableDeclaratorId127 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId127.tree) - # Java.g:388:30: ( ASSIGN variableInitializer )? - alt45 = 2 - LA45_0 = self.input.LA(1) - - if (LA45_0 == ASSIGN) : - alt45 = 1 - if alt45 == 1: - # Java.g:388:31: ASSIGN variableInitializer - pass - ASSIGN128=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_classFieldDeclarator6256) - if self._state.backtracking == 0: - stream_ASSIGN.add(ASSIGN128) - self._state.following.append(self.FOLLOW_variableInitializer_in_classFieldDeclarator6258) - variableInitializer129 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer129.tree) - - - - - # AST Rewrite - # elements: variableDeclaratorId, variableInitializer - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 389:9: -> ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) - # Java.g:389:13: ^( VAR_DECLARATOR variableDeclaratorId ( variableInitializer )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR, "VAR_DECLARATOR"), root_1) - - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - # Java.g:389:51: ( variableInitializer )? - if stream_variableInitializer.hasNext(): - self._adaptor.addChild(root_1, stream_variableInitializer.nextTree()) - - - stream_variableInitializer.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 28, classFieldDeclarator_StartIndex, success) - - pass - return retval - - # $ANTLR end "classFieldDeclarator" - - class interfaceFieldDeclaratorList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceFieldDeclaratorList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "interfaceFieldDeclaratorList" - # Java.g:392:1: interfaceFieldDeclaratorList : interfaceFieldDeclarator ( COMMA interfaceFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) ; - def interfaceFieldDeclaratorList(self, ): - - retval = self.interfaceFieldDeclaratorList_return() - retval.start = self.input.LT(1) - interfaceFieldDeclaratorList_StartIndex = self.input.index() - root_0 = None - - COMMA131 = None - interfaceFieldDeclarator130 = None - - interfaceFieldDeclarator132 = None - - - COMMA131_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_interfaceFieldDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule interfaceFieldDeclarator") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 29): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:393:5: ( interfaceFieldDeclarator ( COMMA interfaceFieldDeclarator )* -> ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) ) - # Java.g:393:9: interfaceFieldDeclarator ( COMMA interfaceFieldDeclarator )* - pass - self._state.following.append(self.FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6299) - interfaceFieldDeclarator130 = self.interfaceFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceFieldDeclarator.add(interfaceFieldDeclarator130.tree) - # Java.g:393:34: ( COMMA interfaceFieldDeclarator )* - while True: #loop46 - alt46 = 2 - LA46_0 = self.input.LA(1) - - if (LA46_0 == COMMA) : - alt46 = 1 - - - if alt46 == 1: - # Java.g:393:35: COMMA interfaceFieldDeclarator - pass - COMMA131=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_interfaceFieldDeclaratorList6302) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA131) - self._state.following.append(self.FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6304) - interfaceFieldDeclarator132 = self.interfaceFieldDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_interfaceFieldDeclarator.add(interfaceFieldDeclarator132.tree) - - - else: - break #loop46 - - # AST Rewrite - # elements: interfaceFieldDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 394:9: -> ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) - # Java.g:394:13: ^( VAR_DECLARATOR_LIST ( interfaceFieldDeclarator )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR_LIST, "VAR_DECLARATOR_LIST"), root_1) - - # Java.g:394:35: ( interfaceFieldDeclarator )+ - if not (stream_interfaceFieldDeclarator.hasNext()): - raise RewriteEarlyExitException() - - while stream_interfaceFieldDeclarator.hasNext(): - self._adaptor.addChild(root_1, stream_interfaceFieldDeclarator.nextTree()) - - - stream_interfaceFieldDeclarator.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 29, interfaceFieldDeclaratorList_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceFieldDeclaratorList" - - class interfaceFieldDeclarator_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.interfaceFieldDeclarator_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "interfaceFieldDeclarator" - # Java.g:397:1: interfaceFieldDeclarator : variableDeclaratorId ASSIGN variableInitializer -> ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) ; - def interfaceFieldDeclarator(self, ): - - retval = self.interfaceFieldDeclarator_return() - retval.start = self.input.LT(1) - interfaceFieldDeclarator_StartIndex = self.input.index() - root_0 = None - - ASSIGN134 = None - variableDeclaratorId133 = None - - variableInitializer135 = None - - - ASSIGN134_tree = None - stream_ASSIGN = RewriteRuleTokenStream(self._adaptor, "token ASSIGN") - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_variableInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule variableInitializer") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 30): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:398:5: ( variableDeclaratorId ASSIGN variableInitializer -> ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) ) - # Java.g:398:9: variableDeclaratorId ASSIGN variableInitializer - pass - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_interfaceFieldDeclarator6343) - variableDeclaratorId133 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId133.tree) - ASSIGN134=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_interfaceFieldDeclarator6345) - if self._state.backtracking == 0: - stream_ASSIGN.add(ASSIGN134) - self._state.following.append(self.FOLLOW_variableInitializer_in_interfaceFieldDeclarator6347) - variableInitializer135 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer135.tree) - - # AST Rewrite - # elements: variableInitializer, variableDeclaratorId - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 399:9: -> ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) - # Java.g:399:13: ^( VAR_DECLARATOR variableDeclaratorId variableInitializer ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATOR, "VAR_DECLARATOR"), root_1) - - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - self._adaptor.addChild(root_1, stream_variableInitializer.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 30, interfaceFieldDeclarator_StartIndex, success) - - pass - return retval - - # $ANTLR end "interfaceFieldDeclarator" - - class variableDeclaratorId_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.variableDeclaratorId_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "variableDeclaratorId" - # Java.g:402:1: variableDeclaratorId : IDENT ( arrayDeclaratorList )? ; - def variableDeclaratorId(self, ): - - retval = self.variableDeclaratorId_return() - retval.start = self.input.LT(1) - variableDeclaratorId_StartIndex = self.input.index() - root_0 = None - - IDENT136 = None - arrayDeclaratorList137 = None - - - IDENT136_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 31): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:403:5: ( IDENT ( arrayDeclaratorList )? ) - # Java.g:403:9: IDENT ( arrayDeclaratorList )? - pass - root_0 = self._adaptor.nil() - - IDENT136=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_variableDeclaratorId6385) - if self._state.backtracking == 0: - - IDENT136_tree = self._adaptor.createWithPayload(IDENT136) - root_0 = self._adaptor.becomeRoot(IDENT136_tree, root_0) - - # Java.g:403:16: ( arrayDeclaratorList )? - alt47 = 2 - LA47_0 = self.input.LA(1) - - if (LA47_0 == LBRACK) : - alt47 = 1 - if alt47 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_variableDeclaratorId6388) - arrayDeclaratorList137 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayDeclaratorList137.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 31, variableDeclaratorId_StartIndex, success) - - pass - return retval - - # $ANTLR end "variableDeclaratorId" - - class variableInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.variableInitializer_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "variableInitializer" - # Java.g:406:1: variableInitializer : ( arrayInitializer | expression ); - def variableInitializer(self, ): - - retval = self.variableInitializer_return() - retval.start = self.input.LT(1) - variableInitializer_StartIndex = self.input.index() - root_0 = None - - arrayInitializer138 = None - - expression139 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 32): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:407:5: ( arrayInitializer | expression ) - alt48 = 2 - LA48_0 = self.input.LA(1) - - if (LA48_0 == LCURLY) : - alt48 = 1 - elif (LA48_0 == DEC or LA48_0 == INC or LA48_0 == LESS_THAN or LA48_0 == LOGICAL_NOT or (LPAREN <= LA48_0 <= MINUS) or LA48_0 == NOT or LA48_0 == PLUS or LA48_0 == BOOLEAN or LA48_0 == BYTE or LA48_0 == CHAR or LA48_0 == DOUBLE or LA48_0 == FALSE or LA48_0 == FLOAT or (INT <= LA48_0 <= LONG) or (NEW <= LA48_0 <= NULL) or LA48_0 == SHORT or LA48_0 == SUPER or LA48_0 == THIS or LA48_0 == TRUE or LA48_0 == VOID or (IDENT <= LA48_0 <= STRING_LITERAL)) : - alt48 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 48, 0, self.input) - - raise nvae - - if alt48 == 1: - # Java.g:407:9: arrayInitializer - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_arrayInitializer_in_variableInitializer6408) - arrayInitializer138 = self.arrayInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayInitializer138.tree) - - - elif alt48 == 2: - # Java.g:408:9: expression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_expression_in_variableInitializer6418) - expression139 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression139.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 32, variableInitializer_StartIndex, success) - - pass - return retval - - # $ANTLR end "variableInitializer" - - class arrayDeclarator_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arrayDeclarator_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "arrayDeclarator" - # Java.g:411:1: arrayDeclarator : LBRACK RBRACK -> ^( ARRAY_DECLARATOR ) ; - def arrayDeclarator(self, ): - - retval = self.arrayDeclarator_return() - retval.start = self.input.LT(1) - arrayDeclarator_StartIndex = self.input.index() - root_0 = None - - LBRACK140 = None - RBRACK141 = None - - LBRACK140_tree = None - RBRACK141_tree = None - stream_RBRACK = RewriteRuleTokenStream(self._adaptor, "token RBRACK") - stream_LBRACK = RewriteRuleTokenStream(self._adaptor, "token LBRACK") - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 33): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:412:5: ( LBRACK RBRACK -> ^( ARRAY_DECLARATOR ) ) - # Java.g:412:9: LBRACK RBRACK - pass - LBRACK140=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_arrayDeclarator6437) - if self._state.backtracking == 0: - stream_LBRACK.add(LBRACK140) - RBRACK141=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_arrayDeclarator6439) - if self._state.backtracking == 0: - stream_RBRACK.add(RBRACK141) - - # AST Rewrite - # elements: - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 413:9: -> ^( ARRAY_DECLARATOR ) - # Java.g:413:13: ^( ARRAY_DECLARATOR ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ARRAY_DECLARATOR, "ARRAY_DECLARATOR"), root_1) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 33, arrayDeclarator_StartIndex, success) - - pass - return retval - - # $ANTLR end "arrayDeclarator" - - class arrayDeclaratorList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arrayDeclaratorList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "arrayDeclaratorList" - # Java.g:416:1: arrayDeclaratorList : ( arrayDeclarator )+ -> ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) ; - def arrayDeclaratorList(self, ): - - retval = self.arrayDeclaratorList_return() - retval.start = self.input.LT(1) - arrayDeclaratorList_StartIndex = self.input.index() - root_0 = None - - arrayDeclarator142 = None - - - stream_arrayDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclarator") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 34): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:417:5: ( ( arrayDeclarator )+ -> ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) ) - # Java.g:417:9: ( arrayDeclarator )+ - pass - # Java.g:417:9: ( arrayDeclarator )+ - cnt49 = 0 - while True: #loop49 - alt49 = 2 - LA49_0 = self.input.LA(1) - - if (LA49_0 == LBRACK) : - LA49_2 = self.input.LA(2) - - if (self.synpred58_Java()) : - alt49 = 1 - - - - - if alt49 == 1: - # Java.g:0:0: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_arrayDeclaratorList6473) - arrayDeclarator142 = self.arrayDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclarator.add(arrayDeclarator142.tree) - - - else: - if cnt49 >= 1: - break #loop49 - - if self._state.backtracking > 0: - raise BacktrackingFailed - - eee = EarlyExitException(49, self.input) - raise eee - - cnt49 += 1 - - # AST Rewrite - # elements: arrayDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 418:9: -> ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) - # Java.g:418:13: ^( ARRAY_DECLARATOR_LIST ( arrayDeclarator )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ARRAY_DECLARATOR_LIST, "ARRAY_DECLARATOR_LIST"), root_1) - - # Java.g:418:37: ( arrayDeclarator )+ - if not (stream_arrayDeclarator.hasNext()): - raise RewriteEarlyExitException() - - while stream_arrayDeclarator.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclarator.nextTree()) - - - stream_arrayDeclarator.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 34, arrayDeclaratorList_StartIndex, success) - - pass - return retval - - # $ANTLR end "arrayDeclaratorList" - - class arrayInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arrayInitializer_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "arrayInitializer" - # Java.g:421:1: arrayInitializer : LCURLY ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? RCURLY -> ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) ; - def arrayInitializer(self, ): - - retval = self.arrayInitializer_return() - retval.start = self.input.LT(1) - arrayInitializer_StartIndex = self.input.index() - root_0 = None - - LCURLY143 = None - COMMA145 = None - COMMA147 = None - RCURLY148 = None - variableInitializer144 = None - - variableInitializer146 = None - - - LCURLY143_tree = None - COMMA145_tree = None - COMMA147_tree = None - RCURLY148_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_variableInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule variableInitializer") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 35): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:422:5: ( LCURLY ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? RCURLY -> ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) ) - # Java.g:422:9: LCURLY ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? RCURLY - pass - LCURLY143=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_arrayInitializer6511) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY143) - # Java.g:422:16: ( variableInitializer ( COMMA variableInitializer )* ( COMMA )? )? - alt52 = 2 - LA52_0 = self.input.LA(1) - - if (LA52_0 == DEC or LA52_0 == INC or LA52_0 == LCURLY or LA52_0 == LESS_THAN or LA52_0 == LOGICAL_NOT or (LPAREN <= LA52_0 <= MINUS) or LA52_0 == NOT or LA52_0 == PLUS or LA52_0 == BOOLEAN or LA52_0 == BYTE or LA52_0 == CHAR or LA52_0 == DOUBLE or LA52_0 == FALSE or LA52_0 == FLOAT or (INT <= LA52_0 <= LONG) or (NEW <= LA52_0 <= NULL) or LA52_0 == SHORT or LA52_0 == SUPER or LA52_0 == THIS or LA52_0 == TRUE or LA52_0 == VOID or (IDENT <= LA52_0 <= STRING_LITERAL)) : - alt52 = 1 - if alt52 == 1: - # Java.g:422:17: variableInitializer ( COMMA variableInitializer )* ( COMMA )? - pass - self._state.following.append(self.FOLLOW_variableInitializer_in_arrayInitializer6514) - variableInitializer144 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer144.tree) - # Java.g:422:37: ( COMMA variableInitializer )* - while True: #loop50 - alt50 = 2 - LA50_0 = self.input.LA(1) - - if (LA50_0 == COMMA) : - LA50_1 = self.input.LA(2) - - if (LA50_1 == DEC or LA50_1 == INC or LA50_1 == LCURLY or LA50_1 == LESS_THAN or LA50_1 == LOGICAL_NOT or (LPAREN <= LA50_1 <= MINUS) or LA50_1 == NOT or LA50_1 == PLUS or LA50_1 == BOOLEAN or LA50_1 == BYTE or LA50_1 == CHAR or LA50_1 == DOUBLE or LA50_1 == FALSE or LA50_1 == FLOAT or (INT <= LA50_1 <= LONG) or (NEW <= LA50_1 <= NULL) or LA50_1 == SHORT or LA50_1 == SUPER or LA50_1 == THIS or LA50_1 == TRUE or LA50_1 == VOID or (IDENT <= LA50_1 <= STRING_LITERAL)) : - alt50 = 1 - - - - - if alt50 == 1: - # Java.g:422:38: COMMA variableInitializer - pass - COMMA145=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_arrayInitializer6517) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA145) - self._state.following.append(self.FOLLOW_variableInitializer_in_arrayInitializer6519) - variableInitializer146 = self.variableInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableInitializer.add(variableInitializer146.tree) - - - else: - break #loop50 - # Java.g:422:66: ( COMMA )? - alt51 = 2 - LA51_0 = self.input.LA(1) - - if (LA51_0 == COMMA) : - alt51 = 1 - if alt51 == 1: - # Java.g:0:0: COMMA - pass - COMMA147=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_arrayInitializer6523) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA147) - - - - - - - RCURLY148=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_arrayInitializer6528) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY148) - - # AST Rewrite - # elements: variableInitializer - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 423:9: -> ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) - # Java.g:423:13: ^( ARRAY_INITIALIZER[$LCURLY, \"ARRAY_INITIALIZER\"] ( variableInitializer )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ARRAY_INITIALIZER, LCURLY143, "ARRAY_INITIALIZER"), root_1) - - # Java.g:423:63: ( variableInitializer )* - while stream_variableInitializer.hasNext(): - self._adaptor.addChild(root_1, stream_variableInitializer.nextTree()) - - - stream_variableInitializer.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 35, arrayInitializer_StartIndex, success) - - pass - return retval - - # $ANTLR end "arrayInitializer" - - class throwsClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.throwsClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "throwsClause" - # Java.g:426:1: throwsClause : THROWS qualifiedIdentList -> ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) ; - def throwsClause(self, ): - - retval = self.throwsClause_return() - retval.start = self.input.LT(1) - throwsClause_StartIndex = self.input.index() - root_0 = None - - THROWS149 = None - qualifiedIdentList150 = None - - - THROWS149_tree = None - stream_THROWS = RewriteRuleTokenStream(self._adaptor, "token THROWS") - stream_qualifiedIdentList = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedIdentList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 36): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:427:5: ( THROWS qualifiedIdentList -> ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) ) - # Java.g:427:9: THROWS qualifiedIdentList - pass - THROWS149=self.match(self.input, THROWS, self.FOLLOW_THROWS_in_throwsClause6566) - if self._state.backtracking == 0: - stream_THROWS.add(THROWS149) - self._state.following.append(self.FOLLOW_qualifiedIdentList_in_throwsClause6568) - qualifiedIdentList150 = self.qualifiedIdentList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedIdentList.add(qualifiedIdentList150.tree) - - # AST Rewrite - # elements: qualifiedIdentList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 428:9: -> ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) - # Java.g:428:13: ^( THROWS_CLAUSE[$THROWS, \"THROWS_CLAUSE\"] qualifiedIdentList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(THROWS_CLAUSE, THROWS149, "THROWS_CLAUSE"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 36, throwsClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "throwsClause" - - class modifierList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.modifierList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "modifierList" - # Java.g:431:1: modifierList : ( modifier )* -> ^( MODIFIER_LIST ( modifier )* ) ; - def modifierList(self, ): - - retval = self.modifierList_return() - retval.start = self.input.LT(1) - modifierList_StartIndex = self.input.index() - root_0 = None - - modifier151 = None - - - stream_modifier = RewriteRuleSubtreeStream(self._adaptor, "rule modifier") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 37): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:432:5: ( ( modifier )* -> ^( MODIFIER_LIST ( modifier )* ) ) - # Java.g:432:9: ( modifier )* - pass - # Java.g:432:9: ( modifier )* - while True: #loop53 - alt53 = 2 - LA53_0 = self.input.LA(1) - - if (LA53_0 == AT) : - LA53_2 = self.input.LA(2) - - if (LA53_2 == IDENT) : - alt53 = 1 - - - elif (LA53_0 == ABSTRACT or LA53_0 == FINAL or LA53_0 == NATIVE or (PRIVATE <= LA53_0 <= PUBLIC) or (STATIC <= LA53_0 <= STRICTFP) or LA53_0 == SYNCHRONIZED or LA53_0 == TRANSIENT or LA53_0 == VOLATILE) : - alt53 = 1 - - - if alt53 == 1: - # Java.g:0:0: modifier - pass - self._state.following.append(self.FOLLOW_modifier_in_modifierList6605) - modifier151 = self.modifier() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifier.add(modifier151.tree) - - - else: - break #loop53 - - # AST Rewrite - # elements: modifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 433:9: -> ^( MODIFIER_LIST ( modifier )* ) - # Java.g:433:13: ^( MODIFIER_LIST ( modifier )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(MODIFIER_LIST, "MODIFIER_LIST"), root_1) - - # Java.g:433:29: ( modifier )* - while stream_modifier.hasNext(): - self._adaptor.addChild(root_1, stream_modifier.nextTree()) - - - stream_modifier.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 37, modifierList_StartIndex, success) - - pass - return retval - - # $ANTLR end "modifierList" - - class modifier_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.modifier_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "modifier" - # Java.g:436:1: modifier : ( PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | NATIVE | SYNCHRONIZED | TRANSIENT | VOLATILE | STRICTFP | localModifier ); - def modifier(self, ): - - retval = self.modifier_return() - retval.start = self.input.LT(1) - modifier_StartIndex = self.input.index() - root_0 = None - - PUBLIC152 = None - PROTECTED153 = None - PRIVATE154 = None - STATIC155 = None - ABSTRACT156 = None - NATIVE157 = None - SYNCHRONIZED158 = None - TRANSIENT159 = None - VOLATILE160 = None - STRICTFP161 = None - localModifier162 = None - - - PUBLIC152_tree = None - PROTECTED153_tree = None - PRIVATE154_tree = None - STATIC155_tree = None - ABSTRACT156_tree = None - NATIVE157_tree = None - SYNCHRONIZED158_tree = None - TRANSIENT159_tree = None - VOLATILE160_tree = None - STRICTFP161_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 38): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:437:5: ( PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | NATIVE | SYNCHRONIZED | TRANSIENT | VOLATILE | STRICTFP | localModifier ) - alt54 = 11 - LA54 = self.input.LA(1) - if LA54 == PUBLIC: - alt54 = 1 - elif LA54 == PROTECTED: - alt54 = 2 - elif LA54 == PRIVATE: - alt54 = 3 - elif LA54 == STATIC: - alt54 = 4 - elif LA54 == ABSTRACT: - alt54 = 5 - elif LA54 == NATIVE: - alt54 = 6 - elif LA54 == SYNCHRONIZED: - alt54 = 7 - elif LA54 == TRANSIENT: - alt54 = 8 - elif LA54 == VOLATILE: - alt54 = 9 - elif LA54 == STRICTFP: - alt54 = 10 - elif LA54 == AT or LA54 == FINAL: - alt54 = 11 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 54, 0, self.input) - - raise nvae - - if alt54 == 1: - # Java.g:437:9: PUBLIC - pass - root_0 = self._adaptor.nil() - - PUBLIC152=self.match(self.input, PUBLIC, self.FOLLOW_PUBLIC_in_modifier6643) - if self._state.backtracking == 0: - - PUBLIC152_tree = self._adaptor.createWithPayload(PUBLIC152) - self._adaptor.addChild(root_0, PUBLIC152_tree) - - - - elif alt54 == 2: - # Java.g:438:9: PROTECTED - pass - root_0 = self._adaptor.nil() - - PROTECTED153=self.match(self.input, PROTECTED, self.FOLLOW_PROTECTED_in_modifier6653) - if self._state.backtracking == 0: - - PROTECTED153_tree = self._adaptor.createWithPayload(PROTECTED153) - self._adaptor.addChild(root_0, PROTECTED153_tree) - - - - elif alt54 == 3: - # Java.g:439:9: PRIVATE - pass - root_0 = self._adaptor.nil() - - PRIVATE154=self.match(self.input, PRIVATE, self.FOLLOW_PRIVATE_in_modifier6663) - if self._state.backtracking == 0: - - PRIVATE154_tree = self._adaptor.createWithPayload(PRIVATE154) - self._adaptor.addChild(root_0, PRIVATE154_tree) - - - - elif alt54 == 4: - # Java.g:440:9: STATIC - pass - root_0 = self._adaptor.nil() - - STATIC155=self.match(self.input, STATIC, self.FOLLOW_STATIC_in_modifier6673) - if self._state.backtracking == 0: - - STATIC155_tree = self._adaptor.createWithPayload(STATIC155) - self._adaptor.addChild(root_0, STATIC155_tree) - - - - elif alt54 == 5: - # Java.g:441:9: ABSTRACT - pass - root_0 = self._adaptor.nil() - - ABSTRACT156=self.match(self.input, ABSTRACT, self.FOLLOW_ABSTRACT_in_modifier6683) - if self._state.backtracking == 0: - - ABSTRACT156_tree = self._adaptor.createWithPayload(ABSTRACT156) - self._adaptor.addChild(root_0, ABSTRACT156_tree) - - - - elif alt54 == 6: - # Java.g:442:9: NATIVE - pass - root_0 = self._adaptor.nil() - - NATIVE157=self.match(self.input, NATIVE, self.FOLLOW_NATIVE_in_modifier6693) - if self._state.backtracking == 0: - - NATIVE157_tree = self._adaptor.createWithPayload(NATIVE157) - self._adaptor.addChild(root_0, NATIVE157_tree) - - - - elif alt54 == 7: - # Java.g:443:9: SYNCHRONIZED - pass - root_0 = self._adaptor.nil() - - SYNCHRONIZED158=self.match(self.input, SYNCHRONIZED, self.FOLLOW_SYNCHRONIZED_in_modifier6703) - if self._state.backtracking == 0: - - SYNCHRONIZED158_tree = self._adaptor.createWithPayload(SYNCHRONIZED158) - self._adaptor.addChild(root_0, SYNCHRONIZED158_tree) - - - - elif alt54 == 8: - # Java.g:444:9: TRANSIENT - pass - root_0 = self._adaptor.nil() - - TRANSIENT159=self.match(self.input, TRANSIENT, self.FOLLOW_TRANSIENT_in_modifier6713) - if self._state.backtracking == 0: - - TRANSIENT159_tree = self._adaptor.createWithPayload(TRANSIENT159) - self._adaptor.addChild(root_0, TRANSIENT159_tree) - - - - elif alt54 == 9: - # Java.g:445:9: VOLATILE - pass - root_0 = self._adaptor.nil() - - VOLATILE160=self.match(self.input, VOLATILE, self.FOLLOW_VOLATILE_in_modifier6723) - if self._state.backtracking == 0: - - VOLATILE160_tree = self._adaptor.createWithPayload(VOLATILE160) - self._adaptor.addChild(root_0, VOLATILE160_tree) - - - - elif alt54 == 10: - # Java.g:446:9: STRICTFP - pass - root_0 = self._adaptor.nil() - - STRICTFP161=self.match(self.input, STRICTFP, self.FOLLOW_STRICTFP_in_modifier6733) - if self._state.backtracking == 0: - - STRICTFP161_tree = self._adaptor.createWithPayload(STRICTFP161) - self._adaptor.addChild(root_0, STRICTFP161_tree) - - - - elif alt54 == 11: - # Java.g:447:9: localModifier - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_localModifier_in_modifier6743) - localModifier162 = self.localModifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, localModifier162.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 38, modifier_StartIndex, success) - - pass - return retval - - # $ANTLR end "modifier" - - class localModifierList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.localModifierList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "localModifierList" - # Java.g:450:1: localModifierList : ( localModifier )* -> ^( LOCAL_MODIFIER_LIST ( localModifier )* ) ; - def localModifierList(self, ): - - retval = self.localModifierList_return() - retval.start = self.input.LT(1) - localModifierList_StartIndex = self.input.index() - root_0 = None - - localModifier163 = None - - - stream_localModifier = RewriteRuleSubtreeStream(self._adaptor, "rule localModifier") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 39): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:451:5: ( ( localModifier )* -> ^( LOCAL_MODIFIER_LIST ( localModifier )* ) ) - # Java.g:451:9: ( localModifier )* - pass - # Java.g:451:9: ( localModifier )* - while True: #loop55 - alt55 = 2 - LA55_0 = self.input.LA(1) - - if (LA55_0 == AT or LA55_0 == FINAL) : - alt55 = 1 - - - if alt55 == 1: - # Java.g:0:0: localModifier - pass - self._state.following.append(self.FOLLOW_localModifier_in_localModifierList6762) - localModifier163 = self.localModifier() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifier.add(localModifier163.tree) - - - else: - break #loop55 - - # AST Rewrite - # elements: localModifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 452:9: -> ^( LOCAL_MODIFIER_LIST ( localModifier )* ) - # Java.g:452:12: ^( LOCAL_MODIFIER_LIST ( localModifier )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(LOCAL_MODIFIER_LIST, "LOCAL_MODIFIER_LIST"), root_1) - - # Java.g:452:34: ( localModifier )* - while stream_localModifier.hasNext(): - self._adaptor.addChild(root_1, stream_localModifier.nextTree()) - - - stream_localModifier.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 39, localModifierList_StartIndex, success) - - pass - return retval - - # $ANTLR end "localModifierList" - - class localModifier_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.localModifier_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "localModifier" - # Java.g:455:1: localModifier : ( FINAL | annotation ); - def localModifier(self, ): - - retval = self.localModifier_return() - retval.start = self.input.LT(1) - localModifier_StartIndex = self.input.index() - root_0 = None - - FINAL164 = None - annotation165 = None - - - FINAL164_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 40): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:456:5: ( FINAL | annotation ) - alt56 = 2 - LA56_0 = self.input.LA(1) - - if (LA56_0 == FINAL) : - alt56 = 1 - elif (LA56_0 == AT) : - alt56 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 56, 0, self.input) - - raise nvae - - if alt56 == 1: - # Java.g:456:9: FINAL - pass - root_0 = self._adaptor.nil() - - FINAL164=self.match(self.input, FINAL, self.FOLLOW_FINAL_in_localModifier6799) - if self._state.backtracking == 0: - - FINAL164_tree = self._adaptor.createWithPayload(FINAL164) - self._adaptor.addChild(root_0, FINAL164_tree) - - - - elif alt56 == 2: - # Java.g:457:9: annotation - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotation_in_localModifier6809) - annotation165 = self.annotation() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotation165.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 40, localModifier_StartIndex, success) - - pass - return retval - - # $ANTLR end "localModifier" - - class type_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.type_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "type" - # Java.g:460:1: type : ( simpleType | objectType ); - def type(self, ): - - retval = self.type_return() - retval.start = self.input.LT(1) - type_StartIndex = self.input.index() - root_0 = None - - simpleType166 = None - - objectType167 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 41): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:461:5: ( simpleType | objectType ) - alt57 = 2 - LA57_0 = self.input.LA(1) - - if (LA57_0 == BOOLEAN or LA57_0 == BYTE or LA57_0 == CHAR or LA57_0 == DOUBLE or LA57_0 == FLOAT or (INT <= LA57_0 <= LONG) or LA57_0 == SHORT) : - alt57 = 1 - elif (LA57_0 == IDENT) : - alt57 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 57, 0, self.input) - - raise nvae - - if alt57 == 1: - # Java.g:461:9: simpleType - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_simpleType_in_type6828) - simpleType166 = self.simpleType() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, simpleType166.tree) - - - elif alt57 == 2: - # Java.g:462:9: objectType - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_objectType_in_type6838) - objectType167 = self.objectType() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, objectType167.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 41, type_StartIndex, success) - - pass - return retval - - # $ANTLR end "type" - - class simpleType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.simpleType_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "simpleType" - # Java.g:465:1: simpleType : primitiveType ( arrayDeclaratorList )? -> ^( TYPE primitiveType ( arrayDeclaratorList )? ) ; - def simpleType(self, ): - - retval = self.simpleType_return() - retval.start = self.input.LT(1) - simpleType_StartIndex = self.input.index() - root_0 = None - - primitiveType168 = None - - arrayDeclaratorList169 = None - - - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_primitiveType = RewriteRuleSubtreeStream(self._adaptor, "rule primitiveType") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 42): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:466:5: ( primitiveType ( arrayDeclaratorList )? -> ^( TYPE primitiveType ( arrayDeclaratorList )? ) ) - # Java.g:466:9: primitiveType ( arrayDeclaratorList )? - pass - self._state.following.append(self.FOLLOW_primitiveType_in_simpleType6858) - primitiveType168 = self.primitiveType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primitiveType.add(primitiveType168.tree) - # Java.g:466:23: ( arrayDeclaratorList )? - alt58 = 2 - LA58_0 = self.input.LA(1) - - if (LA58_0 == LBRACK) : - LA58_1 = self.input.LA(2) - - if (LA58_1 == RBRACK) : - LA58_3 = self.input.LA(3) - - if (self.synpred76_Java()) : - alt58 = 1 - if alt58 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_simpleType6860) - arrayDeclaratorList169 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList169.tree) - - - - - # AST Rewrite - # elements: primitiveType, arrayDeclaratorList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 467:9: -> ^( TYPE primitiveType ( arrayDeclaratorList )? ) - # Java.g:467:13: ^( TYPE primitiveType ( arrayDeclaratorList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(TYPE, "TYPE"), root_1) - - self._adaptor.addChild(root_1, stream_primitiveType.nextTree()) - # Java.g:467:34: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) - - - stream_arrayDeclaratorList.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 42, simpleType_StartIndex, success) - - pass - return retval - - # $ANTLR end "simpleType" - - class objectType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.objectType_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "objectType" - # Java.g:470:1: objectType : qualifiedTypeIdent ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) ; - def objectType(self, ): - - retval = self.objectType_return() - retval.start = self.input.LT(1) - objectType_StartIndex = self.input.index() - root_0 = None - - qualifiedTypeIdent170 = None - - arrayDeclaratorList171 = None - - - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_qualifiedTypeIdent = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedTypeIdent") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 43): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:471:5: ( qualifiedTypeIdent ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) ) - # Java.g:471:9: qualifiedTypeIdent ( arrayDeclaratorList )? - pass - self._state.following.append(self.FOLLOW_qualifiedTypeIdent_in_objectType6901) - qualifiedTypeIdent170 = self.qualifiedTypeIdent() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedTypeIdent.add(qualifiedTypeIdent170.tree) - # Java.g:471:28: ( arrayDeclaratorList )? - alt59 = 2 - LA59_0 = self.input.LA(1) - - if (LA59_0 == LBRACK) : - LA59_1 = self.input.LA(2) - - if (self.synpred77_Java()) : - alt59 = 1 - if alt59 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_objectType6903) - arrayDeclaratorList171 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList171.tree) - - - - - # AST Rewrite - # elements: arrayDeclaratorList, qualifiedTypeIdent - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 472:9: -> ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) - # Java.g:472:13: ^( TYPE qualifiedTypeIdent ( arrayDeclaratorList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(TYPE, "TYPE"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedTypeIdent.nextTree()) - # Java.g:472:39: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) - - - stream_arrayDeclaratorList.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 43, objectType_StartIndex, success) - - pass - return retval - - # $ANTLR end "objectType" - - class objectTypeSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.objectTypeSimplified_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "objectTypeSimplified" - # Java.g:475:1: objectTypeSimplified : qualifiedTypeIdentSimplified ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) ; - def objectTypeSimplified(self, ): - - retval = self.objectTypeSimplified_return() - retval.start = self.input.LT(1) - objectTypeSimplified_StartIndex = self.input.index() - root_0 = None - - qualifiedTypeIdentSimplified172 = None - - arrayDeclaratorList173 = None - - - stream_arrayDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclaratorList") - stream_qualifiedTypeIdentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedTypeIdentSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 44): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:476:5: ( qualifiedTypeIdentSimplified ( arrayDeclaratorList )? -> ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) ) - # Java.g:476:9: qualifiedTypeIdentSimplified ( arrayDeclaratorList )? - pass - self._state.following.append(self.FOLLOW_qualifiedTypeIdentSimplified_in_objectTypeSimplified6943) - qualifiedTypeIdentSimplified172 = self.qualifiedTypeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedTypeIdentSimplified.add(qualifiedTypeIdentSimplified172.tree) - # Java.g:476:38: ( arrayDeclaratorList )? - alt60 = 2 - LA60_0 = self.input.LA(1) - - if (LA60_0 == LBRACK) : - alt60 = 1 - if alt60 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_objectTypeSimplified6945) - arrayDeclaratorList173 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclaratorList.add(arrayDeclaratorList173.tree) - - - - - # AST Rewrite - # elements: qualifiedTypeIdentSimplified, arrayDeclaratorList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 477:9: -> ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) - # Java.g:477:13: ^( TYPE qualifiedTypeIdentSimplified ( arrayDeclaratorList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(TYPE, "TYPE"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedTypeIdentSimplified.nextTree()) - # Java.g:477:49: ( arrayDeclaratorList )? - if stream_arrayDeclaratorList.hasNext(): - self._adaptor.addChild(root_1, stream_arrayDeclaratorList.nextTree()) - - - stream_arrayDeclaratorList.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 44, objectTypeSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "objectTypeSimplified" - - class qualifiedTypeIdent_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedTypeIdent_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedTypeIdent" - # Java.g:480:1: qualifiedTypeIdent : typeIdent ( DOT typeIdent )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) ; - def qualifiedTypeIdent(self, ): - - retval = self.qualifiedTypeIdent_return() - retval.start = self.input.LT(1) - qualifiedTypeIdent_StartIndex = self.input.index() - root_0 = None - - DOT175 = None - typeIdent174 = None - - typeIdent176 = None - - - DOT175_tree = None - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_typeIdent = RewriteRuleSubtreeStream(self._adaptor, "rule typeIdent") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 45): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:481:5: ( typeIdent ( DOT typeIdent )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) ) - # Java.g:481:9: typeIdent ( DOT typeIdent )* - pass - self._state.following.append(self.FOLLOW_typeIdent_in_qualifiedTypeIdent6985) - typeIdent174 = self.typeIdent() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdent.add(typeIdent174.tree) - # Java.g:481:19: ( DOT typeIdent )* - while True: #loop61 - alt61 = 2 - LA61_0 = self.input.LA(1) - - if (LA61_0 == DOT) : - LA61_2 = self.input.LA(2) - - if (self.synpred79_Java()) : - alt61 = 1 - - - - - if alt61 == 1: - # Java.g:481:20: DOT typeIdent - pass - DOT175=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedTypeIdent6988) - if self._state.backtracking == 0: - stream_DOT.add(DOT175) - self._state.following.append(self.FOLLOW_typeIdent_in_qualifiedTypeIdent6990) - typeIdent176 = self.typeIdent() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdent.add(typeIdent176.tree) - - - else: - break #loop61 - - # AST Rewrite - # elements: typeIdent - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 482:9: -> ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) - # Java.g:482:13: ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(QUALIFIED_TYPE_IDENT, "QUALIFIED_TYPE_IDENT"), root_1) - - # Java.g:482:36: ( typeIdent )+ - if not (stream_typeIdent.hasNext()): - raise RewriteEarlyExitException() - - while stream_typeIdent.hasNext(): - self._adaptor.addChild(root_1, stream_typeIdent.nextTree()) - - - stream_typeIdent.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 45, qualifiedTypeIdent_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedTypeIdent" - - class qualifiedTypeIdentSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedTypeIdentSimplified_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedTypeIdentSimplified" - # Java.g:485:1: qualifiedTypeIdentSimplified : typeIdentSimplified ( DOT typeIdentSimplified )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) ; - def qualifiedTypeIdentSimplified(self, ): - - retval = self.qualifiedTypeIdentSimplified_return() - retval.start = self.input.LT(1) - qualifiedTypeIdentSimplified_StartIndex = self.input.index() - root_0 = None - - DOT178 = None - typeIdentSimplified177 = None - - typeIdentSimplified179 = None - - - DOT178_tree = None - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_typeIdentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule typeIdentSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 46): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:486:5: ( typeIdentSimplified ( DOT typeIdentSimplified )* -> ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) ) - # Java.g:486:9: typeIdentSimplified ( DOT typeIdentSimplified )* - pass - self._state.following.append(self.FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7029) - typeIdentSimplified177 = self.typeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdentSimplified.add(typeIdentSimplified177.tree) - # Java.g:486:29: ( DOT typeIdentSimplified )* - while True: #loop62 - alt62 = 2 - LA62_0 = self.input.LA(1) - - if (LA62_0 == DOT) : - alt62 = 1 - - - if alt62 == 1: - # Java.g:486:30: DOT typeIdentSimplified - pass - DOT178=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedTypeIdentSimplified7032) - if self._state.backtracking == 0: - stream_DOT.add(DOT178) - self._state.following.append(self.FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7034) - typeIdentSimplified179 = self.typeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_typeIdentSimplified.add(typeIdentSimplified179.tree) - - - else: - break #loop62 - - # AST Rewrite - # elements: typeIdentSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 487:9: -> ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) - # Java.g:487:13: ^( QUALIFIED_TYPE_IDENT ( typeIdentSimplified )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(QUALIFIED_TYPE_IDENT, "QUALIFIED_TYPE_IDENT"), root_1) - - # Java.g:487:36: ( typeIdentSimplified )+ - if not (stream_typeIdentSimplified.hasNext()): - raise RewriteEarlyExitException() - - while stream_typeIdentSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_typeIdentSimplified.nextTree()) - - - stream_typeIdentSimplified.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 46, qualifiedTypeIdentSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedTypeIdentSimplified" - - class typeIdent_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeIdent_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "typeIdent" - # Java.g:490:1: typeIdent : IDENT ( genericTypeArgumentList )? ; - def typeIdent(self, ): - - retval = self.typeIdent_return() - retval.start = self.input.LT(1) - typeIdent_StartIndex = self.input.index() - root_0 = None - - IDENT180 = None - genericTypeArgumentList181 = None - - - IDENT180_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 47): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:491:5: ( IDENT ( genericTypeArgumentList )? ) - # Java.g:491:9: IDENT ( genericTypeArgumentList )? - pass - root_0 = self._adaptor.nil() - - IDENT180=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_typeIdent7073) - if self._state.backtracking == 0: - - IDENT180_tree = self._adaptor.createWithPayload(IDENT180) - root_0 = self._adaptor.becomeRoot(IDENT180_tree, root_0) - - # Java.g:491:16: ( genericTypeArgumentList )? - alt63 = 2 - LA63_0 = self.input.LA(1) - - if (LA63_0 == LESS_THAN) : - alt63 = 1 - if alt63 == 1: - # Java.g:0:0: genericTypeArgumentList - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentList_in_typeIdent7076) - genericTypeArgumentList181 = self.genericTypeArgumentList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, genericTypeArgumentList181.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 47, typeIdent_StartIndex, success) - - pass - return retval - - # $ANTLR end "typeIdent" - - class typeIdentSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.typeIdentSimplified_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "typeIdentSimplified" - # Java.g:494:1: typeIdentSimplified : IDENT ( genericTypeArgumentListSimplified )? ; - def typeIdentSimplified(self, ): - - retval = self.typeIdentSimplified_return() - retval.start = self.input.LT(1) - typeIdentSimplified_StartIndex = self.input.index() - root_0 = None - - IDENT182 = None - genericTypeArgumentListSimplified183 = None - - - IDENT182_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 48): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:495:5: ( IDENT ( genericTypeArgumentListSimplified )? ) - # Java.g:495:9: IDENT ( genericTypeArgumentListSimplified )? - pass - root_0 = self._adaptor.nil() - - IDENT182=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_typeIdentSimplified7096) - if self._state.backtracking == 0: - - IDENT182_tree = self._adaptor.createWithPayload(IDENT182) - root_0 = self._adaptor.becomeRoot(IDENT182_tree, root_0) - - # Java.g:495:16: ( genericTypeArgumentListSimplified )? - alt64 = 2 - LA64_0 = self.input.LA(1) - - if (LA64_0 == LESS_THAN) : - alt64 = 1 - if alt64 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_typeIdentSimplified7099) - genericTypeArgumentListSimplified183 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, genericTypeArgumentListSimplified183.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 48, typeIdentSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "typeIdentSimplified" - - class primitiveType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.primitiveType_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "primitiveType" - # Java.g:498:1: primitiveType : ( BOOLEAN | CHAR | BYTE | SHORT | INT | LONG | FLOAT | DOUBLE ); - def primitiveType(self, ): - - retval = self.primitiveType_return() - retval.start = self.input.LT(1) - primitiveType_StartIndex = self.input.index() - root_0 = None - - set184 = None - - set184_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 49): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:499:5: ( BOOLEAN | CHAR | BYTE | SHORT | INT | LONG | FLOAT | DOUBLE ) - # Java.g: - pass - root_0 = self._adaptor.nil() - - set184 = self.input.LT(1) - if self.input.LA(1) == BOOLEAN or self.input.LA(1) == BYTE or self.input.LA(1) == CHAR or self.input.LA(1) == DOUBLE or self.input.LA(1) == FLOAT or (INT <= self.input.LA(1) <= LONG) or self.input.LA(1) == SHORT: - self.input.consume() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, self._adaptor.createWithPayload(set184)) - self._state.errorRecovery = False - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - mse = MismatchedSetException(None, self.input) - raise mse - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 49, primitiveType_StartIndex, success) - - pass - return retval - - # $ANTLR end "primitiveType" - - class genericTypeArgumentList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgumentList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgumentList" - # Java.g:509:1: genericTypeArgumentList : LESS_THAN genericTypeArgument ( COMMA genericTypeArgument )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) ; - def genericTypeArgumentList(self, ): - - retval = self.genericTypeArgumentList_return() - retval.start = self.input.LT(1) - genericTypeArgumentList_StartIndex = self.input.index() - root_0 = None - - LESS_THAN185 = None - COMMA187 = None - genericTypeArgument186 = None - - genericTypeArgument188 = None - - genericTypeListClosing189 = None - - - LESS_THAN185_tree = None - COMMA187_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LESS_THAN = RewriteRuleTokenStream(self._adaptor, "token LESS_THAN") - stream_genericTypeArgument = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgument") - stream_genericTypeListClosing = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeListClosing") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 50): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:510:5: ( LESS_THAN genericTypeArgument ( COMMA genericTypeArgument )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) ) - # Java.g:510:9: LESS_THAN genericTypeArgument ( COMMA genericTypeArgument )* genericTypeListClosing - pass - LESS_THAN185=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_genericTypeArgumentList7208) - if self._state.backtracking == 0: - stream_LESS_THAN.add(LESS_THAN185) - self._state.following.append(self.FOLLOW_genericTypeArgument_in_genericTypeArgumentList7210) - genericTypeArgument186 = self.genericTypeArgument() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgument.add(genericTypeArgument186.tree) - # Java.g:510:39: ( COMMA genericTypeArgument )* - while True: #loop65 - alt65 = 2 - LA65_0 = self.input.LA(1) - - if (LA65_0 == COMMA) : - LA65_2 = self.input.LA(2) - - if (self.synpred90_Java()) : - alt65 = 1 - - - - - if alt65 == 1: - # Java.g:510:40: COMMA genericTypeArgument - pass - COMMA187=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_genericTypeArgumentList7213) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA187) - self._state.following.append(self.FOLLOW_genericTypeArgument_in_genericTypeArgumentList7215) - genericTypeArgument188 = self.genericTypeArgument() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgument.add(genericTypeArgument188.tree) - - - else: - break #loop65 - self._state.following.append(self.FOLLOW_genericTypeListClosing_in_genericTypeArgumentList7219) - genericTypeListClosing189 = self.genericTypeListClosing() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeListClosing.add(genericTypeListClosing189.tree) - - # AST Rewrite - # elements: genericTypeArgument - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 511:9: -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) - # Java.g:511:13: ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgument )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(GENERIC_TYPE_ARG_LIST, LESS_THAN185, "GENERIC_TYPE_ARG_LIST"), root_1) - - # Java.g:511:74: ( genericTypeArgument )+ - if not (stream_genericTypeArgument.hasNext()): - raise RewriteEarlyExitException() - - while stream_genericTypeArgument.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgument.nextTree()) - - - stream_genericTypeArgument.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 50, genericTypeArgumentList_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgumentList" - - class genericTypeArgument_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgument_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgument" - # Java.g:514:1: genericTypeArgument : ( type | QUESTION ( genericWildcardBoundType )? -> ^( QUESTION ( genericWildcardBoundType )? ) ); - def genericTypeArgument(self, ): - - retval = self.genericTypeArgument_return() - retval.start = self.input.LT(1) - genericTypeArgument_StartIndex = self.input.index() - root_0 = None - - QUESTION191 = None - type190 = None - - genericWildcardBoundType192 = None - - - QUESTION191_tree = None - stream_QUESTION = RewriteRuleTokenStream(self._adaptor, "token QUESTION") - stream_genericWildcardBoundType = RewriteRuleSubtreeStream(self._adaptor, "rule genericWildcardBoundType") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 51): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:515:5: ( type | QUESTION ( genericWildcardBoundType )? -> ^( QUESTION ( genericWildcardBoundType )? ) ) - alt67 = 2 - LA67_0 = self.input.LA(1) - - if (LA67_0 == BOOLEAN or LA67_0 == BYTE or LA67_0 == CHAR or LA67_0 == DOUBLE or LA67_0 == FLOAT or (INT <= LA67_0 <= LONG) or LA67_0 == SHORT or LA67_0 == IDENT) : - alt67 = 1 - elif (LA67_0 == QUESTION) : - alt67 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 67, 0, self.input) - - raise nvae - - if alt67 == 1: - # Java.g:515:9: type - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_type_in_genericTypeArgument7257) - type190 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type190.tree) - - - elif alt67 == 2: - # Java.g:516:9: QUESTION ( genericWildcardBoundType )? - pass - QUESTION191=self.match(self.input, QUESTION, self.FOLLOW_QUESTION_in_genericTypeArgument7267) - if self._state.backtracking == 0: - stream_QUESTION.add(QUESTION191) - # Java.g:516:18: ( genericWildcardBoundType )? - alt66 = 2 - LA66_0 = self.input.LA(1) - - if (LA66_0 == EXTENDS) : - LA66_1 = self.input.LA(2) - - if (LA66_1 == BOOLEAN or LA66_1 == BYTE or LA66_1 == CHAR or LA66_1 == DOUBLE or LA66_1 == FLOAT or (INT <= LA66_1 <= LONG) or LA66_1 == SHORT) : - LA66_4 = self.input.LA(3) - - if (self.synpred92_Java()) : - alt66 = 1 - elif (LA66_1 == IDENT) : - LA66_5 = self.input.LA(3) - - if (self.synpred92_Java()) : - alt66 = 1 - elif (LA66_0 == SUPER) : - LA66_3 = self.input.LA(2) - - if (LA66_3 == BOOLEAN or LA66_3 == BYTE or LA66_3 == CHAR or LA66_3 == DOUBLE or LA66_3 == FLOAT or (INT <= LA66_3 <= LONG) or LA66_3 == SHORT or LA66_3 == IDENT) : - alt66 = 1 - if alt66 == 1: - # Java.g:0:0: genericWildcardBoundType - pass - self._state.following.append(self.FOLLOW_genericWildcardBoundType_in_genericTypeArgument7269) - genericWildcardBoundType192 = self.genericWildcardBoundType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericWildcardBoundType.add(genericWildcardBoundType192.tree) - - - - - # AST Rewrite - # elements: QUESTION, genericWildcardBoundType - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 517:9: -> ^( QUESTION ( genericWildcardBoundType )? ) - # Java.g:517:13: ^( QUESTION ( genericWildcardBoundType )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_QUESTION.nextNode(), root_1) - - # Java.g:517:24: ( genericWildcardBoundType )? - if stream_genericWildcardBoundType.hasNext(): - self._adaptor.addChild(root_1, stream_genericWildcardBoundType.nextTree()) - - - stream_genericWildcardBoundType.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 51, genericTypeArgument_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgument" - - class genericWildcardBoundType_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericWildcardBoundType_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericWildcardBoundType" - # Java.g:520:1: genericWildcardBoundType : ( EXTENDS | SUPER ) type ; - def genericWildcardBoundType(self, ): - - retval = self.genericWildcardBoundType_return() - retval.start = self.input.LT(1) - genericWildcardBoundType_StartIndex = self.input.index() - root_0 = None - - set193 = None - type194 = None - - - set193_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 52): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:521:5: ( ( EXTENDS | SUPER ) type ) - # Java.g:521:9: ( EXTENDS | SUPER ) type - pass - root_0 = self._adaptor.nil() - - set193 = self.input.LT(1) - set193 = self.input.LT(1) - if self.input.LA(1) == EXTENDS or self.input.LA(1) == SUPER: - self.input.consume() - if self._state.backtracking == 0: - root_0 = self._adaptor.becomeRoot(self._adaptor.createWithPayload(set193), root_0) - self._state.errorRecovery = False - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - mse = MismatchedSetException(None, self.input) - raise mse - - - self._state.following.append(self.FOLLOW_type_in_genericWildcardBoundType7316) - type194 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type194.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 52, genericWildcardBoundType_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericWildcardBoundType" - - class genericTypeArgumentListSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgumentListSimplified_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgumentListSimplified" - # Java.g:524:1: genericTypeArgumentListSimplified : LESS_THAN genericTypeArgumentSimplified ( COMMA genericTypeArgumentSimplified )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) ; - def genericTypeArgumentListSimplified(self, ): - - retval = self.genericTypeArgumentListSimplified_return() - retval.start = self.input.LT(1) - genericTypeArgumentListSimplified_StartIndex = self.input.index() - root_0 = None - - LESS_THAN195 = None - COMMA197 = None - genericTypeArgumentSimplified196 = None - - genericTypeArgumentSimplified198 = None - - genericTypeListClosing199 = None - - - LESS_THAN195_tree = None - COMMA197_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LESS_THAN = RewriteRuleTokenStream(self._adaptor, "token LESS_THAN") - stream_genericTypeArgumentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentSimplified") - stream_genericTypeListClosing = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeListClosing") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 53): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:525:5: ( LESS_THAN genericTypeArgumentSimplified ( COMMA genericTypeArgumentSimplified )* genericTypeListClosing -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) ) - # Java.g:525:9: LESS_THAN genericTypeArgumentSimplified ( COMMA genericTypeArgumentSimplified )* genericTypeListClosing - pass - LESS_THAN195=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_genericTypeArgumentListSimplified7335) - if self._state.backtracking == 0: - stream_LESS_THAN.add(LESS_THAN195) - self._state.following.append(self.FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7337) - genericTypeArgumentSimplified196 = self.genericTypeArgumentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentSimplified.add(genericTypeArgumentSimplified196.tree) - # Java.g:525:49: ( COMMA genericTypeArgumentSimplified )* - while True: #loop68 - alt68 = 2 - LA68_0 = self.input.LA(1) - - if (LA68_0 == COMMA) : - alt68 = 1 - - - if alt68 == 1: - # Java.g:525:50: COMMA genericTypeArgumentSimplified - pass - COMMA197=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_genericTypeArgumentListSimplified7340) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA197) - self._state.following.append(self.FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7342) - genericTypeArgumentSimplified198 = self.genericTypeArgumentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentSimplified.add(genericTypeArgumentSimplified198.tree) - - - else: - break #loop68 - self._state.following.append(self.FOLLOW_genericTypeListClosing_in_genericTypeArgumentListSimplified7346) - genericTypeListClosing199 = self.genericTypeListClosing() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeListClosing.add(genericTypeListClosing199.tree) - - # AST Rewrite - # elements: genericTypeArgumentSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 526:9: -> ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) - # Java.g:526:13: ^( GENERIC_TYPE_ARG_LIST[$LESS_THAN, \"GENERIC_TYPE_ARG_LIST\"] ( genericTypeArgumentSimplified )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(GENERIC_TYPE_ARG_LIST, LESS_THAN195, "GENERIC_TYPE_ARG_LIST"), root_1) - - # Java.g:526:74: ( genericTypeArgumentSimplified )+ - if not (stream_genericTypeArgumentSimplified.hasNext()): - raise RewriteEarlyExitException() - - while stream_genericTypeArgumentSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentSimplified.nextTree()) - - - stream_genericTypeArgumentSimplified.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 53, genericTypeArgumentListSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgumentListSimplified" - - class genericTypeArgumentSimplified_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.genericTypeArgumentSimplified_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "genericTypeArgumentSimplified" - # Java.g:529:1: genericTypeArgumentSimplified : ( type | QUESTION ); - def genericTypeArgumentSimplified(self, ): - - retval = self.genericTypeArgumentSimplified_return() - retval.start = self.input.LT(1) - genericTypeArgumentSimplified_StartIndex = self.input.index() - root_0 = None - - QUESTION201 = None - type200 = None - - - QUESTION201_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 54): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:530:5: ( type | QUESTION ) - alt69 = 2 - LA69_0 = self.input.LA(1) - - if (LA69_0 == BOOLEAN or LA69_0 == BYTE or LA69_0 == CHAR or LA69_0 == DOUBLE or LA69_0 == FLOAT or (INT <= LA69_0 <= LONG) or LA69_0 == SHORT or LA69_0 == IDENT) : - alt69 = 1 - elif (LA69_0 == QUESTION) : - alt69 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 69, 0, self.input) - - raise nvae - - if alt69 == 1: - # Java.g:530:9: type - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_type_in_genericTypeArgumentSimplified7384) - type200 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type200.tree) - - - elif alt69 == 2: - # Java.g:531:9: QUESTION - pass - root_0 = self._adaptor.nil() - - QUESTION201=self.match(self.input, QUESTION, self.FOLLOW_QUESTION_in_genericTypeArgumentSimplified7394) - if self._state.backtracking == 0: - - QUESTION201_tree = self._adaptor.createWithPayload(QUESTION201) - self._adaptor.addChild(root_0, QUESTION201_tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 54, genericTypeArgumentSimplified_StartIndex, success) - - pass - return retval - - # $ANTLR end "genericTypeArgumentSimplified" - - class qualifiedIdentList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedIdentList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedIdentList" - # Java.g:534:1: qualifiedIdentList : qualifiedIdentifier ( COMMA qualifiedIdentifier )* ; - def qualifiedIdentList(self, ): - - retval = self.qualifiedIdentList_return() - retval.start = self.input.LT(1) - qualifiedIdentList_StartIndex = self.input.index() - root_0 = None - - COMMA203 = None - qualifiedIdentifier202 = None - - qualifiedIdentifier204 = None - - - COMMA203_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 55): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:535:5: ( qualifiedIdentifier ( COMMA qualifiedIdentifier )* ) - # Java.g:535:9: qualifiedIdentifier ( COMMA qualifiedIdentifier )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7413) - qualifiedIdentifier202 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier202.tree) - # Java.g:535:29: ( COMMA qualifiedIdentifier )* - while True: #loop70 - alt70 = 2 - LA70_0 = self.input.LA(1) - - if (LA70_0 == COMMA) : - alt70 = 1 - - - if alt70 == 1: - # Java.g:535:30: COMMA qualifiedIdentifier - pass - COMMA203=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_qualifiedIdentList7416) - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7419) - qualifiedIdentifier204 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier204.tree) - - - else: - break #loop70 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 55, qualifiedIdentList_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedIdentList" - - class formalParameterList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.formalParameterList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "formalParameterList" - # Java.g:538:1: formalParameterList : LPAREN ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) RPAREN ; - def formalParameterList(self, ): - - retval = self.formalParameterList_return() - retval.start = self.input.LT(1) - formalParameterList_StartIndex = self.input.index() - root_0 = None - - LPAREN205 = None - COMMA207 = None - COMMA209 = None - RPAREN212 = None - formalParameterStandardDecl206 = None - - formalParameterStandardDecl208 = None - - formalParameterVarArgDecl210 = None - - formalParameterVarArgDecl211 = None - - - LPAREN205_tree = None - COMMA207_tree = None - COMMA209_tree = None - RPAREN212_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_formalParameterVarArgDecl = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterVarArgDecl") - stream_formalParameterStandardDecl = RewriteRuleSubtreeStream(self._adaptor, "rule formalParameterStandardDecl") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 56): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:539:5: ( LPAREN ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) RPAREN ) - # Java.g:539:9: LPAREN ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) RPAREN - pass - LPAREN205=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_formalParameterList7440) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN205) - # Java.g:540:9: ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) | formalParameterVarArgDecl -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) | -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) ) - alt73 = 3 - LA73 = self.input.LA(1) - if LA73 == FINAL: - LA73_1 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 1, self.input) - - raise nvae - - elif LA73 == AT: - LA73_2 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 2, self.input) - - raise nvae - - elif LA73 == BOOLEAN or LA73 == BYTE or LA73 == CHAR or LA73 == DOUBLE or LA73 == FLOAT or LA73 == INT or LA73 == LONG or LA73 == SHORT: - LA73_3 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 3, self.input) - - raise nvae - - elif LA73 == IDENT: - LA73_4 = self.input.LA(2) - - if (self.synpred99_Java()) : - alt73 = 1 - elif (self.synpred100_Java()) : - alt73 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 4, self.input) - - raise nvae - - elif LA73 == RPAREN: - alt73 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 73, 0, self.input) - - raise nvae - - if alt73 == 1: - # Java.g:541:13: formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? - pass - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_formalParameterList7467) - formalParameterStandardDecl206 = self.formalParameterStandardDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterStandardDecl.add(formalParameterStandardDecl206.tree) - # Java.g:541:41: ( COMMA formalParameterStandardDecl )* - while True: #loop71 - alt71 = 2 - LA71_0 = self.input.LA(1) - - if (LA71_0 == COMMA) : - LA71_1 = self.input.LA(2) - - if (self.synpred97_Java()) : - alt71 = 1 - - - - - if alt71 == 1: - # Java.g:541:42: COMMA formalParameterStandardDecl - pass - COMMA207=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_formalParameterList7470) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA207) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_formalParameterList7472) - formalParameterStandardDecl208 = self.formalParameterStandardDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterStandardDecl.add(formalParameterStandardDecl208.tree) - - - else: - break #loop71 - # Java.g:541:78: ( COMMA formalParameterVarArgDecl )? - alt72 = 2 - LA72_0 = self.input.LA(1) - - if (LA72_0 == COMMA) : - alt72 = 1 - if alt72 == 1: - # Java.g:541:79: COMMA formalParameterVarArgDecl - pass - COMMA209=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_formalParameterList7477) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA209) - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_formalParameterList7479) - formalParameterVarArgDecl210 = self.formalParameterVarArgDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterVarArgDecl.add(formalParameterVarArgDecl210.tree) - - - - - # AST Rewrite - # elements: formalParameterVarArgDecl, formalParameterStandardDecl - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 542:13: -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) - # Java.g:542:17: ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ( formalParameterStandardDecl )+ ( formalParameterVarArgDecl )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FORMAL_PARAM_LIST, LPAREN205, "FORMAL_PARAM_LIST"), root_1) - - # Java.g:542:67: ( formalParameterStandardDecl )+ - if not (stream_formalParameterStandardDecl.hasNext()): - raise RewriteEarlyExitException() - - while stream_formalParameterStandardDecl.hasNext(): - self._adaptor.addChild(root_1, stream_formalParameterStandardDecl.nextTree()) - - - stream_formalParameterStandardDecl.reset() - # Java.g:542:96: ( formalParameterVarArgDecl )? - if stream_formalParameterVarArgDecl.hasNext(): - self._adaptor.addChild(root_1, stream_formalParameterVarArgDecl.nextTree()) - - - stream_formalParameterVarArgDecl.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt73 == 2: - # Java.g:544:13: formalParameterVarArgDecl - pass - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_formalParameterList7534) - formalParameterVarArgDecl211 = self.formalParameterVarArgDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_formalParameterVarArgDecl.add(formalParameterVarArgDecl211.tree) - - # AST Rewrite - # elements: formalParameterVarArgDecl - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 545:13: -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) - # Java.g:545:17: ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] formalParameterVarArgDecl ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FORMAL_PARAM_LIST, LPAREN205, "FORMAL_PARAM_LIST"), root_1) - - self._adaptor.addChild(root_1, stream_formalParameterVarArgDecl.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt73 == 3: - # Java.g:547:13: - pass - # AST Rewrite - # elements: - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 547:13: -> ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) - # Java.g:547:17: ^( FORMAL_PARAM_LIST[$LPAREN, \"FORMAL_PARAM_LIST\"] ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FORMAL_PARAM_LIST, LPAREN205, "FORMAL_PARAM_LIST"), root_1) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - RPAREN212=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_formalParameterList7609) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN212) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 56, formalParameterList_StartIndex, success) - - pass - return retval - - # $ANTLR end "formalParameterList" - - class formalParameterStandardDecl_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.formalParameterStandardDecl_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "formalParameterStandardDecl" - # Java.g:552:1: formalParameterStandardDecl : localModifierList type variableDeclaratorId -> ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) ; - def formalParameterStandardDecl(self, ): - - retval = self.formalParameterStandardDecl_return() - retval.start = self.input.LT(1) - formalParameterStandardDecl_StartIndex = self.input.index() - root_0 = None - - localModifierList213 = None - - type214 = None - - variableDeclaratorId215 = None - - - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 57): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:553:5: ( localModifierList type variableDeclaratorId -> ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) ) - # Java.g:553:9: localModifierList type variableDeclaratorId - pass - self._state.following.append(self.FOLLOW_localModifierList_in_formalParameterStandardDecl7628) - localModifierList213 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList213.tree) - self._state.following.append(self.FOLLOW_type_in_formalParameterStandardDecl7630) - type214 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type214.tree) - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_formalParameterStandardDecl7632) - variableDeclaratorId215 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId215.tree) - - # AST Rewrite - # elements: localModifierList, type, variableDeclaratorId - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 554:9: -> ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) - # Java.g:554:13: ^( FORMAL_PARAM_STD_DECL localModifierList type variableDeclaratorId ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FORMAL_PARAM_STD_DECL, "FORMAL_PARAM_STD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 57, formalParameterStandardDecl_StartIndex, success) - - pass - return retval - - # $ANTLR end "formalParameterStandardDecl" - - class formalParameterVarArgDecl_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.formalParameterVarArgDecl_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "formalParameterVarArgDecl" - # Java.g:557:1: formalParameterVarArgDecl : localModifierList type ELLIPSIS variableDeclaratorId -> ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) ; - def formalParameterVarArgDecl(self, ): - - retval = self.formalParameterVarArgDecl_return() - retval.start = self.input.LT(1) - formalParameterVarArgDecl_StartIndex = self.input.index() - root_0 = None - - ELLIPSIS218 = None - localModifierList216 = None - - type217 = None - - variableDeclaratorId219 = None - - - ELLIPSIS218_tree = None - stream_ELLIPSIS = RewriteRuleTokenStream(self._adaptor, "token ELLIPSIS") - stream_variableDeclaratorId = RewriteRuleSubtreeStream(self._adaptor, "rule variableDeclaratorId") - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 58): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:558:5: ( localModifierList type ELLIPSIS variableDeclaratorId -> ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) ) - # Java.g:558:9: localModifierList type ELLIPSIS variableDeclaratorId - pass - self._state.following.append(self.FOLLOW_localModifierList_in_formalParameterVarArgDecl7672) - localModifierList216 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList216.tree) - self._state.following.append(self.FOLLOW_type_in_formalParameterVarArgDecl7674) - type217 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type217.tree) - ELLIPSIS218=self.match(self.input, ELLIPSIS, self.FOLLOW_ELLIPSIS_in_formalParameterVarArgDecl7676) - if self._state.backtracking == 0: - stream_ELLIPSIS.add(ELLIPSIS218) - self._state.following.append(self.FOLLOW_variableDeclaratorId_in_formalParameterVarArgDecl7678) - variableDeclaratorId219 = self.variableDeclaratorId() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_variableDeclaratorId.add(variableDeclaratorId219.tree) - - # AST Rewrite - # elements: variableDeclaratorId, localModifierList, type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 559:9: -> ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) - # Java.g:559:13: ^( FORMAL_PARAM_VARARG_DECL localModifierList type variableDeclaratorId ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FORMAL_PARAM_VARARG_DECL, "FORMAL_PARAM_VARARG_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_variableDeclaratorId.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 58, formalParameterVarArgDecl_StartIndex, success) - - pass - return retval - - # $ANTLR end "formalParameterVarArgDecl" - - class qualifiedIdentifier_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedIdentifier_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedIdentifier" - # Java.g:562:1: qualifiedIdentifier : ( IDENT -> IDENT ) ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* ; - def qualifiedIdentifier(self, ): - - retval = self.qualifiedIdentifier_return() - retval.start = self.input.LT(1) - qualifiedIdentifier_StartIndex = self.input.index() - root_0 = None - - ident = None - IDENT220 = None - DOT221 = None - - ident_tree = None - IDENT220_tree = None - DOT221_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 59): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:563:5: ( ( IDENT -> IDENT ) ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* ) - # Java.g:563:9: ( IDENT -> IDENT ) ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* - pass - # Java.g:563:9: ( IDENT -> IDENT ) - # Java.g:563:13: IDENT - pass - IDENT220=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentifier7722) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT220) - - # AST Rewrite - # elements: IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 563:33: -> IDENT - self._adaptor.addChild(root_0, stream_IDENT.nextNode()) - - - - retval.tree = root_0 - - - - # Java.g:565:9: ( DOT ident= IDENT -> ^( DOT $qualifiedIdentifier $ident) )* - while True: #loop74 - alt74 = 2 - LA74_0 = self.input.LA(1) - - if (LA74_0 == DOT) : - LA74_2 = self.input.LA(2) - - if (LA74_2 == IDENT) : - LA74_3 = self.input.LA(3) - - if (self.synpred101_Java()) : - alt74 = 1 - - - - - - - if alt74 == 1: - # Java.g:565:13: DOT ident= IDENT - pass - DOT221=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentifier7765) - if self._state.backtracking == 0: - stream_DOT.add(DOT221) - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentifier7769) - if self._state.backtracking == 0: - stream_IDENT.add(ident) - - # AST Rewrite - # elements: DOT, qualifiedIdentifier, ident - # token labels: ident - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - stream_ident = RewriteRuleTokenStream(self._adaptor, "token ident", ident) - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 565:33: -> ^( DOT $qualifiedIdentifier $ident) - # Java.g:565:37: ^( DOT $qualifiedIdentifier $ident) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_ident.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - break #loop74 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 59, qualifiedIdentifier_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedIdentifier" - - class annotationList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationList" - # Java.g:571:1: annotationList : ( annotation )* -> ^( ANNOTATION_LIST ( annotation )* ) ; - def annotationList(self, ): - - retval = self.annotationList_return() - retval.start = self.input.LT(1) - annotationList_StartIndex = self.input.index() - root_0 = None - - annotation222 = None - - - stream_annotation = RewriteRuleSubtreeStream(self._adaptor, "rule annotation") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 60): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:572:5: ( ( annotation )* -> ^( ANNOTATION_LIST ( annotation )* ) ) - # Java.g:572:9: ( annotation )* - pass - # Java.g:572:9: ( annotation )* - while True: #loop75 - alt75 = 2 - LA75_0 = self.input.LA(1) - - if (LA75_0 == AT) : - LA75_2 = self.input.LA(2) - - if (LA75_2 == IDENT) : - LA75_3 = self.input.LA(3) - - if (self.synpred102_Java()) : - alt75 = 1 - - - - - - - if alt75 == 1: - # Java.g:0:0: annotation - pass - self._state.following.append(self.FOLLOW_annotation_in_annotationList7818) - annotation222 = self.annotation() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotation.add(annotation222.tree) - - - else: - break #loop75 - - # AST Rewrite - # elements: annotation - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 573:9: -> ^( ANNOTATION_LIST ( annotation )* ) - # Java.g:573:13: ^( ANNOTATION_LIST ( annotation )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_LIST, "ANNOTATION_LIST"), root_1) - - # Java.g:573:31: ( annotation )* - while stream_annotation.hasNext(): - self._adaptor.addChild(root_1, stream_annotation.nextTree()) - - - stream_annotation.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 60, annotationList_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationList" - - class annotation_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotation_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotation" - # Java.g:576:1: annotation : AT qualifiedIdentifier ( annotationInit )? ; - def annotation(self, ): - - retval = self.annotation_return() - retval.start = self.input.LT(1) - annotation_StartIndex = self.input.index() - root_0 = None - - AT223 = None - qualifiedIdentifier224 = None - - annotationInit225 = None - - - AT223_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 61): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:577:5: ( AT qualifiedIdentifier ( annotationInit )? ) - # Java.g:577:9: AT qualifiedIdentifier ( annotationInit )? - pass - root_0 = self._adaptor.nil() - - AT223=self.match(self.input, AT, self.FOLLOW_AT_in_annotation7856) - if self._state.backtracking == 0: - - AT223_tree = self._adaptor.createWithPayload(AT223) - root_0 = self._adaptor.becomeRoot(AT223_tree, root_0) - - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_annotation7859) - qualifiedIdentifier224 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentifier224.tree) - # Java.g:577:33: ( annotationInit )? - alt76 = 2 - LA76_0 = self.input.LA(1) - - if (LA76_0 == LPAREN) : - alt76 = 1 - if alt76 == 1: - # Java.g:0:0: annotationInit - pass - self._state.following.append(self.FOLLOW_annotationInit_in_annotation7861) - annotationInit225 = self.annotationInit() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationInit225.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 61, annotation_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotation" - - class annotationInit_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationInit_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationInit" - # Java.g:580:1: annotationInit : LPAREN annotationInitializers RPAREN -> ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) ; - def annotationInit(self, ): - - retval = self.annotationInit_return() - retval.start = self.input.LT(1) - annotationInit_StartIndex = self.input.index() - root_0 = None - - LPAREN226 = None - RPAREN228 = None - annotationInitializers227 = None - - - LPAREN226_tree = None - RPAREN228_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_annotationInitializers = RewriteRuleSubtreeStream(self._adaptor, "rule annotationInitializers") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 62): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:581:5: ( LPAREN annotationInitializers RPAREN -> ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) ) - # Java.g:581:9: LPAREN annotationInitializers RPAREN - pass - LPAREN226=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_annotationInit7881) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN226) - self._state.following.append(self.FOLLOW_annotationInitializers_in_annotationInit7883) - annotationInitializers227 = self.annotationInitializers() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationInitializers.add(annotationInitializers227.tree) - RPAREN228=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_annotationInit7885) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN228) - - # AST Rewrite - # elements: annotationInitializers - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 582:9: -> ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) - # Java.g:582:13: ^( ANNOTATION_INIT_BLOCK[$LPAREN, \"ANNOTATION_INIT_BLOCK\"] annotationInitializers ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ANNOTATION_INIT_BLOCK, LPAREN226, "ANNOTATION_INIT_BLOCK"), root_1) - - self._adaptor.addChild(root_1, stream_annotationInitializers.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 62, annotationInit_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationInit" - - class annotationInitializers_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationInitializers_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationInitializers" - # Java.g:585:1: annotationInitializers : ( annotationInitializer ( COMMA annotationInitializer )* -> ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) | annotationElementValue -> ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) ); - def annotationInitializers(self, ): - - retval = self.annotationInitializers_return() - retval.start = self.input.LT(1) - annotationInitializers_StartIndex = self.input.index() - root_0 = None - - COMMA230 = None - annotationInitializer229 = None - - annotationInitializer231 = None - - annotationElementValue232 = None - - - COMMA230_tree = None - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_annotationElementValue = RewriteRuleSubtreeStream(self._adaptor, "rule annotationElementValue") - stream_annotationInitializer = RewriteRuleSubtreeStream(self._adaptor, "rule annotationInitializer") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 63): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:586:5: ( annotationInitializer ( COMMA annotationInitializer )* -> ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) | annotationElementValue -> ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) ) - alt78 = 2 - LA78_0 = self.input.LA(1) - - if (LA78_0 == IDENT) : - LA78_1 = self.input.LA(2) - - if (LA78_1 == ASSIGN) : - alt78 = 1 - elif (LA78_1 == AND or LA78_1 == BIT_SHIFT_RIGHT or (DEC <= LA78_1 <= DIV) or LA78_1 == DOT or (EQUAL <= LA78_1 <= LBRACK) or (LESS_OR_EQUAL <= LA78_1 <= LOGICAL_AND) or (LOGICAL_OR <= LA78_1 <= MINUS) or LA78_1 == MOD or (NOT_EQUAL <= LA78_1 <= OR) or LA78_1 == PLUS or LA78_1 == QUESTION or LA78_1 == RPAREN or LA78_1 == SHIFT_LEFT or LA78_1 == SHIFT_RIGHT or LA78_1 == STAR or LA78_1 == XOR or LA78_1 == INSTANCEOF) : - alt78 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 78, 1, self.input) - - raise nvae - - elif (LA78_0 == AT or LA78_0 == DEC or LA78_0 == INC or LA78_0 == LCURLY or LA78_0 == LESS_THAN or LA78_0 == LOGICAL_NOT or (LPAREN <= LA78_0 <= MINUS) or LA78_0 == NOT or LA78_0 == PLUS or LA78_0 == BOOLEAN or LA78_0 == BYTE or LA78_0 == CHAR or LA78_0 == DOUBLE or LA78_0 == FALSE or LA78_0 == FLOAT or (INT <= LA78_0 <= LONG) or (NEW <= LA78_0 <= NULL) or LA78_0 == SHORT or LA78_0 == SUPER or LA78_0 == THIS or LA78_0 == TRUE or LA78_0 == VOID or (HEX_LITERAL <= LA78_0 <= STRING_LITERAL)) : - alt78 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 78, 0, self.input) - - raise nvae - - if alt78 == 1: - # Java.g:586:9: annotationInitializer ( COMMA annotationInitializer )* - pass - self._state.following.append(self.FOLLOW_annotationInitializer_in_annotationInitializers7922) - annotationInitializer229 = self.annotationInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationInitializer.add(annotationInitializer229.tree) - # Java.g:586:31: ( COMMA annotationInitializer )* - while True: #loop77 - alt77 = 2 - LA77_0 = self.input.LA(1) - - if (LA77_0 == COMMA) : - alt77 = 1 - - - if alt77 == 1: - # Java.g:586:32: COMMA annotationInitializer - pass - COMMA230=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_annotationInitializers7925) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA230) - self._state.following.append(self.FOLLOW_annotationInitializer_in_annotationInitializers7927) - annotationInitializer231 = self.annotationInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationInitializer.add(annotationInitializer231.tree) - - - else: - break #loop77 - - # AST Rewrite - # elements: annotationInitializer - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 587:9: -> ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) - # Java.g:587:13: ^( ANNOTATION_INIT_KEY_LIST ( annotationInitializer )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_INIT_KEY_LIST, "ANNOTATION_INIT_KEY_LIST"), root_1) - - # Java.g:587:40: ( annotationInitializer )+ - if not (stream_annotationInitializer.hasNext()): - raise RewriteEarlyExitException() - - while stream_annotationInitializer.hasNext(): - self._adaptor.addChild(root_1, stream_annotationInitializer.nextTree()) - - - stream_annotationInitializer.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt78 == 2: - # Java.g:588:9: annotationElementValue - pass - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationInitializers7957) - annotationElementValue232 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationElementValue.add(annotationElementValue232.tree) - - # AST Rewrite - # elements: annotationElementValue - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 589:9: -> ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) - # Java.g:589:13: ^( ANNOTATION_INIT_DEFAULT_KEY annotationElementValue ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_INIT_DEFAULT_KEY, "ANNOTATION_INIT_DEFAULT_KEY"), root_1) - - self._adaptor.addChild(root_1, stream_annotationElementValue.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 63, annotationInitializers_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationInitializers" - - class annotationInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationInitializer_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationInitializer" - # Java.g:592:1: annotationInitializer : IDENT ASSIGN annotationElementValue ; - def annotationInitializer(self, ): - - retval = self.annotationInitializer_return() - retval.start = self.input.LT(1) - annotationInitializer_StartIndex = self.input.index() - root_0 = None - - IDENT233 = None - ASSIGN234 = None - annotationElementValue235 = None - - - IDENT233_tree = None - ASSIGN234_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 64): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:593:5: ( IDENT ASSIGN annotationElementValue ) - # Java.g:593:9: IDENT ASSIGN annotationElementValue - pass - root_0 = self._adaptor.nil() - - IDENT233=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_annotationInitializer7994) - if self._state.backtracking == 0: - - IDENT233_tree = self._adaptor.createWithPayload(IDENT233) - root_0 = self._adaptor.becomeRoot(IDENT233_tree, root_0) - - ASSIGN234=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_annotationInitializer7997) - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationInitializer8000) - annotationElementValue235 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValue235.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 64, annotationInitializer_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationInitializer" - - class annotationElementValue_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationElementValue_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationElementValue" - # Java.g:596:1: annotationElementValue : ( annotationElementValueExpression | annotation | annotationElementValueArrayInitializer ); - def annotationElementValue(self, ): - - retval = self.annotationElementValue_return() - retval.start = self.input.LT(1) - annotationElementValue_StartIndex = self.input.index() - root_0 = None - - annotationElementValueExpression236 = None - - annotation237 = None - - annotationElementValueArrayInitializer238 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 65): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:597:5: ( annotationElementValueExpression | annotation | annotationElementValueArrayInitializer ) - alt79 = 3 - LA79 = self.input.LA(1) - if LA79 == DEC or LA79 == INC or LA79 == LESS_THAN or LA79 == LOGICAL_NOT or LA79 == LPAREN or LA79 == MINUS or LA79 == NOT or LA79 == PLUS or LA79 == BOOLEAN or LA79 == BYTE or LA79 == CHAR or LA79 == DOUBLE or LA79 == FALSE or LA79 == FLOAT or LA79 == INT or LA79 == LONG or LA79 == NEW or LA79 == NULL or LA79 == SHORT or LA79 == SUPER or LA79 == THIS or LA79 == TRUE or LA79 == VOID or LA79 == IDENT or LA79 == HEX_LITERAL or LA79 == OCTAL_LITERAL or LA79 == DECIMAL_LITERAL or LA79 == FLOATING_POINT_LITERAL or LA79 == CHARACTER_LITERAL or LA79 == STRING_LITERAL: - alt79 = 1 - elif LA79 == AT: - alt79 = 2 - elif LA79 == LCURLY: - alt79 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 79, 0, self.input) - - raise nvae - - if alt79 == 1: - # Java.g:597:9: annotationElementValueExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotationElementValueExpression_in_annotationElementValue8019) - annotationElementValueExpression236 = self.annotationElementValueExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValueExpression236.tree) - - - elif alt79 == 2: - # Java.g:598:9: annotation - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotation_in_annotationElementValue8029) - annotation237 = self.annotation() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotation237.tree) - - - elif alt79 == 3: - # Java.g:599:9: annotationElementValueArrayInitializer - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_annotationElementValueArrayInitializer_in_annotationElementValue8039) - annotationElementValueArrayInitializer238 = self.annotationElementValueArrayInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValueArrayInitializer238.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 65, annotationElementValue_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationElementValue" - - class annotationElementValueExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationElementValueExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationElementValueExpression" - # Java.g:602:1: annotationElementValueExpression : conditionalExpression -> ^( EXPR conditionalExpression ) ; - def annotationElementValueExpression(self, ): - - retval = self.annotationElementValueExpression_return() - retval.start = self.input.LT(1) - annotationElementValueExpression_StartIndex = self.input.index() - root_0 = None - - conditionalExpression239 = None - - - stream_conditionalExpression = RewriteRuleSubtreeStream(self._adaptor, "rule conditionalExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 66): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:603:5: ( conditionalExpression -> ^( EXPR conditionalExpression ) ) - # Java.g:603:9: conditionalExpression - pass - self._state.following.append(self.FOLLOW_conditionalExpression_in_annotationElementValueExpression8058) - conditionalExpression239 = self.conditionalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_conditionalExpression.add(conditionalExpression239.tree) - - # AST Rewrite - # elements: conditionalExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 604:9: -> ^( EXPR conditionalExpression ) - # Java.g:604:13: ^( EXPR conditionalExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(EXPR, "EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_conditionalExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 66, annotationElementValueExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationElementValueExpression" - - class annotationElementValueArrayInitializer_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationElementValueArrayInitializer_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationElementValueArrayInitializer" - # Java.g:607:1: annotationElementValueArrayInitializer : LCURLY ( annotationElementValue ( COMMA annotationElementValue )* )? ( COMMA )? RCURLY -> ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) ; - def annotationElementValueArrayInitializer(self, ): - - retval = self.annotationElementValueArrayInitializer_return() - retval.start = self.input.LT(1) - annotationElementValueArrayInitializer_StartIndex = self.input.index() - root_0 = None - - LCURLY240 = None - COMMA242 = None - COMMA244 = None - RCURLY245 = None - annotationElementValue241 = None - - annotationElementValue243 = None - - - LCURLY240_tree = None - COMMA242_tree = None - COMMA244_tree = None - RCURLY245_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_COMMA = RewriteRuleTokenStream(self._adaptor, "token COMMA") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_annotationElementValue = RewriteRuleSubtreeStream(self._adaptor, "rule annotationElementValue") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 67): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:608:5: ( LCURLY ( annotationElementValue ( COMMA annotationElementValue )* )? ( COMMA )? RCURLY -> ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) ) - # Java.g:608:9: LCURLY ( annotationElementValue ( COMMA annotationElementValue )* )? ( COMMA )? RCURLY - pass - LCURLY240=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_annotationElementValueArrayInitializer8094) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY240) - # Java.g:608:16: ( annotationElementValue ( COMMA annotationElementValue )* )? - alt81 = 2 - LA81_0 = self.input.LA(1) - - if (LA81_0 == AT or LA81_0 == DEC or LA81_0 == INC or LA81_0 == LCURLY or LA81_0 == LESS_THAN or LA81_0 == LOGICAL_NOT or (LPAREN <= LA81_0 <= MINUS) or LA81_0 == NOT or LA81_0 == PLUS or LA81_0 == BOOLEAN or LA81_0 == BYTE or LA81_0 == CHAR or LA81_0 == DOUBLE or LA81_0 == FALSE or LA81_0 == FLOAT or (INT <= LA81_0 <= LONG) or (NEW <= LA81_0 <= NULL) or LA81_0 == SHORT or LA81_0 == SUPER or LA81_0 == THIS or LA81_0 == TRUE or LA81_0 == VOID or (IDENT <= LA81_0 <= STRING_LITERAL)) : - alt81 = 1 - if alt81 == 1: - # Java.g:608:17: annotationElementValue ( COMMA annotationElementValue )* - pass - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8097) - annotationElementValue241 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationElementValue.add(annotationElementValue241.tree) - # Java.g:608:40: ( COMMA annotationElementValue )* - while True: #loop80 - alt80 = 2 - LA80_0 = self.input.LA(1) - - if (LA80_0 == COMMA) : - LA80_1 = self.input.LA(2) - - if (LA80_1 == AT or LA80_1 == DEC or LA80_1 == INC or LA80_1 == LCURLY or LA80_1 == LESS_THAN or LA80_1 == LOGICAL_NOT or (LPAREN <= LA80_1 <= MINUS) or LA80_1 == NOT or LA80_1 == PLUS or LA80_1 == BOOLEAN or LA80_1 == BYTE or LA80_1 == CHAR or LA80_1 == DOUBLE or LA80_1 == FALSE or LA80_1 == FLOAT or (INT <= LA80_1 <= LONG) or (NEW <= LA80_1 <= NULL) or LA80_1 == SHORT or LA80_1 == SUPER or LA80_1 == THIS or LA80_1 == TRUE or LA80_1 == VOID or (IDENT <= LA80_1 <= STRING_LITERAL)) : - alt80 = 1 - - - - - if alt80 == 1: - # Java.g:608:41: COMMA annotationElementValue - pass - COMMA242=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_annotationElementValueArrayInitializer8100) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA242) - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8102) - annotationElementValue243 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationElementValue.add(annotationElementValue243.tree) - - - else: - break #loop80 - - - - # Java.g:608:74: ( COMMA )? - alt82 = 2 - LA82_0 = self.input.LA(1) - - if (LA82_0 == COMMA) : - alt82 = 1 - if alt82 == 1: - # Java.g:608:75: COMMA - pass - COMMA244=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_annotationElementValueArrayInitializer8109) - if self._state.backtracking == 0: - stream_COMMA.add(COMMA244) - - - - RCURLY245=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_annotationElementValueArrayInitializer8113) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY245) - - # AST Rewrite - # elements: annotationElementValue - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 609:9: -> ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) - # Java.g:609:13: ^( ANNOTATION_INIT_ARRAY_ELEMENT[$LCURLY, \"ANNOTATION_ELEM_VALUE_ARRAY_INIT\"] ( annotationElementValue )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ANNOTATION_INIT_ARRAY_ELEMENT, LCURLY240, "ANNOTATION_ELEM_VALUE_ARRAY_INIT"), root_1) - - # Java.g:609:90: ( annotationElementValue )* - while stream_annotationElementValue.hasNext(): - self._adaptor.addChild(root_1, stream_annotationElementValue.nextTree()) - - - stream_annotationElementValue.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 67, annotationElementValueArrayInitializer_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationElementValueArrayInitializer" - - class annotationTypeDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationTypeDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationTypeDeclaration" - # Java.g:612:1: annotationTypeDeclaration[modifiers] : AT INTERFACE IDENT annotationBody -> ^( AT IDENT annotationBody ) ; - def annotationTypeDeclaration(self, modifiers): - - retval = self.annotationTypeDeclaration_return() - retval.start = self.input.LT(1) - annotationTypeDeclaration_StartIndex = self.input.index() - root_0 = None - - AT246 = None - INTERFACE247 = None - IDENT248 = None - annotationBody249 = None - - - AT246_tree = None - INTERFACE247_tree = None - IDENT248_tree = None - stream_AT = RewriteRuleTokenStream(self._adaptor, "token AT") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_INTERFACE = RewriteRuleTokenStream(self._adaptor, "token INTERFACE") - stream_annotationBody = RewriteRuleSubtreeStream(self._adaptor, "rule annotationBody") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 68): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:613:5: ( AT INTERFACE IDENT annotationBody -> ^( AT IDENT annotationBody ) ) - # Java.g:613:9: AT INTERFACE IDENT annotationBody - pass - AT246=self.match(self.input, AT, self.FOLLOW_AT_in_annotationTypeDeclaration8152) - if self._state.backtracking == 0: - stream_AT.add(AT246) - INTERFACE247=self.match(self.input, INTERFACE, self.FOLLOW_INTERFACE_in_annotationTypeDeclaration8154) - if self._state.backtracking == 0: - stream_INTERFACE.add(INTERFACE247) - IDENT248=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_annotationTypeDeclaration8156) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT248) - self._state.following.append(self.FOLLOW_annotationBody_in_annotationTypeDeclaration8158) - annotationBody249 = self.annotationBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationBody.add(annotationBody249.tree) - - # AST Rewrite - # elements: AT, IDENT, annotationBody - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 614:9: -> ^( AT IDENT annotationBody ) - # Java.g:614:12: ^( AT IDENT annotationBody ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_AT.nextNode(), root_1) - - self._adaptor.addChild(root_1, modifiers) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_annotationBody.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 68, annotationTypeDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationTypeDeclaration" - - class annotationBody_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationBody_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationBody" - # Java.g:617:1: annotationBody : LCURLY ( annotationScopeDeclarations )* RCURLY -> ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) ; - def annotationBody(self, ): - - retval = self.annotationBody_return() - retval.start = self.input.LT(1) - annotationBody_StartIndex = self.input.index() - root_0 = None - - LCURLY250 = None - RCURLY252 = None - annotationScopeDeclarations251 = None - - - LCURLY250_tree = None - RCURLY252_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_annotationScopeDeclarations = RewriteRuleSubtreeStream(self._adaptor, "rule annotationScopeDeclarations") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 69): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:618:5: ( LCURLY ( annotationScopeDeclarations )* RCURLY -> ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) ) - # Java.g:618:9: LCURLY ( annotationScopeDeclarations )* RCURLY - pass - LCURLY250=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_annotationBody8197) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY250) - # Java.g:618:16: ( annotationScopeDeclarations )* - while True: #loop83 - alt83 = 2 - LA83_0 = self.input.LA(1) - - if (LA83_0 == AT or LA83_0 == LESS_THAN or LA83_0 == ABSTRACT or LA83_0 == BOOLEAN or LA83_0 == BYTE or (CHAR <= LA83_0 <= CLASS) or LA83_0 == DOUBLE or LA83_0 == ENUM or LA83_0 == FINAL or LA83_0 == FLOAT or LA83_0 == INTERFACE or (INT <= LA83_0 <= NATIVE) or (PRIVATE <= LA83_0 <= PUBLIC) or (SHORT <= LA83_0 <= STRICTFP) or LA83_0 == SYNCHRONIZED or LA83_0 == TRANSIENT or (VOID <= LA83_0 <= VOLATILE) or LA83_0 == IDENT) : - alt83 = 1 - - - if alt83 == 1: - # Java.g:0:0: annotationScopeDeclarations - pass - self._state.following.append(self.FOLLOW_annotationScopeDeclarations_in_annotationBody8199) - annotationScopeDeclarations251 = self.annotationScopeDeclarations() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationScopeDeclarations.add(annotationScopeDeclarations251.tree) - - - else: - break #loop83 - RCURLY252=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_annotationBody8202) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY252) - - # AST Rewrite - # elements: annotationScopeDeclarations - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 619:9: -> ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) - # Java.g:619:13: ^( ANNOTATION_TOP_LEVEL_SCOPE[$LCURLY, \"CLASS_TOP_LEVEL_SCOPE\"] ( annotationScopeDeclarations )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ANNOTATION_TOP_LEVEL_SCOPE, LCURLY250, "CLASS_TOP_LEVEL_SCOPE"), root_1) - - # Java.g:619:76: ( annotationScopeDeclarations )* - while stream_annotationScopeDeclarations.hasNext(): - self._adaptor.addChild(root_1, stream_annotationScopeDeclarations.nextTree()) - - - stream_annotationScopeDeclarations.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 69, annotationBody_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationBody" - - class annotationScopeDeclarations_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationScopeDeclarations_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationScopeDeclarations" - # Java.g:622:1: annotationScopeDeclarations : ( modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration ); - def annotationScopeDeclarations(self, ): - - retval = self.annotationScopeDeclarations_return() - retval.start = self.input.LT(1) - annotationScopeDeclarations_StartIndex = self.input.index() - root_0 = None - - IDENT255 = None - LPAREN256 = None - RPAREN257 = None - SEMI259 = None - SEMI261 = None - modifierList253 = None - - type254 = None - - annotationDefaultValue258 = None - - classFieldDeclaratorList260 = None - - typeDeclaration262 = None - - - IDENT255_tree = None - LPAREN256_tree = None - RPAREN257_tree = None - SEMI259_tree = None - SEMI261_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_modifierList = RewriteRuleSubtreeStream(self._adaptor, "rule modifierList") - stream_annotationDefaultValue = RewriteRuleSubtreeStream(self._adaptor, "rule annotationDefaultValue") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_classFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclaratorList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 70): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:623:5: ( modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) | typeDeclaration ) - alt86 = 2 - alt86 = self.dfa86.predict(self.input) - if alt86 == 1: - # Java.g:623:9: modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_annotationScopeDeclarations8240) - modifierList253 = self.modifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_modifierList.add(modifierList253.tree) - self._state.following.append(self.FOLLOW_type_in_annotationScopeDeclarations8242) - type254 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type254.tree) - # Java.g:624:9: ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) | classFieldDeclaratorList SEMI -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) ) - alt85 = 2 - LA85_0 = self.input.LA(1) - - if (LA85_0 == IDENT) : - LA85_1 = self.input.LA(2) - - if (LA85_1 == LPAREN) : - alt85 = 1 - elif (LA85_1 == ASSIGN or LA85_1 == COMMA or LA85_1 == LBRACK or LA85_1 == SEMI) : - alt85 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 85, 1, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 85, 0, self.input) - - raise nvae - - if alt85 == 1: - # Java.g:624:13: IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI - pass - IDENT255=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_annotationScopeDeclarations8256) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT255) - LPAREN256=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_annotationScopeDeclarations8258) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN256) - RPAREN257=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_annotationScopeDeclarations8260) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN257) - # Java.g:624:33: ( annotationDefaultValue )? - alt84 = 2 - LA84_0 = self.input.LA(1) - - if (LA84_0 == DEFAULT) : - alt84 = 1 - if alt84 == 1: - # Java.g:0:0: annotationDefaultValue - pass - self._state.following.append(self.FOLLOW_annotationDefaultValue_in_annotationScopeDeclarations8262) - annotationDefaultValue258 = self.annotationDefaultValue() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_annotationDefaultValue.add(annotationDefaultValue258.tree) - - - - SEMI259=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_annotationScopeDeclarations8265) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI259) - - # AST Rewrite - # elements: annotationDefaultValue, IDENT, modifierList, type - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 625:13: -> ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) - # Java.g:625:17: ^( ANNOTATION_METHOD_DECL modifierList type IDENT ( annotationDefaultValue )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ANNOTATION_METHOD_DECL, "ANNOTATION_METHOD_DECL"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - # Java.g:625:66: ( annotationDefaultValue )? - if stream_annotationDefaultValue.hasNext(): - self._adaptor.addChild(root_1, stream_annotationDefaultValue.nextTree()) - - - stream_annotationDefaultValue.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt85 == 2: - # Java.g:626:13: classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_annotationScopeDeclarations8307) - classFieldDeclaratorList260 = self.classFieldDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclaratorList.add(classFieldDeclaratorList260.tree) - SEMI261=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_annotationScopeDeclarations8309) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI261) - - # AST Rewrite - # elements: classFieldDeclaratorList, type, modifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 627:13: -> ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - # Java.g:627:17: ^( VAR_DECLARATION modifierList type classFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) - - self._adaptor.addChild(root_1, stream_modifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_classFieldDeclaratorList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt86 == 2: - # Java.g:629:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_typeDeclaration_in_annotationScopeDeclarations8354) - typeDeclaration262 = self.typeDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration262.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 70, annotationScopeDeclarations_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationScopeDeclarations" - - class annotationDefaultValue_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.annotationDefaultValue_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "annotationDefaultValue" - # Java.g:632:1: annotationDefaultValue : DEFAULT annotationElementValue ; - def annotationDefaultValue(self, ): - - retval = self.annotationDefaultValue_return() - retval.start = self.input.LT(1) - annotationDefaultValue_StartIndex = self.input.index() - root_0 = None - - DEFAULT263 = None - annotationElementValue264 = None - - - DEFAULT263_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 71): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:633:5: ( DEFAULT annotationElementValue ) - # Java.g:633:9: DEFAULT annotationElementValue - pass - root_0 = self._adaptor.nil() - - DEFAULT263=self.match(self.input, DEFAULT, self.FOLLOW_DEFAULT_in_annotationDefaultValue8373) - if self._state.backtracking == 0: - - DEFAULT263_tree = self._adaptor.createWithPayload(DEFAULT263) - root_0 = self._adaptor.becomeRoot(DEFAULT263_tree, root_0) - - self._state.following.append(self.FOLLOW_annotationElementValue_in_annotationDefaultValue8376) - annotationElementValue264 = self.annotationElementValue() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, annotationElementValue264.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 71, annotationDefaultValue_StartIndex, success) - - pass - return retval - - # $ANTLR end "annotationDefaultValue" - - class block_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.block_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "block" - # Java.g:638:1: block : LCURLY ( blockStatement )* RCURLY -> ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) ; - def block(self, ): - - retval = self.block_return() - retval.start = self.input.LT(1) - block_StartIndex = self.input.index() - root_0 = None - - LCURLY265 = None - RCURLY267 = None - blockStatement266 = None - - - LCURLY265_tree = None - RCURLY267_tree = None - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_blockStatement = RewriteRuleSubtreeStream(self._adaptor, "rule blockStatement") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 72): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:639:5: ( LCURLY ( blockStatement )* RCURLY -> ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) ) - # Java.g:639:9: LCURLY ( blockStatement )* RCURLY - pass - LCURLY265=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_block8397) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY265) - # Java.g:639:16: ( blockStatement )* - while True: #loop87 - alt87 = 2 - LA87_0 = self.input.LA(1) - - if (LA87_0 == AT or LA87_0 == DEC or LA87_0 == INC or LA87_0 == LCURLY or LA87_0 == LESS_THAN or LA87_0 == LOGICAL_NOT or (LPAREN <= LA87_0 <= MINUS) or LA87_0 == NOT or LA87_0 == PLUS or LA87_0 == SEMI or (ABSTRACT <= LA87_0 <= BYTE) or (CHAR <= LA87_0 <= CONTINUE) or (DO <= LA87_0 <= DOUBLE) or LA87_0 == ENUM or (FALSE <= LA87_0 <= FINAL) or (FLOAT <= LA87_0 <= IF) or LA87_0 == INTERFACE or (INT <= LA87_0 <= NULL) or (PRIVATE <= LA87_0 <= THROW) or (TRANSIENT <= LA87_0 <= WHILE) or (IDENT <= LA87_0 <= STRING_LITERAL)) : - alt87 = 1 - - - if alt87 == 1: - # Java.g:0:0: blockStatement - pass - self._state.following.append(self.FOLLOW_blockStatement_in_block8399) - blockStatement266 = self.blockStatement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_blockStatement.add(blockStatement266.tree) - - - else: - break #loop87 - RCURLY267=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_block8402) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY267) - - # AST Rewrite - # elements: blockStatement - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 640:9: -> ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) - # Java.g:640:13: ^( BLOCK_SCOPE[$LCURLY, \"BLOCK_SCOPE\"] ( blockStatement )* ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(BLOCK_SCOPE, LCURLY265, "BLOCK_SCOPE"), root_1) - - # Java.g:640:51: ( blockStatement )* - while stream_blockStatement.hasNext(): - self._adaptor.addChild(root_1, stream_blockStatement.nextTree()) - - - stream_blockStatement.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 72, block_StartIndex, success) - - pass - return retval - - # $ANTLR end "block" - - class blockStatement_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.blockStatement_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "blockStatement" - # Java.g:643:1: blockStatement : ( localVariableDeclaration SEMI | typeDeclaration | statement ); - def blockStatement(self, ): - - retval = self.blockStatement_return() - retval.start = self.input.LT(1) - blockStatement_StartIndex = self.input.index() - root_0 = None - - SEMI269 = None - localVariableDeclaration268 = None - - typeDeclaration270 = None - - statement271 = None - - - SEMI269_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 73): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:644:5: ( localVariableDeclaration SEMI | typeDeclaration | statement ) - alt88 = 3 - alt88 = self.dfa88.predict(self.input) - if alt88 == 1: - # Java.g:644:9: localVariableDeclaration SEMI - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_blockStatement8440) - localVariableDeclaration268 = self.localVariableDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, localVariableDeclaration268.tree) - SEMI269=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_blockStatement8442) - - - elif alt88 == 2: - # Java.g:645:9: typeDeclaration - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_typeDeclaration_in_blockStatement8453) - typeDeclaration270 = self.typeDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, typeDeclaration270.tree) - - - elif alt88 == 3: - # Java.g:646:9: statement - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_statement_in_blockStatement8463) - statement271 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, statement271.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 73, blockStatement_StartIndex, success) - - pass - return retval - - # $ANTLR end "blockStatement" - - class localVariableDeclaration_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.localVariableDeclaration_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "localVariableDeclaration" - # Java.g:649:1: localVariableDeclaration : localModifierList type classFieldDeclaratorList -> ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) ; - def localVariableDeclaration(self, ): - - retval = self.localVariableDeclaration_return() - retval.start = self.input.LT(1) - localVariableDeclaration_StartIndex = self.input.index() - root_0 = None - - localModifierList272 = None - - type273 = None - - classFieldDeclaratorList274 = None - - - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_classFieldDeclaratorList = RewriteRuleSubtreeStream(self._adaptor, "rule classFieldDeclaratorList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 74): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:650:5: ( localModifierList type classFieldDeclaratorList -> ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) ) - # Java.g:650:9: localModifierList type classFieldDeclaratorList - pass - self._state.following.append(self.FOLLOW_localModifierList_in_localVariableDeclaration8482) - localModifierList272 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList272.tree) - self._state.following.append(self.FOLLOW_type_in_localVariableDeclaration8484) - type273 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type273.tree) - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_localVariableDeclaration8486) - classFieldDeclaratorList274 = self.classFieldDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classFieldDeclaratorList.add(classFieldDeclaratorList274.tree) - - # AST Rewrite - # elements: type, classFieldDeclaratorList, localModifierList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 651:9: -> ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) - # Java.g:651:13: ^( VAR_DECLARATION localModifierList type classFieldDeclaratorList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(VAR_DECLARATION, "VAR_DECLARATION"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_classFieldDeclaratorList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 74, localVariableDeclaration_StartIndex, success) - - pass - return retval - - # $ANTLR end "localVariableDeclaration" - - class statement_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.statement_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "statement" - # Java.g:655:1: statement : ( block | ASSERT expr1= expression ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) | IF parenthesizedExpression ifStat= statement ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) | FOR LPAREN ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) | WHILE parenthesizedExpression statement -> ^( WHILE parenthesizedExpression statement ) | DO statement WHILE parenthesizedExpression SEMI -> ^( DO statement parenthesizedExpression ) | TRY block ( catches ( finallyClause )? | finallyClause ) -> ^( TRY block ( catches )? ( finallyClause )? ) | SWITCH parenthesizedExpression LCURLY ( switchBlockLabels )? RCURLY -> ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) | SYNCHRONIZED parenthesizedExpression block -> ^( SYNCHRONIZED parenthesizedExpression block ) | RETURN ( expression )? SEMI -> ^( RETURN ( expression )? ) | THROW expression SEMI -> ^( THROW expression ) | BREAK ( IDENT )? SEMI -> ^( BREAK ( IDENT )? ) | CONTINUE ( IDENT )? SEMI -> ^( CONTINUE ( IDENT )? ) | IDENT COLON statement -> ^( LABELED_STATEMENT IDENT statement ) | expression SEMI | SEMI ); - def statement(self, ): - - retval = self.statement_return() - retval.start = self.input.LT(1) - statement_StartIndex = self.input.index() - root_0 = None - - ASSERT276 = None - COLON277 = None - SEMI278 = None - SEMI279 = None - IF280 = None - ELSE282 = None - FOR283 = None - LPAREN284 = None - SEMI286 = None - SEMI288 = None - RPAREN290 = None - IDENT294 = None - COLON295 = None - RPAREN297 = None - WHILE299 = None - DO302 = None - WHILE304 = None - SEMI306 = None - TRY307 = None - SWITCH312 = None - LCURLY314 = None - RCURLY316 = None - SYNCHRONIZED317 = None - RETURN320 = None - SEMI322 = None - THROW323 = None - SEMI325 = None - BREAK326 = None - IDENT327 = None - SEMI328 = None - CONTINUE329 = None - IDENT330 = None - SEMI331 = None - IDENT332 = None - COLON333 = None - SEMI336 = None - SEMI337 = None - expr1 = None - - expr2 = None - - ifStat = None - - elseStat = None - - block275 = None - - parenthesizedExpression281 = None - - forInit285 = None - - forCondition287 = None - - forUpdater289 = None - - statement291 = None - - localModifierList292 = None - - type293 = None - - expression296 = None - - statement298 = None - - parenthesizedExpression300 = None - - statement301 = None - - statement303 = None - - parenthesizedExpression305 = None - - block308 = None - - catches309 = None - - finallyClause310 = None - - finallyClause311 = None - - parenthesizedExpression313 = None - - switchBlockLabels315 = None - - parenthesizedExpression318 = None - - block319 = None - - expression321 = None - - expression324 = None - - statement334 = None - - expression335 = None - - - ASSERT276_tree = None - COLON277_tree = None - SEMI278_tree = None - SEMI279_tree = None - IF280_tree = None - ELSE282_tree = None - FOR283_tree = None - LPAREN284_tree = None - SEMI286_tree = None - SEMI288_tree = None - RPAREN290_tree = None - IDENT294_tree = None - COLON295_tree = None - RPAREN297_tree = None - WHILE299_tree = None - DO302_tree = None - WHILE304_tree = None - SEMI306_tree = None - TRY307_tree = None - SWITCH312_tree = None - LCURLY314_tree = None - RCURLY316_tree = None - SYNCHRONIZED317_tree = None - RETURN320_tree = None - SEMI322_tree = None - THROW323_tree = None - SEMI325_tree = None - BREAK326_tree = None - IDENT327_tree = None - SEMI328_tree = None - CONTINUE329_tree = None - IDENT330_tree = None - SEMI331_tree = None - IDENT332_tree = None - COLON333_tree = None - SEMI336_tree = None - SEMI337_tree = None - stream_COLON = RewriteRuleTokenStream(self._adaptor, "token COLON") - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_SYNCHRONIZED = RewriteRuleTokenStream(self._adaptor, "token SYNCHRONIZED") - stream_WHILE = RewriteRuleTokenStream(self._adaptor, "token WHILE") - stream_CONTINUE = RewriteRuleTokenStream(self._adaptor, "token CONTINUE") - stream_SWITCH = RewriteRuleTokenStream(self._adaptor, "token SWITCH") - stream_RCURLY = RewriteRuleTokenStream(self._adaptor, "token RCURLY") - stream_ELSE = RewriteRuleTokenStream(self._adaptor, "token ELSE") - stream_RETURN = RewriteRuleTokenStream(self._adaptor, "token RETURN") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_FOR = RewriteRuleTokenStream(self._adaptor, "token FOR") - stream_DO = RewriteRuleTokenStream(self._adaptor, "token DO") - stream_LCURLY = RewriteRuleTokenStream(self._adaptor, "token LCURLY") - stream_SEMI = RewriteRuleTokenStream(self._adaptor, "token SEMI") - stream_ASSERT = RewriteRuleTokenStream(self._adaptor, "token ASSERT") - stream_BREAK = RewriteRuleTokenStream(self._adaptor, "token BREAK") - stream_THROW = RewriteRuleTokenStream(self._adaptor, "token THROW") - stream_TRY = RewriteRuleTokenStream(self._adaptor, "token TRY") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_IF = RewriteRuleTokenStream(self._adaptor, "token IF") - stream_statement = RewriteRuleSubtreeStream(self._adaptor, "rule statement") - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - stream_finallyClause = RewriteRuleSubtreeStream(self._adaptor, "rule finallyClause") - stream_catches = RewriteRuleSubtreeStream(self._adaptor, "rule catches") - stream_forUpdater = RewriteRuleSubtreeStream(self._adaptor, "rule forUpdater") - stream_block = RewriteRuleSubtreeStream(self._adaptor, "rule block") - stream_forCondition = RewriteRuleSubtreeStream(self._adaptor, "rule forCondition") - stream_localModifierList = RewriteRuleSubtreeStream(self._adaptor, "rule localModifierList") - stream_forInit = RewriteRuleSubtreeStream(self._adaptor, "rule forInit") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - stream_switchBlockLabels = RewriteRuleSubtreeStream(self._adaptor, "rule switchBlockLabels") - stream_parenthesizedExpression = RewriteRuleSubtreeStream(self._adaptor, "rule parenthesizedExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 75): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:656:5: ( block | ASSERT expr1= expression ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) | IF parenthesizedExpression ifStat= statement ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) | FOR LPAREN ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) | WHILE parenthesizedExpression statement -> ^( WHILE parenthesizedExpression statement ) | DO statement WHILE parenthesizedExpression SEMI -> ^( DO statement parenthesizedExpression ) | TRY block ( catches ( finallyClause )? | finallyClause ) -> ^( TRY block ( catches )? ( finallyClause )? ) | SWITCH parenthesizedExpression LCURLY ( switchBlockLabels )? RCURLY -> ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) | SYNCHRONIZED parenthesizedExpression block -> ^( SYNCHRONIZED parenthesizedExpression block ) | RETURN ( expression )? SEMI -> ^( RETURN ( expression )? ) | THROW expression SEMI -> ^( THROW expression ) | BREAK ( IDENT )? SEMI -> ^( BREAK ( IDENT )? ) | CONTINUE ( IDENT )? SEMI -> ^( CONTINUE ( IDENT )? ) | IDENT COLON statement -> ^( LABELED_STATEMENT IDENT statement ) | expression SEMI | SEMI ) - alt98 = 16 - alt98 = self.dfa98.predict(self.input) - if alt98 == 1: - # Java.g:656:9: block - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_block_in_statement8527) - block275 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, block275.tree) - - - elif alt98 == 2: - # Java.g:657:9: ASSERT expr1= expression ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) - pass - ASSERT276=self.match(self.input, ASSERT, self.FOLLOW_ASSERT_in_statement8537) - if self._state.backtracking == 0: - stream_ASSERT.add(ASSERT276) - self._state.following.append(self.FOLLOW_expression_in_statement8541) - expr1 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expr1.tree) - # Java.g:658:9: ( COLON expr2= expression SEMI -> ^( ASSERT $expr1 $expr2) | SEMI -> ^( ASSERT $expr1) ) - alt89 = 2 - LA89_0 = self.input.LA(1) - - if (LA89_0 == COLON) : - alt89 = 1 - elif (LA89_0 == SEMI) : - alt89 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 89, 0, self.input) - - raise nvae - - if alt89 == 1: - # Java.g:658:13: COLON expr2= expression SEMI - pass - COLON277=self.match(self.input, COLON, self.FOLLOW_COLON_in_statement8555) - if self._state.backtracking == 0: - stream_COLON.add(COLON277) - self._state.following.append(self.FOLLOW_expression_in_statement8559) - expr2 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expr2.tree) - SEMI278=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8561) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI278) - - # AST Rewrite - # elements: ASSERT, expr1, expr2 - # token labels: - # rule labels: retval, expr1, expr2 - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if expr1 is not None: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "rule expr1", expr1.tree) - else: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "token expr1", None) - - - if expr2 is not None: - stream_expr2 = RewriteRuleSubtreeStream(self._adaptor, "rule expr2", expr2.tree) - else: - stream_expr2 = RewriteRuleSubtreeStream(self._adaptor, "token expr2", None) - - - root_0 = self._adaptor.nil() - # 658:77: -> ^( ASSERT $expr1 $expr2) - # Java.g:658:81: ^( ASSERT $expr1 $expr2) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_ASSERT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_expr1.nextTree()) - self._adaptor.addChild(root_1, stream_expr2.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt89 == 2: - # Java.g:659:13: SEMI - pass - SEMI279=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8624) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI279) - - # AST Rewrite - # elements: expr1, ASSERT - # token labels: - # rule labels: retval, expr1 - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if expr1 is not None: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "rule expr1", expr1.tree) - else: - stream_expr1 = RewriteRuleSubtreeStream(self._adaptor, "token expr1", None) - - - root_0 = self._adaptor.nil() - # 659:77: -> ^( ASSERT $expr1) - # Java.g:659:81: ^( ASSERT $expr1) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_ASSERT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_expr1.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt98 == 3: - # Java.g:661:9: IF parenthesizedExpression ifStat= statement ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) - pass - IF280=self.match(self.input, IF, self.FOLLOW_IF_in_statement8713) - if self._state.backtracking == 0: - stream_IF.add(IF280) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement8715) - parenthesizedExpression281 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression281.tree) - self._state.following.append(self.FOLLOW_statement_in_statement8719) - ifStat = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(ifStat.tree) - # Java.g:662:9: ( ELSE elseStat= statement -> ^( IF parenthesizedExpression $ifStat $elseStat) | -> ^( IF parenthesizedExpression $ifStat) ) - alt90 = 2 - LA90_0 = self.input.LA(1) - - if (LA90_0 == ELSE) : - LA90_1 = self.input.LA(2) - - if (self.synpred121_Java()) : - alt90 = 1 - elif (True) : - alt90 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 90, 1, self.input) - - raise nvae - - elif (LA90_0 == EOF or LA90_0 == AT or LA90_0 == DEC or LA90_0 == INC or LA90_0 == LCURLY or LA90_0 == LESS_THAN or LA90_0 == LOGICAL_NOT or (LPAREN <= LA90_0 <= MINUS) or LA90_0 == NOT or LA90_0 == PLUS or LA90_0 == RCURLY or LA90_0 == SEMI or (ABSTRACT <= LA90_0 <= CASE) or (CHAR <= LA90_0 <= DOUBLE) or LA90_0 == ENUM or (FALSE <= LA90_0 <= FINAL) or (FLOAT <= LA90_0 <= IF) or LA90_0 == INTERFACE or (INT <= LA90_0 <= NULL) or (PRIVATE <= LA90_0 <= THROW) or (TRANSIENT <= LA90_0 <= WHILE) or (IDENT <= LA90_0 <= STRING_LITERAL)) : - alt90 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 90, 0, self.input) - - raise nvae - - if alt90 == 1: - # Java.g:662:13: ELSE elseStat= statement - pass - ELSE282=self.match(self.input, ELSE, self.FOLLOW_ELSE_in_statement8733) - if self._state.backtracking == 0: - stream_ELSE.add(ELSE282) - self._state.following.append(self.FOLLOW_statement_in_statement8737) - elseStat = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(elseStat.tree) - - # AST Rewrite - # elements: elseStat, ifStat, parenthesizedExpression, IF - # token labels: - # rule labels: retval, ifStat, elseStat - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if ifStat is not None: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "rule ifStat", ifStat.tree) - else: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "token ifStat", None) - - - if elseStat is not None: - stream_elseStat = RewriteRuleSubtreeStream(self._adaptor, "rule elseStat", elseStat.tree) - else: - stream_elseStat = RewriteRuleSubtreeStream(self._adaptor, "token elseStat", None) - - - root_0 = self._adaptor.nil() - # 662:77: -> ^( IF parenthesizedExpression $ifStat $elseStat) - # Java.g:662:81: ^( IF parenthesizedExpression $ifStat $elseStat) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_IF.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_ifStat.nextTree()) - self._adaptor.addChild(root_1, stream_elseStat.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt90 == 2: - # Java.g:663:77: - pass - # AST Rewrite - # elements: parenthesizedExpression, ifStat, IF - # token labels: - # rule labels: retval, ifStat - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if ifStat is not None: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "rule ifStat", ifStat.tree) - else: - stream_ifStat = RewriteRuleSubtreeStream(self._adaptor, "token ifStat", None) - - - root_0 = self._adaptor.nil() - # 663:77: -> ^( IF parenthesizedExpression $ifStat) - # Java.g:663:81: ^( IF parenthesizedExpression $ifStat) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_IF.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_ifStat.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt98 == 4: - # Java.g:665:9: FOR LPAREN ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) - pass - FOR283=self.match(self.input, FOR, self.FOLLOW_FOR_in_statement8900) - if self._state.backtracking == 0: - stream_FOR.add(FOR283) - LPAREN284=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_statement8902) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN284) - # Java.g:666:9: ( forInit SEMI forCondition SEMI forUpdater RPAREN statement -> ^( FOR forInit forCondition forUpdater statement ) | localModifierList type IDENT COLON expression RPAREN statement -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) ) - alt91 = 2 - alt91 = self.dfa91.predict(self.input) - if alt91 == 1: - # Java.g:666:13: forInit SEMI forCondition SEMI forUpdater RPAREN statement - pass - self._state.following.append(self.FOLLOW_forInit_in_statement8916) - forInit285 = self.forInit() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_forInit.add(forInit285.tree) - SEMI286=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8918) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI286) - self._state.following.append(self.FOLLOW_forCondition_in_statement8920) - forCondition287 = self.forCondition() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_forCondition.add(forCondition287.tree) - SEMI288=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement8922) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI288) - self._state.following.append(self.FOLLOW_forUpdater_in_statement8924) - forUpdater289 = self.forUpdater() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_forUpdater.add(forUpdater289.tree) - RPAREN290=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_statement8926) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN290) - self._state.following.append(self.FOLLOW_statement_in_statement8928) - statement291 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement291.tree) - - # AST Rewrite - # elements: forInit, forUpdater, FOR, statement, forCondition - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 666:77: -> ^( FOR forInit forCondition forUpdater statement ) - # Java.g:666:81: ^( FOR forInit forCondition forUpdater statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_FOR.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_forInit.nextTree()) - self._adaptor.addChild(root_1, stream_forCondition.nextTree()) - self._adaptor.addChild(root_1, stream_forUpdater.nextTree()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt91 == 2: - # Java.g:667:13: localModifierList type IDENT COLON expression RPAREN statement - pass - self._state.following.append(self.FOLLOW_localModifierList_in_statement8962) - localModifierList292 = self.localModifierList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localModifierList.add(localModifierList292.tree) - self._state.following.append(self.FOLLOW_type_in_statement8964) - type293 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type293.tree) - IDENT294=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement8966) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT294) - COLON295=self.match(self.input, COLON, self.FOLLOW_COLON_in_statement8968) - if self._state.backtracking == 0: - stream_COLON.add(COLON295) - self._state.following.append(self.FOLLOW_expression_in_statement8970) - expression296 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression296.tree) - RPAREN297=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_statement8972) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN297) - self._state.following.append(self.FOLLOW_statement_in_statement8974) - statement298 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement298.tree) - - # AST Rewrite - # elements: IDENT, expression, localModifierList, type, statement - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 668:77: -> ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) - # Java.g:668:81: ^( FOR_EACH[$FOR, \"FOR_EACH\"] localModifierList type IDENT expression statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(FOR_EACH, FOR283, "FOR_EACH"), root_1) - - self._adaptor.addChild(root_1, stream_localModifierList.nextTree()) - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_expression.nextTree()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt98 == 5: - # Java.g:670:9: WHILE parenthesizedExpression statement - pass - WHILE299=self.match(self.input, WHILE, self.FOLLOW_WHILE_in_statement9088) - if self._state.backtracking == 0: - stream_WHILE.add(WHILE299) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9090) - parenthesizedExpression300 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression300.tree) - self._state.following.append(self.FOLLOW_statement_in_statement9092) - statement301 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement301.tree) - - # AST Rewrite - # elements: statement, WHILE, parenthesizedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 670:77: -> ^( WHILE parenthesizedExpression statement ) - # Java.g:670:81: ^( WHILE parenthesizedExpression statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_WHILE.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 6: - # Java.g:671:9: DO statement WHILE parenthesizedExpression SEMI - pass - DO302=self.match(self.input, DO, self.FOLLOW_DO_in_statement9141) - if self._state.backtracking == 0: - stream_DO.add(DO302) - self._state.following.append(self.FOLLOW_statement_in_statement9143) - statement303 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement303.tree) - WHILE304=self.match(self.input, WHILE, self.FOLLOW_WHILE_in_statement9145) - if self._state.backtracking == 0: - stream_WHILE.add(WHILE304) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9147) - parenthesizedExpression305 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression305.tree) - SEMI306=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9149) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI306) - - # AST Rewrite - # elements: DO, parenthesizedExpression, statement - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 671:77: -> ^( DO statement parenthesizedExpression ) - # Java.g:671:81: ^( DO statement parenthesizedExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DO.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_statement.nextTree()) - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 7: - # Java.g:672:9: TRY block ( catches ( finallyClause )? | finallyClause ) - pass - TRY307=self.match(self.input, TRY, self.FOLLOW_TRY_in_statement9190) - if self._state.backtracking == 0: - stream_TRY.add(TRY307) - self._state.following.append(self.FOLLOW_block_in_statement9192) - block308 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block308.tree) - # Java.g:672:19: ( catches ( finallyClause )? | finallyClause ) - alt93 = 2 - LA93_0 = self.input.LA(1) - - if (LA93_0 == CATCH) : - alt93 = 1 - elif (LA93_0 == FINALLY) : - alt93 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 93, 0, self.input) - - raise nvae - - if alt93 == 1: - # Java.g:672:20: catches ( finallyClause )? - pass - self._state.following.append(self.FOLLOW_catches_in_statement9195) - catches309 = self.catches() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_catches.add(catches309.tree) - # Java.g:672:28: ( finallyClause )? - alt92 = 2 - LA92_0 = self.input.LA(1) - - if (LA92_0 == FINALLY) : - alt92 = 1 - if alt92 == 1: - # Java.g:0:0: finallyClause - pass - self._state.following.append(self.FOLLOW_finallyClause_in_statement9197) - finallyClause310 = self.finallyClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_finallyClause.add(finallyClause310.tree) - - - - - - elif alt93 == 2: - # Java.g:672:45: finallyClause - pass - self._state.following.append(self.FOLLOW_finallyClause_in_statement9202) - finallyClause311 = self.finallyClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_finallyClause.add(finallyClause311.tree) - - - - - # AST Rewrite - # elements: block, finallyClause, catches, TRY - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 672:77: -> ^( TRY block ( catches )? ( finallyClause )? ) - # Java.g:672:81: ^( TRY block ( catches )? ( finallyClause )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_TRY.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_block.nextTree()) - # Java.g:672:93: ( catches )? - if stream_catches.hasNext(): - self._adaptor.addChild(root_1, stream_catches.nextTree()) - - - stream_catches.reset(); - # Java.g:672:102: ( finallyClause )? - if stream_finallyClause.hasNext(): - self._adaptor.addChild(root_1, stream_finallyClause.nextTree()) - - - stream_finallyClause.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 8: - # Java.g:673:9: SWITCH parenthesizedExpression LCURLY ( switchBlockLabels )? RCURLY - pass - SWITCH312=self.match(self.input, SWITCH, self.FOLLOW_SWITCH_in_statement9245) - if self._state.backtracking == 0: - stream_SWITCH.add(SWITCH312) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9247) - parenthesizedExpression313 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression313.tree) - LCURLY314=self.match(self.input, LCURLY, self.FOLLOW_LCURLY_in_statement9249) - if self._state.backtracking == 0: - stream_LCURLY.add(LCURLY314) - # Java.g:673:47: ( switchBlockLabels )? - alt94 = 2 - LA94_0 = self.input.LA(1) - - if (LA94_0 == CASE or LA94_0 == DEFAULT) : - alt94 = 1 - elif (LA94_0 == RCURLY) : - LA94_2 = self.input.LA(2) - - if (self.synpred130_Java()) : - alt94 = 1 - if alt94 == 1: - # Java.g:0:0: switchBlockLabels - pass - self._state.following.append(self.FOLLOW_switchBlockLabels_in_statement9251) - switchBlockLabels315 = self.switchBlockLabels() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchBlockLabels.add(switchBlockLabels315.tree) - - - - RCURLY316=self.match(self.input, RCURLY, self.FOLLOW_RCURLY_in_statement9254) - if self._state.backtracking == 0: - stream_RCURLY.add(RCURLY316) - - # AST Rewrite - # elements: switchBlockLabels, parenthesizedExpression, SWITCH - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 673:78: -> ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) - # Java.g:673:82: ^( SWITCH parenthesizedExpression ( switchBlockLabels )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_SWITCH.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - # Java.g:673:115: ( switchBlockLabels )? - if stream_switchBlockLabels.hasNext(): - self._adaptor.addChild(root_1, stream_switchBlockLabels.nextTree()) - - - stream_switchBlockLabels.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 9: - # Java.g:674:9: SYNCHRONIZED parenthesizedExpression block - pass - SYNCHRONIZED317=self.match(self.input, SYNCHRONIZED, self.FOLLOW_SYNCHRONIZED_in_statement9281) - if self._state.backtracking == 0: - stream_SYNCHRONIZED.add(SYNCHRONIZED317) - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_statement9283) - parenthesizedExpression318 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_parenthesizedExpression.add(parenthesizedExpression318.tree) - self._state.following.append(self.FOLLOW_block_in_statement9285) - block319 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block319.tree) - - # AST Rewrite - # elements: SYNCHRONIZED, block, parenthesizedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 674:77: -> ^( SYNCHRONIZED parenthesizedExpression block ) - # Java.g:674:81: ^( SYNCHRONIZED parenthesizedExpression block ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_SYNCHRONIZED.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_parenthesizedExpression.nextTree()) - self._adaptor.addChild(root_1, stream_block.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 10: - # Java.g:675:9: RETURN ( expression )? SEMI - pass - RETURN320=self.match(self.input, RETURN, self.FOLLOW_RETURN_in_statement9331) - if self._state.backtracking == 0: - stream_RETURN.add(RETURN320) - # Java.g:675:16: ( expression )? - alt95 = 2 - LA95_0 = self.input.LA(1) - - if (LA95_0 == DEC or LA95_0 == INC or LA95_0 == LESS_THAN or LA95_0 == LOGICAL_NOT or (LPAREN <= LA95_0 <= MINUS) or LA95_0 == NOT or LA95_0 == PLUS or LA95_0 == BOOLEAN or LA95_0 == BYTE or LA95_0 == CHAR or LA95_0 == DOUBLE or LA95_0 == FALSE or LA95_0 == FLOAT or (INT <= LA95_0 <= LONG) or (NEW <= LA95_0 <= NULL) or LA95_0 == SHORT or LA95_0 == SUPER or LA95_0 == THIS or LA95_0 == TRUE or LA95_0 == VOID or (IDENT <= LA95_0 <= STRING_LITERAL)) : - alt95 = 1 - if alt95 == 1: - # Java.g:0:0: expression - pass - self._state.following.append(self.FOLLOW_expression_in_statement9333) - expression321 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression321.tree) - - - - SEMI322=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9336) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI322) - - # AST Rewrite - # elements: RETURN, expression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 675:77: -> ^( RETURN ( expression )? ) - # Java.g:675:81: ^( RETURN ( expression )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_RETURN.nextNode(), root_1) - - # Java.g:675:90: ( expression )? - if stream_expression.hasNext(): - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - - stream_expression.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 11: - # Java.g:676:9: THROW expression SEMI - pass - THROW323=self.match(self.input, THROW, self.FOLLOW_THROW_in_statement9400) - if self._state.backtracking == 0: - stream_THROW.add(THROW323) - self._state.following.append(self.FOLLOW_expression_in_statement9402) - expression324 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression324.tree) - SEMI325=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9404) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI325) - - # AST Rewrite - # elements: expression, THROW - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 676:77: -> ^( THROW expression ) - # Java.g:676:81: ^( THROW expression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_THROW.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 12: - # Java.g:677:9: BREAK ( IDENT )? SEMI - pass - BREAK326=self.match(self.input, BREAK, self.FOLLOW_BREAK_in_statement9469) - if self._state.backtracking == 0: - stream_BREAK.add(BREAK326) - # Java.g:677:15: ( IDENT )? - alt96 = 2 - LA96_0 = self.input.LA(1) - - if (LA96_0 == IDENT) : - alt96 = 1 - if alt96 == 1: - # Java.g:0:0: IDENT - pass - IDENT327=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement9471) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT327) - - - - SEMI328=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9474) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI328) - - # AST Rewrite - # elements: BREAK, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 677:77: -> ^( BREAK ( IDENT )? ) - # Java.g:677:81: ^( BREAK ( IDENT )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_BREAK.nextNode(), root_1) - - # Java.g:677:89: ( IDENT )? - if stream_IDENT.hasNext(): - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - - stream_IDENT.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 13: - # Java.g:678:9: CONTINUE ( IDENT )? SEMI - pass - CONTINUE329=self.match(self.input, CONTINUE, self.FOLLOW_CONTINUE_in_statement9544) - if self._state.backtracking == 0: - stream_CONTINUE.add(CONTINUE329) - # Java.g:678:18: ( IDENT )? - alt97 = 2 - LA97_0 = self.input.LA(1) - - if (LA97_0 == IDENT) : - alt97 = 1 - if alt97 == 1: - # Java.g:0:0: IDENT - pass - IDENT330=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement9546) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT330) - - - - SEMI331=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9549) - if self._state.backtracking == 0: - stream_SEMI.add(SEMI331) - - # AST Rewrite - # elements: CONTINUE, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 678:77: -> ^( CONTINUE ( IDENT )? ) - # Java.g:678:81: ^( CONTINUE ( IDENT )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_CONTINUE.nextNode(), root_1) - - # Java.g:678:92: ( IDENT )? - if stream_IDENT.hasNext(): - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - - stream_IDENT.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 14: - # Java.g:679:9: IDENT COLON statement - pass - IDENT332=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_statement9616) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT332) - COLON333=self.match(self.input, COLON, self.FOLLOW_COLON_in_statement9618) - if self._state.backtracking == 0: - stream_COLON.add(COLON333) - self._state.following.append(self.FOLLOW_statement_in_statement9620) - statement334 = self.statement() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_statement.add(statement334.tree) - - # AST Rewrite - # elements: statement, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 679:77: -> ^( LABELED_STATEMENT IDENT statement ) - # Java.g:679:81: ^( LABELED_STATEMENT IDENT statement ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(LABELED_STATEMENT, "LABELED_STATEMENT"), root_1) - - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_statement.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt98 == 15: - # Java.g:680:9: expression SEMI - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_expression_in_statement9687) - expression335 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression335.tree) - SEMI336=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9689) - - - elif alt98 == 16: - # Java.g:681:9: SEMI - pass - root_0 = self._adaptor.nil() - - SEMI337=self.match(self.input, SEMI, self.FOLLOW_SEMI_in_statement9700) - if self._state.backtracking == 0: - - SEMI337_tree = self._adaptor.createWithPayload(SEMI337) - self._adaptor.addChild(root_0, SEMI337_tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 75, statement_StartIndex, success) - - pass - return retval - - # $ANTLR end "statement" - - class catches_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.catches_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "catches" - # Java.g:684:1: catches : ( catchClause )+ -> ^( CATCH_CLAUSE_LIST ( catchClause )+ ) ; - def catches(self, ): - - retval = self.catches_return() - retval.start = self.input.LT(1) - catches_StartIndex = self.input.index() - root_0 = None - - catchClause338 = None - - - stream_catchClause = RewriteRuleSubtreeStream(self._adaptor, "rule catchClause") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 76): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:685:5: ( ( catchClause )+ -> ^( CATCH_CLAUSE_LIST ( catchClause )+ ) ) - # Java.g:685:9: ( catchClause )+ - pass - # Java.g:685:9: ( catchClause )+ - cnt99 = 0 - while True: #loop99 - alt99 = 2 - LA99_0 = self.input.LA(1) - - if (LA99_0 == CATCH) : - alt99 = 1 - - - if alt99 == 1: - # Java.g:0:0: catchClause - pass - self._state.following.append(self.FOLLOW_catchClause_in_catches9720) - catchClause338 = self.catchClause() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_catchClause.add(catchClause338.tree) - - - else: - if cnt99 >= 1: - break #loop99 - - if self._state.backtracking > 0: - raise BacktrackingFailed - - eee = EarlyExitException(99, self.input) - raise eee - - cnt99 += 1 - - # AST Rewrite - # elements: catchClause - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 686:9: -> ^( CATCH_CLAUSE_LIST ( catchClause )+ ) - # Java.g:686:13: ^( CATCH_CLAUSE_LIST ( catchClause )+ ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(CATCH_CLAUSE_LIST, "CATCH_CLAUSE_LIST"), root_1) - - # Java.g:686:33: ( catchClause )+ - if not (stream_catchClause.hasNext()): - raise RewriteEarlyExitException() - - while stream_catchClause.hasNext(): - self._adaptor.addChild(root_1, stream_catchClause.nextTree()) - - - stream_catchClause.reset() - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 76, catches_StartIndex, success) - - pass - return retval - - # $ANTLR end "catches" - - class catchClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.catchClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "catchClause" - # Java.g:689:1: catchClause : CATCH LPAREN formalParameterStandardDecl RPAREN block ; - def catchClause(self, ): - - retval = self.catchClause_return() - retval.start = self.input.LT(1) - catchClause_StartIndex = self.input.index() - root_0 = None - - CATCH339 = None - LPAREN340 = None - RPAREN342 = None - formalParameterStandardDecl341 = None - - block343 = None - - - CATCH339_tree = None - LPAREN340_tree = None - RPAREN342_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 77): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:690:5: ( CATCH LPAREN formalParameterStandardDecl RPAREN block ) - # Java.g:690:9: CATCH LPAREN formalParameterStandardDecl RPAREN block - pass - root_0 = self._adaptor.nil() - - CATCH339=self.match(self.input, CATCH, self.FOLLOW_CATCH_in_catchClause9758) - if self._state.backtracking == 0: - - CATCH339_tree = self._adaptor.createWithPayload(CATCH339) - root_0 = self._adaptor.becomeRoot(CATCH339_tree, root_0) - - LPAREN340=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_catchClause9761) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_catchClause9764) - formalParameterStandardDecl341 = self.formalParameterStandardDecl() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, formalParameterStandardDecl341.tree) - RPAREN342=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_catchClause9766) - self._state.following.append(self.FOLLOW_block_in_catchClause9769) - block343 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, block343.tree) - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 77, catchClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "catchClause" - - class finallyClause_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.finallyClause_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "finallyClause" - # Java.g:693:1: finallyClause : FINALLY block -> block ; - def finallyClause(self, ): - - retval = self.finallyClause_return() - retval.start = self.input.LT(1) - finallyClause_StartIndex = self.input.index() - root_0 = None - - FINALLY344 = None - block345 = None - - - FINALLY344_tree = None - stream_FINALLY = RewriteRuleTokenStream(self._adaptor, "token FINALLY") - stream_block = RewriteRuleSubtreeStream(self._adaptor, "rule block") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 78): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:694:5: ( FINALLY block -> block ) - # Java.g:694:9: FINALLY block - pass - FINALLY344=self.match(self.input, FINALLY, self.FOLLOW_FINALLY_in_finallyClause9788) - if self._state.backtracking == 0: - stream_FINALLY.add(FINALLY344) - self._state.following.append(self.FOLLOW_block_in_finallyClause9790) - block345 = self.block() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_block.add(block345.tree) - - # AST Rewrite - # elements: block - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 695:9: -> block - self._adaptor.addChild(root_0, stream_block.nextTree()) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 78, finallyClause_StartIndex, success) - - pass - return retval - - # $ANTLR end "finallyClause" - - class switchBlockLabels_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchBlockLabels_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchBlockLabels" - # Java.g:698:1: switchBlockLabels : (c0= switchCaseLabels )? ( switchDefaultLabel )? (c1= switchCaseLabels )? -> ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) ; - def switchBlockLabels(self, ): - - retval = self.switchBlockLabels_return() - retval.start = self.input.LT(1) - switchBlockLabels_StartIndex = self.input.index() - root_0 = None - - c0 = None - - c1 = None - - switchDefaultLabel346 = None - - - stream_switchDefaultLabel = RewriteRuleSubtreeStream(self._adaptor, "rule switchDefaultLabel") - stream_switchCaseLabels = RewriteRuleSubtreeStream(self._adaptor, "rule switchCaseLabels") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 79): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:702:5: ( (c0= switchCaseLabels )? ( switchDefaultLabel )? (c1= switchCaseLabels )? -> ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) ) - # Java.g:702:9: (c0= switchCaseLabels )? ( switchDefaultLabel )? (c1= switchCaseLabels )? - pass - # Java.g:702:11: (c0= switchCaseLabels )? - alt100 = 2 - LA100 = self.input.LA(1) - if LA100 == CASE: - LA100_1 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - elif LA100 == DEFAULT: - LA100_2 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - elif LA100 == RCURLY: - LA100_3 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - elif LA100 == EOF: - LA100_4 = self.input.LA(2) - - if (self.synpred143_Java()) : - alt100 = 1 - if alt100 == 1: - # Java.g:0:0: c0= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_switchBlockLabels9839) - c0 = self.switchCaseLabels() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchCaseLabels.add(c0.tree) - - - - # Java.g:702:30: ( switchDefaultLabel )? - alt101 = 2 - LA101_0 = self.input.LA(1) - - if (LA101_0 == DEFAULT) : - alt101 = 1 - if alt101 == 1: - # Java.g:0:0: switchDefaultLabel - pass - self._state.following.append(self.FOLLOW_switchDefaultLabel_in_switchBlockLabels9842) - switchDefaultLabel346 = self.switchDefaultLabel() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchDefaultLabel.add(switchDefaultLabel346.tree) - - - - # Java.g:702:52: (c1= switchCaseLabels )? - alt102 = 2 - LA102 = self.input.LA(1) - if LA102 == CASE: - alt102 = 1 - elif LA102 == RCURLY: - LA102_2 = self.input.LA(2) - - if (self.synpred145_Java()) : - alt102 = 1 - elif LA102 == EOF: - LA102_3 = self.input.LA(2) - - if (self.synpred145_Java()) : - alt102 = 1 - if alt102 == 1: - # Java.g:0:0: c1= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_switchBlockLabels9847) - c1 = self.switchCaseLabels() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_switchCaseLabels.add(c1.tree) - - - - - # AST Rewrite - # elements: c0, switchDefaultLabel, c1 - # token labels: - # rule labels: retval, c1, c0 - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - if c1 is not None: - stream_c1 = RewriteRuleSubtreeStream(self._adaptor, "rule c1", c1.tree) - else: - stream_c1 = RewriteRuleSubtreeStream(self._adaptor, "token c1", None) - - - if c0 is not None: - stream_c0 = RewriteRuleSubtreeStream(self._adaptor, "rule c0", c0.tree) - else: - stream_c0 = RewriteRuleSubtreeStream(self._adaptor, "token c0", None) - - - root_0 = self._adaptor.nil() - # 703:9: -> ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) - # Java.g:703:13: ^( SWITCH_BLOCK_LABEL_LIST ( $c0)? ( switchDefaultLabel )? ( $c1)? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(SWITCH_BLOCK_LABEL_LIST, "SWITCH_BLOCK_LABEL_LIST"), root_1) - - # Java.g:703:39: ( $c0)? - if stream_c0.hasNext(): - self._adaptor.addChild(root_1, stream_c0.nextTree()) - - - stream_c0.reset(); - # Java.g:703:44: ( switchDefaultLabel )? - if stream_switchDefaultLabel.hasNext(): - self._adaptor.addChild(root_1, stream_switchDefaultLabel.nextTree()) - - - stream_switchDefaultLabel.reset(); - # Java.g:703:64: ( $c1)? - if stream_c1.hasNext(): - self._adaptor.addChild(root_1, stream_c1.nextTree()) - - - stream_c1.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 79, switchBlockLabels_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchBlockLabels" - - class switchCaseLabels_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchCaseLabels_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchCaseLabels" - # Java.g:706:1: switchCaseLabels : ( switchCaseLabel )* ; - def switchCaseLabels(self, ): - - retval = self.switchCaseLabels_return() - retval.start = self.input.LT(1) - switchCaseLabels_StartIndex = self.input.index() - root_0 = None - - switchCaseLabel347 = None - - - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 80): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:707:5: ( ( switchCaseLabel )* ) - # Java.g:707:9: ( switchCaseLabel )* - pass - root_0 = self._adaptor.nil() - - # Java.g:707:9: ( switchCaseLabel )* - while True: #loop103 - alt103 = 2 - LA103_0 = self.input.LA(1) - - if (LA103_0 == CASE) : - LA103_2 = self.input.LA(2) - - if (self.synpred146_Java()) : - alt103 = 1 - - - - - if alt103 == 1: - # Java.g:0:0: switchCaseLabel - pass - self._state.following.append(self.FOLLOW_switchCaseLabel_in_switchCaseLabels9893) - switchCaseLabel347 = self.switchCaseLabel() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, switchCaseLabel347.tree) - - - else: - break #loop103 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 80, switchCaseLabels_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchCaseLabels" - - class switchCaseLabel_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchCaseLabel_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchCaseLabel" - # Java.g:710:1: switchCaseLabel : CASE expression COLON ( blockStatement )* ; - def switchCaseLabel(self, ): - - retval = self.switchCaseLabel_return() - retval.start = self.input.LT(1) - switchCaseLabel_StartIndex = self.input.index() - root_0 = None - - CASE348 = None - COLON350 = None - expression349 = None - - blockStatement351 = None - - - CASE348_tree = None - COLON350_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 81): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:711:5: ( CASE expression COLON ( blockStatement )* ) - # Java.g:711:9: CASE expression COLON ( blockStatement )* - pass - root_0 = self._adaptor.nil() - - CASE348=self.match(self.input, CASE, self.FOLLOW_CASE_in_switchCaseLabel9913) - if self._state.backtracking == 0: - - CASE348_tree = self._adaptor.createWithPayload(CASE348) - root_0 = self._adaptor.becomeRoot(CASE348_tree, root_0) - - self._state.following.append(self.FOLLOW_expression_in_switchCaseLabel9916) - expression349 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression349.tree) - COLON350=self.match(self.input, COLON, self.FOLLOW_COLON_in_switchCaseLabel9918) - # Java.g:711:33: ( blockStatement )* - while True: #loop104 - alt104 = 2 - LA104_0 = self.input.LA(1) - - if (LA104_0 == AT or LA104_0 == DEC or LA104_0 == INC or LA104_0 == LCURLY or LA104_0 == LESS_THAN or LA104_0 == LOGICAL_NOT or (LPAREN <= LA104_0 <= MINUS) or LA104_0 == NOT or LA104_0 == PLUS or LA104_0 == SEMI or (ABSTRACT <= LA104_0 <= BYTE) or (CHAR <= LA104_0 <= CONTINUE) or (DO <= LA104_0 <= DOUBLE) or LA104_0 == ENUM or (FALSE <= LA104_0 <= FINAL) or (FLOAT <= LA104_0 <= IF) or LA104_0 == INTERFACE or (INT <= LA104_0 <= NULL) or (PRIVATE <= LA104_0 <= THROW) or (TRANSIENT <= LA104_0 <= WHILE) or (IDENT <= LA104_0 <= STRING_LITERAL)) : - alt104 = 1 - - - if alt104 == 1: - # Java.g:0:0: blockStatement - pass - self._state.following.append(self.FOLLOW_blockStatement_in_switchCaseLabel9921) - blockStatement351 = self.blockStatement() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, blockStatement351.tree) - - - else: - break #loop104 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 81, switchCaseLabel_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchCaseLabel" - - class switchDefaultLabel_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.switchDefaultLabel_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "switchDefaultLabel" - # Java.g:714:1: switchDefaultLabel : DEFAULT COLON ( blockStatement )* ; - def switchDefaultLabel(self, ): - - retval = self.switchDefaultLabel_return() - retval.start = self.input.LT(1) - switchDefaultLabel_StartIndex = self.input.index() - root_0 = None - - DEFAULT352 = None - COLON353 = None - blockStatement354 = None - - - DEFAULT352_tree = None - COLON353_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 82): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:715:5: ( DEFAULT COLON ( blockStatement )* ) - # Java.g:715:9: DEFAULT COLON ( blockStatement )* - pass - root_0 = self._adaptor.nil() - - DEFAULT352=self.match(self.input, DEFAULT, self.FOLLOW_DEFAULT_in_switchDefaultLabel9941) - if self._state.backtracking == 0: - - DEFAULT352_tree = self._adaptor.createWithPayload(DEFAULT352) - root_0 = self._adaptor.becomeRoot(DEFAULT352_tree, root_0) - - COLON353=self.match(self.input, COLON, self.FOLLOW_COLON_in_switchDefaultLabel9944) - # Java.g:715:25: ( blockStatement )* - while True: #loop105 - alt105 = 2 - LA105_0 = self.input.LA(1) - - if (LA105_0 == AT or LA105_0 == DEC or LA105_0 == INC or LA105_0 == LCURLY or LA105_0 == LESS_THAN or LA105_0 == LOGICAL_NOT or (LPAREN <= LA105_0 <= MINUS) or LA105_0 == NOT or LA105_0 == PLUS or LA105_0 == SEMI or (ABSTRACT <= LA105_0 <= BYTE) or (CHAR <= LA105_0 <= CONTINUE) or (DO <= LA105_0 <= DOUBLE) or LA105_0 == ENUM or (FALSE <= LA105_0 <= FINAL) or (FLOAT <= LA105_0 <= IF) or LA105_0 == INTERFACE or (INT <= LA105_0 <= NULL) or (PRIVATE <= LA105_0 <= THROW) or (TRANSIENT <= LA105_0 <= WHILE) or (IDENT <= LA105_0 <= STRING_LITERAL)) : - alt105 = 1 - - - if alt105 == 1: - # Java.g:0:0: blockStatement - pass - self._state.following.append(self.FOLLOW_blockStatement_in_switchDefaultLabel9947) - blockStatement354 = self.blockStatement() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, blockStatement354.tree) - - - else: - break #loop105 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 82, switchDefaultLabel_StartIndex, success) - - pass - return retval - - # $ANTLR end "switchDefaultLabel" - - class forInit_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.forInit_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "forInit" - # Java.g:718:1: forInit : ( localVariableDeclaration -> ^( FOR_INIT localVariableDeclaration ) | expressionList -> ^( FOR_INIT expressionList ) | -> ^( FOR_INIT ) ); - def forInit(self, ): - - retval = self.forInit_return() - retval.start = self.input.LT(1) - forInit_StartIndex = self.input.index() - root_0 = None - - localVariableDeclaration355 = None - - expressionList356 = None - - - stream_expressionList = RewriteRuleSubtreeStream(self._adaptor, "rule expressionList") - stream_localVariableDeclaration = RewriteRuleSubtreeStream(self._adaptor, "rule localVariableDeclaration") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 83): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:719:5: ( localVariableDeclaration -> ^( FOR_INIT localVariableDeclaration ) | expressionList -> ^( FOR_INIT expressionList ) | -> ^( FOR_INIT ) ) - alt106 = 3 - alt106 = self.dfa106.predict(self.input) - if alt106 == 1: - # Java.g:719:9: localVariableDeclaration - pass - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_forInit9967) - localVariableDeclaration355 = self.localVariableDeclaration() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_localVariableDeclaration.add(localVariableDeclaration355.tree) - - # AST Rewrite - # elements: localVariableDeclaration - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 719:37: -> ^( FOR_INIT localVariableDeclaration ) - # Java.g:719:41: ^( FOR_INIT localVariableDeclaration ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_INIT, "FOR_INIT"), root_1) - - self._adaptor.addChild(root_1, stream_localVariableDeclaration.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt106 == 2: - # Java.g:720:9: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_forInit9989) - expressionList356 = self.expressionList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expressionList.add(expressionList356.tree) - - # AST Rewrite - # elements: expressionList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 720:37: -> ^( FOR_INIT expressionList ) - # Java.g:720:41: ^( FOR_INIT expressionList ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_INIT, "FOR_INIT"), root_1) - - self._adaptor.addChild(root_1, stream_expressionList.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt106 == 3: - # Java.g:721:37: - pass - # AST Rewrite - # elements: - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 721:37: -> ^( FOR_INIT ) - # Java.g:721:41: ^( FOR_INIT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_INIT, "FOR_INIT"), root_1) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 83, forInit_StartIndex, success) - - pass - return retval - - # $ANTLR end "forInit" - - class forCondition_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.forCondition_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "forCondition" - # Java.g:724:1: forCondition : ( expression )? -> ^( FOR_CONDITION ( expression )? ) ; - def forCondition(self, ): - - retval = self.forCondition_return() - retval.start = self.input.LT(1) - forCondition_StartIndex = self.input.index() - root_0 = None - - expression357 = None - - - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 84): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:725:5: ( ( expression )? -> ^( FOR_CONDITION ( expression )? ) ) - # Java.g:725:9: ( expression )? - pass - # Java.g:725:9: ( expression )? - alt107 = 2 - LA107_0 = self.input.LA(1) - - if (LA107_0 == DEC or LA107_0 == INC or LA107_0 == LESS_THAN or LA107_0 == LOGICAL_NOT or (LPAREN <= LA107_0 <= MINUS) or LA107_0 == NOT or LA107_0 == PLUS or LA107_0 == BOOLEAN or LA107_0 == BYTE or LA107_0 == CHAR or LA107_0 == DOUBLE or LA107_0 == FALSE or LA107_0 == FLOAT or (INT <= LA107_0 <= LONG) or (NEW <= LA107_0 <= NULL) or LA107_0 == SHORT or LA107_0 == SUPER or LA107_0 == THIS or LA107_0 == TRUE or LA107_0 == VOID or (IDENT <= LA107_0 <= STRING_LITERAL)) : - alt107 = 1 - if alt107 == 1: - # Java.g:0:0: expression - pass - self._state.following.append(self.FOLLOW_expression_in_forCondition10073) - expression357 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression357.tree) - - - - - # AST Rewrite - # elements: expression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 726:9: -> ^( FOR_CONDITION ( expression )? ) - # Java.g:726:13: ^( FOR_CONDITION ( expression )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_CONDITION, "FOR_CONDITION"), root_1) - - # Java.g:726:29: ( expression )? - if stream_expression.hasNext(): - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - - stream_expression.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 84, forCondition_StartIndex, success) - - pass - return retval - - # $ANTLR end "forCondition" - - class forUpdater_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.forUpdater_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "forUpdater" - # Java.g:729:1: forUpdater : ( expressionList )? -> ^( FOR_UPDATE ( expressionList )? ) ; - def forUpdater(self, ): - - retval = self.forUpdater_return() - retval.start = self.input.LT(1) - forUpdater_StartIndex = self.input.index() - root_0 = None - - expressionList358 = None - - - stream_expressionList = RewriteRuleSubtreeStream(self._adaptor, "rule expressionList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 85): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:730:5: ( ( expressionList )? -> ^( FOR_UPDATE ( expressionList )? ) ) - # Java.g:730:9: ( expressionList )? - pass - # Java.g:730:9: ( expressionList )? - alt108 = 2 - LA108_0 = self.input.LA(1) - - if (LA108_0 == DEC or LA108_0 == INC or LA108_0 == LESS_THAN or LA108_0 == LOGICAL_NOT or (LPAREN <= LA108_0 <= MINUS) or LA108_0 == NOT or LA108_0 == PLUS or LA108_0 == BOOLEAN or LA108_0 == BYTE or LA108_0 == CHAR or LA108_0 == DOUBLE or LA108_0 == FALSE or LA108_0 == FLOAT or (INT <= LA108_0 <= LONG) or (NEW <= LA108_0 <= NULL) or LA108_0 == SHORT or LA108_0 == SUPER or LA108_0 == THIS or LA108_0 == TRUE or LA108_0 == VOID or (IDENT <= LA108_0 <= STRING_LITERAL)) : - alt108 = 1 - if alt108 == 1: - # Java.g:0:0: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_forUpdater10111) - expressionList358 = self.expressionList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expressionList.add(expressionList358.tree) - - - - - # AST Rewrite - # elements: expressionList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 731:9: -> ^( FOR_UPDATE ( expressionList )? ) - # Java.g:731:13: ^( FOR_UPDATE ( expressionList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(FOR_UPDATE, "FOR_UPDATE"), root_1) - - # Java.g:731:26: ( expressionList )? - if stream_expressionList.hasNext(): - self._adaptor.addChild(root_1, stream_expressionList.nextTree()) - - - stream_expressionList.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 85, forUpdater_StartIndex, success) - - pass - return retval - - # $ANTLR end "forUpdater" - - class parenthesizedExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.parenthesizedExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "parenthesizedExpression" - # Java.g:736:1: parenthesizedExpression : LPAREN expression RPAREN -> ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) ; - def parenthesizedExpression(self, ): - - retval = self.parenthesizedExpression_return() - retval.start = self.input.LT(1) - parenthesizedExpression_StartIndex = self.input.index() - root_0 = None - - LPAREN359 = None - RPAREN361 = None - expression360 = None - - - LPAREN359_tree = None - RPAREN361_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 86): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:737:5: ( LPAREN expression RPAREN -> ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) ) - # Java.g:737:9: LPAREN expression RPAREN - pass - LPAREN359=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_parenthesizedExpression10151) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN359) - self._state.following.append(self.FOLLOW_expression_in_parenthesizedExpression10153) - expression360 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression360.tree) - RPAREN361=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_parenthesizedExpression10155) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN361) - - # AST Rewrite - # elements: expression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 738:9: -> ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) - # Java.g:738:13: ^( PARENTESIZED_EXPR[$LPAREN, \"PARENTESIZED_EXPR\"] expression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(PARENTESIZED_EXPR, LPAREN359, "PARENTESIZED_EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 86, parenthesizedExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "parenthesizedExpression" - - class expressionList_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.expressionList_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "expressionList" - # Java.g:741:1: expressionList : expression ( COMMA expression )* ; - def expressionList(self, ): - - retval = self.expressionList_return() - retval.start = self.input.LT(1) - expressionList_StartIndex = self.input.index() - root_0 = None - - COMMA363 = None - expression362 = None - - expression364 = None - - - COMMA363_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 87): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:742:5: ( expression ( COMMA expression )* ) - # Java.g:742:9: expression ( COMMA expression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_expression_in_expressionList10192) - expression362 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression362.tree) - # Java.g:742:20: ( COMMA expression )* - while True: #loop109 - alt109 = 2 - LA109_0 = self.input.LA(1) - - if (LA109_0 == COMMA) : - alt109 = 1 - - - if alt109 == 1: - # Java.g:742:21: COMMA expression - pass - COMMA363=self.match(self.input, COMMA, self.FOLLOW_COMMA_in_expressionList10195) - self._state.following.append(self.FOLLOW_expression_in_expressionList10198) - expression364 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression364.tree) - - - else: - break #loop109 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 87, expressionList_StartIndex, success) - - pass - return retval - - # $ANTLR end "expressionList" - - class expression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.expression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "expression" - # Java.g:745:1: expression : assignmentExpression -> ^( EXPR assignmentExpression ) ; - def expression(self, ): - - retval = self.expression_return() - retval.start = self.input.LT(1) - expression_StartIndex = self.input.index() - root_0 = None - - assignmentExpression365 = None - - - stream_assignmentExpression = RewriteRuleSubtreeStream(self._adaptor, "rule assignmentExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 88): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:746:5: ( assignmentExpression -> ^( EXPR assignmentExpression ) ) - # Java.g:746:9: assignmentExpression - pass - self._state.following.append(self.FOLLOW_assignmentExpression_in_expression10219) - assignmentExpression365 = self.assignmentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_assignmentExpression.add(assignmentExpression365.tree) - - # AST Rewrite - # elements: assignmentExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 747:9: -> ^( EXPR assignmentExpression ) - # Java.g:747:13: ^( EXPR assignmentExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(EXPR, "EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_assignmentExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 88, expression_StartIndex, success) - - pass - return retval - - # $ANTLR end "expression" - - class assignmentExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.assignmentExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "assignmentExpression" - # Java.g:750:1: assignmentExpression : conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? ; - def assignmentExpression(self, ): - - retval = self.assignmentExpression_return() - retval.start = self.input.LT(1) - assignmentExpression_StartIndex = self.input.index() - root_0 = None - - ASSIGN367 = None - PLUS_ASSIGN368 = None - MINUS_ASSIGN369 = None - STAR_ASSIGN370 = None - DIV_ASSIGN371 = None - AND_ASSIGN372 = None - OR_ASSIGN373 = None - XOR_ASSIGN374 = None - MOD_ASSIGN375 = None - SHIFT_LEFT_ASSIGN376 = None - SHIFT_RIGHT_ASSIGN377 = None - BIT_SHIFT_RIGHT_ASSIGN378 = None - conditionalExpression366 = None - - assignmentExpression379 = None - - - ASSIGN367_tree = None - PLUS_ASSIGN368_tree = None - MINUS_ASSIGN369_tree = None - STAR_ASSIGN370_tree = None - DIV_ASSIGN371_tree = None - AND_ASSIGN372_tree = None - OR_ASSIGN373_tree = None - XOR_ASSIGN374_tree = None - MOD_ASSIGN375_tree = None - SHIFT_LEFT_ASSIGN376_tree = None - SHIFT_RIGHT_ASSIGN377_tree = None - BIT_SHIFT_RIGHT_ASSIGN378_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 89): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:751:5: ( conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? ) - # Java.g:751:9: conditionalExpression ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_conditionalExpression_in_assignmentExpression10255) - conditionalExpression366 = self.conditionalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, conditionalExpression366.tree) - # Java.g:752:9: ( ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression )? - alt111 = 2 - LA111_0 = self.input.LA(1) - - if ((AND_ASSIGN <= LA111_0 <= ASSIGN) or LA111_0 == BIT_SHIFT_RIGHT_ASSIGN or LA111_0 == DIV_ASSIGN or LA111_0 == MINUS_ASSIGN or LA111_0 == MOD_ASSIGN or LA111_0 == OR_ASSIGN or LA111_0 == PLUS_ASSIGN or LA111_0 == SHIFT_LEFT_ASSIGN or LA111_0 == SHIFT_RIGHT_ASSIGN or LA111_0 == STAR_ASSIGN or LA111_0 == XOR_ASSIGN) : - alt111 = 1 - if alt111 == 1: - # Java.g:752:13: ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) assignmentExpression - pass - # Java.g:752:13: ( ASSIGN | PLUS_ASSIGN | MINUS_ASSIGN | STAR_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | SHIFT_LEFT_ASSIGN | SHIFT_RIGHT_ASSIGN | BIT_SHIFT_RIGHT_ASSIGN ) - alt110 = 12 - LA110 = self.input.LA(1) - if LA110 == ASSIGN: - alt110 = 1 - elif LA110 == PLUS_ASSIGN: - alt110 = 2 - elif LA110 == MINUS_ASSIGN: - alt110 = 3 - elif LA110 == STAR_ASSIGN: - alt110 = 4 - elif LA110 == DIV_ASSIGN: - alt110 = 5 - elif LA110 == AND_ASSIGN: - alt110 = 6 - elif LA110 == OR_ASSIGN: - alt110 = 7 - elif LA110 == XOR_ASSIGN: - alt110 = 8 - elif LA110 == MOD_ASSIGN: - alt110 = 9 - elif LA110 == SHIFT_LEFT_ASSIGN: - alt110 = 10 - elif LA110 == SHIFT_RIGHT_ASSIGN: - alt110 = 11 - elif LA110 == BIT_SHIFT_RIGHT_ASSIGN: - alt110 = 12 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 110, 0, self.input) - - raise nvae - - if alt110 == 1: - # Java.g:752:17: ASSIGN - pass - ASSIGN367=self.match(self.input, ASSIGN, self.FOLLOW_ASSIGN_in_assignmentExpression10273) - if self._state.backtracking == 0: - - ASSIGN367_tree = self._adaptor.createWithPayload(ASSIGN367) - root_0 = self._adaptor.becomeRoot(ASSIGN367_tree, root_0) - - - - elif alt110 == 2: - # Java.g:753:17: PLUS_ASSIGN - pass - PLUS_ASSIGN368=self.match(self.input, PLUS_ASSIGN, self.FOLLOW_PLUS_ASSIGN_in_assignmentExpression10292) - if self._state.backtracking == 0: - - PLUS_ASSIGN368_tree = self._adaptor.createWithPayload(PLUS_ASSIGN368) - root_0 = self._adaptor.becomeRoot(PLUS_ASSIGN368_tree, root_0) - - - - elif alt110 == 3: - # Java.g:754:17: MINUS_ASSIGN - pass - MINUS_ASSIGN369=self.match(self.input, MINUS_ASSIGN, self.FOLLOW_MINUS_ASSIGN_in_assignmentExpression10311) - if self._state.backtracking == 0: - - MINUS_ASSIGN369_tree = self._adaptor.createWithPayload(MINUS_ASSIGN369) - root_0 = self._adaptor.becomeRoot(MINUS_ASSIGN369_tree, root_0) - - - - elif alt110 == 4: - # Java.g:755:17: STAR_ASSIGN - pass - STAR_ASSIGN370=self.match(self.input, STAR_ASSIGN, self.FOLLOW_STAR_ASSIGN_in_assignmentExpression10330) - if self._state.backtracking == 0: - - STAR_ASSIGN370_tree = self._adaptor.createWithPayload(STAR_ASSIGN370) - root_0 = self._adaptor.becomeRoot(STAR_ASSIGN370_tree, root_0) - - - - elif alt110 == 5: - # Java.g:756:17: DIV_ASSIGN - pass - DIV_ASSIGN371=self.match(self.input, DIV_ASSIGN, self.FOLLOW_DIV_ASSIGN_in_assignmentExpression10349) - if self._state.backtracking == 0: - - DIV_ASSIGN371_tree = self._adaptor.createWithPayload(DIV_ASSIGN371) - root_0 = self._adaptor.becomeRoot(DIV_ASSIGN371_tree, root_0) - - - - elif alt110 == 6: - # Java.g:757:17: AND_ASSIGN - pass - AND_ASSIGN372=self.match(self.input, AND_ASSIGN, self.FOLLOW_AND_ASSIGN_in_assignmentExpression10368) - if self._state.backtracking == 0: - - AND_ASSIGN372_tree = self._adaptor.createWithPayload(AND_ASSIGN372) - root_0 = self._adaptor.becomeRoot(AND_ASSIGN372_tree, root_0) - - - - elif alt110 == 7: - # Java.g:758:17: OR_ASSIGN - pass - OR_ASSIGN373=self.match(self.input, OR_ASSIGN, self.FOLLOW_OR_ASSIGN_in_assignmentExpression10387) - if self._state.backtracking == 0: - - OR_ASSIGN373_tree = self._adaptor.createWithPayload(OR_ASSIGN373) - root_0 = self._adaptor.becomeRoot(OR_ASSIGN373_tree, root_0) - - - - elif alt110 == 8: - # Java.g:759:17: XOR_ASSIGN - pass - XOR_ASSIGN374=self.match(self.input, XOR_ASSIGN, self.FOLLOW_XOR_ASSIGN_in_assignmentExpression10406) - if self._state.backtracking == 0: - - XOR_ASSIGN374_tree = self._adaptor.createWithPayload(XOR_ASSIGN374) - root_0 = self._adaptor.becomeRoot(XOR_ASSIGN374_tree, root_0) - - - - elif alt110 == 9: - # Java.g:760:17: MOD_ASSIGN - pass - MOD_ASSIGN375=self.match(self.input, MOD_ASSIGN, self.FOLLOW_MOD_ASSIGN_in_assignmentExpression10425) - if self._state.backtracking == 0: - - MOD_ASSIGN375_tree = self._adaptor.createWithPayload(MOD_ASSIGN375) - root_0 = self._adaptor.becomeRoot(MOD_ASSIGN375_tree, root_0) - - - - elif alt110 == 10: - # Java.g:761:17: SHIFT_LEFT_ASSIGN - pass - SHIFT_LEFT_ASSIGN376=self.match(self.input, SHIFT_LEFT_ASSIGN, self.FOLLOW_SHIFT_LEFT_ASSIGN_in_assignmentExpression10444) - if self._state.backtracking == 0: - - SHIFT_LEFT_ASSIGN376_tree = self._adaptor.createWithPayload(SHIFT_LEFT_ASSIGN376) - root_0 = self._adaptor.becomeRoot(SHIFT_LEFT_ASSIGN376_tree, root_0) - - - - elif alt110 == 11: - # Java.g:762:17: SHIFT_RIGHT_ASSIGN - pass - SHIFT_RIGHT_ASSIGN377=self.match(self.input, SHIFT_RIGHT_ASSIGN, self.FOLLOW_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10463) - if self._state.backtracking == 0: - - SHIFT_RIGHT_ASSIGN377_tree = self._adaptor.createWithPayload(SHIFT_RIGHT_ASSIGN377) - root_0 = self._adaptor.becomeRoot(SHIFT_RIGHT_ASSIGN377_tree, root_0) - - - - elif alt110 == 12: - # Java.g:763:17: BIT_SHIFT_RIGHT_ASSIGN - pass - BIT_SHIFT_RIGHT_ASSIGN378=self.match(self.input, BIT_SHIFT_RIGHT_ASSIGN, self.FOLLOW_BIT_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10482) - if self._state.backtracking == 0: - - BIT_SHIFT_RIGHT_ASSIGN378_tree = self._adaptor.createWithPayload(BIT_SHIFT_RIGHT_ASSIGN378) - root_0 = self._adaptor.becomeRoot(BIT_SHIFT_RIGHT_ASSIGN378_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_assignmentExpression_in_assignmentExpression10503) - assignmentExpression379 = self.assignmentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, assignmentExpression379.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 89, assignmentExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "assignmentExpression" - - class conditionalExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.conditionalExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "conditionalExpression" - # Java.g:768:1: conditionalExpression : logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? ; - def conditionalExpression(self, ): - - retval = self.conditionalExpression_return() - retval.start = self.input.LT(1) - conditionalExpression_StartIndex = self.input.index() - root_0 = None - - QUESTION381 = None - COLON383 = None - logicalOrExpression380 = None - - assignmentExpression382 = None - - conditionalExpression384 = None - - - QUESTION381_tree = None - COLON383_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 90): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:769:5: ( logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? ) - # Java.g:769:9: logicalOrExpression ( QUESTION assignmentExpression COLON conditionalExpression )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_logicalOrExpression_in_conditionalExpression10524) - logicalOrExpression380 = self.logicalOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, logicalOrExpression380.tree) - # Java.g:769:29: ( QUESTION assignmentExpression COLON conditionalExpression )? - alt112 = 2 - LA112_0 = self.input.LA(1) - - if (LA112_0 == QUESTION) : - alt112 = 1 - if alt112 == 1: - # Java.g:769:30: QUESTION assignmentExpression COLON conditionalExpression - pass - QUESTION381=self.match(self.input, QUESTION, self.FOLLOW_QUESTION_in_conditionalExpression10527) - if self._state.backtracking == 0: - - QUESTION381_tree = self._adaptor.createWithPayload(QUESTION381) - root_0 = self._adaptor.becomeRoot(QUESTION381_tree, root_0) - - self._state.following.append(self.FOLLOW_assignmentExpression_in_conditionalExpression10530) - assignmentExpression382 = self.assignmentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, assignmentExpression382.tree) - COLON383=self.match(self.input, COLON, self.FOLLOW_COLON_in_conditionalExpression10532) - self._state.following.append(self.FOLLOW_conditionalExpression_in_conditionalExpression10535) - conditionalExpression384 = self.conditionalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, conditionalExpression384.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 90, conditionalExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "conditionalExpression" - - class logicalOrExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.logicalOrExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "logicalOrExpression" - # Java.g:772:1: logicalOrExpression : logicalAndExpression ( LOGICAL_OR logicalAndExpression )* ; - def logicalOrExpression(self, ): - - retval = self.logicalOrExpression_return() - retval.start = self.input.LT(1) - logicalOrExpression_StartIndex = self.input.index() - root_0 = None - - LOGICAL_OR386 = None - logicalAndExpression385 = None - - logicalAndExpression387 = None - - - LOGICAL_OR386_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 91): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:773:5: ( logicalAndExpression ( LOGICAL_OR logicalAndExpression )* ) - # Java.g:773:9: logicalAndExpression ( LOGICAL_OR logicalAndExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_logicalAndExpression_in_logicalOrExpression10556) - logicalAndExpression385 = self.logicalAndExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, logicalAndExpression385.tree) - # Java.g:773:30: ( LOGICAL_OR logicalAndExpression )* - while True: #loop113 - alt113 = 2 - LA113_0 = self.input.LA(1) - - if (LA113_0 == LOGICAL_OR) : - alt113 = 1 - - - if alt113 == 1: - # Java.g:773:31: LOGICAL_OR logicalAndExpression - pass - LOGICAL_OR386=self.match(self.input, LOGICAL_OR, self.FOLLOW_LOGICAL_OR_in_logicalOrExpression10559) - if self._state.backtracking == 0: - - LOGICAL_OR386_tree = self._adaptor.createWithPayload(LOGICAL_OR386) - root_0 = self._adaptor.becomeRoot(LOGICAL_OR386_tree, root_0) - - self._state.following.append(self.FOLLOW_logicalAndExpression_in_logicalOrExpression10562) - logicalAndExpression387 = self.logicalAndExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, logicalAndExpression387.tree) - - - else: - break #loop113 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 91, logicalOrExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "logicalOrExpression" - - class logicalAndExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.logicalAndExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "logicalAndExpression" - # Java.g:776:1: logicalAndExpression : inclusiveOrExpression ( LOGICAL_AND inclusiveOrExpression )* ; - def logicalAndExpression(self, ): - - retval = self.logicalAndExpression_return() - retval.start = self.input.LT(1) - logicalAndExpression_StartIndex = self.input.index() - root_0 = None - - LOGICAL_AND389 = None - inclusiveOrExpression388 = None - - inclusiveOrExpression390 = None - - - LOGICAL_AND389_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 92): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:777:5: ( inclusiveOrExpression ( LOGICAL_AND inclusiveOrExpression )* ) - # Java.g:777:9: inclusiveOrExpression ( LOGICAL_AND inclusiveOrExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_inclusiveOrExpression_in_logicalAndExpression10583) - inclusiveOrExpression388 = self.inclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, inclusiveOrExpression388.tree) - # Java.g:777:31: ( LOGICAL_AND inclusiveOrExpression )* - while True: #loop114 - alt114 = 2 - LA114_0 = self.input.LA(1) - - if (LA114_0 == LOGICAL_AND) : - alt114 = 1 - - - if alt114 == 1: - # Java.g:777:32: LOGICAL_AND inclusiveOrExpression - pass - LOGICAL_AND389=self.match(self.input, LOGICAL_AND, self.FOLLOW_LOGICAL_AND_in_logicalAndExpression10586) - if self._state.backtracking == 0: - - LOGICAL_AND389_tree = self._adaptor.createWithPayload(LOGICAL_AND389) - root_0 = self._adaptor.becomeRoot(LOGICAL_AND389_tree, root_0) - - self._state.following.append(self.FOLLOW_inclusiveOrExpression_in_logicalAndExpression10589) - inclusiveOrExpression390 = self.inclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, inclusiveOrExpression390.tree) - - - else: - break #loop114 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 92, logicalAndExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "logicalAndExpression" - - class inclusiveOrExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.inclusiveOrExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "inclusiveOrExpression" - # Java.g:780:1: inclusiveOrExpression : exclusiveOrExpression ( OR exclusiveOrExpression )* ; - def inclusiveOrExpression(self, ): - - retval = self.inclusiveOrExpression_return() - retval.start = self.input.LT(1) - inclusiveOrExpression_StartIndex = self.input.index() - root_0 = None - - OR392 = None - exclusiveOrExpression391 = None - - exclusiveOrExpression393 = None - - - OR392_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 93): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:781:5: ( exclusiveOrExpression ( OR exclusiveOrExpression )* ) - # Java.g:781:9: exclusiveOrExpression ( OR exclusiveOrExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10610) - exclusiveOrExpression391 = self.exclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, exclusiveOrExpression391.tree) - # Java.g:781:31: ( OR exclusiveOrExpression )* - while True: #loop115 - alt115 = 2 - LA115_0 = self.input.LA(1) - - if (LA115_0 == OR) : - alt115 = 1 - - - if alt115 == 1: - # Java.g:781:32: OR exclusiveOrExpression - pass - OR392=self.match(self.input, OR, self.FOLLOW_OR_in_inclusiveOrExpression10613) - if self._state.backtracking == 0: - - OR392_tree = self._adaptor.createWithPayload(OR392) - root_0 = self._adaptor.becomeRoot(OR392_tree, root_0) - - self._state.following.append(self.FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10616) - exclusiveOrExpression393 = self.exclusiveOrExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, exclusiveOrExpression393.tree) - - - else: - break #loop115 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 93, inclusiveOrExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "inclusiveOrExpression" - - class exclusiveOrExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.exclusiveOrExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "exclusiveOrExpression" - # Java.g:784:1: exclusiveOrExpression : andExpression ( XOR andExpression )* ; - def exclusiveOrExpression(self, ): - - retval = self.exclusiveOrExpression_return() - retval.start = self.input.LT(1) - exclusiveOrExpression_StartIndex = self.input.index() - root_0 = None - - XOR395 = None - andExpression394 = None - - andExpression396 = None - - - XOR395_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 94): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:785:5: ( andExpression ( XOR andExpression )* ) - # Java.g:785:9: andExpression ( XOR andExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_andExpression_in_exclusiveOrExpression10637) - andExpression394 = self.andExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, andExpression394.tree) - # Java.g:785:23: ( XOR andExpression )* - while True: #loop116 - alt116 = 2 - LA116_0 = self.input.LA(1) - - if (LA116_0 == XOR) : - alt116 = 1 - - - if alt116 == 1: - # Java.g:785:24: XOR andExpression - pass - XOR395=self.match(self.input, XOR, self.FOLLOW_XOR_in_exclusiveOrExpression10640) - if self._state.backtracking == 0: - - XOR395_tree = self._adaptor.createWithPayload(XOR395) - root_0 = self._adaptor.becomeRoot(XOR395_tree, root_0) - - self._state.following.append(self.FOLLOW_andExpression_in_exclusiveOrExpression10643) - andExpression396 = self.andExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, andExpression396.tree) - - - else: - break #loop116 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 94, exclusiveOrExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "exclusiveOrExpression" - - class andExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.andExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "andExpression" - # Java.g:788:1: andExpression : equalityExpression ( AND equalityExpression )* ; - def andExpression(self, ): - - retval = self.andExpression_return() - retval.start = self.input.LT(1) - andExpression_StartIndex = self.input.index() - root_0 = None - - AND398 = None - equalityExpression397 = None - - equalityExpression399 = None - - - AND398_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 95): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:789:5: ( equalityExpression ( AND equalityExpression )* ) - # Java.g:789:9: equalityExpression ( AND equalityExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_equalityExpression_in_andExpression10664) - equalityExpression397 = self.equalityExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, equalityExpression397.tree) - # Java.g:789:28: ( AND equalityExpression )* - while True: #loop117 - alt117 = 2 - LA117_0 = self.input.LA(1) - - if (LA117_0 == AND) : - alt117 = 1 - - - if alt117 == 1: - # Java.g:789:29: AND equalityExpression - pass - AND398=self.match(self.input, AND, self.FOLLOW_AND_in_andExpression10667) - if self._state.backtracking == 0: - - AND398_tree = self._adaptor.createWithPayload(AND398) - root_0 = self._adaptor.becomeRoot(AND398_tree, root_0) - - self._state.following.append(self.FOLLOW_equalityExpression_in_andExpression10670) - equalityExpression399 = self.equalityExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, equalityExpression399.tree) - - - else: - break #loop117 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 95, andExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "andExpression" - - class equalityExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.equalityExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "equalityExpression" - # Java.g:792:1: equalityExpression : instanceOfExpression ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* ; - def equalityExpression(self, ): - - retval = self.equalityExpression_return() - retval.start = self.input.LT(1) - equalityExpression_StartIndex = self.input.index() - root_0 = None - - EQUAL401 = None - NOT_EQUAL402 = None - instanceOfExpression400 = None - - instanceOfExpression403 = None - - - EQUAL401_tree = None - NOT_EQUAL402_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 96): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:793:5: ( instanceOfExpression ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* ) - # Java.g:793:9: instanceOfExpression ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_instanceOfExpression_in_equalityExpression10691) - instanceOfExpression400 = self.instanceOfExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, instanceOfExpression400.tree) - # Java.g:794:9: ( ( EQUAL | NOT_EQUAL ) instanceOfExpression )* - while True: #loop119 - alt119 = 2 - LA119_0 = self.input.LA(1) - - if (LA119_0 == EQUAL or LA119_0 == NOT_EQUAL) : - alt119 = 1 - - - if alt119 == 1: - # Java.g:794:13: ( EQUAL | NOT_EQUAL ) instanceOfExpression - pass - # Java.g:794:13: ( EQUAL | NOT_EQUAL ) - alt118 = 2 - LA118_0 = self.input.LA(1) - - if (LA118_0 == EQUAL) : - alt118 = 1 - elif (LA118_0 == NOT_EQUAL) : - alt118 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 118, 0, self.input) - - raise nvae - - if alt118 == 1: - # Java.g:794:17: EQUAL - pass - EQUAL401=self.match(self.input, EQUAL, self.FOLLOW_EQUAL_in_equalityExpression10709) - if self._state.backtracking == 0: - - EQUAL401_tree = self._adaptor.createWithPayload(EQUAL401) - root_0 = self._adaptor.becomeRoot(EQUAL401_tree, root_0) - - - - elif alt118 == 2: - # Java.g:795:17: NOT_EQUAL - pass - NOT_EQUAL402=self.match(self.input, NOT_EQUAL, self.FOLLOW_NOT_EQUAL_in_equalityExpression10728) - if self._state.backtracking == 0: - - NOT_EQUAL402_tree = self._adaptor.createWithPayload(NOT_EQUAL402) - root_0 = self._adaptor.becomeRoot(NOT_EQUAL402_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_instanceOfExpression_in_equalityExpression10757) - instanceOfExpression403 = self.instanceOfExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, instanceOfExpression403.tree) - - - else: - break #loop119 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 96, equalityExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "equalityExpression" - - class instanceOfExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.instanceOfExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "instanceOfExpression" - # Java.g:801:1: instanceOfExpression : relationalExpression ( INSTANCEOF type )? ; - def instanceOfExpression(self, ): - - retval = self.instanceOfExpression_return() - retval.start = self.input.LT(1) - instanceOfExpression_StartIndex = self.input.index() - root_0 = None - - INSTANCEOF405 = None - relationalExpression404 = None - - type406 = None - - - INSTANCEOF405_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 97): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:802:5: ( relationalExpression ( INSTANCEOF type )? ) - # Java.g:802:9: relationalExpression ( INSTANCEOF type )? - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_relationalExpression_in_instanceOfExpression10787) - relationalExpression404 = self.relationalExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, relationalExpression404.tree) - # Java.g:802:30: ( INSTANCEOF type )? - alt120 = 2 - LA120_0 = self.input.LA(1) - - if (LA120_0 == INSTANCEOF) : - alt120 = 1 - if alt120 == 1: - # Java.g:802:31: INSTANCEOF type - pass - INSTANCEOF405=self.match(self.input, INSTANCEOF, self.FOLLOW_INSTANCEOF_in_instanceOfExpression10790) - if self._state.backtracking == 0: - - INSTANCEOF405_tree = self._adaptor.createWithPayload(INSTANCEOF405) - root_0 = self._adaptor.becomeRoot(INSTANCEOF405_tree, root_0) - - self._state.following.append(self.FOLLOW_type_in_instanceOfExpression10793) - type406 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, type406.tree) - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 97, instanceOfExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "instanceOfExpression" - - class relationalExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.relationalExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "relationalExpression" - # Java.g:805:1: relationalExpression : shiftExpression ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* ; - def relationalExpression(self, ): - - retval = self.relationalExpression_return() - retval.start = self.input.LT(1) - relationalExpression_StartIndex = self.input.index() - root_0 = None - - LESS_OR_EQUAL408 = None - GREATER_OR_EQUAL409 = None - LESS_THAN410 = None - GREATER_THAN411 = None - shiftExpression407 = None - - shiftExpression412 = None - - - LESS_OR_EQUAL408_tree = None - GREATER_OR_EQUAL409_tree = None - LESS_THAN410_tree = None - GREATER_THAN411_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 98): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:806:5: ( shiftExpression ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* ) - # Java.g:806:9: shiftExpression ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_shiftExpression_in_relationalExpression10814) - shiftExpression407 = self.shiftExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, shiftExpression407.tree) - # Java.g:807:9: ( ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression )* - while True: #loop122 - alt122 = 2 - LA122_0 = self.input.LA(1) - - if ((GREATER_OR_EQUAL <= LA122_0 <= GREATER_THAN) or (LESS_OR_EQUAL <= LA122_0 <= LESS_THAN)) : - alt122 = 1 - - - if alt122 == 1: - # Java.g:807:13: ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) shiftExpression - pass - # Java.g:807:13: ( LESS_OR_EQUAL | GREATER_OR_EQUAL | LESS_THAN | GREATER_THAN ) - alt121 = 4 - LA121 = self.input.LA(1) - if LA121 == LESS_OR_EQUAL: - alt121 = 1 - elif LA121 == GREATER_OR_EQUAL: - alt121 = 2 - elif LA121 == LESS_THAN: - alt121 = 3 - elif LA121 == GREATER_THAN: - alt121 = 4 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 121, 0, self.input) - - raise nvae - - if alt121 == 1: - # Java.g:807:17: LESS_OR_EQUAL - pass - LESS_OR_EQUAL408=self.match(self.input, LESS_OR_EQUAL, self.FOLLOW_LESS_OR_EQUAL_in_relationalExpression10832) - if self._state.backtracking == 0: - - LESS_OR_EQUAL408_tree = self._adaptor.createWithPayload(LESS_OR_EQUAL408) - root_0 = self._adaptor.becomeRoot(LESS_OR_EQUAL408_tree, root_0) - - - - elif alt121 == 2: - # Java.g:808:17: GREATER_OR_EQUAL - pass - GREATER_OR_EQUAL409=self.match(self.input, GREATER_OR_EQUAL, self.FOLLOW_GREATER_OR_EQUAL_in_relationalExpression10851) - if self._state.backtracking == 0: - - GREATER_OR_EQUAL409_tree = self._adaptor.createWithPayload(GREATER_OR_EQUAL409) - root_0 = self._adaptor.becomeRoot(GREATER_OR_EQUAL409_tree, root_0) - - - - elif alt121 == 3: - # Java.g:809:17: LESS_THAN - pass - LESS_THAN410=self.match(self.input, LESS_THAN, self.FOLLOW_LESS_THAN_in_relationalExpression10870) - if self._state.backtracking == 0: - - LESS_THAN410_tree = self._adaptor.createWithPayload(LESS_THAN410) - root_0 = self._adaptor.becomeRoot(LESS_THAN410_tree, root_0) - - - - elif alt121 == 4: - # Java.g:810:17: GREATER_THAN - pass - GREATER_THAN411=self.match(self.input, GREATER_THAN, self.FOLLOW_GREATER_THAN_in_relationalExpression10889) - if self._state.backtracking == 0: - - GREATER_THAN411_tree = self._adaptor.createWithPayload(GREATER_THAN411) - root_0 = self._adaptor.becomeRoot(GREATER_THAN411_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_shiftExpression_in_relationalExpression10918) - shiftExpression412 = self.shiftExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, shiftExpression412.tree) - - - else: - break #loop122 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 98, relationalExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "relationalExpression" - - class shiftExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.shiftExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "shiftExpression" - # Java.g:816:1: shiftExpression : additiveExpression ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* ; - def shiftExpression(self, ): - - retval = self.shiftExpression_return() - retval.start = self.input.LT(1) - shiftExpression_StartIndex = self.input.index() - root_0 = None - - BIT_SHIFT_RIGHT414 = None - SHIFT_RIGHT415 = None - SHIFT_LEFT416 = None - additiveExpression413 = None - - additiveExpression417 = None - - - BIT_SHIFT_RIGHT414_tree = None - SHIFT_RIGHT415_tree = None - SHIFT_LEFT416_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 99): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:817:5: ( additiveExpression ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* ) - # Java.g:817:9: additiveExpression ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_additiveExpression_in_shiftExpression10948) - additiveExpression413 = self.additiveExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, additiveExpression413.tree) - # Java.g:818:9: ( ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression )* - while True: #loop124 - alt124 = 2 - LA124_0 = self.input.LA(1) - - if (LA124_0 == BIT_SHIFT_RIGHT or LA124_0 == SHIFT_LEFT or LA124_0 == SHIFT_RIGHT) : - alt124 = 1 - - - if alt124 == 1: - # Java.g:818:13: ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) additiveExpression - pass - # Java.g:818:13: ( BIT_SHIFT_RIGHT | SHIFT_RIGHT | SHIFT_LEFT ) - alt123 = 3 - LA123 = self.input.LA(1) - if LA123 == BIT_SHIFT_RIGHT: - alt123 = 1 - elif LA123 == SHIFT_RIGHT: - alt123 = 2 - elif LA123 == SHIFT_LEFT: - alt123 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 123, 0, self.input) - - raise nvae - - if alt123 == 1: - # Java.g:818:17: BIT_SHIFT_RIGHT - pass - BIT_SHIFT_RIGHT414=self.match(self.input, BIT_SHIFT_RIGHT, self.FOLLOW_BIT_SHIFT_RIGHT_in_shiftExpression10966) - if self._state.backtracking == 0: - - BIT_SHIFT_RIGHT414_tree = self._adaptor.createWithPayload(BIT_SHIFT_RIGHT414) - root_0 = self._adaptor.becomeRoot(BIT_SHIFT_RIGHT414_tree, root_0) - - - - elif alt123 == 2: - # Java.g:819:17: SHIFT_RIGHT - pass - SHIFT_RIGHT415=self.match(self.input, SHIFT_RIGHT, self.FOLLOW_SHIFT_RIGHT_in_shiftExpression10985) - if self._state.backtracking == 0: - - SHIFT_RIGHT415_tree = self._adaptor.createWithPayload(SHIFT_RIGHT415) - root_0 = self._adaptor.becomeRoot(SHIFT_RIGHT415_tree, root_0) - - - - elif alt123 == 3: - # Java.g:820:17: SHIFT_LEFT - pass - SHIFT_LEFT416=self.match(self.input, SHIFT_LEFT, self.FOLLOW_SHIFT_LEFT_in_shiftExpression11004) - if self._state.backtracking == 0: - - SHIFT_LEFT416_tree = self._adaptor.createWithPayload(SHIFT_LEFT416) - root_0 = self._adaptor.becomeRoot(SHIFT_LEFT416_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_additiveExpression_in_shiftExpression11033) - additiveExpression417 = self.additiveExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, additiveExpression417.tree) - - - else: - break #loop124 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 99, shiftExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "shiftExpression" - - class additiveExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.additiveExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "additiveExpression" - # Java.g:826:1: additiveExpression : multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* ; - def additiveExpression(self, ): - - retval = self.additiveExpression_return() - retval.start = self.input.LT(1) - additiveExpression_StartIndex = self.input.index() - root_0 = None - - PLUS419 = None - MINUS420 = None - multiplicativeExpression418 = None - - multiplicativeExpression421 = None - - - PLUS419_tree = None - MINUS420_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 100): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:827:5: ( multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* ) - # Java.g:827:9: multiplicativeExpression ( ( PLUS | MINUS ) multiplicativeExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_multiplicativeExpression_in_additiveExpression11063) - multiplicativeExpression418 = self.multiplicativeExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, multiplicativeExpression418.tree) - # Java.g:828:9: ( ( PLUS | MINUS ) multiplicativeExpression )* - while True: #loop126 - alt126 = 2 - LA126_0 = self.input.LA(1) - - if (LA126_0 == MINUS or LA126_0 == PLUS) : - alt126 = 1 - - - if alt126 == 1: - # Java.g:828:13: ( PLUS | MINUS ) multiplicativeExpression - pass - # Java.g:828:13: ( PLUS | MINUS ) - alt125 = 2 - LA125_0 = self.input.LA(1) - - if (LA125_0 == PLUS) : - alt125 = 1 - elif (LA125_0 == MINUS) : - alt125 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 125, 0, self.input) - - raise nvae - - if alt125 == 1: - # Java.g:828:17: PLUS - pass - PLUS419=self.match(self.input, PLUS, self.FOLLOW_PLUS_in_additiveExpression11081) - if self._state.backtracking == 0: - - PLUS419_tree = self._adaptor.createWithPayload(PLUS419) - root_0 = self._adaptor.becomeRoot(PLUS419_tree, root_0) - - - - elif alt125 == 2: - # Java.g:829:17: MINUS - pass - MINUS420=self.match(self.input, MINUS, self.FOLLOW_MINUS_in_additiveExpression11100) - if self._state.backtracking == 0: - - MINUS420_tree = self._adaptor.createWithPayload(MINUS420) - root_0 = self._adaptor.becomeRoot(MINUS420_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_multiplicativeExpression_in_additiveExpression11129) - multiplicativeExpression421 = self.multiplicativeExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, multiplicativeExpression421.tree) - - - else: - break #loop126 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 100, additiveExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "additiveExpression" - - class multiplicativeExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.multiplicativeExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "multiplicativeExpression" - # Java.g:835:1: multiplicativeExpression : unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* ; - def multiplicativeExpression(self, ): - - retval = self.multiplicativeExpression_return() - retval.start = self.input.LT(1) - multiplicativeExpression_StartIndex = self.input.index() - root_0 = None - - STAR423 = None - DIV424 = None - MOD425 = None - unaryExpression422 = None - - unaryExpression426 = None - - - STAR423_tree = None - DIV424_tree = None - MOD425_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 101): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:836:5: ( unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* ) - # Java.g:836:9: unaryExpression ( ( STAR | DIV | MOD ) unaryExpression )* - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_unaryExpression_in_multiplicativeExpression11159) - unaryExpression422 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, unaryExpression422.tree) - # Java.g:837:9: ( ( STAR | DIV | MOD ) unaryExpression )* - while True: #loop128 - alt128 = 2 - LA128_0 = self.input.LA(1) - - if (LA128_0 == DIV or LA128_0 == MOD or LA128_0 == STAR) : - alt128 = 1 - - - if alt128 == 1: - # Java.g:837:13: ( STAR | DIV | MOD ) unaryExpression - pass - # Java.g:837:13: ( STAR | DIV | MOD ) - alt127 = 3 - LA127 = self.input.LA(1) - if LA127 == STAR: - alt127 = 1 - elif LA127 == DIV: - alt127 = 2 - elif LA127 == MOD: - alt127 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 127, 0, self.input) - - raise nvae - - if alt127 == 1: - # Java.g:837:17: STAR - pass - STAR423=self.match(self.input, STAR, self.FOLLOW_STAR_in_multiplicativeExpression11177) - if self._state.backtracking == 0: - - STAR423_tree = self._adaptor.createWithPayload(STAR423) - root_0 = self._adaptor.becomeRoot(STAR423_tree, root_0) - - - - elif alt127 == 2: - # Java.g:838:17: DIV - pass - DIV424=self.match(self.input, DIV, self.FOLLOW_DIV_in_multiplicativeExpression11196) - if self._state.backtracking == 0: - - DIV424_tree = self._adaptor.createWithPayload(DIV424) - root_0 = self._adaptor.becomeRoot(DIV424_tree, root_0) - - - - elif alt127 == 3: - # Java.g:839:17: MOD - pass - MOD425=self.match(self.input, MOD, self.FOLLOW_MOD_in_multiplicativeExpression11215) - if self._state.backtracking == 0: - - MOD425_tree = self._adaptor.createWithPayload(MOD425) - root_0 = self._adaptor.becomeRoot(MOD425_tree, root_0) - - - - - self._state.following.append(self.FOLLOW_unaryExpression_in_multiplicativeExpression11244) - unaryExpression426 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, unaryExpression426.tree) - - - else: - break #loop128 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 101, multiplicativeExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "multiplicativeExpression" - - class unaryExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.unaryExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "unaryExpression" - # Java.g:845:1: unaryExpression : ( PLUS unaryExpression -> ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) | MINUS unaryExpression -> ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) | INC postfixedExpression -> ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) | DEC postfixedExpression -> ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) | unaryExpressionNotPlusMinus ); - def unaryExpression(self, ): - - retval = self.unaryExpression_return() - retval.start = self.input.LT(1) - unaryExpression_StartIndex = self.input.index() - root_0 = None - - PLUS427 = None - MINUS429 = None - INC431 = None - DEC433 = None - unaryExpression428 = None - - unaryExpression430 = None - - postfixedExpression432 = None - - postfixedExpression434 = None - - unaryExpressionNotPlusMinus435 = None - - - PLUS427_tree = None - MINUS429_tree = None - INC431_tree = None - DEC433_tree = None - stream_DEC = RewriteRuleTokenStream(self._adaptor, "token DEC") - stream_INC = RewriteRuleTokenStream(self._adaptor, "token INC") - stream_PLUS = RewriteRuleTokenStream(self._adaptor, "token PLUS") - stream_MINUS = RewriteRuleTokenStream(self._adaptor, "token MINUS") - stream_postfixedExpression = RewriteRuleSubtreeStream(self._adaptor, "rule postfixedExpression") - stream_unaryExpression = RewriteRuleSubtreeStream(self._adaptor, "rule unaryExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 102): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:846:5: ( PLUS unaryExpression -> ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) | MINUS unaryExpression -> ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) | INC postfixedExpression -> ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) | DEC postfixedExpression -> ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) | unaryExpressionNotPlusMinus ) - alt129 = 5 - LA129 = self.input.LA(1) - if LA129 == PLUS: - alt129 = 1 - elif LA129 == MINUS: - alt129 = 2 - elif LA129 == INC: - alt129 = 3 - elif LA129 == DEC: - alt129 = 4 - elif LA129 == LESS_THAN or LA129 == LOGICAL_NOT or LA129 == LPAREN or LA129 == NOT or LA129 == BOOLEAN or LA129 == BYTE or LA129 == CHAR or LA129 == DOUBLE or LA129 == FALSE or LA129 == FLOAT or LA129 == INT or LA129 == LONG or LA129 == NEW or LA129 == NULL or LA129 == SHORT or LA129 == SUPER or LA129 == THIS or LA129 == TRUE or LA129 == VOID or LA129 == IDENT or LA129 == HEX_LITERAL or LA129 == OCTAL_LITERAL or LA129 == DECIMAL_LITERAL or LA129 == FLOATING_POINT_LITERAL or LA129 == CHARACTER_LITERAL or LA129 == STRING_LITERAL: - alt129 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 129, 0, self.input) - - raise nvae - - if alt129 == 1: - # Java.g:846:9: PLUS unaryExpression - pass - PLUS427=self.match(self.input, PLUS, self.FOLLOW_PLUS_in_unaryExpression11274) - if self._state.backtracking == 0: - stream_PLUS.add(PLUS427) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpression11276) - unaryExpression428 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression428.tree) - - # AST Rewrite - # elements: unaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 846:37: -> ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) - # Java.g:846:41: ^( UNARY_PLUS[$PLUS, \"UNARY_PLUS\"] unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(UNARY_PLUS, PLUS427, "UNARY_PLUS"), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 2: - # Java.g:847:9: MINUS unaryExpression - pass - MINUS429=self.match(self.input, MINUS, self.FOLLOW_MINUS_in_unaryExpression11303) - if self._state.backtracking == 0: - stream_MINUS.add(MINUS429) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpression11305) - unaryExpression430 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression430.tree) - - # AST Rewrite - # elements: unaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 847:37: -> ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) - # Java.g:847:41: ^( UNARY_MINUS[$MINUS, \"UNARY_MINUS\"] unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(UNARY_MINUS, MINUS429, "UNARY_MINUS"), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 3: - # Java.g:848:9: INC postfixedExpression - pass - INC431=self.match(self.input, INC, self.FOLLOW_INC_in_unaryExpression11331) - if self._state.backtracking == 0: - stream_INC.add(INC431) - self._state.following.append(self.FOLLOW_postfixedExpression_in_unaryExpression11333) - postfixedExpression432 = self.postfixedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_postfixedExpression.add(postfixedExpression432.tree) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 848:37: -> ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) - # Java.g:848:41: ^( PRE_INC[$INC, \"PRE_INC\"] postfixedExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(PRE_INC, INC431, "PRE_INC"), root_1) - - self._adaptor.addChild(root_1, stream_postfixedExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 4: - # Java.g:849:9: DEC postfixedExpression - pass - DEC433=self.match(self.input, DEC, self.FOLLOW_DEC_in_unaryExpression11357) - if self._state.backtracking == 0: - stream_DEC.add(DEC433) - self._state.following.append(self.FOLLOW_postfixedExpression_in_unaryExpression11359) - postfixedExpression434 = self.postfixedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_postfixedExpression.add(postfixedExpression434.tree) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 849:37: -> ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) - # Java.g:849:41: ^( PRE_DEC[$DEC, \"PRE_DEC\"] postfixedExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(PRE_DEC, DEC433, "PRE_DEC"), root_1) - - self._adaptor.addChild(root_1, stream_postfixedExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt129 == 5: - # Java.g:850:9: unaryExpressionNotPlusMinus - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression11383) - unaryExpressionNotPlusMinus435 = self.unaryExpressionNotPlusMinus() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, unaryExpressionNotPlusMinus435.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 102, unaryExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "unaryExpression" - - class unaryExpressionNotPlusMinus_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.unaryExpressionNotPlusMinus_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "unaryExpressionNotPlusMinus" - # Java.g:853:1: unaryExpressionNotPlusMinus : ( NOT unaryExpression -> ^( NOT unaryExpression ) | LOGICAL_NOT unaryExpression -> ^( LOGICAL_NOT unaryExpression ) | LPAREN type RPAREN unaryExpression -> ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) | postfixedExpression ); - def unaryExpressionNotPlusMinus(self, ): - - retval = self.unaryExpressionNotPlusMinus_return() - retval.start = self.input.LT(1) - unaryExpressionNotPlusMinus_StartIndex = self.input.index() - root_0 = None - - NOT436 = None - LOGICAL_NOT438 = None - LPAREN440 = None - RPAREN442 = None - unaryExpression437 = None - - unaryExpression439 = None - - type441 = None - - unaryExpression443 = None - - postfixedExpression444 = None - - - NOT436_tree = None - LOGICAL_NOT438_tree = None - LPAREN440_tree = None - RPAREN442_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LOGICAL_NOT = RewriteRuleTokenStream(self._adaptor, "token LOGICAL_NOT") - stream_NOT = RewriteRuleTokenStream(self._adaptor, "token NOT") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_unaryExpression = RewriteRuleSubtreeStream(self._adaptor, "rule unaryExpression") - stream_type = RewriteRuleSubtreeStream(self._adaptor, "rule type") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 103): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:854:5: ( NOT unaryExpression -> ^( NOT unaryExpression ) | LOGICAL_NOT unaryExpression -> ^( LOGICAL_NOT unaryExpression ) | LPAREN type RPAREN unaryExpression -> ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) | postfixedExpression ) - alt130 = 4 - alt130 = self.dfa130.predict(self.input) - if alt130 == 1: - # Java.g:854:9: NOT unaryExpression - pass - NOT436=self.match(self.input, NOT, self.FOLLOW_NOT_in_unaryExpressionNotPlusMinus11402) - if self._state.backtracking == 0: - stream_NOT.add(NOT436) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11404) - unaryExpression437 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression437.tree) - - # AST Rewrite - # elements: unaryExpression, NOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 854:57: -> ^( NOT unaryExpression ) - # Java.g:854:61: ^( NOT unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_NOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt130 == 2: - # Java.g:855:9: LOGICAL_NOT unaryExpression - pass - LOGICAL_NOT438=self.match(self.input, LOGICAL_NOT, self.FOLLOW_LOGICAL_NOT_in_unaryExpressionNotPlusMinus11451) - if self._state.backtracking == 0: - stream_LOGICAL_NOT.add(LOGICAL_NOT438) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11453) - unaryExpression439 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression439.tree) - - # AST Rewrite - # elements: unaryExpression, LOGICAL_NOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 855:57: -> ^( LOGICAL_NOT unaryExpression ) - # Java.g:855:61: ^( LOGICAL_NOT unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_LOGICAL_NOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt130 == 3: - # Java.g:856:9: LPAREN type RPAREN unaryExpression - pass - LPAREN440=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus11492) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN440) - self._state.following.append(self.FOLLOW_type_in_unaryExpressionNotPlusMinus11494) - type441 = self.type() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_type.add(type441.tree) - RPAREN442=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus11496) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN442) - self._state.following.append(self.FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11498) - unaryExpression443 = self.unaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_unaryExpression.add(unaryExpression443.tree) - - # AST Rewrite - # elements: type, unaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 856:57: -> ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) - # Java.g:856:61: ^( CAST_EXPR[$LPAREN, \"CAST_EXPR\"] type unaryExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CAST_EXPR, LPAREN440, "CAST_EXPR"), root_1) - - self._adaptor.addChild(root_1, stream_type.nextTree()) - self._adaptor.addChild(root_1, stream_unaryExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt130 == 4: - # Java.g:857:9: postfixedExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_postfixedExpression_in_unaryExpressionNotPlusMinus11533) - postfixedExpression444 = self.postfixedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, postfixedExpression444.tree) - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 103, unaryExpressionNotPlusMinus_StartIndex, success) - - pass - return retval - - # $ANTLR end "unaryExpressionNotPlusMinus" - - class postfixedExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.postfixedExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "postfixedExpression" - # Java.g:860:1: postfixedExpression : ( primaryExpression -> primaryExpression ) (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? ; - def postfixedExpression(self, ): - - retval = self.postfixedExpression_return() - retval.start = self.input.LT(1) - postfixedExpression_StartIndex = self.input.index() - root_0 = None - - outerDot = None - Super = None - innerDot = None - IDENT447 = None - THIS449 = None - SUPER451 = None - IDENT452 = None - LBRACK455 = None - RBRACK457 = None - INC458 = None - DEC459 = None - primaryExpression445 = None - - genericTypeArgumentListSimplified446 = None - - arguments448 = None - - arguments450 = None - - arguments453 = None - - innerNewExpression454 = None - - expression456 = None - - - outerDot_tree = None - Super_tree = None - innerDot_tree = None - IDENT447_tree = None - THIS449_tree = None - SUPER451_tree = None - IDENT452_tree = None - LBRACK455_tree = None - RBRACK457_tree = None - INC458_tree = None - DEC459_tree = None - stream_RBRACK = RewriteRuleTokenStream(self._adaptor, "token RBRACK") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_INC = RewriteRuleTokenStream(self._adaptor, "token INC") - stream_DEC = RewriteRuleTokenStream(self._adaptor, "token DEC") - stream_LBRACK = RewriteRuleTokenStream(self._adaptor, "token LBRACK") - stream_SUPER = RewriteRuleTokenStream(self._adaptor, "token SUPER") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_THIS = RewriteRuleTokenStream(self._adaptor, "token THIS") - stream_expression = RewriteRuleSubtreeStream(self._adaptor, "rule expression") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_primaryExpression = RewriteRuleSubtreeStream(self._adaptor, "rule primaryExpression") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - stream_innerNewExpression = RewriteRuleSubtreeStream(self._adaptor, "rule innerNewExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 104): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:862:5: ( ( primaryExpression -> primaryExpression ) (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? ) - # Java.g:862:9: ( primaryExpression -> primaryExpression ) (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? - pass - # Java.g:862:9: ( primaryExpression -> primaryExpression ) - # Java.g:862:13: primaryExpression - pass - self._state.following.append(self.FOLLOW_primaryExpression_in_postfixedExpression11565) - primaryExpression445 = self.primaryExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primaryExpression.add(primaryExpression445.tree) - - # AST Rewrite - # elements: primaryExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 862:53: -> primaryExpression - self._adaptor.addChild(root_0, stream_primaryExpression.nextTree()) - - - - retval.tree = root_0 - - - - # Java.g:865:9: (outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) | LBRACK expression RBRACK -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) )* - while True: #loop135 - alt135 = 3 - LA135_0 = self.input.LA(1) - - if (LA135_0 == DOT) : - alt135 = 1 - elif (LA135_0 == LBRACK) : - alt135 = 2 - - - if alt135 == 1: - # Java.g:865:13: outerDot= DOT ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) - pass - outerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_postfixedExpression11627) - if self._state.backtracking == 0: - stream_DOT.add(outerDot) - # Java.g:866:13: ( ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? | THIS -> ^( DOT $postfixedExpression THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) | ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? | innerNewExpression -> ^( DOT $postfixedExpression innerNewExpression ) ) - alt134 = 5 - LA134 = self.input.LA(1) - if LA134 == LESS_THAN or LA134 == IDENT: - alt134 = 1 - elif LA134 == THIS: - alt134 = 2 - elif LA134 == SUPER: - LA134_3 = self.input.LA(2) - - if (LA134_3 == DOT) : - alt134 = 4 - elif (LA134_3 == LPAREN) : - alt134 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 134, 3, self.input) - - raise nvae - - elif LA134 == NEW: - alt134 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 134, 0, self.input) - - raise nvae - - if alt134 == 1: - # Java.g:866:17: ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? - pass - # Java.g:866:17: ( ( genericTypeArgumentListSimplified )? IDENT -> ^( DOT $postfixedExpression IDENT ) ) - # Java.g:866:21: ( genericTypeArgumentListSimplified )? IDENT - pass - # Java.g:866:21: ( genericTypeArgumentListSimplified )? - alt131 = 2 - LA131_0 = self.input.LA(1) - - if (LA131_0 == LESS_THAN) : - alt131 = 1 - if alt131 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_postfixedExpression11649) - genericTypeArgumentListSimplified446 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified446.tree) - - - - IDENT447=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_postfixedExpression11731) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT447) - - # AST Rewrite - # elements: IDENT, postfixedExpression, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 868:53: -> ^( DOT $postfixedExpression IDENT ) - # Java.g:868:57: ^( DOT $postfixedExpression IDENT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - # Java.g:870:17: ( arguments -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) )? - alt132 = 2 - LA132_0 = self.input.LA(1) - - if (LA132_0 == LPAREN) : - alt132 = 1 - if alt132 == 1: - # Java.g:870:21: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_postfixedExpression11809) - arguments448 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments448.tree) - - # AST Rewrite - # elements: arguments, genericTypeArgumentListSimplified, postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 870:53: -> ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) - # Java.g:870:57: ^( METHOD_CALL $postfixedExpression ( genericTypeArgumentListSimplified )? arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - # Java.g:870:92: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt134 == 2: - # Java.g:872:17: THIS - pass - THIS449=self.match(self.input, THIS, self.FOLLOW_THIS_in_postfixedExpression11883) - if self._state.backtracking == 0: - stream_THIS.add(THIS449) - - # AST Rewrite - # elements: THIS, postfixedExpression, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 872:53: -> ^( DOT $postfixedExpression THIS ) - # Java.g:872:57: ^( DOT $postfixedExpression THIS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_THIS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt134 == 3: - # Java.g:873:17: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_postfixedExpression11946) - if self._state.backtracking == 0: - stream_SUPER.add(Super) - self._state.following.append(self.FOLLOW_arguments_in_postfixedExpression11948) - arguments450 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments450.tree) - - # AST Rewrite - # elements: postfixedExpression, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 873:57: -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) - # Java.g:873:61: ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] $postfixedExpression arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, Super, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt134 == 4: - # Java.g:874:17: ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? - pass - # Java.g:874:17: ( SUPER innerDot= DOT IDENT -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) ) - # Java.g:874:21: SUPER innerDot= DOT IDENT - pass - SUPER451=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_postfixedExpression12001) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER451) - innerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_postfixedExpression12005) - if self._state.backtracking == 0: - stream_DOT.add(innerDot) - IDENT452=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_postfixedExpression12007) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT452) - - # AST Rewrite - # elements: SUPER, IDENT, postfixedExpression, innerDot, outerDot - # token labels: outerDot, innerDot - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - stream_outerDot = RewriteRuleTokenStream(self._adaptor, "token outerDot", outerDot) - stream_innerDot = RewriteRuleTokenStream(self._adaptor, "token innerDot", innerDot) - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 874:53: -> ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) - # Java.g:874:57: ^( $innerDot ^( $outerDot $postfixedExpression SUPER ) IDENT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_innerDot.nextNode(), root_1) - - # Java.g:874:69: ^( $outerDot $postfixedExpression SUPER ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_outerDot.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_retval.nextTree()) - self._adaptor.addChild(root_2, stream_SUPER.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - # Java.g:876:17: ( arguments -> ^( METHOD_CALL $postfixedExpression arguments ) )? - alt133 = 2 - LA133_0 = self.input.LA(1) - - if (LA133_0 == LPAREN) : - alt133 = 1 - if alt133 == 1: - # Java.g:876:21: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_postfixedExpression12074) - arguments453 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments453.tree) - - # AST Rewrite - # elements: postfixedExpression, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 876:53: -> ^( METHOD_CALL $postfixedExpression arguments ) - # Java.g:876:57: ^( METHOD_CALL $postfixedExpression arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt134 == 5: - # Java.g:878:17: innerNewExpression - pass - self._state.following.append(self.FOLLOW_innerNewExpression_in_postfixedExpression12145) - innerNewExpression454 = self.innerNewExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_innerNewExpression.add(innerNewExpression454.tree) - - # AST Rewrite - # elements: innerNewExpression, DOT, postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 878:53: -> ^( DOT $postfixedExpression innerNewExpression ) - # Java.g:878:57: ^( DOT $postfixedExpression innerNewExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_innerNewExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt135 == 2: - # Java.g:880:13: LBRACK expression RBRACK - pass - LBRACK455=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_postfixedExpression12202) - if self._state.backtracking == 0: - stream_LBRACK.add(LBRACK455) - self._state.following.append(self.FOLLOW_expression_in_postfixedExpression12204) - expression456 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expression.add(expression456.tree) - RBRACK457=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_postfixedExpression12206) - if self._state.backtracking == 0: - stream_RBRACK.add(RBRACK457) - - # AST Rewrite - # elements: expression, postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 880:53: -> ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) - # Java.g:880:57: ^( ARRAY_ELEMENT_ACCESS $postfixedExpression expression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(ARRAY_ELEMENT_ACCESS, "ARRAY_ELEMENT_ACCESS"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_expression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - break #loop135 - # Java.g:883:9: ( INC -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) | DEC -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) )? - alt136 = 3 - LA136_0 = self.input.LA(1) - - if (LA136_0 == INC) : - alt136 = 1 - elif (LA136_0 == DEC) : - alt136 = 2 - if alt136 == 1: - # Java.g:883:13: INC - pass - INC458=self.match(self.input, INC, self.FOLLOW_INC_in_postfixedExpression12267) - if self._state.backtracking == 0: - stream_INC.add(INC458) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 883:17: -> ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) - # Java.g:883:20: ^( POST_INC[$INC, \"POST_INC\"] $postfixedExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(POST_INC, INC458, "POST_INC"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt136 == 2: - # Java.g:884:13: DEC - pass - DEC459=self.match(self.input, DEC, self.FOLLOW_DEC_in_postfixedExpression12291) - if self._state.backtracking == 0: - stream_DEC.add(DEC459) - - # AST Rewrite - # elements: postfixedExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 884:17: -> ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) - # Java.g:884:20: ^( POST_DEC[$DEC, \"POST_DEC\"] $postfixedExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(POST_DEC, DEC459, "POST_DEC"), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 104, postfixedExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "postfixedExpression" - - class primaryExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.primaryExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "primaryExpression" - # Java.g:888:1: primaryExpression : ( parenthesizedExpression | literal | newExpression | qualifiedIdentExpression | genericTypeArgumentListSimplified ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) | ( THIS -> THIS ) ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? | SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) | ( SUPER DOT IDENT ) ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) | ( primitiveType -> primitiveType ) ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* DOT CLASS -> ^( DOT $primaryExpression CLASS ) | VOID DOT CLASS -> ^( DOT VOID CLASS ) ); - def primaryExpression(self, ): - - retval = self.primaryExpression_return() - retval.start = self.input.LT(1) - primaryExpression_StartIndex = self.input.index() - root_0 = None - - SUPER465 = None - DOT467 = None - IDENT468 = None - IDENT470 = None - THIS472 = None - THIS474 = None - SUPER476 = None - SUPER478 = None - DOT479 = None - IDENT480 = None - DOT484 = None - CLASS485 = None - VOID486 = None - DOT487 = None - CLASS488 = None - parenthesizedExpression460 = None - - literal461 = None - - newExpression462 = None - - qualifiedIdentExpression463 = None - - genericTypeArgumentListSimplified464 = None - - arguments466 = None - - arguments469 = None - - arguments471 = None - - arguments473 = None - - arguments475 = None - - arguments477 = None - - arguments481 = None - - primitiveType482 = None - - arrayDeclarator483 = None - - - SUPER465_tree = None - DOT467_tree = None - IDENT468_tree = None - IDENT470_tree = None - THIS472_tree = None - THIS474_tree = None - SUPER476_tree = None - SUPER478_tree = None - DOT479_tree = None - IDENT480_tree = None - DOT484_tree = None - CLASS485_tree = None - VOID486_tree = None - DOT487_tree = None - CLASS488_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_CLASS = RewriteRuleTokenStream(self._adaptor, "token CLASS") - stream_VOID = RewriteRuleTokenStream(self._adaptor, "token VOID") - stream_SUPER = RewriteRuleTokenStream(self._adaptor, "token SUPER") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_THIS = RewriteRuleTokenStream(self._adaptor, "token THIS") - stream_arrayDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclarator") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_primitiveType = RewriteRuleSubtreeStream(self._adaptor, "rule primitiveType") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 105): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:889:5: ( parenthesizedExpression | literal | newExpression | qualifiedIdentExpression | genericTypeArgumentListSimplified ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) | ( THIS -> THIS ) ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? | SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) | ( SUPER DOT IDENT ) ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) | ( primitiveType -> primitiveType ) ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* DOT CLASS -> ^( DOT $primaryExpression CLASS ) | VOID DOT CLASS -> ^( DOT VOID CLASS ) ) - alt142 = 10 - alt142 = self.dfa142.predict(self.input) - if alt142 == 1: - # Java.g:889:9: parenthesizedExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_parenthesizedExpression_in_primaryExpression12331) - parenthesizedExpression460 = self.parenthesizedExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, parenthesizedExpression460.tree) - - - elif alt142 == 2: - # Java.g:890:9: literal - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_literal_in_primaryExpression12341) - literal461 = self.literal() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, literal461.tree) - - - elif alt142 == 3: - # Java.g:891:9: newExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_newExpression_in_primaryExpression12351) - newExpression462 = self.newExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, newExpression462.tree) - - - elif alt142 == 4: - # Java.g:892:9: qualifiedIdentExpression - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_qualifiedIdentExpression_in_primaryExpression12361) - qualifiedIdentExpression463 = self.qualifiedIdentExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, qualifiedIdentExpression463.tree) - - - elif alt142 == 5: - # Java.g:893:9: genericTypeArgumentListSimplified ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_primaryExpression12371) - genericTypeArgumentListSimplified464 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified464.tree) - # Java.g:894:9: ( SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) | IDENT arguments -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) | THIS arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) ) - alt138 = 3 - LA138 = self.input.LA(1) - if LA138 == SUPER: - alt138 = 1 - elif LA138 == IDENT: - alt138 = 2 - elif LA138 == THIS: - alt138 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 138, 0, self.input) - - raise nvae - - if alt138 == 1: - # Java.g:894:13: SUPER ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) - pass - SUPER465=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_primaryExpression12385) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER465) - # Java.g:895:13: ( arguments -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) | DOT IDENT arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) ) - alt137 = 2 - LA137_0 = self.input.LA(1) - - if (LA137_0 == LPAREN) : - alt137 = 1 - elif (LA137_0 == DOT) : - alt137 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 137, 0, self.input) - - raise nvae - - if alt137 == 1: - # Java.g:895:17: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12403) - arguments466 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments466.tree) - - # AST Rewrite - # elements: arguments, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 895:57: -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - # Java.g:895:61: ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, SUPER465, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt137 == 2: - # Java.g:896:17: DOT IDENT arguments - pass - DOT467=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression12463) - if self._state.backtracking == 0: - stream_DOT.add(DOT467) - IDENT468=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_primaryExpression12465) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT468) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12467) - arguments469 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments469.tree) - - # AST Rewrite - # elements: genericTypeArgumentListSimplified, arguments, DOT, IDENT, SUPER - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 896:57: -> ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) - # Java.g:896:61: ^( METHOD_CALL ^( DOT SUPER IDENT ) genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:896:75: ^( DOT SUPER IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_SUPER.nextNode()) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt138 == 2: - # Java.g:898:13: IDENT arguments - pass - IDENT470=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_primaryExpression12534) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT470) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12536) - arguments471 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments471.tree) - - # AST Rewrite - # elements: arguments, IDENT, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 898:57: -> ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) - # Java.g:898:61: ^( METHOD_CALL IDENT genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt138 == 3: - # Java.g:899:13: THIS arguments - pass - THIS472=self.match(self.input, THIS, self.FOLLOW_THIS_in_primaryExpression12591) - if self._state.backtracking == 0: - stream_THIS.add(THIS472) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12593) - arguments473 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments473.tree) - - # AST Rewrite - # elements: genericTypeArgumentListSimplified, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 899:57: -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - # Java.g:899:61: ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(THIS_CONSTRUCTOR_CALL, THIS472, "THIS_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt142 == 6: - # Java.g:901:9: ( THIS -> THIS ) ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? - pass - # Java.g:901:9: ( THIS -> THIS ) - # Java.g:901:13: THIS - pass - THIS474=self.match(self.input, THIS, self.FOLLOW_THIS_in_primaryExpression12658) - if self._state.backtracking == 0: - stream_THIS.add(THIS474) - - # AST Rewrite - # elements: THIS - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 901:57: -> THIS - self._adaptor.addChild(root_0, stream_THIS.nextNode()) - - - - retval.tree = root_0 - - - - # Java.g:903:9: ( arguments -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) )? - alt139 = 2 - LA139_0 = self.input.LA(1) - - if (LA139_0 == LPAREN) : - alt139 = 1 - if alt139 == 1: - # Java.g:903:13: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12726) - arguments475 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments475.tree) - - # AST Rewrite - # elements: arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 903:57: -> ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) - # Java.g:903:61: ^( THIS_CONSTRUCTOR_CALL[$THIS, \"THIS_CONSTRUCTOR_CALL\"] arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(THIS_CONSTRUCTOR_CALL, THIS474, "THIS_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt142 == 7: - # Java.g:905:9: SUPER arguments - pass - SUPER476=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_primaryExpression12791) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER476) - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12793) - arguments477 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments477.tree) - - # AST Rewrite - # elements: arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 905:57: -> ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) - # Java.g:905:61: ^( SUPER_CONSTRUCTOR_CALL[$SUPER, \"SUPER_CONSTRUCTOR_CALL\"] arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, SUPER476, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt142 == 8: - # Java.g:906:9: ( SUPER DOT IDENT ) ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) - pass - # Java.g:906:9: ( SUPER DOT IDENT ) - # Java.g:906:13: SUPER DOT IDENT - pass - SUPER478=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_primaryExpression12849) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER478) - DOT479=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression12851) - if self._state.backtracking == 0: - stream_DOT.add(DOT479) - IDENT480=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_primaryExpression12853) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT480) - - - - # Java.g:908:9: ( arguments -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) | -> ^( DOT SUPER IDENT ) ) - alt140 = 2 - LA140_0 = self.input.LA(1) - - if (LA140_0 == LPAREN) : - alt140 = 1 - elif (LA140_0 == EOF or (AND <= LA140_0 <= ASSIGN) or (BIT_SHIFT_RIGHT <= LA140_0 <= DOT) or (EQUAL <= LA140_0 <= LBRACK) or (LESS_OR_EQUAL <= LA140_0 <= LOGICAL_AND) or LA140_0 == LOGICAL_OR or (MINUS <= LA140_0 <= MOD_ASSIGN) or (NOT_EQUAL <= LA140_0 <= XOR_ASSIGN) or LA140_0 == INSTANCEOF) : - alt140 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 140, 0, self.input) - - raise nvae - - if alt140 == 1: - # Java.g:908:13: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_primaryExpression12877) - arguments481 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments481.tree) - - # AST Rewrite - # elements: arguments, SUPER, DOT, IDENT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 908:57: -> ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) - # Java.g:908:61: ^( METHOD_CALL ^( DOT SUPER IDENT ) arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:908:75: ^( DOT SUPER IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_SUPER.nextNode()) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt140 == 2: - # Java.g:909:57: - pass - # AST Rewrite - # elements: SUPER, IDENT, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 909:57: -> ^( DOT SUPER IDENT ) - # Java.g:909:61: ^( DOT SUPER IDENT ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_SUPER.nextNode()) - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt142 == 9: - # Java.g:911:9: ( primitiveType -> primitiveType ) ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* DOT CLASS - pass - # Java.g:911:9: ( primitiveType -> primitiveType ) - # Java.g:911:13: primitiveType - pass - self._state.following.append(self.FOLLOW_primitiveType_in_primaryExpression13019) - primitiveType482 = self.primitiveType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primitiveType.add(primitiveType482.tree) - - # AST Rewrite - # elements: primitiveType - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 911:57: -> primitiveType - self._adaptor.addChild(root_0, stream_primitiveType.nextTree()) - - - - retval.tree = root_0 - - - - # Java.g:913:9: ( arrayDeclarator -> ^( arrayDeclarator $primaryExpression) )* - while True: #loop141 - alt141 = 2 - LA141_0 = self.input.LA(1) - - if (LA141_0 == LBRACK) : - alt141 = 1 - - - if alt141 == 1: - # Java.g:913:13: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_primaryExpression13078) - arrayDeclarator483 = self.arrayDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclarator.add(arrayDeclarator483.tree) - - # AST Rewrite - # elements: primaryExpression, arrayDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 913:57: -> ^( arrayDeclarator $primaryExpression) - # Java.g:913:61: ^( arrayDeclarator $primaryExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_arrayDeclarator.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - break #loop141 - DOT484=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression13137) - if self._state.backtracking == 0: - stream_DOT.add(DOT484) - CLASS485=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_primaryExpression13139) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS485) - - # AST Rewrite - # elements: primaryExpression, CLASS, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 915:57: -> ^( DOT $primaryExpression CLASS ) - # Java.g:915:61: ^( DOT $primaryExpression CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt142 == 10: - # Java.g:916:9: VOID DOT CLASS - pass - VOID486=self.match(self.input, VOID, self.FOLLOW_VOID_in_primaryExpression13199) - if self._state.backtracking == 0: - stream_VOID.add(VOID486) - DOT487=self.match(self.input, DOT, self.FOLLOW_DOT_in_primaryExpression13201) - if self._state.backtracking == 0: - stream_DOT.add(DOT487) - CLASS488=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_primaryExpression13203) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS488) - - # AST Rewrite - # elements: DOT, VOID, CLASS - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 916:57: -> ^( DOT VOID CLASS ) - # Java.g:916:61: ^( DOT VOID CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_VOID.nextNode()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 105, primaryExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "primaryExpression" - - class qualifiedIdentExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.qualifiedIdentExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "qualifiedIdentExpression" - # Java.g:919:1: qualifiedIdentExpression : ( qualifiedIdentifier -> qualifiedIdentifier ) ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? ; - def qualifiedIdentExpression(self, ): - - retval = self.qualifiedIdentExpression_return() - retval.start = self.input.LT(1) - qualifiedIdentExpression_StartIndex = self.input.index() - root_0 = None - - outerDot = None - Super = None - innerDot = None - DOT491 = None - CLASS492 = None - CLASS494 = None - SUPER497 = None - IDENT498 = None - IDENT500 = None - THIS502 = None - qualifiedIdentifier489 = None - - arrayDeclarator490 = None - - arguments493 = None - - genericTypeArgumentListSimplified495 = None - - arguments496 = None - - arguments499 = None - - arguments501 = None - - arguments503 = None - - innerNewExpression504 = None - - - outerDot_tree = None - Super_tree = None - innerDot_tree = None - DOT491_tree = None - CLASS492_tree = None - CLASS494_tree = None - SUPER497_tree = None - IDENT498_tree = None - IDENT500_tree = None - THIS502_tree = None - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_CLASS = RewriteRuleTokenStream(self._adaptor, "token CLASS") - stream_SUPER = RewriteRuleTokenStream(self._adaptor, "token SUPER") - stream_DOT = RewriteRuleTokenStream(self._adaptor, "token DOT") - stream_THIS = RewriteRuleTokenStream(self._adaptor, "token THIS") - stream_arrayDeclarator = RewriteRuleSubtreeStream(self._adaptor, "rule arrayDeclarator") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_qualifiedIdentifier = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedIdentifier") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - stream_innerNewExpression = RewriteRuleSubtreeStream(self._adaptor, "rule innerNewExpression") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 106): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:921:5: ( ( qualifiedIdentifier -> qualifiedIdentifier ) ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? ) - # Java.g:921:9: ( qualifiedIdentifier -> qualifiedIdentifier ) ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? - pass - # Java.g:921:9: ( qualifiedIdentifier -> qualifiedIdentifier ) - # Java.g:921:13: qualifiedIdentifier - pass - self._state.following.append(self.FOLLOW_qualifiedIdentifier_in_qualifiedIdentExpression13279) - qualifiedIdentifier489 = self.qualifiedIdentifier() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedIdentifier.add(qualifiedIdentifier489.tree) - - # AST Rewrite - # elements: qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 921:61: -> qualifiedIdentifier - self._adaptor.addChild(root_0, stream_qualifiedIdentifier.nextTree()) - - - - retval.tree = root_0 - - - - # Java.g:924:9: ( ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) | arguments -> ^( METHOD_CALL qualifiedIdentifier arguments ) | outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) )? - alt146 = 4 - alt146 = self.dfa146.predict(self.input) - if alt146 == 1: - # Java.g:924:13: ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) - pass - # Java.g:924:13: ( arrayDeclarator -> ^( arrayDeclarator $qualifiedIdentExpression) )+ - cnt143 = 0 - while True: #loop143 - alt143 = 2 - LA143_0 = self.input.LA(1) - - if (LA143_0 == LBRACK) : - alt143 = 1 - - - if alt143 == 1: - # Java.g:924:17: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_qualifiedIdentExpression13349) - arrayDeclarator490 = self.arrayDeclarator() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arrayDeclarator.add(arrayDeclarator490.tree) - - # AST Rewrite - # elements: qualifiedIdentExpression, arrayDeclarator - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 924:57: -> ^( arrayDeclarator $qualifiedIdentExpression) - # Java.g:924:61: ^( arrayDeclarator $qualifiedIdentExpression) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_arrayDeclarator.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - else: - if cnt143 >= 1: - break #loop143 - - if self._state.backtracking > 0: - raise BacktrackingFailed - - eee = EarlyExitException(143, self.input) - raise eee - - cnt143 += 1 - # Java.g:926:13: ( DOT CLASS -> ^( DOT $qualifiedIdentExpression CLASS ) ) - # Java.g:926:17: DOT CLASS - pass - DOT491=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentExpression13416) - if self._state.backtracking == 0: - stream_DOT.add(DOT491) - CLASS492=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_qualifiedIdentExpression13418) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS492) - - # AST Rewrite - # elements: CLASS, DOT, qualifiedIdentExpression - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 926:57: -> ^( DOT $qualifiedIdentExpression CLASS ) - # Java.g:926:61: ^( DOT $qualifiedIdentExpression CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_retval.nextTree()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt146 == 2: - # Java.g:928:13: arguments - pass - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13488) - arguments493 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments493.tree) - - # AST Rewrite - # elements: arguments, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 928:57: -> ^( METHOD_CALL qualifiedIdentifier arguments ) - # Java.g:928:61: ^( METHOD_CALL qualifiedIdentifier arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt146 == 3: - # Java.g:929:13: outerDot= DOT ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) - pass - outerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentExpression13549) - if self._state.backtracking == 0: - stream_DOT.add(outerDot) - # Java.g:930:13: ( CLASS -> ^( DOT qualifiedIdentifier CLASS ) | genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) | THIS -> ^( DOT qualifiedIdentifier THIS ) | Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) | innerNewExpression -> ^( DOT qualifiedIdentifier innerNewExpression ) ) - alt145 = 5 - LA145 = self.input.LA(1) - if LA145 == CLASS: - alt145 = 1 - elif LA145 == LESS_THAN: - alt145 = 2 - elif LA145 == THIS: - alt145 = 3 - elif LA145 == SUPER: - alt145 = 4 - elif LA145 == NEW: - alt145 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 145, 0, self.input) - - raise nvae - - if alt145 == 1: - # Java.g:930:17: CLASS - pass - CLASS494=self.match(self.input, CLASS, self.FOLLOW_CLASS_in_qualifiedIdentExpression13567) - if self._state.backtracking == 0: - stream_CLASS.add(CLASS494) - - # AST Rewrite - # elements: DOT, CLASS, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 930:57: -> ^( DOT qualifiedIdentifier CLASS ) - # Java.g:930:61: ^( DOT qualifiedIdentifier CLASS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_CLASS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt145 == 2: - # Java.g:931:17: genericTypeArgumentListSimplified (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_qualifiedIdentExpression13630) - genericTypeArgumentListSimplified495 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified495.tree) - # Java.g:932:17: (Super= SUPER arguments -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) | SUPER innerDot= DOT IDENT arguments -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) | IDENT arguments -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) ) - alt144 = 3 - LA144_0 = self.input.LA(1) - - if (LA144_0 == SUPER) : - LA144_1 = self.input.LA(2) - - if (LA144_1 == DOT) : - alt144 = 2 - elif (LA144_1 == LPAREN) : - alt144 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 144, 1, self.input) - - raise nvae - - elif (LA144_0 == IDENT) : - alt144 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 144, 0, self.input) - - raise nvae - - if alt144 == 1: - # Java.g:932:21: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_qualifiedIdentExpression13654) - if self._state.backtracking == 0: - stream_SUPER.add(Super) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13656) - arguments496 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments496.tree) - - # AST Rewrite - # elements: qualifiedIdentifier, arguments, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 932:57: -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) - # Java.g:932:61: ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, Super, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt144 == 2: - # Java.g:933:21: SUPER innerDot= DOT IDENT arguments - pass - SUPER497=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_qualifiedIdentExpression13706) - if self._state.backtracking == 0: - stream_SUPER.add(SUPER497) - innerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_qualifiedIdentExpression13710) - if self._state.backtracking == 0: - stream_DOT.add(innerDot) - IDENT498=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentExpression13712) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT498) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13714) - arguments499 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments499.tree) - - # AST Rewrite - # elements: IDENT, qualifiedIdentifier, outerDot, SUPER, innerDot, genericTypeArgumentListSimplified, arguments - # token labels: outerDot, innerDot - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - stream_outerDot = RewriteRuleTokenStream(self._adaptor, "token outerDot", outerDot) - stream_innerDot = RewriteRuleTokenStream(self._adaptor, "token innerDot", innerDot) - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 933:57: -> ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) - # Java.g:933:61: ^( METHOD_CALL ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:933:75: ^( $innerDot ^( $outerDot qualifiedIdentifier SUPER ) IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_innerDot.nextNode(), root_2) - - # Java.g:933:87: ^( $outerDot qualifiedIdentifier SUPER ) - root_3 = self._adaptor.nil() - root_3 = self._adaptor.becomeRoot(stream_outerDot.nextNode(), root_3) - - self._adaptor.addChild(root_3, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_3, stream_SUPER.nextNode()) - - self._adaptor.addChild(root_2, root_3) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt144 == 3: - # Java.g:934:21: IDENT arguments - pass - IDENT500=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_qualifiedIdentExpression13764) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT500) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13766) - arguments501 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments501.tree) - - # AST Rewrite - # elements: IDENT, arguments, genericTypeArgumentListSimplified, qualifiedIdentifier, DOT - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 934:57: -> ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) - # Java.g:934:61: ^( METHOD_CALL ^( DOT qualifiedIdentifier IDENT ) genericTypeArgumentListSimplified arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.createFromType(METHOD_CALL, "METHOD_CALL"), root_1) - - # Java.g:934:75: ^( DOT qualifiedIdentifier IDENT ) - root_2 = self._adaptor.nil() - root_2 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_2) - - self._adaptor.addChild(root_2, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_2, stream_IDENT.nextNode()) - - self._adaptor.addChild(root_1, root_2) - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - elif alt145 == 3: - # Java.g:936:17: THIS - pass - THIS502=self.match(self.input, THIS, self.FOLLOW_THIS_in_qualifiedIdentExpression13841) - if self._state.backtracking == 0: - stream_THIS.add(THIS502) - - # AST Rewrite - # elements: DOT, THIS, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 936:57: -> ^( DOT qualifiedIdentifier THIS ) - # Java.g:936:61: ^( DOT qualifiedIdentifier THIS ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_THIS.nextNode()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt145 == 4: - # Java.g:937:17: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_qualifiedIdentExpression13907) - if self._state.backtracking == 0: - stream_SUPER.add(Super) - self._state.following.append(self.FOLLOW_arguments_in_qualifiedIdentExpression13909) - arguments503 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments503.tree) - - # AST Rewrite - # elements: qualifiedIdentifier, arguments - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 937:57: -> ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) - # Java.g:937:61: ^( SUPER_CONSTRUCTOR_CALL[$Super, \"SUPER_CONSTRUCTOR_CALL\"] qualifiedIdentifier arguments ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(SUPER_CONSTRUCTOR_CALL, Super, "SUPER_CONSTRUCTOR_CALL"), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt145 == 5: - # Java.g:938:17: innerNewExpression - pass - self._state.following.append(self.FOLLOW_innerNewExpression_in_qualifiedIdentExpression13957) - innerNewExpression504 = self.innerNewExpression() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_innerNewExpression.add(innerNewExpression504.tree) - - # AST Rewrite - # elements: DOT, innerNewExpression, qualifiedIdentifier - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 938:57: -> ^( DOT qualifiedIdentifier innerNewExpression ) - # Java.g:938:61: ^( DOT qualifiedIdentifier innerNewExpression ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(stream_DOT.nextNode(), root_1) - - self._adaptor.addChild(root_1, stream_qualifiedIdentifier.nextTree()) - self._adaptor.addChild(root_1, stream_innerNewExpression.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 106, qualifiedIdentExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "qualifiedIdentExpression" - - class newExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.newExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "newExpression" - # Java.g:943:1: newExpression : NEW ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) ; - def newExpression(self, ): - - retval = self.newExpression_return() - retval.start = self.input.LT(1) - newExpression_StartIndex = self.input.index() - root_0 = None - - NEW505 = None - primitiveType506 = None - - newArrayConstruction507 = None - - genericTypeArgumentListSimplified508 = None - - qualifiedTypeIdentSimplified509 = None - - newArrayConstruction510 = None - - arguments511 = None - - classBody512 = None - - - NEW505_tree = None - stream_NEW = RewriteRuleTokenStream(self._adaptor, "token NEW") - stream_newArrayConstruction = RewriteRuleSubtreeStream(self._adaptor, "rule newArrayConstruction") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_qualifiedTypeIdentSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule qualifiedTypeIdentSimplified") - stream_primitiveType = RewriteRuleSubtreeStream(self._adaptor, "rule primitiveType") - stream_classBody = RewriteRuleSubtreeStream(self._adaptor, "rule classBody") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 107): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:944:5: ( NEW ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) ) - # Java.g:944:9: NEW ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) - pass - NEW505=self.match(self.input, NEW, self.FOLLOW_NEW_in_newExpression14033) - if self._state.backtracking == 0: - stream_NEW.add(NEW505) - # Java.g:945:9: ( primitiveType newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) | ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) ) - alt150 = 2 - LA150_0 = self.input.LA(1) - - if (LA150_0 == BOOLEAN or LA150_0 == BYTE or LA150_0 == CHAR or LA150_0 == DOUBLE or LA150_0 == FLOAT or (INT <= LA150_0 <= LONG) or LA150_0 == SHORT) : - alt150 = 1 - elif (LA150_0 == LESS_THAN or LA150_0 == IDENT) : - alt150 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 150, 0, self.input) - - raise nvae - - if alt150 == 1: - # Java.g:945:13: primitiveType newArrayConstruction - pass - self._state.following.append(self.FOLLOW_primitiveType_in_newExpression14047) - primitiveType506 = self.primitiveType() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_primitiveType.add(primitiveType506.tree) - self._state.following.append(self.FOLLOW_newArrayConstruction_in_newExpression14049) - newArrayConstruction507 = self.newArrayConstruction() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_newArrayConstruction.add(newArrayConstruction507.tree) - - # AST Rewrite - # elements: primitiveType, newArrayConstruction - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 946:13: -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) - # Java.g:946:17: ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] primitiveType newArrayConstruction ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(STATIC_ARRAY_CREATOR, NEW505, "STATIC_ARRAY_CREATOR"), root_1) - - self._adaptor.addChild(root_1, stream_primitiveType.nextTree()) - self._adaptor.addChild(root_1, stream_newArrayConstruction.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt150 == 2: - # Java.g:947:13: ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) - pass - # Java.g:947:13: ( genericTypeArgumentListSimplified )? - alt147 = 2 - LA147_0 = self.input.LA(1) - - if (LA147_0 == LESS_THAN) : - alt147 = 1 - if alt147 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_newExpression14093) - genericTypeArgumentListSimplified508 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified508.tree) - - - - self._state.following.append(self.FOLLOW_qualifiedTypeIdentSimplified_in_newExpression14096) - qualifiedTypeIdentSimplified509 = self.qualifiedTypeIdentSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_qualifiedTypeIdentSimplified.add(qualifiedTypeIdentSimplified509.tree) - # Java.g:948:13: ( newArrayConstruction -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) | arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) ) - alt149 = 2 - LA149_0 = self.input.LA(1) - - if (LA149_0 == LBRACK) : - alt149 = 1 - elif (LA149_0 == LPAREN) : - alt149 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 149, 0, self.input) - - raise nvae - - if alt149 == 1: - # Java.g:948:17: newArrayConstruction - pass - self._state.following.append(self.FOLLOW_newArrayConstruction_in_newExpression14114) - newArrayConstruction510 = self.newArrayConstruction() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_newArrayConstruction.add(newArrayConstruction510.tree) - - # AST Rewrite - # elements: newArrayConstruction, qualifiedTypeIdentSimplified, genericTypeArgumentListSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 949:17: -> ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) - # Java.g:949:21: ^( STATIC_ARRAY_CREATOR[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified newArrayConstruction ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(STATIC_ARRAY_CREATOR, NEW505, "STATIC_ARRAY_CREATOR"), root_1) - - # Java.g:949:74: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_qualifiedTypeIdentSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_newArrayConstruction.nextTree()) - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - elif alt149 == 2: - # Java.g:950:17: arguments ( classBody )? - pass - self._state.following.append(self.FOLLOW_arguments_in_newExpression14179) - arguments511 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments511.tree) - # Java.g:950:27: ( classBody )? - alt148 = 2 - LA148_0 = self.input.LA(1) - - if (LA148_0 == LCURLY) : - alt148 = 1 - if alt148 == 1: - # Java.g:0:0: classBody - pass - self._state.following.append(self.FOLLOW_classBody_in_newExpression14181) - classBody512 = self.classBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classBody.add(classBody512.tree) - - - - - # AST Rewrite - # elements: classBody, arguments, genericTypeArgumentListSimplified, qualifiedTypeIdentSimplified - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 951:17: -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) - # Java.g:951:21: ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? qualifiedTypeIdentSimplified arguments ( classBody )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_CONSTRUCTOR_CALL, NEW505, "STATIC_ARRAY_CREATOR"), root_1) - - # Java.g:951:76: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_qualifiedTypeIdentSimplified.nextTree()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - # Java.g:951:150: ( classBody )? - if stream_classBody.hasNext(): - self._adaptor.addChild(root_1, stream_classBody.nextTree()) - - - stream_classBody.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 107, newExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "newExpression" - - class innerNewExpression_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.innerNewExpression_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "innerNewExpression" - # Java.g:956:1: innerNewExpression : NEW ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) ; - def innerNewExpression(self, ): - - retval = self.innerNewExpression_return() - retval.start = self.input.LT(1) - innerNewExpression_StartIndex = self.input.index() - root_0 = None - - NEW513 = None - IDENT515 = None - genericTypeArgumentListSimplified514 = None - - arguments516 = None - - classBody517 = None - - - NEW513_tree = None - IDENT515_tree = None - stream_NEW = RewriteRuleTokenStream(self._adaptor, "token NEW") - stream_IDENT = RewriteRuleTokenStream(self._adaptor, "token IDENT") - stream_arguments = RewriteRuleSubtreeStream(self._adaptor, "rule arguments") - stream_classBody = RewriteRuleSubtreeStream(self._adaptor, "rule classBody") - stream_genericTypeArgumentListSimplified = RewriteRuleSubtreeStream(self._adaptor, "rule genericTypeArgumentListSimplified") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 108): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:957:5: ( NEW ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) ) - # Java.g:957:9: NEW ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? - pass - NEW513=self.match(self.input, NEW, self.FOLLOW_NEW_in_innerNewExpression14276) - if self._state.backtracking == 0: - stream_NEW.add(NEW513) - # Java.g:957:13: ( genericTypeArgumentListSimplified )? - alt151 = 2 - LA151_0 = self.input.LA(1) - - if (LA151_0 == LESS_THAN) : - alt151 = 1 - if alt151 == 1: - # Java.g:0:0: genericTypeArgumentListSimplified - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_innerNewExpression14278) - genericTypeArgumentListSimplified514 = self.genericTypeArgumentListSimplified() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_genericTypeArgumentListSimplified.add(genericTypeArgumentListSimplified514.tree) - - - - IDENT515=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_innerNewExpression14281) - if self._state.backtracking == 0: - stream_IDENT.add(IDENT515) - self._state.following.append(self.FOLLOW_arguments_in_innerNewExpression14283) - arguments516 = self.arguments() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_arguments.add(arguments516.tree) - # Java.g:957:64: ( classBody )? - alt152 = 2 - LA152_0 = self.input.LA(1) - - if (LA152_0 == LCURLY) : - alt152 = 1 - if alt152 == 1: - # Java.g:0:0: classBody - pass - self._state.following.append(self.FOLLOW_classBody_in_innerNewExpression14285) - classBody517 = self.classBody() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_classBody.add(classBody517.tree) - - - - - # AST Rewrite - # elements: arguments, genericTypeArgumentListSimplified, IDENT, classBody - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 958:9: -> ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) - # Java.g:958:13: ^( CLASS_CONSTRUCTOR_CALL[$NEW, \"STATIC_ARRAY_CREATOR\"] ( genericTypeArgumentListSimplified )? IDENT arguments ( classBody )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(CLASS_CONSTRUCTOR_CALL, NEW513, "STATIC_ARRAY_CREATOR"), root_1) - - # Java.g:958:68: ( genericTypeArgumentListSimplified )? - if stream_genericTypeArgumentListSimplified.hasNext(): - self._adaptor.addChild(root_1, stream_genericTypeArgumentListSimplified.nextTree()) - - - stream_genericTypeArgumentListSimplified.reset(); - self._adaptor.addChild(root_1, stream_IDENT.nextNode()) - self._adaptor.addChild(root_1, stream_arguments.nextTree()) - # Java.g:958:119: ( classBody )? - if stream_classBody.hasNext(): - self._adaptor.addChild(root_1, stream_classBody.nextTree()) - - - stream_classBody.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 108, innerNewExpression_StartIndex, success) - - pass - return retval - - # $ANTLR end "innerNewExpression" - - class newArrayConstruction_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.newArrayConstruction_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "newArrayConstruction" - # Java.g:961:1: newArrayConstruction : ( arrayDeclaratorList arrayInitializer | LBRACK expression RBRACK ( LBRACK expression RBRACK )* ( arrayDeclaratorList )? ); - def newArrayConstruction(self, ): - - retval = self.newArrayConstruction_return() - retval.start = self.input.LT(1) - newArrayConstruction_StartIndex = self.input.index() - root_0 = None - - LBRACK520 = None - RBRACK522 = None - LBRACK523 = None - RBRACK525 = None - arrayDeclaratorList518 = None - - arrayInitializer519 = None - - expression521 = None - - expression524 = None - - arrayDeclaratorList526 = None - - - LBRACK520_tree = None - RBRACK522_tree = None - LBRACK523_tree = None - RBRACK525_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 109): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:962:5: ( arrayDeclaratorList arrayInitializer | LBRACK expression RBRACK ( LBRACK expression RBRACK )* ( arrayDeclaratorList )? ) - alt155 = 2 - LA155_0 = self.input.LA(1) - - if (LA155_0 == LBRACK) : - LA155_1 = self.input.LA(2) - - if (LA155_1 == RBRACK) : - alt155 = 1 - elif (LA155_1 == DEC or LA155_1 == INC or LA155_1 == LESS_THAN or LA155_1 == LOGICAL_NOT or (LPAREN <= LA155_1 <= MINUS) or LA155_1 == NOT or LA155_1 == PLUS or LA155_1 == BOOLEAN or LA155_1 == BYTE or LA155_1 == CHAR or LA155_1 == DOUBLE or LA155_1 == FALSE or LA155_1 == FLOAT or (INT <= LA155_1 <= LONG) or (NEW <= LA155_1 <= NULL) or LA155_1 == SHORT or LA155_1 == SUPER or LA155_1 == THIS or LA155_1 == TRUE or LA155_1 == VOID or (IDENT <= LA155_1 <= STRING_LITERAL)) : - alt155 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 155, 1, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 155, 0, self.input) - - raise nvae - - if alt155 == 1: - # Java.g:962:9: arrayDeclaratorList arrayInitializer - pass - root_0 = self._adaptor.nil() - - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_newArrayConstruction14331) - arrayDeclaratorList518 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayDeclaratorList518.tree) - self._state.following.append(self.FOLLOW_arrayInitializer_in_newArrayConstruction14333) - arrayInitializer519 = self.arrayInitializer() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayInitializer519.tree) - - - elif alt155 == 2: - # Java.g:963:9: LBRACK expression RBRACK ( LBRACK expression RBRACK )* ( arrayDeclaratorList )? - pass - root_0 = self._adaptor.nil() - - LBRACK520=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_newArrayConstruction14343) - self._state.following.append(self.FOLLOW_expression_in_newArrayConstruction14346) - expression521 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression521.tree) - RBRACK522=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_newArrayConstruction14348) - # Java.g:963:36: ( LBRACK expression RBRACK )* - while True: #loop153 - alt153 = 2 - alt153 = self.dfa153.predict(self.input) - if alt153 == 1: - # Java.g:963:37: LBRACK expression RBRACK - pass - LBRACK523=self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_newArrayConstruction14352) - self._state.following.append(self.FOLLOW_expression_in_newArrayConstruction14355) - expression524 = self.expression() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, expression524.tree) - RBRACK525=self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_newArrayConstruction14357) - - - else: - break #loop153 - # Java.g:963:66: ( arrayDeclaratorList )? - alt154 = 2 - LA154_0 = self.input.LA(1) - - if (LA154_0 == LBRACK) : - LA154_1 = self.input.LA(2) - - if (LA154_1 == RBRACK) : - alt154 = 1 - if alt154 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_newArrayConstruction14362) - arrayDeclaratorList526 = self.arrayDeclaratorList() - - self._state.following.pop() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, arrayDeclaratorList526.tree) - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 109, newArrayConstruction_StartIndex, success) - - pass - return retval - - # $ANTLR end "newArrayConstruction" - - class arguments_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.arguments_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "arguments" - # Java.g:966:1: arguments : LPAREN ( expressionList )? RPAREN -> ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) ; - def arguments(self, ): - - retval = self.arguments_return() - retval.start = self.input.LT(1) - arguments_StartIndex = self.input.index() - root_0 = None - - LPAREN527 = None - RPAREN529 = None - expressionList528 = None - - - LPAREN527_tree = None - RPAREN529_tree = None - stream_RPAREN = RewriteRuleTokenStream(self._adaptor, "token RPAREN") - stream_LPAREN = RewriteRuleTokenStream(self._adaptor, "token LPAREN") - stream_expressionList = RewriteRuleSubtreeStream(self._adaptor, "rule expressionList") - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 110): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:967:5: ( LPAREN ( expressionList )? RPAREN -> ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) ) - # Java.g:967:9: LPAREN ( expressionList )? RPAREN - pass - LPAREN527=self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_arguments14382) - if self._state.backtracking == 0: - stream_LPAREN.add(LPAREN527) - # Java.g:967:16: ( expressionList )? - alt156 = 2 - LA156_0 = self.input.LA(1) - - if (LA156_0 == DEC or LA156_0 == INC or LA156_0 == LESS_THAN or LA156_0 == LOGICAL_NOT or (LPAREN <= LA156_0 <= MINUS) or LA156_0 == NOT or LA156_0 == PLUS or LA156_0 == BOOLEAN or LA156_0 == BYTE or LA156_0 == CHAR or LA156_0 == DOUBLE or LA156_0 == FALSE or LA156_0 == FLOAT or (INT <= LA156_0 <= LONG) or (NEW <= LA156_0 <= NULL) or LA156_0 == SHORT or LA156_0 == SUPER or LA156_0 == THIS or LA156_0 == TRUE or LA156_0 == VOID or (IDENT <= LA156_0 <= STRING_LITERAL)) : - alt156 = 1 - if alt156 == 1: - # Java.g:0:0: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_arguments14384) - expressionList528 = self.expressionList() - - self._state.following.pop() - if self._state.backtracking == 0: - stream_expressionList.add(expressionList528.tree) - - - - RPAREN529=self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_arguments14387) - if self._state.backtracking == 0: - stream_RPAREN.add(RPAREN529) - - # AST Rewrite - # elements: expressionList - # token labels: - # rule labels: retval - # token list labels: - # rule list labels: - # wildcard labels: - if self._state.backtracking == 0: - - retval.tree = root_0 - - if retval is not None: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "rule retval", retval.tree) - else: - stream_retval = RewriteRuleSubtreeStream(self._adaptor, "token retval", None) - - - root_0 = self._adaptor.nil() - # 968:9: -> ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) - # Java.g:968:13: ^( ARGUMENT_LIST[$LPAREN, \"ARGUMENT_LIST\"] ( expressionList )? ) - root_1 = self._adaptor.nil() - root_1 = self._adaptor.becomeRoot(self._adaptor.create(ARGUMENT_LIST, LPAREN527, "ARGUMENT_LIST"), root_1) - - # Java.g:968:55: ( expressionList )? - if stream_expressionList.hasNext(): - self._adaptor.addChild(root_1, stream_expressionList.nextTree()) - - - stream_expressionList.reset(); - - self._adaptor.addChild(root_0, root_1) - - - - retval.tree = root_0 - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 110, arguments_StartIndex, success) - - pass - return retval - - # $ANTLR end "arguments" - - class literal_return(ParserRuleReturnScope): - def __init__(self): - super(JavaParser.literal_return, self).__init__() - - self.tree = None - - - - - # $ANTLR start "literal" - # Java.g:971:1: literal : ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | FLOATING_POINT_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | TRUE | FALSE | NULL ); - def literal(self, ): - - retval = self.literal_return() - retval.start = self.input.LT(1) - literal_StartIndex = self.input.index() - root_0 = None - - set530 = None - - set530_tree = None - - success = False - try: - try: - if self._state.backtracking > 0 and self.alreadyParsedRule(self.input, 111): - # for cached failed rules, alreadyParsedRule will raise an exception - success = True - return retval - - # Java.g:972:5: ( HEX_LITERAL | OCTAL_LITERAL | DECIMAL_LITERAL | FLOATING_POINT_LITERAL | CHARACTER_LITERAL | STRING_LITERAL | TRUE | FALSE | NULL ) - # Java.g: - pass - root_0 = self._adaptor.nil() - - set530 = self.input.LT(1) - if self.input.LA(1) == FALSE or self.input.LA(1) == NULL or self.input.LA(1) == TRUE or (HEX_LITERAL <= self.input.LA(1) <= STRING_LITERAL): - self.input.consume() - if self._state.backtracking == 0: - self._adaptor.addChild(root_0, self._adaptor.createWithPayload(set530)) - self._state.errorRecovery = False - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - mse = MismatchedSetException(None, self.input) - raise mse - - - - - - retval.stop = self.input.LT(-1) - - if self._state.backtracking == 0: - - retval.tree = self._adaptor.rulePostProcessing(root_0) - self._adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop) - - - success = True - except RecognitionException, re: - self.reportError(re) - self.recover(self.input, re) - retval.tree = self._adaptor.errorNode(self.input, retval.start, self.input.LT(-1), re) - finally: - if self._state.backtracking > 0: - self.memoize(self.input, 111, literal_StartIndex, success) - - pass - return retval - - # $ANTLR end "literal" - - # $ANTLR start "synpred14_Java" - def synpred14_Java_fragment(self, ): - # Java.g:286:9: ( GREATER_THAN ) - # Java.g:286:9: GREATER_THAN - pass - self.match(self.input, GREATER_THAN, self.FOLLOW_GREATER_THAN_in_synpred14_Java5045) - - - # $ANTLR end "synpred14_Java" - - - - # $ANTLR start "synpred15_Java" - def synpred15_Java_fragment(self, ): - # Java.g:287:9: ( SHIFT_RIGHT ) - # Java.g:287:9: SHIFT_RIGHT - pass - self.match(self.input, SHIFT_RIGHT, self.FOLLOW_SHIFT_RIGHT_in_synpred15_Java5055) - - - # $ANTLR end "synpred15_Java" - - - - # $ANTLR start "synpred16_Java" - def synpred16_Java_fragment(self, ): - # Java.g:288:9: ( BIT_SHIFT_RIGHT ) - # Java.g:288:9: BIT_SHIFT_RIGHT - pass - self.match(self.input, BIT_SHIFT_RIGHT, self.FOLLOW_BIT_SHIFT_RIGHT_in_synpred16_Java5065) - - - # $ANTLR end "synpred16_Java" - - - - # $ANTLR start "synpred17_Java" - def synpred17_Java_fragment(self, ): - # Java.g:293:15: ( bound ) - # Java.g:293:15: bound - pass - self._state.following.append(self.FOLLOW_bound_in_synpred17_Java5095) - self.bound() - - self._state.following.pop() - - - # $ANTLR end "synpred17_Java" - - - - # $ANTLR start "synpred32_Java" - def synpred32_Java_fragment(self, ): - # Java.g:350:9: ( STATIC block ) - # Java.g:350:9: STATIC block - pass - self.match(self.input, STATIC, self.FOLLOW_STATIC_in_synpred32_Java5595) - self._state.following.append(self.FOLLOW_block_in_synpred32_Java5597) - self.block() - - self._state.following.pop() - - - # $ANTLR end "synpred32_Java" - - - - # $ANTLR start "synpred42_Java" - def synpred42_Java_fragment(self, ): - # Java.g:352:13: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) ) - # Java.g:352:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - pass - # Java.g:352:13: ( genericTypeParameterList )? - alt162 = 2 - LA162_0 = self.input.LA(1) - - if (LA162_0 == LESS_THAN) : - alt162 = 1 - if alt162 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred42_Java5634) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:353:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - alt169 = 3 - LA169 = self.input.LA(1) - if LA169 == BOOLEAN or LA169 == BYTE or LA169 == CHAR or LA169 == DOUBLE or LA169 == FLOAT or LA169 == INT or LA169 == LONG or LA169 == SHORT: - alt169 = 1 - elif LA169 == IDENT: - LA169_2 = self.input.LA(2) - - if (LA169_2 == DOT or LA169_2 == LBRACK or LA169_2 == LESS_THAN or LA169_2 == IDENT) : - alt169 = 1 - elif (LA169_2 == LPAREN) : - alt169 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 169, 2, self.input) - - raise nvae - - elif LA169 == VOID: - alt169 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 169, 0, self.input) - - raise nvae - - if alt169 == 1: - # Java.g:353:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) - pass - self._state.following.append(self.FOLLOW_type_in_synpred42_Java5653) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred42_Java5655) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred42_Java5657) - self.formalParameterList() - - self._state.following.pop() - # Java.g:353:48: ( arrayDeclaratorList )? - alt163 = 2 - LA163_0 = self.input.LA(1) - - if (LA163_0 == LBRACK) : - alt163 = 1 - if alt163 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred42_Java5659) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:353:69: ( throwsClause )? - alt164 = 2 - LA164_0 = self.input.LA(1) - - if (LA164_0 == THROWS) : - alt164 = 1 - if alt164 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred42_Java5662) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:353:83: ( block | SEMI ) - alt165 = 2 - LA165_0 = self.input.LA(1) - - if (LA165_0 == LCURLY) : - alt165 = 1 - elif (LA165_0 == SEMI) : - alt165 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 165, 0, self.input) - - raise nvae - - if alt165 == 1: - # Java.g:353:84: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred42_Java5666) - self.block() - - self._state.following.pop() - - - elif alt165 == 2: - # Java.g:353:92: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred42_Java5670) - - - - - - elif alt169 == 2: - # Java.g:355:17: VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred42_Java5732) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred42_Java5734) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred42_Java5736) - self.formalParameterList() - - self._state.following.pop() - # Java.g:355:48: ( throwsClause )? - alt166 = 2 - LA166_0 = self.input.LA(1) - - if (LA166_0 == THROWS) : - alt166 = 1 - if alt166 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred42_Java5738) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:355:62: ( block | SEMI ) - alt167 = 2 - LA167_0 = self.input.LA(1) - - if (LA167_0 == LCURLY) : - alt167 = 1 - elif (LA167_0 == SEMI) : - alt167 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 167, 0, self.input) - - raise nvae - - if alt167 == 1: - # Java.g:355:63: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred42_Java5742) - self.block() - - self._state.following.pop() - - - elif alt167 == 2: - # Java.g:355:71: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred42_Java5746) - - - - - - elif alt169 == 3: - # Java.g:357:17: ident= IDENT formalParameterList ( throwsClause )? block - pass - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred42_Java5805) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred42_Java5807) - self.formalParameterList() - - self._state.following.pop() - # Java.g:357:49: ( throwsClause )? - alt168 = 2 - LA168_0 = self.input.LA(1) - - if (LA168_0 == THROWS) : - alt168 = 1 - if alt168 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred42_Java5809) - self.throwsClause() - - self._state.following.pop() - - - - self._state.following.append(self.FOLLOW_block_in_synpred42_Java5812) - self.block() - - self._state.following.pop() - - - - - - # $ANTLR end "synpred42_Java" - - - - # $ANTLR start "synpred43_Java" - def synpred43_Java_fragment(self, ): - # Java.g:351:9: ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) | type classFieldDeclaratorList SEMI ) ) - # Java.g:351:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) | type classFieldDeclaratorList SEMI ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_synpred43_Java5620) - self.modifierList() - - self._state.following.pop() - # Java.g:352:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) | type classFieldDeclaratorList SEMI ) - alt178 = 2 - LA178 = self.input.LA(1) - if LA178 == LESS_THAN or LA178 == VOID: - alt178 = 1 - elif LA178 == BOOLEAN or LA178 == BYTE or LA178 == CHAR or LA178 == DOUBLE or LA178 == FLOAT or LA178 == INT or LA178 == LONG or LA178 == SHORT: - LA178_2 = self.input.LA(2) - - if (self.synpred42_Java()) : - alt178 = 1 - elif (True) : - alt178 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 178, 2, self.input) - - raise nvae - - elif LA178 == IDENT: - LA178_3 = self.input.LA(2) - - if (self.synpred42_Java()) : - alt178 = 1 - elif (True) : - alt178 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 178, 3, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 178, 0, self.input) - - raise nvae - - if alt178 == 1: - # Java.g:352:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - pass - # Java.g:352:13: ( genericTypeParameterList )? - alt170 = 2 - LA170_0 = self.input.LA(1) - - if (LA170_0 == LESS_THAN) : - alt170 = 1 - if alt170 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred43_Java5634) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:353:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) | VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) | ident= IDENT formalParameterList ( throwsClause )? block ) - alt177 = 3 - LA177 = self.input.LA(1) - if LA177 == BOOLEAN or LA177 == BYTE or LA177 == CHAR or LA177 == DOUBLE or LA177 == FLOAT or LA177 == INT or LA177 == LONG or LA177 == SHORT: - alt177 = 1 - elif LA177 == IDENT: - LA177_2 = self.input.LA(2) - - if (LA177_2 == LPAREN) : - alt177 = 3 - elif (LA177_2 == DOT or LA177_2 == LBRACK or LA177_2 == LESS_THAN or LA177_2 == IDENT) : - alt177 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 177, 2, self.input) - - raise nvae - - elif LA177 == VOID: - alt177 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 177, 0, self.input) - - raise nvae - - if alt177 == 1: - # Java.g:353:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? ( block | SEMI ) - pass - self._state.following.append(self.FOLLOW_type_in_synpred43_Java5653) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred43_Java5655) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred43_Java5657) - self.formalParameterList() - - self._state.following.pop() - # Java.g:353:48: ( arrayDeclaratorList )? - alt171 = 2 - LA171_0 = self.input.LA(1) - - if (LA171_0 == LBRACK) : - alt171 = 1 - if alt171 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred43_Java5659) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:353:69: ( throwsClause )? - alt172 = 2 - LA172_0 = self.input.LA(1) - - if (LA172_0 == THROWS) : - alt172 = 1 - if alt172 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred43_Java5662) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:353:83: ( block | SEMI ) - alt173 = 2 - LA173_0 = self.input.LA(1) - - if (LA173_0 == LCURLY) : - alt173 = 1 - elif (LA173_0 == SEMI) : - alt173 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 173, 0, self.input) - - raise nvae - - if alt173 == 1: - # Java.g:353:84: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred43_Java5666) - self.block() - - self._state.following.pop() - - - elif alt173 == 2: - # Java.g:353:92: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred43_Java5670) - - - - - - elif alt177 == 2: - # Java.g:355:17: VOID IDENT formalParameterList ( throwsClause )? ( block | SEMI ) - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred43_Java5732) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred43_Java5734) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred43_Java5736) - self.formalParameterList() - - self._state.following.pop() - # Java.g:355:48: ( throwsClause )? - alt174 = 2 - LA174_0 = self.input.LA(1) - - if (LA174_0 == THROWS) : - alt174 = 1 - if alt174 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred43_Java5738) - self.throwsClause() - - self._state.following.pop() - - - - # Java.g:355:62: ( block | SEMI ) - alt175 = 2 - LA175_0 = self.input.LA(1) - - if (LA175_0 == LCURLY) : - alt175 = 1 - elif (LA175_0 == SEMI) : - alt175 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 175, 0, self.input) - - raise nvae - - if alt175 == 1: - # Java.g:355:63: block - pass - self._state.following.append(self.FOLLOW_block_in_synpred43_Java5742) - self.block() - - self._state.following.pop() - - - elif alt175 == 2: - # Java.g:355:71: SEMI - pass - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred43_Java5746) - - - - - - elif alt177 == 3: - # Java.g:357:17: ident= IDENT formalParameterList ( throwsClause )? block - pass - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred43_Java5805) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred43_Java5807) - self.formalParameterList() - - self._state.following.pop() - # Java.g:357:49: ( throwsClause )? - alt176 = 2 - LA176_0 = self.input.LA(1) - - if (LA176_0 == THROWS) : - alt176 = 1 - if alt176 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred43_Java5809) - self.throwsClause() - - self._state.following.pop() - - - - self._state.following.append(self.FOLLOW_block_in_synpred43_Java5812) - self.block() - - self._state.following.pop() - - - - - - elif alt178 == 2: - # Java.g:360:13: type classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred43_Java5876) - self.type() - - self._state.following.pop() - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_synpred43_Java5878) - self.classFieldDeclaratorList() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred43_Java5880) - - - - - - # $ANTLR end "synpred43_Java" - - - - # $ANTLR start "synpred44_Java" - def synpred44_Java_fragment(self, ): - # Java.g:363:9: ( typeDeclaration ) - # Java.g:363:9: typeDeclaration - pass - self._state.following.append(self.FOLLOW_typeDeclaration_in_synpred44_Java5925) - self.typeDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred44_Java" - - - - # $ANTLR start "synpred50_Java" - def synpred50_Java_fragment(self, ): - # Java.g:369:13: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) ) - # Java.g:369:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - pass - # Java.g:369:13: ( genericTypeParameterList )? - alt181 = 2 - LA181_0 = self.input.LA(1) - - if (LA181_0 == LESS_THAN) : - alt181 = 1 - if alt181 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred50_Java5969) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:370:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - alt185 = 2 - LA185_0 = self.input.LA(1) - - if (LA185_0 == BOOLEAN or LA185_0 == BYTE or LA185_0 == CHAR or LA185_0 == DOUBLE or LA185_0 == FLOAT or (INT <= LA185_0 <= LONG) or LA185_0 == SHORT or LA185_0 == IDENT) : - alt185 = 1 - elif (LA185_0 == VOID) : - alt185 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 185, 0, self.input) - - raise nvae - - if alt185 == 1: - # Java.g:370:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred50_Java5988) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred50_Java5990) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred50_Java5992) - self.formalParameterList() - - self._state.following.pop() - # Java.g:370:48: ( arrayDeclaratorList )? - alt182 = 2 - LA182_0 = self.input.LA(1) - - if (LA182_0 == LBRACK) : - alt182 = 1 - if alt182 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred50_Java5994) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:370:69: ( throwsClause )? - alt183 = 2 - LA183_0 = self.input.LA(1) - - if (LA183_0 == THROWS) : - alt183 = 1 - if alt183 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred50_Java5997) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred50_Java6000) - - - elif alt185 == 2: - # Java.g:372:17: VOID IDENT formalParameterList ( throwsClause )? SEMI - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred50_Java6058) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred50_Java6060) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred50_Java6062) - self.formalParameterList() - - self._state.following.pop() - # Java.g:372:48: ( throwsClause )? - alt184 = 2 - LA184_0 = self.input.LA(1) - - if (LA184_0 == THROWS) : - alt184 = 1 - if alt184 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred50_Java6064) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred50_Java6067) - - - - - - # $ANTLR end "synpred50_Java" - - - - # $ANTLR start "synpred51_Java" - def synpred51_Java_fragment(self, ): - # Java.g:368:9: ( modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) | type interfaceFieldDeclaratorList SEMI ) ) - # Java.g:368:9: modifierList ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) | type interfaceFieldDeclaratorList SEMI ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_synpred51_Java5955) - self.modifierList() - - self._state.following.pop() - # Java.g:369:9: ( ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) | type interfaceFieldDeclaratorList SEMI ) - alt191 = 2 - LA191 = self.input.LA(1) - if LA191 == LESS_THAN or LA191 == VOID: - alt191 = 1 - elif LA191 == BOOLEAN or LA191 == BYTE or LA191 == CHAR or LA191 == DOUBLE or LA191 == FLOAT or LA191 == INT or LA191 == LONG or LA191 == SHORT: - LA191_2 = self.input.LA(2) - - if (self.synpred50_Java()) : - alt191 = 1 - elif (True) : - alt191 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 191, 2, self.input) - - raise nvae - - elif LA191 == IDENT: - LA191_3 = self.input.LA(2) - - if (self.synpred50_Java()) : - alt191 = 1 - elif (True) : - alt191 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 191, 3, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 191, 0, self.input) - - raise nvae - - if alt191 == 1: - # Java.g:369:13: ( genericTypeParameterList )? ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - pass - # Java.g:369:13: ( genericTypeParameterList )? - alt186 = 2 - LA186_0 = self.input.LA(1) - - if (LA186_0 == LESS_THAN) : - alt186 = 1 - if alt186 == 1: - # Java.g:0:0: genericTypeParameterList - pass - self._state.following.append(self.FOLLOW_genericTypeParameterList_in_synpred51_Java5969) - self.genericTypeParameterList() - - self._state.following.pop() - - - - # Java.g:370:13: ( type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI | VOID IDENT formalParameterList ( throwsClause )? SEMI ) - alt190 = 2 - LA190_0 = self.input.LA(1) - - if (LA190_0 == BOOLEAN or LA190_0 == BYTE or LA190_0 == CHAR or LA190_0 == DOUBLE or LA190_0 == FLOAT or (INT <= LA190_0 <= LONG) or LA190_0 == SHORT or LA190_0 == IDENT) : - alt190 = 1 - elif (LA190_0 == VOID) : - alt190 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 190, 0, self.input) - - raise nvae - - if alt190 == 1: - # Java.g:370:17: type IDENT formalParameterList ( arrayDeclaratorList )? ( throwsClause )? SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred51_Java5988) - self.type() - - self._state.following.pop() - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred51_Java5990) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred51_Java5992) - self.formalParameterList() - - self._state.following.pop() - # Java.g:370:48: ( arrayDeclaratorList )? - alt187 = 2 - LA187_0 = self.input.LA(1) - - if (LA187_0 == LBRACK) : - alt187 = 1 - if alt187 == 1: - # Java.g:0:0: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred51_Java5994) - self.arrayDeclaratorList() - - self._state.following.pop() - - - - # Java.g:370:69: ( throwsClause )? - alt188 = 2 - LA188_0 = self.input.LA(1) - - if (LA188_0 == THROWS) : - alt188 = 1 - if alt188 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred51_Java5997) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred51_Java6000) - - - elif alt190 == 2: - # Java.g:372:17: VOID IDENT formalParameterList ( throwsClause )? SEMI - pass - self.match(self.input, VOID, self.FOLLOW_VOID_in_synpred51_Java6058) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred51_Java6060) - self._state.following.append(self.FOLLOW_formalParameterList_in_synpred51_Java6062) - self.formalParameterList() - - self._state.following.pop() - # Java.g:372:48: ( throwsClause )? - alt189 = 2 - LA189_0 = self.input.LA(1) - - if (LA189_0 == THROWS) : - alt189 = 1 - if alt189 == 1: - # Java.g:0:0: throwsClause - pass - self._state.following.append(self.FOLLOW_throwsClause_in_synpred51_Java6064) - self.throwsClause() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred51_Java6067) - - - - - - elif alt191 == 2: - # Java.g:375:13: type interfaceFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_type_in_synpred51_Java6130) - self.type() - - self._state.following.pop() - self._state.following.append(self.FOLLOW_interfaceFieldDeclaratorList_in_synpred51_Java6132) - self.interfaceFieldDeclaratorList() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred51_Java6134) - - - - - - # $ANTLR end "synpred51_Java" - - - - # $ANTLR start "synpred52_Java" - def synpred52_Java_fragment(self, ): - # Java.g:378:9: ( typeDeclaration ) - # Java.g:378:9: typeDeclaration - pass - self._state.following.append(self.FOLLOW_typeDeclaration_in_synpred52_Java6179) - self.typeDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred52_Java" - - - - # $ANTLR start "synpred58_Java" - def synpred58_Java_fragment(self, ): - # Java.g:417:9: ( arrayDeclarator ) - # Java.g:417:9: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_synpred58_Java6473) - self.arrayDeclarator() - - self._state.following.pop() - - - # $ANTLR end "synpred58_Java" - - - - # $ANTLR start "synpred76_Java" - def synpred76_Java_fragment(self, ): - # Java.g:466:23: ( arrayDeclaratorList ) - # Java.g:466:23: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred76_Java6860) - self.arrayDeclaratorList() - - self._state.following.pop() - - - # $ANTLR end "synpred76_Java" - - - - # $ANTLR start "synpred77_Java" - def synpred77_Java_fragment(self, ): - # Java.g:471:28: ( arrayDeclaratorList ) - # Java.g:471:28: arrayDeclaratorList - pass - self._state.following.append(self.FOLLOW_arrayDeclaratorList_in_synpred77_Java6903) - self.arrayDeclaratorList() - - self._state.following.pop() - - - # $ANTLR end "synpred77_Java" - - - - # $ANTLR start "synpred79_Java" - def synpred79_Java_fragment(self, ): - # Java.g:481:20: ( DOT typeIdent ) - # Java.g:481:20: DOT typeIdent - pass - self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred79_Java6988) - self._state.following.append(self.FOLLOW_typeIdent_in_synpred79_Java6990) - self.typeIdent() - - self._state.following.pop() - - - # $ANTLR end "synpred79_Java" - - - - # $ANTLR start "synpred90_Java" - def synpred90_Java_fragment(self, ): - # Java.g:510:40: ( COMMA genericTypeArgument ) - # Java.g:510:40: COMMA genericTypeArgument - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred90_Java7213) - self._state.following.append(self.FOLLOW_genericTypeArgument_in_synpred90_Java7215) - self.genericTypeArgument() - - self._state.following.pop() - - - # $ANTLR end "synpred90_Java" - - - - # $ANTLR start "synpred92_Java" - def synpred92_Java_fragment(self, ): - # Java.g:516:18: ( genericWildcardBoundType ) - # Java.g:516:18: genericWildcardBoundType - pass - self._state.following.append(self.FOLLOW_genericWildcardBoundType_in_synpred92_Java7269) - self.genericWildcardBoundType() - - self._state.following.pop() - - - # $ANTLR end "synpred92_Java" - - - - # $ANTLR start "synpred97_Java" - def synpred97_Java_fragment(self, ): - # Java.g:541:42: ( COMMA formalParameterStandardDecl ) - # Java.g:541:42: COMMA formalParameterStandardDecl - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred97_Java7470) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_synpred97_Java7472) - self.formalParameterStandardDecl() - - self._state.following.pop() - - - # $ANTLR end "synpred97_Java" - - - - # $ANTLR start "synpred99_Java" - def synpred99_Java_fragment(self, ): - # Java.g:541:13: ( formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? ) - # Java.g:541:13: formalParameterStandardDecl ( COMMA formalParameterStandardDecl )* ( COMMA formalParameterVarArgDecl )? - pass - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_synpred99_Java7467) - self.formalParameterStandardDecl() - - self._state.following.pop() - # Java.g:541:41: ( COMMA formalParameterStandardDecl )* - while True: #loop194 - alt194 = 2 - LA194_0 = self.input.LA(1) - - if (LA194_0 == COMMA) : - LA194_1 = self.input.LA(2) - - if (self.synpred97_Java()) : - alt194 = 1 - - - - - if alt194 == 1: - # Java.g:541:42: COMMA formalParameterStandardDecl - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred99_Java7470) - self._state.following.append(self.FOLLOW_formalParameterStandardDecl_in_synpred99_Java7472) - self.formalParameterStandardDecl() - - self._state.following.pop() - - - else: - break #loop194 - # Java.g:541:78: ( COMMA formalParameterVarArgDecl )? - alt195 = 2 - LA195_0 = self.input.LA(1) - - if (LA195_0 == COMMA) : - alt195 = 1 - if alt195 == 1: - # Java.g:541:79: COMMA formalParameterVarArgDecl - pass - self.match(self.input, COMMA, self.FOLLOW_COMMA_in_synpred99_Java7477) - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_synpred99_Java7479) - self.formalParameterVarArgDecl() - - self._state.following.pop() - - - - - - # $ANTLR end "synpred99_Java" - - - - # $ANTLR start "synpred100_Java" - def synpred100_Java_fragment(self, ): - # Java.g:544:13: ( formalParameterVarArgDecl ) - # Java.g:544:13: formalParameterVarArgDecl - pass - self._state.following.append(self.FOLLOW_formalParameterVarArgDecl_in_synpred100_Java7534) - self.formalParameterVarArgDecl() - - self._state.following.pop() - - - # $ANTLR end "synpred100_Java" - - - - # $ANTLR start "synpred101_Java" - def synpred101_Java_fragment(self, ): - # Java.g:565:13: ( DOT ident= IDENT ) - # Java.g:565:13: DOT ident= IDENT - pass - self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred101_Java7765) - ident=self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred101_Java7769) - - - # $ANTLR end "synpred101_Java" - - - - # $ANTLR start "synpred102_Java" - def synpred102_Java_fragment(self, ): - # Java.g:572:9: ( annotation ) - # Java.g:572:9: annotation - pass - self._state.following.append(self.FOLLOW_annotation_in_synpred102_Java7818) - self.annotation() - - self._state.following.pop() - - - # $ANTLR end "synpred102_Java" - - - - # $ANTLR start "synpred114_Java" - def synpred114_Java_fragment(self, ): - # Java.g:623:9: ( modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI | classFieldDeclaratorList SEMI ) ) - # Java.g:623:9: modifierList type ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI | classFieldDeclaratorList SEMI ) - pass - self._state.following.append(self.FOLLOW_modifierList_in_synpred114_Java8240) - self.modifierList() - - self._state.following.pop() - self._state.following.append(self.FOLLOW_type_in_synpred114_Java8242) - self.type() - - self._state.following.pop() - # Java.g:624:9: ( IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI | classFieldDeclaratorList SEMI ) - alt200 = 2 - LA200_0 = self.input.LA(1) - - if (LA200_0 == IDENT) : - LA200_1 = self.input.LA(2) - - if (LA200_1 == LPAREN) : - alt200 = 1 - elif (LA200_1 == ASSIGN or LA200_1 == COMMA or LA200_1 == LBRACK or LA200_1 == SEMI) : - alt200 = 2 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 200, 1, self.input) - - raise nvae - - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 200, 0, self.input) - - raise nvae - - if alt200 == 1: - # Java.g:624:13: IDENT LPAREN RPAREN ( annotationDefaultValue )? SEMI - pass - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred114_Java8256) - self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_synpred114_Java8258) - self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_synpred114_Java8260) - # Java.g:624:33: ( annotationDefaultValue )? - alt199 = 2 - LA199_0 = self.input.LA(1) - - if (LA199_0 == DEFAULT) : - alt199 = 1 - if alt199 == 1: - # Java.g:0:0: annotationDefaultValue - pass - self._state.following.append(self.FOLLOW_annotationDefaultValue_in_synpred114_Java8262) - self.annotationDefaultValue() - - self._state.following.pop() - - - - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred114_Java8265) - - - elif alt200 == 2: - # Java.g:626:13: classFieldDeclaratorList SEMI - pass - self._state.following.append(self.FOLLOW_classFieldDeclaratorList_in_synpred114_Java8307) - self.classFieldDeclaratorList() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred114_Java8309) - - - - - - # $ANTLR end "synpred114_Java" - - - - # $ANTLR start "synpred116_Java" - def synpred116_Java_fragment(self, ): - # Java.g:644:9: ( localVariableDeclaration SEMI ) - # Java.g:644:9: localVariableDeclaration SEMI - pass - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_synpred116_Java8440) - self.localVariableDeclaration() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred116_Java8442) - - - # $ANTLR end "synpred116_Java" - - - - # $ANTLR start "synpred117_Java" - def synpred117_Java_fragment(self, ): - # Java.g:645:9: ( typeDeclaration ) - # Java.g:645:9: typeDeclaration - pass - self._state.following.append(self.FOLLOW_typeDeclaration_in_synpred117_Java8453) - self.typeDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred117_Java" - - - - # $ANTLR start "synpred121_Java" - def synpred121_Java_fragment(self, ): - # Java.g:662:13: ( ELSE elseStat= statement ) - # Java.g:662:13: ELSE elseStat= statement - pass - self.match(self.input, ELSE, self.FOLLOW_ELSE_in_synpred121_Java8733) - self._state.following.append(self.FOLLOW_statement_in_synpred121_Java8737) - elseStat = self.statement() - - self._state.following.pop() - - - # $ANTLR end "synpred121_Java" - - - - # $ANTLR start "synpred123_Java" - def synpred123_Java_fragment(self, ): - # Java.g:666:13: ( forInit SEMI forCondition SEMI forUpdater RPAREN statement ) - # Java.g:666:13: forInit SEMI forCondition SEMI forUpdater RPAREN statement - pass - self._state.following.append(self.FOLLOW_forInit_in_synpred123_Java8916) - self.forInit() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred123_Java8918) - self._state.following.append(self.FOLLOW_forCondition_in_synpred123_Java8920) - self.forCondition() - - self._state.following.pop() - self.match(self.input, SEMI, self.FOLLOW_SEMI_in_synpred123_Java8922) - self._state.following.append(self.FOLLOW_forUpdater_in_synpred123_Java8924) - self.forUpdater() - - self._state.following.pop() - self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_synpred123_Java8926) - self._state.following.append(self.FOLLOW_statement_in_synpred123_Java8928) - self.statement() - - self._state.following.pop() - - - # $ANTLR end "synpred123_Java" - - - - # $ANTLR start "synpred130_Java" - def synpred130_Java_fragment(self, ): - # Java.g:673:47: ( switchBlockLabels ) - # Java.g:673:47: switchBlockLabels - pass - self._state.following.append(self.FOLLOW_switchBlockLabels_in_synpred130_Java9251) - self.switchBlockLabels() - - self._state.following.pop() - - - # $ANTLR end "synpred130_Java" - - - - # $ANTLR start "synpred143_Java" - def synpred143_Java_fragment(self, ): - # Java.g:702:11: (c0= switchCaseLabels ) - # Java.g:702:11: c0= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_synpred143_Java9839) - c0 = self.switchCaseLabels() - - self._state.following.pop() - - - # $ANTLR end "synpred143_Java" - - - - # $ANTLR start "synpred145_Java" - def synpred145_Java_fragment(self, ): - # Java.g:702:52: (c1= switchCaseLabels ) - # Java.g:702:52: c1= switchCaseLabels - pass - self._state.following.append(self.FOLLOW_switchCaseLabels_in_synpred145_Java9847) - c1 = self.switchCaseLabels() - - self._state.following.pop() - - - # $ANTLR end "synpred145_Java" - - - - # $ANTLR start "synpred146_Java" - def synpred146_Java_fragment(self, ): - # Java.g:707:9: ( switchCaseLabel ) - # Java.g:707:9: switchCaseLabel - pass - self._state.following.append(self.FOLLOW_switchCaseLabel_in_synpred146_Java9893) - self.switchCaseLabel() - - self._state.following.pop() - - - # $ANTLR end "synpred146_Java" - - - - # $ANTLR start "synpred149_Java" - def synpred149_Java_fragment(self, ): - # Java.g:719:9: ( localVariableDeclaration ) - # Java.g:719:9: localVariableDeclaration - pass - self._state.following.append(self.FOLLOW_localVariableDeclaration_in_synpred149_Java9967) - self.localVariableDeclaration() - - self._state.following.pop() - - - # $ANTLR end "synpred149_Java" - - - - # $ANTLR start "synpred150_Java" - def synpred150_Java_fragment(self, ): - # Java.g:720:9: ( expressionList ) - # Java.g:720:9: expressionList - pass - self._state.following.append(self.FOLLOW_expressionList_in_synpred150_Java9989) - self.expressionList() - - self._state.following.pop() - - - # $ANTLR end "synpred150_Java" - - - - # $ANTLR start "synpred193_Java" - def synpred193_Java_fragment(self, ): - # Java.g:856:9: ( LPAREN type RPAREN unaryExpression ) - # Java.g:856:9: LPAREN type RPAREN unaryExpression - pass - self.match(self.input, LPAREN, self.FOLLOW_LPAREN_in_synpred193_Java11492) - self._state.following.append(self.FOLLOW_type_in_synpred193_Java11494) - self.type() - - self._state.following.pop() - self.match(self.input, RPAREN, self.FOLLOW_RPAREN_in_synpred193_Java11496) - self._state.following.append(self.FOLLOW_unaryExpression_in_synpred193_Java11498) - self.unaryExpression() - - self._state.following.pop() - - - # $ANTLR end "synpred193_Java" - - - - # $ANTLR start "synpred221_Java" - def synpred221_Java_fragment(self, ): - # Java.g:924:13: ( ( arrayDeclarator )+ ( DOT CLASS ) ) - # Java.g:924:13: ( arrayDeclarator )+ ( DOT CLASS ) - pass - # Java.g:924:13: ( arrayDeclarator )+ - cnt224 = 0 - while True: #loop224 - alt224 = 2 - LA224_0 = self.input.LA(1) - - if (LA224_0 == LBRACK) : - alt224 = 1 - - - if alt224 == 1: - # Java.g:924:17: arrayDeclarator - pass - self._state.following.append(self.FOLLOW_arrayDeclarator_in_synpred221_Java13349) - self.arrayDeclarator() - - self._state.following.pop() - - - else: - if cnt224 >= 1: - break #loop224 - - if self._state.backtracking > 0: - raise BacktrackingFailed - - eee = EarlyExitException(224, self.input) - raise eee - - cnt224 += 1 - # Java.g:926:13: ( DOT CLASS ) - # Java.g:926:17: DOT CLASS - pass - self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred221_Java13416) - self.match(self.input, CLASS, self.FOLLOW_CLASS_in_synpred221_Java13418) - - - - - - # $ANTLR end "synpred221_Java" - - - - # $ANTLR start "synpred229_Java" - def synpred229_Java_fragment(self, ): - # Java.g:929:13: (outerDot= DOT ( CLASS | genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) | THIS | Super= SUPER arguments | innerNewExpression ) ) - # Java.g:929:13: outerDot= DOT ( CLASS | genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) | THIS | Super= SUPER arguments | innerNewExpression ) - pass - outerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred229_Java13549) - # Java.g:930:13: ( CLASS | genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) | THIS | Super= SUPER arguments | innerNewExpression ) - alt227 = 5 - LA227 = self.input.LA(1) - if LA227 == CLASS: - alt227 = 1 - elif LA227 == LESS_THAN: - alt227 = 2 - elif LA227 == THIS: - alt227 = 3 - elif LA227 == SUPER: - alt227 = 4 - elif LA227 == NEW: - alt227 = 5 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 227, 0, self.input) - - raise nvae - - if alt227 == 1: - # Java.g:930:17: CLASS - pass - self.match(self.input, CLASS, self.FOLLOW_CLASS_in_synpred229_Java13567) - - - elif alt227 == 2: - # Java.g:931:17: genericTypeArgumentListSimplified (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) - pass - self._state.following.append(self.FOLLOW_genericTypeArgumentListSimplified_in_synpred229_Java13630) - self.genericTypeArgumentListSimplified() - - self._state.following.pop() - # Java.g:932:17: (Super= SUPER arguments | SUPER innerDot= DOT IDENT arguments | IDENT arguments ) - alt226 = 3 - LA226_0 = self.input.LA(1) - - if (LA226_0 == SUPER) : - LA226_1 = self.input.LA(2) - - if (LA226_1 == DOT) : - alt226 = 2 - elif (LA226_1 == LPAREN) : - alt226 = 1 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 226, 1, self.input) - - raise nvae - - elif (LA226_0 == IDENT) : - alt226 = 3 - else: - if self._state.backtracking > 0: - raise BacktrackingFailed - - nvae = NoViableAltException("", 226, 0, self.input) - - raise nvae - - if alt226 == 1: - # Java.g:932:21: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_synpred229_Java13654) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13656) - self.arguments() - - self._state.following.pop() - - - elif alt226 == 2: - # Java.g:933:21: SUPER innerDot= DOT IDENT arguments - pass - self.match(self.input, SUPER, self.FOLLOW_SUPER_in_synpred229_Java13706) - innerDot=self.match(self.input, DOT, self.FOLLOW_DOT_in_synpred229_Java13710) - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred229_Java13712) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13714) - self.arguments() - - self._state.following.pop() - - - elif alt226 == 3: - # Java.g:934:21: IDENT arguments - pass - self.match(self.input, IDENT, self.FOLLOW_IDENT_in_synpred229_Java13764) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13766) - self.arguments() - - self._state.following.pop() - - - - - - elif alt227 == 3: - # Java.g:936:17: THIS - pass - self.match(self.input, THIS, self.FOLLOW_THIS_in_synpred229_Java13841) - - - elif alt227 == 4: - # Java.g:937:17: Super= SUPER arguments - pass - Super=self.match(self.input, SUPER, self.FOLLOW_SUPER_in_synpred229_Java13907) - self._state.following.append(self.FOLLOW_arguments_in_synpred229_Java13909) - self.arguments() - - self._state.following.pop() - - - elif alt227 == 5: - # Java.g:938:17: innerNewExpression - pass - self._state.following.append(self.FOLLOW_innerNewExpression_in_synpred229_Java13957) - self.innerNewExpression() - - self._state.following.pop() - - - - - - # $ANTLR end "synpred229_Java" - - - - # $ANTLR start "synpred237_Java" - def synpred237_Java_fragment(self, ): - # Java.g:963:37: ( LBRACK expression RBRACK ) - # Java.g:963:37: LBRACK expression RBRACK - pass - self.match(self.input, LBRACK, self.FOLLOW_LBRACK_in_synpred237_Java14352) - self._state.following.append(self.FOLLOW_expression_in_synpred237_Java14355) - self.expression() - - self._state.following.pop() - self.match(self.input, RBRACK, self.FOLLOW_RBRACK_in_synpred237_Java14357) - - - # $ANTLR end "synpred237_Java" - - - - - # Delegated rules - - def synpred193_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred193_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred43_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred43_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred121_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred121_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred76_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred76_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred221_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred221_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred229_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred229_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred114_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred114_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred116_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred116_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred97_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred97_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred102_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred102_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred117_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred117_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred79_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred79_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred101_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred101_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred130_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred130_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred16_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred16_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred42_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred42_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred145_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred145_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred143_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred143_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred77_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred77_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred51_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred51_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred100_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred100_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred52_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred52_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred15_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred15_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred123_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred123_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred32_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred32_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred149_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred149_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred17_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred17_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred92_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred92_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred90_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred90_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred150_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred150_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred58_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred58_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred50_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred50_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred14_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred14_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred99_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred99_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred146_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred146_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred237_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred237_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - def synpred44_Java(self): - self._state.backtracking += 1 - start = self.input.mark() - try: - self.synpred44_Java_fragment() - except BacktrackingFailed: - success = False - else: - success = True - self.input.rewind(start) - self._state.backtracking -= 1 - return success - - - - # lookup tables for DFA #36 - - DFA36_eot = DFA.unpack( - u"\27\uffff" - ) - - DFA36_eof = DFA.unpack( - u"\27\uffff" - ) - - DFA36_min = DFA.unpack( - u"\1\7\1\uffff\14\0\11\uffff" - ) - - DFA36_max = DFA.unpack( - u"\1\u00a4\1\uffff\14\0\11\uffff" - ) - - DFA36_accept = DFA.unpack( - u"\1\uffff\1\1\14\uffff\1\3\3\uffff\1\4\2\uffff\1\5\1\2" - ) - - DFA36_special = DFA.unpack( - u"\2\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\11" - u"\uffff" - ) - - - DFA36_transition = [ - DFA.unpack(u"\1\15\17\uffff\1\1\1\uffff\1\16\22\uffff\1\25\10\uffff" - u"\1\6\1\uffff\1\16\1\uffff\1\16\2\uffff\1\16\1\22\3\uffff\1\16\1" - u"\uffff\1\22\2\uffff\1\14\1\uffff\1\16\4\uffff\1\22\1\uffff\2\16" - u"\1\7\3\uffff\1\5\1\4\1\3\1\uffff\1\16\1\2\1\13\2\uffff\1\10\3\uffff" - u"\1\11\2\uffff\1\16\1\12\75\uffff\1\16"), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #36 - - class DFA36(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA36_2 = input.LA(1) - - - index36_2 = input.index() - input.rewind() - s = -1 - if (self.synpred32_Java()): - s = 22 - - elif (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_2) - if s >= 0: - return s - elif s == 1: - LA36_3 = input.LA(1) - - - index36_3 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_3) - if s >= 0: - return s - elif s == 2: - LA36_4 = input.LA(1) - - - index36_4 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_4) - if s >= 0: - return s - elif s == 3: - LA36_5 = input.LA(1) - - - index36_5 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_5) - if s >= 0: - return s - elif s == 4: - LA36_6 = input.LA(1) - - - index36_6 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_6) - if s >= 0: - return s - elif s == 5: - LA36_7 = input.LA(1) - - - index36_7 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_7) - if s >= 0: - return s - elif s == 6: - LA36_8 = input.LA(1) - - - index36_8 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_8) - if s >= 0: - return s - elif s == 7: - LA36_9 = input.LA(1) - - - index36_9 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_9) - if s >= 0: - return s - elif s == 8: - LA36_10 = input.LA(1) - - - index36_10 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_10) - if s >= 0: - return s - elif s == 9: - LA36_11 = input.LA(1) - - - index36_11 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_11) - if s >= 0: - return s - elif s == 10: - LA36_12 = input.LA(1) - - - index36_12 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_12) - if s >= 0: - return s - elif s == 11: - LA36_13 = input.LA(1) - - - index36_13 = input.index() - input.rewind() - s = -1 - if (self.synpred43_Java()): - s = 14 - - elif (self.synpred44_Java()): - s = 18 - - - input.seek(index36_13) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 36, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #43 - - DFA43_eot = DFA.unpack( - u"\25\uffff" - ) - - DFA43_eof = DFA.unpack( - u"\25\uffff" - ) - - DFA43_min = DFA.unpack( - u"\1\7\14\0\10\uffff" - ) - - DFA43_max = DFA.unpack( - u"\1\u00a4\14\0\10\uffff" - ) - - DFA43_accept = DFA.unpack( - u"\15\uffff\1\1\3\uffff\1\2\2\uffff\1\3" - ) - - DFA43_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\10" - u"\uffff" - ) - - - DFA43_transition = [ - DFA.unpack(u"\1\14\21\uffff\1\15\22\uffff\1\24\10\uffff\1\5\1\uffff" - u"\1\15\1\uffff\1\15\2\uffff\1\15\1\21\3\uffff\1\15\1\uffff\1\21" - u"\2\uffff\1\13\1\uffff\1\15\4\uffff\1\21\1\uffff\2\15\1\6\3\uffff" - u"\1\3\1\2\1\1\1\uffff\1\15\1\4\1\12\2\uffff\1\7\3\uffff\1\10\2\uffff" - u"\1\15\1\11\75\uffff\1\15"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #43 - - class DFA43(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA43_1 = input.LA(1) - - - index43_1 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_1) - if s >= 0: - return s - elif s == 1: - LA43_2 = input.LA(1) - - - index43_2 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_2) - if s >= 0: - return s - elif s == 2: - LA43_3 = input.LA(1) - - - index43_3 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_3) - if s >= 0: - return s - elif s == 3: - LA43_4 = input.LA(1) - - - index43_4 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_4) - if s >= 0: - return s - elif s == 4: - LA43_5 = input.LA(1) - - - index43_5 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_5) - if s >= 0: - return s - elif s == 5: - LA43_6 = input.LA(1) - - - index43_6 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_6) - if s >= 0: - return s - elif s == 6: - LA43_7 = input.LA(1) - - - index43_7 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_7) - if s >= 0: - return s - elif s == 7: - LA43_8 = input.LA(1) - - - index43_8 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_8) - if s >= 0: - return s - elif s == 8: - LA43_9 = input.LA(1) - - - index43_9 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_9) - if s >= 0: - return s - elif s == 9: - LA43_10 = input.LA(1) - - - index43_10 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_10) - if s >= 0: - return s - elif s == 10: - LA43_11 = input.LA(1) - - - index43_11 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_11) - if s >= 0: - return s - elif s == 11: - LA43_12 = input.LA(1) - - - index43_12 = input.index() - input.rewind() - s = -1 - if (self.synpred51_Java()): - s = 13 - - elif (self.synpred52_Java()): - s = 17 - - - input.seek(index43_12) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 43, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #86 - - DFA86_eot = DFA.unpack( - u"\22\uffff" - ) - - DFA86_eof = DFA.unpack( - u"\22\uffff" - ) - - DFA86_min = DFA.unpack( - u"\1\7\14\0\5\uffff" - ) - - DFA86_max = DFA.unpack( - u"\1\u00a4\14\0\5\uffff" - ) - - DFA86_accept = DFA.unpack( - u"\15\uffff\1\1\1\uffff\1\2\2\uffff" - ) - - DFA86_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\5" - u"\uffff" - ) - - - DFA86_transition = [ - DFA.unpack(u"\1\14\55\uffff\1\5\1\uffff\1\15\1\uffff\1\15\2\uffff" - u"\1\15\1\17\3\uffff\1\15\1\uffff\1\17\2\uffff\1\13\1\uffff\1\15" - u"\4\uffff\1\17\1\uffff\2\15\1\6\3\uffff\1\3\1\2\1\1\1\uffff\1\15" - u"\1\4\1\12\2\uffff\1\7\3\uffff\1\10\3\uffff\1\11\75\uffff\1\15"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #86 - - class DFA86(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA86_1 = input.LA(1) - - - index86_1 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_1) - if s >= 0: - return s - elif s == 1: - LA86_2 = input.LA(1) - - - index86_2 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_2) - if s >= 0: - return s - elif s == 2: - LA86_3 = input.LA(1) - - - index86_3 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_3) - if s >= 0: - return s - elif s == 3: - LA86_4 = input.LA(1) - - - index86_4 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_4) - if s >= 0: - return s - elif s == 4: - LA86_5 = input.LA(1) - - - index86_5 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_5) - if s >= 0: - return s - elif s == 5: - LA86_6 = input.LA(1) - - - index86_6 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_6) - if s >= 0: - return s - elif s == 6: - LA86_7 = input.LA(1) - - - index86_7 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_7) - if s >= 0: - return s - elif s == 7: - LA86_8 = input.LA(1) - - - index86_8 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_8) - if s >= 0: - return s - elif s == 8: - LA86_9 = input.LA(1) - - - index86_9 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_9) - if s >= 0: - return s - elif s == 9: - LA86_10 = input.LA(1) - - - index86_10 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_10) - if s >= 0: - return s - elif s == 10: - LA86_11 = input.LA(1) - - - index86_11 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_11) - if s >= 0: - return s - elif s == 11: - LA86_12 = input.LA(1) - - - index86_12 = input.index() - input.rewind() - s = -1 - if (self.synpred114_Java()): - s = 13 - - elif (True): - s = 15 - - - input.seek(index86_12) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 86, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #88 - - DFA88_eot = DFA.unpack( - u"\55\uffff" - ) - - DFA88_eof = DFA.unpack( - u"\55\uffff" - ) - - DFA88_min = DFA.unpack( - u"\1\7\4\0\6\uffff\1\0\41\uffff" - ) - - DFA88_max = DFA.unpack( - u"\1\u00aa\4\0\6\uffff\1\0\41\uffff" - ) - - DFA88_accept = DFA.unpack( - u"\5\uffff\1\2\14\uffff\1\3\31\uffff\1\1" - ) - - DFA88_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\6\uffff\1\4\41\uffff" - ) - - - DFA88_transition = [ - DFA.unpack(u"\1\2\4\uffff\1\22\10\uffff\1\22\1\uffff\1\22\1\uffff" - u"\1\22\1\uffff\1\22\1\uffff\2\22\3\uffff\1\22\3\uffff\1\22\5\uffff" - u"\1\22\10\uffff\1\5\1\22\1\3\1\22\1\3\2\uffff\1\3\1\5\1\22\1\uffff" - u"\1\22\1\3\1\uffff\1\5\1\uffff\1\22\1\1\1\uffff\1\3\2\22\2\uffff" - u"\1\5\1\uffff\2\3\1\5\2\22\1\uffff\3\5\1\22\1\3\2\5\2\22\1\13\2" - u"\22\1\uffff\1\5\3\22\1\5\1\22\74\uffff\1\4\6\22"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #88 - - class DFA88(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA88_1 = input.LA(1) - - - index88_1 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (self.synpred117_Java()): - s = 5 - - - input.seek(index88_1) - if s >= 0: - return s - elif s == 1: - LA88_2 = input.LA(1) - - - index88_2 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (self.synpred117_Java()): - s = 5 - - - input.seek(index88_2) - if s >= 0: - return s - elif s == 2: - LA88_3 = input.LA(1) - - - index88_3 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (True): - s = 18 - - - input.seek(index88_3) - if s >= 0: - return s - elif s == 3: - LA88_4 = input.LA(1) - - - index88_4 = input.index() - input.rewind() - s = -1 - if (self.synpred116_Java()): - s = 44 - - elif (True): - s = 18 - - - input.seek(index88_4) - if s >= 0: - return s - elif s == 4: - LA88_11 = input.LA(1) - - - index88_11 = input.index() - input.rewind() - s = -1 - if (self.synpred117_Java()): - s = 5 - - elif (True): - s = 18 - - - input.seek(index88_11) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 88, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #98 - - DFA98_eot = DFA.unpack( - u"\22\uffff" - ) - - DFA98_eof = DFA.unpack( - u"\22\uffff" - ) - - DFA98_min = DFA.unpack( - u"\1\14\15\uffff\1\4\3\uffff" - ) - - DFA98_max = DFA.unpack( - u"\1\u00aa\15\uffff\1\114\3\uffff" - ) - - DFA98_accept = DFA.unpack( - u"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1" - u"\15\1\uffff\1\17\1\20\1\16" - ) - - DFA98_special = DFA.unpack( - u"\22\uffff" - ) - - - DFA98_transition = [ - DFA.unpack(u"\1\17\10\uffff\1\17\1\uffff\1\1\1\uffff\1\17\1\uffff" - u"\1\17\1\uffff\2\17\3\uffff\1\17\3\uffff\1\17\5\uffff\1\20\11\uffff" - u"\1\2\1\17\1\14\1\17\2\uffff\1\17\1\uffff\1\15\1\uffff\1\6\1\17" - u"\3\uffff\1\17\2\uffff\1\17\1\4\1\3\4\uffff\2\17\1\uffff\2\17\4" - u"\uffff\1\12\1\17\2\uffff\1\17\1\10\1\11\1\17\1\13\2\uffff\1\17" - u"\1\7\1\17\1\uffff\1\5\74\uffff\1\16\6\17"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\3\17\1\uffff\2\17\1\21\1\uffff\4\17\2\uffff\5\17\1" - u"\uffff\3\17\1\uffff\6\17\1\uffff\6\17\3\uffff\11\17\27\uffff\1" - u"\17"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #98 - - class DFA98(DFA): - pass - - - # lookup tables for DFA #91 - - DFA91_eot = DFA.unpack( - u"\24\uffff" - ) - - DFA91_eof = DFA.unpack( - u"\24\uffff" - ) - - DFA91_min = DFA.unpack( - u"\1\7\4\0\17\uffff" - ) - - DFA91_max = DFA.unpack( - u"\1\u00aa\4\0\17\uffff" - ) - - DFA91_accept = DFA.unpack( - u"\5\uffff\1\1\15\uffff\1\2" - ) - - DFA91_special = DFA.unpack( - u"\1\uffff\1\0\1\1\1\2\1\3\17\uffff" - ) - - - DFA91_transition = [ - DFA.unpack(u"\1\2\4\uffff\1\5\10\uffff\1\5\3\uffff\1\5\1\uffff\1" - u"\5\1\uffff\2\5\3\uffff\1\5\3\uffff\1\5\5\uffff\1\5\12\uffff\1\3" - u"\1\uffff\1\3\2\uffff\1\3\4\uffff\1\3\3\uffff\1\5\1\1\1\uffff\1" - u"\3\6\uffff\2\3\1\uffff\2\5\5\uffff\1\3\2\uffff\1\5\2\uffff\1\5" - u"\3\uffff\1\5\1\uffff\1\5\76\uffff\1\4\6\5"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #91 - - class DFA91(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA91_1 = input.LA(1) - - - index91_1 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_1) - if s >= 0: - return s - elif s == 1: - LA91_2 = input.LA(1) - - - index91_2 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_2) - if s >= 0: - return s - elif s == 2: - LA91_3 = input.LA(1) - - - index91_3 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_3) - if s >= 0: - return s - elif s == 3: - LA91_4 = input.LA(1) - - - index91_4 = input.index() - input.rewind() - s = -1 - if (self.synpred123_Java()): - s = 5 - - elif (True): - s = 19 - - - input.seek(index91_4) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 91, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #106 - - DFA106_eot = DFA.unpack( - u"\23\uffff" - ) - - DFA106_eof = DFA.unpack( - u"\23\uffff" - ) - - DFA106_min = DFA.unpack( - u"\1\7\2\uffff\2\0\16\uffff" - ) - - DFA106_max = DFA.unpack( - u"\1\u00aa\2\uffff\2\0\16\uffff" - ) - - DFA106_accept = DFA.unpack( - u"\1\uffff\1\1\3\uffff\1\2\14\uffff\1\3" - ) - - DFA106_special = DFA.unpack( - u"\3\uffff\1\0\1\1\16\uffff" - ) - - - DFA106_transition = [ - DFA.unpack(u"\1\1\4\uffff\1\5\10\uffff\1\5\3\uffff\1\5\1\uffff\1" - u"\5\1\uffff\2\5\3\uffff\1\5\3\uffff\1\5\5\uffff\1\22\12\uffff\1" - u"\3\1\uffff\1\3\2\uffff\1\3\4\uffff\1\3\3\uffff\1\5\1\1\1\uffff" - u"\1\3\6\uffff\2\3\1\uffff\2\5\5\uffff\1\3\2\uffff\1\5\2\uffff\1" - u"\5\3\uffff\1\5\1\uffff\1\5\76\uffff\1\4\6\5"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #106 - - class DFA106(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA106_3 = input.LA(1) - - - index106_3 = input.index() - input.rewind() - s = -1 - if (self.synpred149_Java()): - s = 1 - - elif (self.synpred150_Java()): - s = 5 - - - input.seek(index106_3) - if s >= 0: - return s - elif s == 1: - LA106_4 = input.LA(1) - - - index106_4 = input.index() - input.rewind() - s = -1 - if (self.synpred149_Java()): - s = 1 - - elif (self.synpred150_Java()): - s = 5 - - - input.seek(index106_4) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 106, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #130 - - DFA130_eot = DFA.unpack( - u"\15\uffff" - ) - - DFA130_eof = DFA.unpack( - u"\15\uffff" - ) - - DFA130_min = DFA.unpack( - u"\1\31\2\uffff\1\0\11\uffff" - ) - - DFA130_max = DFA.unpack( - u"\1\u00aa\2\uffff\1\0\11\uffff" - ) - - DFA130_accept = DFA.unpack( - u"\1\uffff\1\1\1\2\1\uffff\1\4\7\uffff\1\3" - ) - - DFA130_special = DFA.unpack( - u"\3\uffff\1\0\11\uffff" - ) - - - DFA130_transition = [ - DFA.unpack(u"\1\4\1\uffff\1\2\1\uffff\1\3\4\uffff\1\1\24\uffff\1" - u"\4\1\uffff\1\4\2\uffff\1\4\4\uffff\1\4\3\uffff\1\4\2\uffff\1\4" - u"\6\uffff\2\4\1\uffff\2\4\5\uffff\1\4\2\uffff\1\4\2\uffff\1\4\3" - u"\uffff\1\4\1\uffff\1\4\76\uffff\7\4"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #130 - - class DFA130(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA130_3 = input.LA(1) - - - index130_3 = input.index() - input.rewind() - s = -1 - if (self.synpred193_Java()): - s = 12 - - elif (True): - s = 4 - - - input.seek(index130_3) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 130, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #142 - - DFA142_eot = DFA.unpack( - u"\14\uffff" - ) - - DFA142_eof = DFA.unpack( - u"\14\uffff" - ) - - DFA142_min = DFA.unpack( - u"\1\31\6\uffff\1\17\4\uffff" - ) - - DFA142_max = DFA.unpack( - u"\1\u00aa\6\uffff\1\35\4\uffff" - ) - - DFA142_accept = DFA.unpack( - u"\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\uffff\1\11\1\12\1\10\1\7" - ) - - DFA142_special = DFA.unpack( - u"\14\uffff" - ) - - - DFA142_transition = [ - DFA.unpack(u"\1\5\3\uffff\1\1\31\uffff\1\10\1\uffff\1\10\2\uffff" - u"\1\10\4\uffff\1\10\3\uffff\1\2\2\uffff\1\10\6\uffff\2\10\1\uffff" - u"\1\3\1\2\5\uffff\1\10\2\uffff\1\7\2\uffff\1\6\3\uffff\1\2\1\uffff" - u"\1\11\76\uffff\1\4\6\2"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"\1\12\15\uffff\1\13"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #142 - - class DFA142(DFA): - pass - - - # lookup tables for DFA #146 - - DFA146_eot = DFA.unpack( - u"\60\uffff" - ) - - DFA146_eof = DFA.unpack( - u"\1\4\57\uffff" - ) - - DFA146_min = DFA.unpack( - u"\1\4\1\0\1\uffff\1\0\54\uffff" - ) - - DFA146_max = DFA.unpack( - u"\1\114\1\0\1\uffff\1\0\54\uffff" - ) - - DFA146_accept = DFA.unpack( - u"\2\uffff\1\2\1\uffff\1\4\51\uffff\1\1\1\3" - ) - - DFA146_special = DFA.unpack( - u"\1\uffff\1\0\1\uffff\1\1\54\uffff" - ) - - - DFA146_transition = [ - DFA.unpack(u"\3\4\1\uffff\7\4\1\3\2\uffff\4\4\1\1\1\uffff\3\4\1\uffff" - u"\1\4\1\2\4\4\1\uffff\22\4\27\uffff\1\4"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #146 - - class DFA146(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA146_1 = input.LA(1) - - - index146_1 = input.index() - input.rewind() - s = -1 - if (self.synpred221_Java()): - s = 46 - - elif (True): - s = 4 - - - input.seek(index146_1) - if s >= 0: - return s - elif s == 1: - LA146_3 = input.LA(1) - - - index146_3 = input.index() - input.rewind() - s = -1 - if (self.synpred229_Java()): - s = 47 - - elif (True): - s = 4 - - - input.seek(index146_3) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 146, _s, input) - self_.error(nvae) - raise nvae - # lookup tables for DFA #153 - - DFA153_eot = DFA.unpack( - u"\56\uffff" - ) - - DFA153_eof = DFA.unpack( - u"\1\2\55\uffff" - ) - - DFA153_min = DFA.unpack( - u"\1\4\1\0\54\uffff" - ) - - DFA153_max = DFA.unpack( - u"\1\114\1\0\54\uffff" - ) - - DFA153_accept = DFA.unpack( - u"\2\uffff\1\2\52\uffff\1\1" - ) - - DFA153_special = DFA.unpack( - u"\1\uffff\1\0\54\uffff" - ) - - - DFA153_transition = [ - DFA.unpack(u"\3\2\1\uffff\10\2\2\uffff\4\2\1\1\1\uffff\3\2\1\uffff" - u"\1\2\1\uffff\4\2\1\uffff\22\2\27\uffff\1\2"), - DFA.unpack(u"\1\uffff"), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u""), - DFA.unpack(u"") - ] - - # class definition for DFA #153 - - class DFA153(DFA): - pass - - - def specialStateTransition(self_, s, input): - # convince pylint that my self_ magic is ok ;) - # pylint: disable-msg=E0213 - - # pretend we are a member of the recognizer - # thus semantic predicates can be evaluated - self = self_.recognizer - - _s = s - - if s == 0: - LA153_1 = input.LA(1) - - - index153_1 = input.index() - input.rewind() - s = -1 - if (self.synpred237_Java()): - s = 45 - - elif (True): - s = 2 - - - input.seek(index153_1) - if s >= 0: - return s - - if self._state.backtracking >0: - raise BacktrackingFailed - nvae = NoViableAltException(self_.getDescription(), 153, _s, input) - self_.error(nvae) - raise nvae - - - FOLLOW_compilationUnit_in_javaSource4461 = frozenset([1]) - FOLLOW_annotationList_in_compilationUnit4497 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 78, 81, 84, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_packageDeclaration_in_compilationUnit4507 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 78, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_importDeclaration_in_compilationUnit4518 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 78, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_typeDecls_in_compilationUnit4529 = frozenset([1, 7, 44, 53, 61, 67, 70, 77, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_typeDeclaration_in_typeDecls4549 = frozenset([1]) - FOLLOW_SEMI_in_typeDecls4559 = frozenset([1]) - FOLLOW_PACKAGE_in_packageDeclaration4579 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_packageDeclaration4582 = frozenset([44]) - FOLLOW_SEMI_in_packageDeclaration4584 = frozenset([1]) - FOLLOW_IMPORT_in_importDeclaration4604 = frozenset([90, 164]) - FOLLOW_STATIC_in_importDeclaration4607 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_importDeclaration4610 = frozenset([16, 44]) - FOLLOW_DOTSTAR_in_importDeclaration4612 = frozenset([44]) - FOLLOW_SEMI_in_importDeclaration4615 = frozenset([1]) - FOLLOW_modifierList_in_typeDeclaration4635 = frozenset([7, 53, 61, 67, 70, 77, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_classTypeDeclaration_in_typeDeclaration4650 = frozenset([1]) - FOLLOW_interfaceTypeDeclaration_in_typeDeclaration4665 = frozenset([1]) - FOLLOW_enumTypeDeclaration_in_typeDeclaration4680 = frozenset([1]) - FOLLOW_annotationTypeDeclaration_in_typeDeclaration4695 = frozenset([1]) - FOLLOW_CLASS_in_classTypeDeclaration4726 = frozenset([164]) - FOLLOW_IDENT_in_classTypeDeclaration4728 = frozenset([23, 25, 68, 75]) - FOLLOW_genericTypeParameterList_in_classTypeDeclaration4730 = frozenset([23, 25, 68, 75]) - FOLLOW_classExtendsClause_in_classTypeDeclaration4733 = frozenset([23, 25, 68, 75]) - FOLLOW_implementsClause_in_classTypeDeclaration4736 = frozenset([23, 25, 68, 75]) - FOLLOW_classBody_in_classTypeDeclaration4739 = frozenset([1]) - FOLLOW_EXTENDS_in_classExtendsClause4802 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_classExtendsClause4804 = frozenset([1]) - FOLLOW_EXTENDS_in_interfaceExtendsClause4841 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeList_in_interfaceExtendsClause4843 = frozenset([1]) - FOLLOW_IMPLEMENTS_in_implementsClause4880 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeList_in_implementsClause4882 = frozenset([1]) - FOLLOW_LESS_THAN_in_genericTypeParameterList4919 = frozenset([164]) - FOLLOW_genericTypeParameter_in_genericTypeParameterList4921 = frozenset([8, 11, 20, 47]) - FOLLOW_COMMA_in_genericTypeParameterList4924 = frozenset([164]) - FOLLOW_genericTypeParameter_in_genericTypeParameterList4926 = frozenset([8, 11, 20, 47]) - FOLLOW_genericTypeListClosing_in_genericTypeParameterList4930 = frozenset([1]) - FOLLOW_GREATER_THAN_in_genericTypeListClosing5045 = frozenset([1]) - FOLLOW_SHIFT_RIGHT_in_genericTypeListClosing5055 = frozenset([1]) - FOLLOW_BIT_SHIFT_RIGHT_in_genericTypeListClosing5065 = frozenset([1]) - FOLLOW_IDENT_in_genericTypeParameter5093 = frozenset([1, 68]) - FOLLOW_bound_in_genericTypeParameter5095 = frozenset([1]) - FOLLOW_EXTENDS_in_bound5133 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_bound5135 = frozenset([1, 4]) - FOLLOW_AND_in_bound5138 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_bound5140 = frozenset([1, 4]) - FOLLOW_ENUM_in_enumTypeDeclaration5181 = frozenset([164]) - FOLLOW_IDENT_in_enumTypeDeclaration5183 = frozenset([23, 75]) - FOLLOW_implementsClause_in_enumTypeDeclaration5185 = frozenset([23, 75]) - FOLLOW_enumBody_in_enumTypeDeclaration5188 = frozenset([1]) - FOLLOW_LCURLY_in_enumBody5231 = frozenset([7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102, 164]) - FOLLOW_enumScopeDeclarations_in_enumBody5233 = frozenset([42]) - FOLLOW_RCURLY_in_enumBody5235 = frozenset([1]) - FOLLOW_enumConstants_in_enumScopeDeclarations5272 = frozenset([1, 11, 44]) - FOLLOW_COMMA_in_enumScopeDeclarations5275 = frozenset([1, 44]) - FOLLOW_enumClassScopeDeclarations_in_enumScopeDeclarations5280 = frozenset([1]) - FOLLOW_SEMI_in_enumClassScopeDeclarations5300 = frozenset([1, 7, 23, 25, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_classScopeDeclarations_in_enumClassScopeDeclarations5302 = frozenset([1, 7, 23, 25, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_enumConstant_in_enumConstants5341 = frozenset([1, 11]) - FOLLOW_COMMA_in_enumConstants5344 = frozenset([7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102, 164]) - FOLLOW_enumConstant_in_enumConstants5347 = frozenset([1, 11]) - FOLLOW_annotationList_in_enumConstant5368 = frozenset([164]) - FOLLOW_IDENT_in_enumConstant5370 = frozenset([1, 23, 25, 29, 68, 75]) - FOLLOW_arguments_in_enumConstant5373 = frozenset([1, 23, 25, 68, 75]) - FOLLOW_classBody_in_enumConstant5376 = frozenset([1]) - FOLLOW_INTERFACE_in_interfaceTypeDeclaration5397 = frozenset([164]) - FOLLOW_IDENT_in_interfaceTypeDeclaration5399 = frozenset([23, 25, 68]) - FOLLOW_genericTypeParameterList_in_interfaceTypeDeclaration5401 = frozenset([23, 25, 68]) - FOLLOW_interfaceExtendsClause_in_interfaceTypeDeclaration5404 = frozenset([23, 25, 68]) - FOLLOW_interfaceBody_in_interfaceTypeDeclaration5407 = frozenset([1]) - FOLLOW_type_in_typeList5453 = frozenset([1, 11]) - FOLLOW_COMMA_in_typeList5456 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_typeList5459 = frozenset([1, 11]) - FOLLOW_LCURLY_in_classBody5480 = frozenset([7, 23, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_classScopeDeclarations_in_classBody5482 = frozenset([7, 23, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_RCURLY_in_classBody5485 = frozenset([1]) - FOLLOW_LCURLY_in_interfaceBody5523 = frozenset([7, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_interfaceScopeDeclarations_in_interfaceBody5525 = frozenset([7, 25, 42, 44, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 101, 102, 164]) - FOLLOW_RCURLY_in_interfaceBody5528 = frozenset([1]) - FOLLOW_block_in_classScopeDeclarations5566 = frozenset([1]) - FOLLOW_STATIC_in_classScopeDeclarations5595 = frozenset([23]) - FOLLOW_block_in_classScopeDeclarations5597 = frozenset([1]) - FOLLOW_modifierList_in_classScopeDeclarations5620 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_classScopeDeclarations5634 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_classScopeDeclarations5653 = frozenset([164]) - FOLLOW_IDENT_in_classScopeDeclarations5655 = frozenset([29]) - FOLLOW_formalParameterList_in_classScopeDeclarations5657 = frozenset([22, 23, 44, 97]) - FOLLOW_arrayDeclaratorList_in_classScopeDeclarations5659 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_classScopeDeclarations5662 = frozenset([23, 44]) - FOLLOW_block_in_classScopeDeclarations5666 = frozenset([1]) - FOLLOW_SEMI_in_classScopeDeclarations5670 = frozenset([1]) - FOLLOW_VOID_in_classScopeDeclarations5732 = frozenset([164]) - FOLLOW_IDENT_in_classScopeDeclarations5734 = frozenset([29]) - FOLLOW_formalParameterList_in_classScopeDeclarations5736 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_classScopeDeclarations5738 = frozenset([23, 44]) - FOLLOW_block_in_classScopeDeclarations5742 = frozenset([1]) - FOLLOW_SEMI_in_classScopeDeclarations5746 = frozenset([1]) - FOLLOW_IDENT_in_classScopeDeclarations5805 = frozenset([29]) - FOLLOW_formalParameterList_in_classScopeDeclarations5807 = frozenset([23, 97]) - FOLLOW_throwsClause_in_classScopeDeclarations5809 = frozenset([23]) - FOLLOW_block_in_classScopeDeclarations5812 = frozenset([1]) - FOLLOW_type_in_classScopeDeclarations5876 = frozenset([164]) - FOLLOW_classFieldDeclaratorList_in_classScopeDeclarations5878 = frozenset([44]) - FOLLOW_SEMI_in_classScopeDeclarations5880 = frozenset([1]) - FOLLOW_typeDeclaration_in_classScopeDeclarations5925 = frozenset([1]) - FOLLOW_SEMI_in_classScopeDeclarations5935 = frozenset([1]) - FOLLOW_modifierList_in_interfaceScopeDeclarations5955 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_interfaceScopeDeclarations5969 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_interfaceScopeDeclarations5988 = frozenset([164]) - FOLLOW_IDENT_in_interfaceScopeDeclarations5990 = frozenset([29]) - FOLLOW_formalParameterList_in_interfaceScopeDeclarations5992 = frozenset([22, 44, 97]) - FOLLOW_arrayDeclaratorList_in_interfaceScopeDeclarations5994 = frozenset([44, 97]) - FOLLOW_throwsClause_in_interfaceScopeDeclarations5997 = frozenset([44]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6000 = frozenset([1]) - FOLLOW_VOID_in_interfaceScopeDeclarations6058 = frozenset([164]) - FOLLOW_IDENT_in_interfaceScopeDeclarations6060 = frozenset([29]) - FOLLOW_formalParameterList_in_interfaceScopeDeclarations6062 = frozenset([44, 97]) - FOLLOW_throwsClause_in_interfaceScopeDeclarations6064 = frozenset([44]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6067 = frozenset([1]) - FOLLOW_type_in_interfaceScopeDeclarations6130 = frozenset([164]) - FOLLOW_interfaceFieldDeclaratorList_in_interfaceScopeDeclarations6132 = frozenset([44]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6134 = frozenset([1]) - FOLLOW_typeDeclaration_in_interfaceScopeDeclarations6179 = frozenset([1]) - FOLLOW_SEMI_in_interfaceScopeDeclarations6189 = frozenset([1]) - FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6209 = frozenset([1, 11]) - FOLLOW_COMMA_in_classFieldDeclaratorList6212 = frozenset([164]) - FOLLOW_classFieldDeclarator_in_classFieldDeclaratorList6214 = frozenset([1, 11]) - FOLLOW_variableDeclaratorId_in_classFieldDeclarator6253 = frozenset([1, 6]) - FOLLOW_ASSIGN_in_classFieldDeclarator6256 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_classFieldDeclarator6258 = frozenset([1]) - FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6299 = frozenset([1, 11]) - FOLLOW_COMMA_in_interfaceFieldDeclaratorList6302 = frozenset([164]) - FOLLOW_interfaceFieldDeclarator_in_interfaceFieldDeclaratorList6304 = frozenset([1, 11]) - FOLLOW_variableDeclaratorId_in_interfaceFieldDeclarator6343 = frozenset([6]) - FOLLOW_ASSIGN_in_interfaceFieldDeclarator6345 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_interfaceFieldDeclarator6347 = frozenset([1]) - FOLLOW_IDENT_in_variableDeclaratorId6385 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_variableDeclaratorId6388 = frozenset([1]) - FOLLOW_arrayInitializer_in_variableInitializer6408 = frozenset([1]) - FOLLOW_expression_in_variableInitializer6418 = frozenset([1]) - FOLLOW_LBRACK_in_arrayDeclarator6437 = frozenset([41]) - FOLLOW_RBRACK_in_arrayDeclarator6439 = frozenset([1]) - FOLLOW_arrayDeclarator_in_arrayDeclaratorList6473 = frozenset([1, 22]) - FOLLOW_LCURLY_in_arrayInitializer6511 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_arrayInitializer6514 = frozenset([11, 42]) - FOLLOW_COMMA_in_arrayInitializer6517 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_variableInitializer_in_arrayInitializer6519 = frozenset([11, 42]) - FOLLOW_COMMA_in_arrayInitializer6523 = frozenset([42]) - FOLLOW_RCURLY_in_arrayInitializer6528 = frozenset([1]) - FOLLOW_THROWS_in_throwsClause6566 = frozenset([164]) - FOLLOW_qualifiedIdentList_in_throwsClause6568 = frozenset([1]) - FOLLOW_modifier_in_modifierList6605 = frozenset([1, 7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_PUBLIC_in_modifier6643 = frozenset([1]) - FOLLOW_PROTECTED_in_modifier6653 = frozenset([1]) - FOLLOW_PRIVATE_in_modifier6663 = frozenset([1]) - FOLLOW_STATIC_in_modifier6673 = frozenset([1]) - FOLLOW_ABSTRACT_in_modifier6683 = frozenset([1]) - FOLLOW_NATIVE_in_modifier6693 = frozenset([1]) - FOLLOW_SYNCHRONIZED_in_modifier6703 = frozenset([1]) - FOLLOW_TRANSIENT_in_modifier6713 = frozenset([1]) - FOLLOW_VOLATILE_in_modifier6723 = frozenset([1]) - FOLLOW_STRICTFP_in_modifier6733 = frozenset([1]) - FOLLOW_localModifier_in_modifier6743 = frozenset([1]) - FOLLOW_localModifier_in_localModifierList6762 = frozenset([1, 7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_FINAL_in_localModifier6799 = frozenset([1]) - FOLLOW_annotation_in_localModifier6809 = frozenset([1]) - FOLLOW_simpleType_in_type6828 = frozenset([1]) - FOLLOW_objectType_in_type6838 = frozenset([1]) - FOLLOW_primitiveType_in_simpleType6858 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_simpleType6860 = frozenset([1]) - FOLLOW_qualifiedTypeIdent_in_objectType6901 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_objectType6903 = frozenset([1]) - FOLLOW_qualifiedTypeIdentSimplified_in_objectTypeSimplified6943 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_objectTypeSimplified6945 = frozenset([1]) - FOLLOW_typeIdent_in_qualifiedTypeIdent6985 = frozenset([1, 15]) - FOLLOW_DOT_in_qualifiedTypeIdent6988 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeIdent_in_qualifiedTypeIdent6990 = frozenset([1, 15]) - FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7029 = frozenset([1, 15]) - FOLLOW_DOT_in_qualifiedTypeIdentSimplified7032 = frozenset([164]) - FOLLOW_typeIdentSimplified_in_qualifiedTypeIdentSimplified7034 = frozenset([1, 15]) - FOLLOW_IDENT_in_typeIdent7073 = frozenset([1, 25]) - FOLLOW_genericTypeArgumentList_in_typeIdent7076 = frozenset([1]) - FOLLOW_IDENT_in_typeIdentSimplified7096 = frozenset([1, 25]) - FOLLOW_genericTypeArgumentListSimplified_in_typeIdentSimplified7099 = frozenset([1]) - FOLLOW_set_in_primitiveType0 = frozenset([1]) - FOLLOW_LESS_THAN_in_genericTypeArgumentList7208 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgument_in_genericTypeArgumentList7210 = frozenset([8, 11, 20, 47]) - FOLLOW_COMMA_in_genericTypeArgumentList7213 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgument_in_genericTypeArgumentList7215 = frozenset([8, 11, 20, 47]) - FOLLOW_genericTypeListClosing_in_genericTypeArgumentList7219 = frozenset([1]) - FOLLOW_type_in_genericTypeArgument7257 = frozenset([1]) - FOLLOW_QUESTION_in_genericTypeArgument7267 = frozenset([1, 68, 92]) - FOLLOW_genericWildcardBoundType_in_genericTypeArgument7269 = frozenset([1]) - FOLLOW_set_in_genericWildcardBoundType7307 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_genericWildcardBoundType7316 = frozenset([1]) - FOLLOW_LESS_THAN_in_genericTypeArgumentListSimplified7335 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7337 = frozenset([8, 11, 20, 47]) - FOLLOW_COMMA_in_genericTypeArgumentListSimplified7340 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgumentSimplified_in_genericTypeArgumentListSimplified7342 = frozenset([8, 11, 20, 47]) - FOLLOW_genericTypeListClosing_in_genericTypeArgumentListSimplified7346 = frozenset([1]) - FOLLOW_type_in_genericTypeArgumentSimplified7384 = frozenset([1]) - FOLLOW_QUESTION_in_genericTypeArgumentSimplified7394 = frozenset([1]) - FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7413 = frozenset([1, 11]) - FOLLOW_COMMA_in_qualifiedIdentList7416 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_qualifiedIdentList7419 = frozenset([1, 11]) - FOLLOW_LPAREN_in_formalParameterList7440 = frozenset([7, 43, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_formalParameterList7467 = frozenset([11, 43]) - FOLLOW_COMMA_in_formalParameterList7470 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_formalParameterList7472 = frozenset([11, 43]) - FOLLOW_COMMA_in_formalParameterList7477 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterVarArgDecl_in_formalParameterList7479 = frozenset([43]) - FOLLOW_formalParameterVarArgDecl_in_formalParameterList7534 = frozenset([43]) - FOLLOW_RPAREN_in_formalParameterList7609 = frozenset([1]) - FOLLOW_localModifierList_in_formalParameterStandardDecl7628 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_formalParameterStandardDecl7630 = frozenset([164]) - FOLLOW_variableDeclaratorId_in_formalParameterStandardDecl7632 = frozenset([1]) - FOLLOW_localModifierList_in_formalParameterVarArgDecl7672 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_formalParameterVarArgDecl7674 = frozenset([17]) - FOLLOW_ELLIPSIS_in_formalParameterVarArgDecl7676 = frozenset([164]) - FOLLOW_variableDeclaratorId_in_formalParameterVarArgDecl7678 = frozenset([1]) - FOLLOW_IDENT_in_qualifiedIdentifier7722 = frozenset([1, 15]) - FOLLOW_DOT_in_qualifiedIdentifier7765 = frozenset([164]) - FOLLOW_IDENT_in_qualifiedIdentifier7769 = frozenset([1, 15]) - FOLLOW_annotation_in_annotationList7818 = frozenset([1, 7, 53, 70, 81, 85, 86, 87, 90, 91, 94, 98, 102]) - FOLLOW_AT_in_annotation7856 = frozenset([164]) - FOLLOW_qualifiedIdentifier_in_annotation7859 = frozenset([1, 29]) - FOLLOW_annotationInit_in_annotation7861 = frozenset([1]) - FOLLOW_LPAREN_in_annotationInit7881 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationInitializers_in_annotationInit7883 = frozenset([43]) - FOLLOW_RPAREN_in_annotationInit7885 = frozenset([1]) - FOLLOW_annotationInitializer_in_annotationInitializers7922 = frozenset([1, 11]) - FOLLOW_COMMA_in_annotationInitializers7925 = frozenset([164]) - FOLLOW_annotationInitializer_in_annotationInitializers7927 = frozenset([1, 11]) - FOLLOW_annotationElementValue_in_annotationInitializers7957 = frozenset([1]) - FOLLOW_IDENT_in_annotationInitializer7994 = frozenset([6]) - FOLLOW_ASSIGN_in_annotationInitializer7997 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationInitializer8000 = frozenset([1]) - FOLLOW_annotationElementValueExpression_in_annotationElementValue8019 = frozenset([1]) - FOLLOW_annotation_in_annotationElementValue8029 = frozenset([1]) - FOLLOW_annotationElementValueArrayInitializer_in_annotationElementValue8039 = frozenset([1]) - FOLLOW_conditionalExpression_in_annotationElementValueExpression8058 = frozenset([1]) - FOLLOW_LCURLY_in_annotationElementValueArrayInitializer8094 = frozenset([7, 11, 12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8097 = frozenset([11, 42]) - FOLLOW_COMMA_in_annotationElementValueArrayInitializer8100 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationElementValueArrayInitializer8102 = frozenset([11, 42]) - FOLLOW_COMMA_in_annotationElementValueArrayInitializer8109 = frozenset([42]) - FOLLOW_RCURLY_in_annotationElementValueArrayInitializer8113 = frozenset([1]) - FOLLOW_AT_in_annotationTypeDeclaration8152 = frozenset([77]) - FOLLOW_INTERFACE_in_annotationTypeDeclaration8154 = frozenset([164]) - FOLLOW_IDENT_in_annotationTypeDeclaration8156 = frozenset([23]) - FOLLOW_annotationBody_in_annotationTypeDeclaration8158 = frozenset([1]) - FOLLOW_LCURLY_in_annotationBody8197 = frozenset([7, 42, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_annotationScopeDeclarations_in_annotationBody8199 = frozenset([7, 42, 53, 55, 57, 60, 61, 65, 67, 70, 72, 77, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_RCURLY_in_annotationBody8202 = frozenset([1]) - FOLLOW_modifierList_in_annotationScopeDeclarations8240 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_annotationScopeDeclarations8242 = frozenset([164]) - FOLLOW_IDENT_in_annotationScopeDeclarations8256 = frozenset([29]) - FOLLOW_LPAREN_in_annotationScopeDeclarations8258 = frozenset([43]) - FOLLOW_RPAREN_in_annotationScopeDeclarations8260 = frozenset([44, 63]) - FOLLOW_annotationDefaultValue_in_annotationScopeDeclarations8262 = frozenset([44]) - FOLLOW_SEMI_in_annotationScopeDeclarations8265 = frozenset([1]) - FOLLOW_classFieldDeclaratorList_in_annotationScopeDeclarations8307 = frozenset([44]) - FOLLOW_SEMI_in_annotationScopeDeclarations8309 = frozenset([1]) - FOLLOW_typeDeclaration_in_annotationScopeDeclarations8354 = frozenset([1]) - FOLLOW_DEFAULT_in_annotationDefaultValue8373 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_annotationElementValue_in_annotationDefaultValue8376 = frozenset([1]) - FOLLOW_LCURLY_in_block8397 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_blockStatement_in_block8399 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 42, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_RCURLY_in_block8402 = frozenset([1]) - FOLLOW_localVariableDeclaration_in_blockStatement8440 = frozenset([44]) - FOLLOW_SEMI_in_blockStatement8442 = frozenset([1]) - FOLLOW_typeDeclaration_in_blockStatement8453 = frozenset([1]) - FOLLOW_statement_in_blockStatement8463 = frozenset([1]) - FOLLOW_localModifierList_in_localVariableDeclaration8482 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_localVariableDeclaration8484 = frozenset([164]) - FOLLOW_classFieldDeclaratorList_in_localVariableDeclaration8486 = frozenset([1]) - FOLLOW_block_in_statement8527 = frozenset([1]) - FOLLOW_ASSERT_in_statement8537 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement8541 = frozenset([10, 44]) - FOLLOW_COLON_in_statement8555 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement8559 = frozenset([44]) - FOLLOW_SEMI_in_statement8561 = frozenset([1]) - FOLLOW_SEMI_in_statement8624 = frozenset([1]) - FOLLOW_IF_in_statement8713 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement8715 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8719 = frozenset([1, 66]) - FOLLOW_ELSE_in_statement8733 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8737 = frozenset([1]) - FOLLOW_FOR_in_statement8900 = frozenset([29]) - FOLLOW_LPAREN_in_statement8902 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 55, 57, 60, 65, 69, 70, 72, 79, 80, 81, 82, 83, 85, 86, 87, 89, 90, 91, 92, 94, 95, 98, 99, 101, 102, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forInit_in_statement8916 = frozenset([44]) - FOLLOW_SEMI_in_statement8918 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forCondition_in_statement8920 = frozenset([44]) - FOLLOW_SEMI_in_statement8922 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 43, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forUpdater_in_statement8924 = frozenset([43]) - FOLLOW_RPAREN_in_statement8926 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8928 = frozenset([1]) - FOLLOW_localModifierList_in_statement8962 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_statement8964 = frozenset([164]) - FOLLOW_IDENT_in_statement8966 = frozenset([10]) - FOLLOW_COLON_in_statement8968 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement8970 = frozenset([43]) - FOLLOW_RPAREN_in_statement8972 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement8974 = frozenset([1]) - FOLLOW_WHILE_in_statement9088 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9090 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement9092 = frozenset([1]) - FOLLOW_DO_in_statement9141 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement9143 = frozenset([103]) - FOLLOW_WHILE_in_statement9145 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9147 = frozenset([44]) - FOLLOW_SEMI_in_statement9149 = frozenset([1]) - FOLLOW_TRY_in_statement9190 = frozenset([23]) - FOLLOW_block_in_statement9192 = frozenset([59, 71]) - FOLLOW_catches_in_statement9195 = frozenset([1, 59, 71]) - FOLLOW_finallyClause_in_statement9197 = frozenset([1]) - FOLLOW_finallyClause_in_statement9202 = frozenset([1]) - FOLLOW_SWITCH_in_statement9245 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9247 = frozenset([23]) - FOLLOW_LCURLY_in_statement9249 = frozenset([42, 58, 63]) - FOLLOW_switchBlockLabels_in_statement9251 = frozenset([42]) - FOLLOW_RCURLY_in_statement9254 = frozenset([1]) - FOLLOW_SYNCHRONIZED_in_statement9281 = frozenset([29]) - FOLLOW_parenthesizedExpression_in_statement9283 = frozenset([23]) - FOLLOW_block_in_statement9285 = frozenset([1]) - FOLLOW_RETURN_in_statement9331 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement9333 = frozenset([44]) - FOLLOW_SEMI_in_statement9336 = frozenset([1]) - FOLLOW_THROW_in_statement9400 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_statement9402 = frozenset([44]) - FOLLOW_SEMI_in_statement9404 = frozenset([1]) - FOLLOW_BREAK_in_statement9469 = frozenset([44, 164]) - FOLLOW_IDENT_in_statement9471 = frozenset([44]) - FOLLOW_SEMI_in_statement9474 = frozenset([1]) - FOLLOW_CONTINUE_in_statement9544 = frozenset([44, 164]) - FOLLOW_IDENT_in_statement9546 = frozenset([44]) - FOLLOW_SEMI_in_statement9549 = frozenset([1]) - FOLLOW_IDENT_in_statement9616 = frozenset([10]) - FOLLOW_COLON_in_statement9618 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_statement9620 = frozenset([1]) - FOLLOW_expression_in_statement9687 = frozenset([44]) - FOLLOW_SEMI_in_statement9689 = frozenset([1]) - FOLLOW_SEMI_in_statement9700 = frozenset([1]) - FOLLOW_catchClause_in_catches9720 = frozenset([1, 59]) - FOLLOW_CATCH_in_catchClause9758 = frozenset([29]) - FOLLOW_LPAREN_in_catchClause9761 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_catchClause9764 = frozenset([43]) - FOLLOW_RPAREN_in_catchClause9766 = frozenset([23]) - FOLLOW_block_in_catchClause9769 = frozenset([1]) - FOLLOW_FINALLY_in_finallyClause9788 = frozenset([23]) - FOLLOW_block_in_finallyClause9790 = frozenset([1]) - FOLLOW_switchCaseLabels_in_switchBlockLabels9839 = frozenset([58, 63]) - FOLLOW_switchDefaultLabel_in_switchBlockLabels9842 = frozenset([58]) - FOLLOW_switchCaseLabels_in_switchBlockLabels9847 = frozenset([1]) - FOLLOW_switchCaseLabel_in_switchCaseLabels9893 = frozenset([1, 58]) - FOLLOW_CASE_in_switchCaseLabel9913 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_switchCaseLabel9916 = frozenset([10]) - FOLLOW_COLON_in_switchCaseLabel9918 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_blockStatement_in_switchCaseLabel9921 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_DEFAULT_in_switchDefaultLabel9941 = frozenset([10]) - FOLLOW_COLON_in_switchDefaultLabel9944 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_blockStatement_in_switchDefaultLabel9947 = frozenset([1, 7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_localVariableDeclaration_in_forInit9967 = frozenset([1]) - FOLLOW_expressionList_in_forInit9989 = frozenset([1]) - FOLLOW_expression_in_forCondition10073 = frozenset([1]) - FOLLOW_expressionList_in_forUpdater10111 = frozenset([1]) - FOLLOW_LPAREN_in_parenthesizedExpression10151 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_parenthesizedExpression10153 = frozenset([43]) - FOLLOW_RPAREN_in_parenthesizedExpression10155 = frozenset([1]) - FOLLOW_expression_in_expressionList10192 = frozenset([1, 11]) - FOLLOW_COMMA_in_expressionList10195 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_expressionList10198 = frozenset([1, 11]) - FOLLOW_assignmentExpression_in_expression10219 = frozenset([1]) - FOLLOW_conditionalExpression_in_assignmentExpression10255 = frozenset([1, 5, 6, 9, 14, 31, 33, 37, 39, 46, 48, 50, 52]) - FOLLOW_ASSIGN_in_assignmentExpression10273 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_PLUS_ASSIGN_in_assignmentExpression10292 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MINUS_ASSIGN_in_assignmentExpression10311 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_STAR_ASSIGN_in_assignmentExpression10330 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_DIV_ASSIGN_in_assignmentExpression10349 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_AND_ASSIGN_in_assignmentExpression10368 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_OR_ASSIGN_in_assignmentExpression10387 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_XOR_ASSIGN_in_assignmentExpression10406 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MOD_ASSIGN_in_assignmentExpression10425 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_LEFT_ASSIGN_in_assignmentExpression10444 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10463 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_BIT_SHIFT_RIGHT_ASSIGN_in_assignmentExpression10482 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_assignmentExpression_in_assignmentExpression10503 = frozenset([1]) - FOLLOW_logicalOrExpression_in_conditionalExpression10524 = frozenset([1, 40]) - FOLLOW_QUESTION_in_conditionalExpression10527 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_assignmentExpression_in_conditionalExpression10530 = frozenset([10]) - FOLLOW_COLON_in_conditionalExpression10532 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_conditionalExpression_in_conditionalExpression10535 = frozenset([1]) - FOLLOW_logicalAndExpression_in_logicalOrExpression10556 = frozenset([1, 28]) - FOLLOW_LOGICAL_OR_in_logicalOrExpression10559 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_logicalAndExpression_in_logicalOrExpression10562 = frozenset([1, 28]) - FOLLOW_inclusiveOrExpression_in_logicalAndExpression10583 = frozenset([1, 26]) - FOLLOW_LOGICAL_AND_in_logicalAndExpression10586 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_inclusiveOrExpression_in_logicalAndExpression10589 = frozenset([1, 26]) - FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10610 = frozenset([1, 36]) - FOLLOW_OR_in_inclusiveOrExpression10613 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_exclusiveOrExpression_in_inclusiveOrExpression10616 = frozenset([1, 36]) - FOLLOW_andExpression_in_exclusiveOrExpression10637 = frozenset([1, 51]) - FOLLOW_XOR_in_exclusiveOrExpression10640 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_andExpression_in_exclusiveOrExpression10643 = frozenset([1, 51]) - FOLLOW_equalityExpression_in_andExpression10664 = frozenset([1, 4]) - FOLLOW_AND_in_andExpression10667 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_equalityExpression_in_andExpression10670 = frozenset([1, 4]) - FOLLOW_instanceOfExpression_in_equalityExpression10691 = frozenset([1, 18, 35]) - FOLLOW_EQUAL_in_equalityExpression10709 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_NOT_EQUAL_in_equalityExpression10728 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_instanceOfExpression_in_equalityExpression10757 = frozenset([1, 18, 35]) - FOLLOW_relationalExpression_in_instanceOfExpression10787 = frozenset([1, 76]) - FOLLOW_INSTANCEOF_in_instanceOfExpression10790 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_instanceOfExpression10793 = frozenset([1]) - FOLLOW_shiftExpression_in_relationalExpression10814 = frozenset([1, 19, 20, 24, 25]) - FOLLOW_LESS_OR_EQUAL_in_relationalExpression10832 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_GREATER_OR_EQUAL_in_relationalExpression10851 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_LESS_THAN_in_relationalExpression10870 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_GREATER_THAN_in_relationalExpression10889 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_shiftExpression_in_relationalExpression10918 = frozenset([1, 19, 20, 24, 25]) - FOLLOW_additiveExpression_in_shiftExpression10948 = frozenset([1, 8, 45, 47]) - FOLLOW_BIT_SHIFT_RIGHT_in_shiftExpression10966 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_RIGHT_in_shiftExpression10985 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_SHIFT_LEFT_in_shiftExpression11004 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_additiveExpression_in_shiftExpression11033 = frozenset([1, 8, 45, 47]) - FOLLOW_multiplicativeExpression_in_additiveExpression11063 = frozenset([1, 30, 38]) - FOLLOW_PLUS_in_additiveExpression11081 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MINUS_in_additiveExpression11100 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_multiplicativeExpression_in_additiveExpression11129 = frozenset([1, 30, 38]) - FOLLOW_unaryExpression_in_multiplicativeExpression11159 = frozenset([1, 13, 32, 49]) - FOLLOW_STAR_in_multiplicativeExpression11177 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_DIV_in_multiplicativeExpression11196 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_MOD_in_multiplicativeExpression11215 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_multiplicativeExpression11244 = frozenset([1, 13, 32, 49]) - FOLLOW_PLUS_in_unaryExpression11274 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpression11276 = frozenset([1]) - FOLLOW_MINUS_in_unaryExpression11303 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpression11305 = frozenset([1]) - FOLLOW_INC_in_unaryExpression11331 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_postfixedExpression_in_unaryExpression11333 = frozenset([1]) - FOLLOW_DEC_in_unaryExpression11357 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_postfixedExpression_in_unaryExpression11359 = frozenset([1]) - FOLLOW_unaryExpressionNotPlusMinus_in_unaryExpression11383 = frozenset([1]) - FOLLOW_NOT_in_unaryExpressionNotPlusMinus11402 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11404 = frozenset([1]) - FOLLOW_LOGICAL_NOT_in_unaryExpressionNotPlusMinus11451 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11453 = frozenset([1]) - FOLLOW_LPAREN_in_unaryExpressionNotPlusMinus11492 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_unaryExpressionNotPlusMinus11494 = frozenset([43]) - FOLLOW_RPAREN_in_unaryExpressionNotPlusMinus11496 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_unaryExpressionNotPlusMinus11498 = frozenset([1]) - FOLLOW_postfixedExpression_in_unaryExpressionNotPlusMinus11533 = frozenset([1]) - FOLLOW_primaryExpression_in_postfixedExpression11565 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_DOT_in_postfixedExpression11627 = frozenset([25, 82, 92, 95, 164]) - FOLLOW_genericTypeArgumentListSimplified_in_postfixedExpression11649 = frozenset([164]) - FOLLOW_IDENT_in_postfixedExpression11731 = frozenset([1, 12, 15, 21, 22, 29]) - FOLLOW_arguments_in_postfixedExpression11809 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_THIS_in_postfixedExpression11883 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_SUPER_in_postfixedExpression11946 = frozenset([29]) - FOLLOW_arguments_in_postfixedExpression11948 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_SUPER_in_postfixedExpression12001 = frozenset([15]) - FOLLOW_DOT_in_postfixedExpression12005 = frozenset([164]) - FOLLOW_IDENT_in_postfixedExpression12007 = frozenset([1, 12, 15, 21, 22, 29]) - FOLLOW_arguments_in_postfixedExpression12074 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_innerNewExpression_in_postfixedExpression12145 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_LBRACK_in_postfixedExpression12202 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_postfixedExpression12204 = frozenset([41]) - FOLLOW_RBRACK_in_postfixedExpression12206 = frozenset([1, 12, 15, 21, 22]) - FOLLOW_INC_in_postfixedExpression12267 = frozenset([1]) - FOLLOW_DEC_in_postfixedExpression12291 = frozenset([1]) - FOLLOW_parenthesizedExpression_in_primaryExpression12331 = frozenset([1]) - FOLLOW_literal_in_primaryExpression12341 = frozenset([1]) - FOLLOW_newExpression_in_primaryExpression12351 = frozenset([1]) - FOLLOW_qualifiedIdentExpression_in_primaryExpression12361 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_primaryExpression12371 = frozenset([92, 95, 164]) - FOLLOW_SUPER_in_primaryExpression12385 = frozenset([15, 29]) - FOLLOW_arguments_in_primaryExpression12403 = frozenset([1]) - FOLLOW_DOT_in_primaryExpression12463 = frozenset([164]) - FOLLOW_IDENT_in_primaryExpression12465 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12467 = frozenset([1]) - FOLLOW_IDENT_in_primaryExpression12534 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12536 = frozenset([1]) - FOLLOW_THIS_in_primaryExpression12591 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12593 = frozenset([1]) - FOLLOW_THIS_in_primaryExpression12658 = frozenset([1, 29]) - FOLLOW_arguments_in_primaryExpression12726 = frozenset([1]) - FOLLOW_SUPER_in_primaryExpression12791 = frozenset([29]) - FOLLOW_arguments_in_primaryExpression12793 = frozenset([1]) - FOLLOW_SUPER_in_primaryExpression12849 = frozenset([15]) - FOLLOW_DOT_in_primaryExpression12851 = frozenset([164]) - FOLLOW_IDENT_in_primaryExpression12853 = frozenset([1, 29]) - FOLLOW_arguments_in_primaryExpression12877 = frozenset([1]) - FOLLOW_primitiveType_in_primaryExpression13019 = frozenset([15, 22]) - FOLLOW_arrayDeclarator_in_primaryExpression13078 = frozenset([15, 22]) - FOLLOW_DOT_in_primaryExpression13137 = frozenset([61]) - FOLLOW_CLASS_in_primaryExpression13139 = frozenset([1]) - FOLLOW_VOID_in_primaryExpression13199 = frozenset([15]) - FOLLOW_DOT_in_primaryExpression13201 = frozenset([61]) - FOLLOW_CLASS_in_primaryExpression13203 = frozenset([1]) - FOLLOW_qualifiedIdentifier_in_qualifiedIdentExpression13279 = frozenset([1, 15, 22, 29]) - FOLLOW_arrayDeclarator_in_qualifiedIdentExpression13349 = frozenset([15, 22]) - FOLLOW_DOT_in_qualifiedIdentExpression13416 = frozenset([61]) - FOLLOW_CLASS_in_qualifiedIdentExpression13418 = frozenset([1]) - FOLLOW_arguments_in_qualifiedIdentExpression13488 = frozenset([1]) - FOLLOW_DOT_in_qualifiedIdentExpression13549 = frozenset([25, 61, 82, 92, 95, 164]) - FOLLOW_CLASS_in_qualifiedIdentExpression13567 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_qualifiedIdentExpression13630 = frozenset([92, 164]) - FOLLOW_SUPER_in_qualifiedIdentExpression13654 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13656 = frozenset([1]) - FOLLOW_SUPER_in_qualifiedIdentExpression13706 = frozenset([15]) - FOLLOW_DOT_in_qualifiedIdentExpression13710 = frozenset([164]) - FOLLOW_IDENT_in_qualifiedIdentExpression13712 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13714 = frozenset([1]) - FOLLOW_IDENT_in_qualifiedIdentExpression13764 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13766 = frozenset([1]) - FOLLOW_THIS_in_qualifiedIdentExpression13841 = frozenset([1]) - FOLLOW_SUPER_in_qualifiedIdentExpression13907 = frozenset([29]) - FOLLOW_arguments_in_qualifiedIdentExpression13909 = frozenset([1]) - FOLLOW_innerNewExpression_in_qualifiedIdentExpression13957 = frozenset([1]) - FOLLOW_NEW_in_newExpression14033 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_primitiveType_in_newExpression14047 = frozenset([22]) - FOLLOW_newArrayConstruction_in_newExpression14049 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_newExpression14093 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_qualifiedTypeIdentSimplified_in_newExpression14096 = frozenset([22, 29]) - FOLLOW_newArrayConstruction_in_newExpression14114 = frozenset([1]) - FOLLOW_arguments_in_newExpression14179 = frozenset([1, 23, 25, 68, 75]) - FOLLOW_classBody_in_newExpression14181 = frozenset([1]) - FOLLOW_NEW_in_innerNewExpression14276 = frozenset([25, 164]) - FOLLOW_genericTypeArgumentListSimplified_in_innerNewExpression14278 = frozenset([164]) - FOLLOW_IDENT_in_innerNewExpression14281 = frozenset([29]) - FOLLOW_arguments_in_innerNewExpression14283 = frozenset([1, 23, 25, 68, 75]) - FOLLOW_classBody_in_innerNewExpression14285 = frozenset([1]) - FOLLOW_arrayDeclaratorList_in_newArrayConstruction14331 = frozenset([23]) - FOLLOW_arrayInitializer_in_newArrayConstruction14333 = frozenset([1]) - FOLLOW_LBRACK_in_newArrayConstruction14343 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_newArrayConstruction14346 = frozenset([41]) - FOLLOW_RBRACK_in_newArrayConstruction14348 = frozenset([1, 22]) - FOLLOW_LBRACK_in_newArrayConstruction14352 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_newArrayConstruction14355 = frozenset([41]) - FOLLOW_RBRACK_in_newArrayConstruction14357 = frozenset([1, 22]) - FOLLOW_arrayDeclaratorList_in_newArrayConstruction14362 = frozenset([1]) - FOLLOW_LPAREN_in_arguments14382 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 43, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expressionList_in_arguments14384 = frozenset([43]) - FOLLOW_RPAREN_in_arguments14387 = frozenset([1]) - FOLLOW_set_in_literal0 = frozenset([1]) - FOLLOW_GREATER_THAN_in_synpred14_Java5045 = frozenset([1]) - FOLLOW_SHIFT_RIGHT_in_synpred15_Java5055 = frozenset([1]) - FOLLOW_BIT_SHIFT_RIGHT_in_synpred16_Java5065 = frozenset([1]) - FOLLOW_bound_in_synpred17_Java5095 = frozenset([1]) - FOLLOW_STATIC_in_synpred32_Java5595 = frozenset([23]) - FOLLOW_block_in_synpred32_Java5597 = frozenset([1]) - FOLLOW_genericTypeParameterList_in_synpred42_Java5634 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred42_Java5653 = frozenset([164]) - FOLLOW_IDENT_in_synpred42_Java5655 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred42_Java5657 = frozenset([22, 23, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred42_Java5659 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred42_Java5662 = frozenset([23, 44]) - FOLLOW_block_in_synpred42_Java5666 = frozenset([1]) - FOLLOW_SEMI_in_synpred42_Java5670 = frozenset([1]) - FOLLOW_VOID_in_synpred42_Java5732 = frozenset([164]) - FOLLOW_IDENT_in_synpred42_Java5734 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred42_Java5736 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred42_Java5738 = frozenset([23, 44]) - FOLLOW_block_in_synpred42_Java5742 = frozenset([1]) - FOLLOW_SEMI_in_synpred42_Java5746 = frozenset([1]) - FOLLOW_IDENT_in_synpred42_Java5805 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred42_Java5807 = frozenset([23, 97]) - FOLLOW_throwsClause_in_synpred42_Java5809 = frozenset([23]) - FOLLOW_block_in_synpred42_Java5812 = frozenset([1]) - FOLLOW_modifierList_in_synpred43_Java5620 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_synpred43_Java5634 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred43_Java5653 = frozenset([164]) - FOLLOW_IDENT_in_synpred43_Java5655 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred43_Java5657 = frozenset([22, 23, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred43_Java5659 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred43_Java5662 = frozenset([23, 44]) - FOLLOW_block_in_synpred43_Java5666 = frozenset([1]) - FOLLOW_SEMI_in_synpred43_Java5670 = frozenset([1]) - FOLLOW_VOID_in_synpred43_Java5732 = frozenset([164]) - FOLLOW_IDENT_in_synpred43_Java5734 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred43_Java5736 = frozenset([23, 44, 97]) - FOLLOW_throwsClause_in_synpred43_Java5738 = frozenset([23, 44]) - FOLLOW_block_in_synpred43_Java5742 = frozenset([1]) - FOLLOW_SEMI_in_synpred43_Java5746 = frozenset([1]) - FOLLOW_IDENT_in_synpred43_Java5805 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred43_Java5807 = frozenset([23, 97]) - FOLLOW_throwsClause_in_synpred43_Java5809 = frozenset([23]) - FOLLOW_block_in_synpred43_Java5812 = frozenset([1]) - FOLLOW_type_in_synpred43_Java5876 = frozenset([164]) - FOLLOW_classFieldDeclaratorList_in_synpred43_Java5878 = frozenset([44]) - FOLLOW_SEMI_in_synpred43_Java5880 = frozenset([1]) - FOLLOW_typeDeclaration_in_synpred44_Java5925 = frozenset([1]) - FOLLOW_genericTypeParameterList_in_synpred50_Java5969 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred50_Java5988 = frozenset([164]) - FOLLOW_IDENT_in_synpred50_Java5990 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred50_Java5992 = frozenset([22, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred50_Java5994 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred50_Java5997 = frozenset([44]) - FOLLOW_SEMI_in_synpred50_Java6000 = frozenset([1]) - FOLLOW_VOID_in_synpred50_Java6058 = frozenset([164]) - FOLLOW_IDENT_in_synpred50_Java6060 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred50_Java6062 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred50_Java6064 = frozenset([44]) - FOLLOW_SEMI_in_synpred50_Java6067 = frozenset([1]) - FOLLOW_modifierList_in_synpred51_Java5955 = frozenset([25, 55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_genericTypeParameterList_in_synpred51_Java5969 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 101, 164]) - FOLLOW_type_in_synpred51_Java5988 = frozenset([164]) - FOLLOW_IDENT_in_synpred51_Java5990 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred51_Java5992 = frozenset([22, 44, 97]) - FOLLOW_arrayDeclaratorList_in_synpred51_Java5994 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred51_Java5997 = frozenset([44]) - FOLLOW_SEMI_in_synpred51_Java6000 = frozenset([1]) - FOLLOW_VOID_in_synpred51_Java6058 = frozenset([164]) - FOLLOW_IDENT_in_synpred51_Java6060 = frozenset([29]) - FOLLOW_formalParameterList_in_synpred51_Java6062 = frozenset([44, 97]) - FOLLOW_throwsClause_in_synpred51_Java6064 = frozenset([44]) - FOLLOW_SEMI_in_synpred51_Java6067 = frozenset([1]) - FOLLOW_type_in_synpred51_Java6130 = frozenset([164]) - FOLLOW_interfaceFieldDeclaratorList_in_synpred51_Java6132 = frozenset([44]) - FOLLOW_SEMI_in_synpred51_Java6134 = frozenset([1]) - FOLLOW_typeDeclaration_in_synpred52_Java6179 = frozenset([1]) - FOLLOW_arrayDeclarator_in_synpred58_Java6473 = frozenset([1]) - FOLLOW_arrayDeclaratorList_in_synpred76_Java6860 = frozenset([1]) - FOLLOW_arrayDeclaratorList_in_synpred77_Java6903 = frozenset([1]) - FOLLOW_DOT_in_synpred79_Java6988 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_typeIdent_in_synpred79_Java6990 = frozenset([1]) - FOLLOW_COMMA_in_synpred90_Java7213 = frozenset([40, 55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_genericTypeArgument_in_synpred90_Java7215 = frozenset([1]) - FOLLOW_genericWildcardBoundType_in_synpred92_Java7269 = frozenset([1]) - FOLLOW_COMMA_in_synpred97_Java7470 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_synpred97_Java7472 = frozenset([1]) - FOLLOW_formalParameterStandardDecl_in_synpred99_Java7467 = frozenset([1, 11]) - FOLLOW_COMMA_in_synpred99_Java7470 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterStandardDecl_in_synpred99_Java7472 = frozenset([1, 11]) - FOLLOW_COMMA_in_synpred99_Java7477 = frozenset([7, 53, 55, 57, 60, 65, 70, 72, 79, 80, 81, 85, 86, 87, 89, 90, 91, 94, 98, 102, 164]) - FOLLOW_formalParameterVarArgDecl_in_synpred99_Java7479 = frozenset([1]) - FOLLOW_formalParameterVarArgDecl_in_synpred100_Java7534 = frozenset([1]) - FOLLOW_DOT_in_synpred101_Java7765 = frozenset([164]) - FOLLOW_IDENT_in_synpred101_Java7769 = frozenset([1]) - FOLLOW_annotation_in_synpred102_Java7818 = frozenset([1]) - FOLLOW_modifierList_in_synpred114_Java8240 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_synpred114_Java8242 = frozenset([164]) - FOLLOW_IDENT_in_synpred114_Java8256 = frozenset([29]) - FOLLOW_LPAREN_in_synpred114_Java8258 = frozenset([43]) - FOLLOW_RPAREN_in_synpred114_Java8260 = frozenset([44, 63]) - FOLLOW_annotationDefaultValue_in_synpred114_Java8262 = frozenset([44]) - FOLLOW_SEMI_in_synpred114_Java8265 = frozenset([1]) - FOLLOW_classFieldDeclaratorList_in_synpred114_Java8307 = frozenset([44]) - FOLLOW_SEMI_in_synpred114_Java8309 = frozenset([1]) - FOLLOW_localVariableDeclaration_in_synpred116_Java8440 = frozenset([44]) - FOLLOW_SEMI_in_synpred116_Java8442 = frozenset([1]) - FOLLOW_typeDeclaration_in_synpred117_Java8453 = frozenset([1]) - FOLLOW_ELSE_in_synpred121_Java8733 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_synpred121_Java8737 = frozenset([1]) - FOLLOW_forInit_in_synpred123_Java8916 = frozenset([44]) - FOLLOW_SEMI_in_synpred123_Java8918 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forCondition_in_synpred123_Java8920 = frozenset([44]) - FOLLOW_SEMI_in_synpred123_Java8922 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 43, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_forUpdater_in_synpred123_Java8924 = frozenset([43]) - FOLLOW_RPAREN_in_synpred123_Java8926 = frozenset([7, 12, 21, 23, 25, 27, 29, 30, 34, 38, 44, 53, 54, 55, 56, 57, 60, 61, 62, 64, 65, 67, 69, 70, 72, 73, 74, 77, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 103, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_statement_in_synpred123_Java8928 = frozenset([1]) - FOLLOW_switchBlockLabels_in_synpred130_Java9251 = frozenset([1]) - FOLLOW_switchCaseLabels_in_synpred143_Java9839 = frozenset([1]) - FOLLOW_switchCaseLabels_in_synpred145_Java9847 = frozenset([1]) - FOLLOW_switchCaseLabel_in_synpred146_Java9893 = frozenset([1]) - FOLLOW_localVariableDeclaration_in_synpred149_Java9967 = frozenset([1]) - FOLLOW_expressionList_in_synpred150_Java9989 = frozenset([1]) - FOLLOW_LPAREN_in_synpred193_Java11492 = frozenset([55, 57, 60, 65, 72, 79, 80, 89, 164]) - FOLLOW_type_in_synpred193_Java11494 = frozenset([43]) - FOLLOW_RPAREN_in_synpred193_Java11496 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_unaryExpression_in_synpred193_Java11498 = frozenset([1]) - FOLLOW_arrayDeclarator_in_synpred221_Java13349 = frozenset([15, 22]) - FOLLOW_DOT_in_synpred221_Java13416 = frozenset([61]) - FOLLOW_CLASS_in_synpred221_Java13418 = frozenset([1]) - FOLLOW_DOT_in_synpred229_Java13549 = frozenset([25, 61, 82, 92, 95, 164]) - FOLLOW_CLASS_in_synpred229_Java13567 = frozenset([1]) - FOLLOW_genericTypeArgumentListSimplified_in_synpred229_Java13630 = frozenset([92, 164]) - FOLLOW_SUPER_in_synpred229_Java13654 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13656 = frozenset([1]) - FOLLOW_SUPER_in_synpred229_Java13706 = frozenset([15]) - FOLLOW_DOT_in_synpred229_Java13710 = frozenset([164]) - FOLLOW_IDENT_in_synpred229_Java13712 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13714 = frozenset([1]) - FOLLOW_IDENT_in_synpred229_Java13764 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13766 = frozenset([1]) - FOLLOW_THIS_in_synpred229_Java13841 = frozenset([1]) - FOLLOW_SUPER_in_synpred229_Java13907 = frozenset([29]) - FOLLOW_arguments_in_synpred229_Java13909 = frozenset([1]) - FOLLOW_innerNewExpression_in_synpred229_Java13957 = frozenset([1]) - FOLLOW_LBRACK_in_synpred237_Java14352 = frozenset([12, 21, 23, 25, 27, 29, 30, 34, 38, 55, 57, 60, 65, 69, 72, 79, 80, 82, 83, 89, 92, 95, 99, 101, 164, 165, 166, 167, 168, 169, 170]) - FOLLOW_expression_in_synpred237_Java14355 = frozenset([41]) - FOLLOW_RBRACK_in_synpred237_Java14357 = frozenset([1]) - - - -def main(argv, stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr): - from antlr3.main import ParserMain - main = ParserMain("JavaLexer", JavaParser) - main.stdin = stdin - main.stdout = stdout - main.stderr = stderr - main.execute(argv) - - -if __name__ == '__main__': - main(sys.argv) diff --git a/java2python/lang/JavadocLexer.g4 b/java2python/lang/JavadocLexer.g4 new file mode 100644 index 0000000..2cde3f3 --- /dev/null +++ b/java2python/lang/JavadocLexer.g4 @@ -0,0 +1,79 @@ +/* + [The "BSD licence"] + Copyright (c) 2016 Pascal Gruen + 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. +*/ + +lexer grammar JavadocLexer; + +NAME + : [a-zA-Z]+ + ; + +NEWLINE + : '\n' (SPACE? (STAR {_input.LA(1) != '/'}?)+)? + | '\r\n' (SPACE? (STAR {_input.LA(1) != '/'}?)+)? + | '\r' (SPACE? (STAR {_input.LA(1) != '/'}?)+)? + ; + +SPACE + : (' '|'\t')+ + ; + +TEXT_CONTENT + : ~[\n\r\t @*{}/a-zA-Z]+ + ; + +AT + : '@' + ; + +STAR + : '*' + ; + +SLASH + : '/' + ; + +JAVADOC_START + : '/**' STAR* + ; + +JAVADOC_END + : SPACE? STAR* '*/' + ; + +INLINE_TAG_START + : '{@' + ; + +BRACE_OPEN + : '{' + ; + +BRACE_CLOSE + : '}' + ; diff --git a/java2python/lang/JavadocLexer.interp b/java2python/lang/JavadocLexer.interp new file mode 100644 index 0000000..d4b55f6 --- /dev/null +++ b/java2python/lang/JavadocLexer.interp @@ -0,0 +1,53 @@ +token literal names: +null +null +null +null +null +'@' +'*' +'/' +null +null +'{@' +'{' +'}' + +token symbolic names: +null +NAME +NEWLINE +SPACE +TEXT_CONTENT +AT +STAR +SLASH +JAVADOC_START +JAVADOC_END +INLINE_TAG_START +BRACE_OPEN +BRACE_CLOSE + +rule names: +NAME +NEWLINE +SPACE +TEXT_CONTENT +AT +STAR +SLASH +JAVADOC_START +JAVADOC_END +INLINE_TAG_START +BRACE_OPEN +BRACE_CLOSE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 14, 120, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 3, 2, 6, 2, 29, 10, 2, 13, 2, 14, 2, 30, 3, 3, 3, 3, 5, 3, 35, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 40, 10, 3, 13, 3, 14, 3, 41, 5, 3, 44, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 50, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 55, 10, 3, 13, 3, 14, 3, 56, 5, 3, 59, 10, 3, 3, 3, 3, 3, 5, 3, 63, 10, 3, 3, 3, 3, 3, 3, 3, 6, 3, 68, 10, 3, 13, 3, 14, 3, 69, 5, 3, 72, 10, 3, 5, 3, 74, 10, 3, 3, 4, 6, 4, 77, 10, 4, 13, 4, 14, 4, 78, 3, 5, 6, 5, 82, 10, 5, 13, 5, 14, 5, 83, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 7, 9, 97, 10, 9, 12, 9, 14, 9, 100, 11, 9, 3, 10, 5, 10, 103, 10, 10, 3, 10, 7, 10, 106, 10, 10, 12, 10, 14, 10, 109, 11, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 2, 2, 14, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 3, 2, 5, 4, 2, 67, 92, 99, 124, 4, 2, 11, 11, 34, 34, 10, 2, 11, 12, 15, 15, 34, 34, 44, 44, 49, 49, 66, 92, 99, 125, 127, 127, 2, 136, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 3, 28, 3, 2, 2, 2, 5, 73, 3, 2, 2, 2, 7, 76, 3, 2, 2, 2, 9, 81, 3, 2, 2, 2, 11, 85, 3, 2, 2, 2, 13, 87, 3, 2, 2, 2, 15, 89, 3, 2, 2, 2, 17, 91, 3, 2, 2, 2, 19, 102, 3, 2, 2, 2, 21, 113, 3, 2, 2, 2, 23, 116, 3, 2, 2, 2, 25, 118, 3, 2, 2, 2, 27, 29, 9, 2, 2, 2, 28, 27, 3, 2, 2, 2, 29, 30, 3, 2, 2, 2, 30, 28, 3, 2, 2, 2, 30, 31, 3, 2, 2, 2, 31, 4, 3, 2, 2, 2, 32, 43, 7, 12, 2, 2, 33, 35, 5, 7, 4, 2, 34, 33, 3, 2, 2, 2, 34, 35, 3, 2, 2, 2, 35, 39, 3, 2, 2, 2, 36, 37, 5, 13, 7, 2, 37, 38, 6, 3, 2, 2, 38, 40, 3, 2, 2, 2, 39, 36, 3, 2, 2, 2, 40, 41, 3, 2, 2, 2, 41, 39, 3, 2, 2, 2, 41, 42, 3, 2, 2, 2, 42, 44, 3, 2, 2, 2, 43, 34, 3, 2, 2, 2, 43, 44, 3, 2, 2, 2, 44, 74, 3, 2, 2, 2, 45, 46, 7, 15, 2, 2, 46, 47, 7, 12, 2, 2, 47, 58, 3, 2, 2, 2, 48, 50, 5, 7, 4, 2, 49, 48, 3, 2, 2, 2, 49, 50, 3, 2, 2, 2, 50, 54, 3, 2, 2, 2, 51, 52, 5, 13, 7, 2, 52, 53, 6, 3, 3, 2, 53, 55, 3, 2, 2, 2, 54, 51, 3, 2, 2, 2, 55, 56, 3, 2, 2, 2, 56, 54, 3, 2, 2, 2, 56, 57, 3, 2, 2, 2, 57, 59, 3, 2, 2, 2, 58, 49, 3, 2, 2, 2, 58, 59, 3, 2, 2, 2, 59, 74, 3, 2, 2, 2, 60, 71, 7, 15, 2, 2, 61, 63, 5, 7, 4, 2, 62, 61, 3, 2, 2, 2, 62, 63, 3, 2, 2, 2, 63, 67, 3, 2, 2, 2, 64, 65, 5, 13, 7, 2, 65, 66, 6, 3, 4, 2, 66, 68, 3, 2, 2, 2, 67, 64, 3, 2, 2, 2, 68, 69, 3, 2, 2, 2, 69, 67, 3, 2, 2, 2, 69, 70, 3, 2, 2, 2, 70, 72, 3, 2, 2, 2, 71, 62, 3, 2, 2, 2, 71, 72, 3, 2, 2, 2, 72, 74, 3, 2, 2, 2, 73, 32, 3, 2, 2, 2, 73, 45, 3, 2, 2, 2, 73, 60, 3, 2, 2, 2, 74, 6, 3, 2, 2, 2, 75, 77, 9, 3, 2, 2, 76, 75, 3, 2, 2, 2, 77, 78, 3, 2, 2, 2, 78, 76, 3, 2, 2, 2, 78, 79, 3, 2, 2, 2, 79, 8, 3, 2, 2, 2, 80, 82, 10, 4, 2, 2, 81, 80, 3, 2, 2, 2, 82, 83, 3, 2, 2, 2, 83, 81, 3, 2, 2, 2, 83, 84, 3, 2, 2, 2, 84, 10, 3, 2, 2, 2, 85, 86, 7, 66, 2, 2, 86, 12, 3, 2, 2, 2, 87, 88, 7, 44, 2, 2, 88, 14, 3, 2, 2, 2, 89, 90, 7, 49, 2, 2, 90, 16, 3, 2, 2, 2, 91, 92, 7, 49, 2, 2, 92, 93, 7, 44, 2, 2, 93, 94, 7, 44, 2, 2, 94, 98, 3, 2, 2, 2, 95, 97, 5, 13, 7, 2, 96, 95, 3, 2, 2, 2, 97, 100, 3, 2, 2, 2, 98, 96, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 18, 3, 2, 2, 2, 100, 98, 3, 2, 2, 2, 101, 103, 5, 7, 4, 2, 102, 101, 3, 2, 2, 2, 102, 103, 3, 2, 2, 2, 103, 107, 3, 2, 2, 2, 104, 106, 5, 13, 7, 2, 105, 104, 3, 2, 2, 2, 106, 109, 3, 2, 2, 2, 107, 105, 3, 2, 2, 2, 107, 108, 3, 2, 2, 2, 108, 110, 3, 2, 2, 2, 109, 107, 3, 2, 2, 2, 110, 111, 7, 44, 2, 2, 111, 112, 7, 49, 2, 2, 112, 20, 3, 2, 2, 2, 113, 114, 7, 125, 2, 2, 114, 115, 7, 66, 2, 2, 115, 22, 3, 2, 2, 2, 116, 117, 7, 125, 2, 2, 117, 24, 3, 2, 2, 2, 118, 119, 7, 127, 2, 2, 119, 26, 3, 2, 2, 2, 19, 2, 30, 34, 41, 43, 49, 56, 58, 62, 69, 71, 73, 78, 83, 98, 102, 107, 2] \ No newline at end of file diff --git a/java2python/lang/JavadocLexer.py b/java2python/lang/JavadocLexer.py new file mode 100644 index 0000000..2ed4381 --- /dev/null +++ b/java2python/lang/JavadocLexer.py @@ -0,0 +1,124 @@ +# Generated from JavadocLexer.g4 by ANTLR 4.7.2 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\16") + buf.write("x\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\3\2") + buf.write("\6\2\35\n\2\r\2\16\2\36\3\3\3\3\5\3#\n\3\3\3\3\3\3\3\6") + buf.write("\3(\n\3\r\3\16\3)\5\3,\n\3\3\3\3\3\3\3\3\3\5\3\62\n\3") + buf.write("\3\3\3\3\3\3\6\3\67\n\3\r\3\16\38\5\3;\n\3\3\3\3\3\5\3") + buf.write("?\n\3\3\3\3\3\3\3\6\3D\n\3\r\3\16\3E\5\3H\n\3\5\3J\n\3") + buf.write("\3\4\6\4M\n\4\r\4\16\4N\3\5\6\5R\n\5\r\5\16\5S\3\6\3\6") + buf.write("\3\7\3\7\3\b\3\b\3\t\3\t\3\t\3\t\3\t\7\ta\n\t\f\t\16\t") + buf.write("d\13\t\3\n\5\ng\n\n\3\n\7\nj\n\n\f\n\16\nm\13\n\3\n\3") + buf.write("\n\3\n\3\13\3\13\3\13\3\f\3\f\3\r\3\r\2\2\16\3\3\5\4\7") + buf.write("\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\3\2\5") + buf.write("\4\2C\\c|\4\2\13\13\"\"\n\2\13\f\17\17\"\",,\61\61B\\") + buf.write("c}\177\177\2\u0088\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2") + buf.write("\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21") + buf.write("\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3") + buf.write("\2\2\2\3\34\3\2\2\2\5I\3\2\2\2\7L\3\2\2\2\tQ\3\2\2\2\13") + buf.write("U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21[\3\2\2\2\23f\3\2\2") + buf.write("\2\25q\3\2\2\2\27t\3\2\2\2\31v\3\2\2\2\33\35\t\2\2\2\34") + buf.write("\33\3\2\2\2\35\36\3\2\2\2\36\34\3\2\2\2\36\37\3\2\2\2") + buf.write("\37\4\3\2\2\2 +\7\f\2\2!#\5\7\4\2\"!\3\2\2\2\"#\3\2\2") + buf.write("\2#\'\3\2\2\2$%\5\r\7\2%&\6\3\2\2&(\3\2\2\2\'$\3\2\2\2") + buf.write("()\3\2\2\2)\'\3\2\2\2)*\3\2\2\2*,\3\2\2\2+\"\3\2\2\2+") + buf.write(",\3\2\2\2,J\3\2\2\2-.\7\17\2\2./\7\f\2\2/:\3\2\2\2\60") + buf.write("\62\5\7\4\2\61\60\3\2\2\2\61\62\3\2\2\2\62\66\3\2\2\2") + buf.write("\63\64\5\r\7\2\64\65\6\3\3\2\65\67\3\2\2\2\66\63\3\2\2") + buf.write("\2\678\3\2\2\28\66\3\2\2\289\3\2\2\29;\3\2\2\2:\61\3\2") + buf.write("\2\2:;\3\2\2\2;J\3\2\2\2=\3\2\2") + buf.write("\2>?\3\2\2\2?C\3\2\2\2@A\5\r\7\2AB\6\3\4\2BD\3\2\2\2C") + buf.write("@\3\2\2\2DE\3\2\2\2EC\3\2\2\2EF\3\2\2\2FH\3\2\2\2G>\3") + buf.write("\2\2\2GH\3\2\2\2HJ\3\2\2\2I \3\2\2\2I-\3\2\2\2I<\3\2\2") + buf.write("\2J\6\3\2\2\2KM\t\3\2\2LK\3\2\2\2MN\3\2\2\2NL\3\2\2\2") + buf.write("NO\3\2\2\2O\b\3\2\2\2PR\n\4\2\2QP\3\2\2\2RS\3\2\2\2SQ") + buf.write("\3\2\2\2ST\3\2\2\2T\n\3\2\2\2UV\7B\2\2V\f\3\2\2\2WX\7") + buf.write(",\2\2X\16\3\2\2\2YZ\7\61\2\2Z\20\3\2\2\2[\\\7\61\2\2\\") + buf.write("]\7,\2\2]^\7,\2\2^b\3\2\2\2_a\5\r\7\2`_\3\2\2\2ad\3\2") + buf.write("\2\2b`\3\2\2\2bc\3\2\2\2c\22\3\2\2\2db\3\2\2\2eg\5\7\4") + buf.write("\2fe\3\2\2\2fg\3\2\2\2gk\3\2\2\2hj\5\r\7\2ih\3\2\2\2j") + buf.write("m\3\2\2\2ki\3\2\2\2kl\3\2\2\2ln\3\2\2\2mk\3\2\2\2no\7") + buf.write(",\2\2op\7\61\2\2p\24\3\2\2\2qr\7}\2\2rs\7B\2\2s\26\3\2") + buf.write("\2\2tu\7}\2\2u\30\3\2\2\2vw\7\177\2\2w\32\3\2\2\2\23\2") + buf.write("\36\")+\618:>EGINSbfk\2") + return buf.getvalue() + + +class JavadocLexer(Lexer): + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + NAME = 1 + NEWLINE = 2 + SPACE = 3 + TEXT_CONTENT = 4 + AT = 5 + STAR = 6 + SLASH = 7 + JAVADOC_START = 8 + JAVADOC_END = 9 + INLINE_TAG_START = 10 + BRACE_OPEN = 11 + BRACE_CLOSE = 12 + + channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] + + modeNames = [ "DEFAULT_MODE" ] + + literalNames = [ "", + "'@'", "'*'", "'/'", "'{@'", "'{'", "'}'" ] + + symbolicNames = [ "", + "NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", "AT", "STAR", "SLASH", + "JAVADOC_START", "JAVADOC_END", "INLINE_TAG_START", "BRACE_OPEN", + "BRACE_CLOSE" ] + + ruleNames = [ "NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", "AT", "STAR", + "SLASH", "JAVADOC_START", "JAVADOC_END", "INLINE_TAG_START", + "BRACE_OPEN", "BRACE_CLOSE" ] + + grammarFileName = "JavadocLexer.g4" + + def __init__(self, input=None, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._actions = None + self._predicates = None + + + def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): + if self._predicates is None: + preds = dict() + preds[1] = self.NEWLINE_sempred + self._predicates = preds + pred = self._predicates.get(ruleIndex, None) + if pred is not None: + return pred(localctx, predIndex) + else: + raise Exception("No registered predicate for:" + str(ruleIndex)) + + def NEWLINE_sempred(self, localctx:RuleContext, predIndex:int): + if predIndex == 0: + return _input.LA(1) != '/' + + + if predIndex == 1: + return _input.LA(1) != '/' + + + if predIndex == 2: + return _input.LA(1) != '/' + + + diff --git a/java2python/lang/JavadocLexer.tokens b/java2python/lang/JavadocLexer.tokens new file mode 100644 index 0000000..39ad57e --- /dev/null +++ b/java2python/lang/JavadocLexer.tokens @@ -0,0 +1,18 @@ +NAME=1 +NEWLINE=2 +SPACE=3 +TEXT_CONTENT=4 +AT=5 +STAR=6 +SLASH=7 +JAVADOC_START=8 +JAVADOC_END=9 +INLINE_TAG_START=10 +BRACE_OPEN=11 +BRACE_CLOSE=12 +'@'=5 +'*'=6 +'/'=7 +'{@'=10 +'{'=11 +'}'=12 diff --git a/java2python/lang/JavadocParser.g4 b/java2python/lang/JavadocParser.g4 new file mode 100644 index 0000000..5027e5b --- /dev/null +++ b/java2python/lang/JavadocParser.g4 @@ -0,0 +1,149 @@ +/* + [The "BSD licence"] + Copyright (c) 2016 Pascal Gruen + 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. +*/ + +parser grammar JavadocParser; + +options { tokenVocab=JavadocLexer; } + + +documentation + : EOF + | JAVADOC_START skipWhitespace* documentationContent JAVADOC_END EOF + | skipWhitespace* documentationContent EOF + ; + +documentationContent + : description skipWhitespace* + | skipWhitespace* tagSection + | description NEWLINE+ skipWhitespace* tagSection + ; + +skipWhitespace + : SPACE + | NEWLINE + ; + + +description + : descriptionLine (descriptionNewline+ descriptionLine)* + ; + +descriptionLine + : descriptionLineStart descriptionLineElement* + | inlineTag descriptionLineElement* + ; + +descriptionLineStart + : SPACE? descriptionLineNoSpaceNoAt+ (descriptionLineNoSpaceNoAt | SPACE | AT)* + ; + +descriptionLineNoSpaceNoAt + : TEXT_CONTENT + | NAME + | STAR + | SLASH + | BRACE_OPEN + | BRACE_CLOSE + ; + +descriptionLineElement + : inlineTag + | descriptionLineText + ; + +descriptionLineText + : (descriptionLineNoSpaceNoAt | SPACE | AT)+ + ; + +descriptionNewline + : NEWLINE + ; + + +tagSection + : blockTag+ + ; + +blockTag + : SPACE? AT blockTagName SPACE? blockTagContent* + ; + +blockTagName + : NAME + ; + +blockTagContent + : blockTagText + | inlineTag + | NEWLINE + ; + +blockTagText + : blockTagTextElement+ + ; + +blockTagTextElement + : TEXT_CONTENT + | NAME + | SPACE + | STAR + | SLASH + | BRACE_OPEN + | BRACE_CLOSE + ; + + +inlineTag + : INLINE_TAG_START inlineTagName SPACE* inlineTagContent? BRACE_CLOSE + ; + +inlineTagName + : NAME + ; + +inlineTagContent + : braceContent+ + ; + +braceExpression + : BRACE_OPEN braceContent* BRACE_CLOSE + ; + +braceContent + : braceExpression + | braceText (NEWLINE* braceText)* + ; + +braceText + : TEXT_CONTENT + | NAME + | SPACE + | STAR + | SLASH + | NEWLINE + ; diff --git a/java2python/lang/JavadocParser.interp b/java2python/lang/JavadocParser.interp new file mode 100644 index 0000000..52813f6 --- /dev/null +++ b/java2python/lang/JavadocParser.interp @@ -0,0 +1,57 @@ +token literal names: +null +null +null +null +null +'@' +'*' +'/' +null +null +'{@' +'{' +'}' + +token symbolic names: +null +NAME +NEWLINE +SPACE +TEXT_CONTENT +AT +STAR +SLASH +JAVADOC_START +JAVADOC_END +INLINE_TAG_START +BRACE_OPEN +BRACE_CLOSE + +rule names: +documentation +documentationContent +skipWhitespace +description +descriptionLine +descriptionLineStart +descriptionLineNoSpaceNoAt +descriptionLineElement +descriptionLineText +descriptionNewline +tagSection +blockTag +blockTagName +blockTagContent +blockTagText +blockTagTextElement +inlineTag +inlineTagName +inlineTagContent +braceExpression +braceContent +braceText + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 14, 242, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 3, 2, 3, 2, 3, 2, 7, 2, 50, 10, 2, 12, 2, 14, 2, 53, 11, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 7, 2, 60, 10, 2, 12, 2, 14, 2, 63, 11, 2, 3, 2, 3, 2, 3, 2, 5, 2, 68, 10, 2, 3, 3, 3, 3, 7, 3, 72, 10, 3, 12, 3, 14, 3, 75, 11, 3, 3, 3, 7, 3, 78, 10, 3, 12, 3, 14, 3, 81, 11, 3, 3, 3, 3, 3, 3, 3, 6, 3, 86, 10, 3, 13, 3, 14, 3, 87, 3, 3, 7, 3, 91, 10, 3, 12, 3, 14, 3, 94, 11, 3, 3, 3, 3, 3, 5, 3, 98, 10, 3, 3, 4, 3, 4, 3, 5, 3, 5, 6, 5, 104, 10, 5, 13, 5, 14, 5, 105, 3, 5, 3, 5, 7, 5, 110, 10, 5, 12, 5, 14, 5, 113, 11, 5, 3, 6, 3, 6, 7, 6, 117, 10, 6, 12, 6, 14, 6, 120, 11, 6, 3, 6, 3, 6, 7, 6, 124, 10, 6, 12, 6, 14, 6, 127, 11, 6, 5, 6, 129, 10, 6, 3, 7, 5, 7, 132, 10, 7, 3, 7, 6, 7, 135, 10, 7, 13, 7, 14, 7, 136, 3, 7, 3, 7, 3, 7, 7, 7, 142, 10, 7, 12, 7, 14, 7, 145, 11, 7, 3, 8, 3, 8, 3, 9, 3, 9, 5, 9, 151, 10, 9, 3, 10, 3, 10, 3, 10, 6, 10, 156, 10, 10, 13, 10, 14, 10, 157, 3, 11, 3, 11, 3, 12, 6, 12, 163, 10, 12, 13, 12, 14, 12, 164, 3, 13, 5, 13, 168, 10, 13, 3, 13, 3, 13, 3, 13, 5, 13, 173, 10, 13, 3, 13, 7, 13, 176, 10, 13, 12, 13, 14, 13, 179, 11, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 5, 15, 186, 10, 15, 3, 16, 6, 16, 189, 10, 16, 13, 16, 14, 16, 190, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 7, 18, 198, 10, 18, 12, 18, 14, 18, 201, 11, 18, 3, 18, 5, 18, 204, 10, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 6, 20, 211, 10, 20, 13, 20, 14, 20, 212, 3, 21, 3, 21, 7, 21, 217, 10, 21, 12, 21, 14, 21, 220, 11, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 7, 22, 227, 10, 22, 12, 22, 14, 22, 230, 11, 22, 3, 22, 7, 22, 233, 10, 22, 12, 22, 14, 22, 236, 11, 22, 5, 22, 238, 10, 22, 3, 23, 3, 23, 3, 23, 2, 2, 24, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 2, 6, 3, 2, 4, 5, 6, 2, 3, 3, 6, 6, 8, 9, 13, 14, 6, 2, 3, 3, 5, 6, 8, 9, 13, 14, 4, 2, 3, 6, 8, 9, 2, 257, 2, 67, 3, 2, 2, 2, 4, 97, 3, 2, 2, 2, 6, 99, 3, 2, 2, 2, 8, 101, 3, 2, 2, 2, 10, 128, 3, 2, 2, 2, 12, 131, 3, 2, 2, 2, 14, 146, 3, 2, 2, 2, 16, 150, 3, 2, 2, 2, 18, 155, 3, 2, 2, 2, 20, 159, 3, 2, 2, 2, 22, 162, 3, 2, 2, 2, 24, 167, 3, 2, 2, 2, 26, 180, 3, 2, 2, 2, 28, 185, 3, 2, 2, 2, 30, 188, 3, 2, 2, 2, 32, 192, 3, 2, 2, 2, 34, 194, 3, 2, 2, 2, 36, 207, 3, 2, 2, 2, 38, 210, 3, 2, 2, 2, 40, 214, 3, 2, 2, 2, 42, 237, 3, 2, 2, 2, 44, 239, 3, 2, 2, 2, 46, 68, 7, 2, 2, 3, 47, 51, 7, 10, 2, 2, 48, 50, 5, 6, 4, 2, 49, 48, 3, 2, 2, 2, 50, 53, 3, 2, 2, 2, 51, 49, 3, 2, 2, 2, 51, 52, 3, 2, 2, 2, 52, 54, 3, 2, 2, 2, 53, 51, 3, 2, 2, 2, 54, 55, 5, 4, 3, 2, 55, 56, 7, 11, 2, 2, 56, 57, 7, 2, 2, 3, 57, 68, 3, 2, 2, 2, 58, 60, 5, 6, 4, 2, 59, 58, 3, 2, 2, 2, 60, 63, 3, 2, 2, 2, 61, 59, 3, 2, 2, 2, 61, 62, 3, 2, 2, 2, 62, 64, 3, 2, 2, 2, 63, 61, 3, 2, 2, 2, 64, 65, 5, 4, 3, 2, 65, 66, 7, 2, 2, 3, 66, 68, 3, 2, 2, 2, 67, 46, 3, 2, 2, 2, 67, 47, 3, 2, 2, 2, 67, 61, 3, 2, 2, 2, 68, 3, 3, 2, 2, 2, 69, 73, 5, 8, 5, 2, 70, 72, 5, 6, 4, 2, 71, 70, 3, 2, 2, 2, 72, 75, 3, 2, 2, 2, 73, 71, 3, 2, 2, 2, 73, 74, 3, 2, 2, 2, 74, 98, 3, 2, 2, 2, 75, 73, 3, 2, 2, 2, 76, 78, 5, 6, 4, 2, 77, 76, 3, 2, 2, 2, 78, 81, 3, 2, 2, 2, 79, 77, 3, 2, 2, 2, 79, 80, 3, 2, 2, 2, 80, 82, 3, 2, 2, 2, 81, 79, 3, 2, 2, 2, 82, 98, 5, 22, 12, 2, 83, 85, 5, 8, 5, 2, 84, 86, 7, 4, 2, 2, 85, 84, 3, 2, 2, 2, 86, 87, 3, 2, 2, 2, 87, 85, 3, 2, 2, 2, 87, 88, 3, 2, 2, 2, 88, 92, 3, 2, 2, 2, 89, 91, 5, 6, 4, 2, 90, 89, 3, 2, 2, 2, 91, 94, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 92, 93, 3, 2, 2, 2, 93, 95, 3, 2, 2, 2, 94, 92, 3, 2, 2, 2, 95, 96, 5, 22, 12, 2, 96, 98, 3, 2, 2, 2, 97, 69, 3, 2, 2, 2, 97, 79, 3, 2, 2, 2, 97, 83, 3, 2, 2, 2, 98, 5, 3, 2, 2, 2, 99, 100, 9, 2, 2, 2, 100, 7, 3, 2, 2, 2, 101, 111, 5, 10, 6, 2, 102, 104, 5, 20, 11, 2, 103, 102, 3, 2, 2, 2, 104, 105, 3, 2, 2, 2, 105, 103, 3, 2, 2, 2, 105, 106, 3, 2, 2, 2, 106, 107, 3, 2, 2, 2, 107, 108, 5, 10, 6, 2, 108, 110, 3, 2, 2, 2, 109, 103, 3, 2, 2, 2, 110, 113, 3, 2, 2, 2, 111, 109, 3, 2, 2, 2, 111, 112, 3, 2, 2, 2, 112, 9, 3, 2, 2, 2, 113, 111, 3, 2, 2, 2, 114, 118, 5, 12, 7, 2, 115, 117, 5, 16, 9, 2, 116, 115, 3, 2, 2, 2, 117, 120, 3, 2, 2, 2, 118, 116, 3, 2, 2, 2, 118, 119, 3, 2, 2, 2, 119, 129, 3, 2, 2, 2, 120, 118, 3, 2, 2, 2, 121, 125, 5, 34, 18, 2, 122, 124, 5, 16, 9, 2, 123, 122, 3, 2, 2, 2, 124, 127, 3, 2, 2, 2, 125, 123, 3, 2, 2, 2, 125, 126, 3, 2, 2, 2, 126, 129, 3, 2, 2, 2, 127, 125, 3, 2, 2, 2, 128, 114, 3, 2, 2, 2, 128, 121, 3, 2, 2, 2, 129, 11, 3, 2, 2, 2, 130, 132, 7, 5, 2, 2, 131, 130, 3, 2, 2, 2, 131, 132, 3, 2, 2, 2, 132, 134, 3, 2, 2, 2, 133, 135, 5, 14, 8, 2, 134, 133, 3, 2, 2, 2, 135, 136, 3, 2, 2, 2, 136, 134, 3, 2, 2, 2, 136, 137, 3, 2, 2, 2, 137, 143, 3, 2, 2, 2, 138, 142, 5, 14, 8, 2, 139, 142, 7, 5, 2, 2, 140, 142, 7, 7, 2, 2, 141, 138, 3, 2, 2, 2, 141, 139, 3, 2, 2, 2, 141, 140, 3, 2, 2, 2, 142, 145, 3, 2, 2, 2, 143, 141, 3, 2, 2, 2, 143, 144, 3, 2, 2, 2, 144, 13, 3, 2, 2, 2, 145, 143, 3, 2, 2, 2, 146, 147, 9, 3, 2, 2, 147, 15, 3, 2, 2, 2, 148, 151, 5, 34, 18, 2, 149, 151, 5, 18, 10, 2, 150, 148, 3, 2, 2, 2, 150, 149, 3, 2, 2, 2, 151, 17, 3, 2, 2, 2, 152, 156, 5, 14, 8, 2, 153, 156, 7, 5, 2, 2, 154, 156, 7, 7, 2, 2, 155, 152, 3, 2, 2, 2, 155, 153, 3, 2, 2, 2, 155, 154, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 155, 3, 2, 2, 2, 157, 158, 3, 2, 2, 2, 158, 19, 3, 2, 2, 2, 159, 160, 7, 4, 2, 2, 160, 21, 3, 2, 2, 2, 161, 163, 5, 24, 13, 2, 162, 161, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 162, 3, 2, 2, 2, 164, 165, 3, 2, 2, 2, 165, 23, 3, 2, 2, 2, 166, 168, 7, 5, 2, 2, 167, 166, 3, 2, 2, 2, 167, 168, 3, 2, 2, 2, 168, 169, 3, 2, 2, 2, 169, 170, 7, 7, 2, 2, 170, 172, 5, 26, 14, 2, 171, 173, 7, 5, 2, 2, 172, 171, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 177, 3, 2, 2, 2, 174, 176, 5, 28, 15, 2, 175, 174, 3, 2, 2, 2, 176, 179, 3, 2, 2, 2, 177, 175, 3, 2, 2, 2, 177, 178, 3, 2, 2, 2, 178, 25, 3, 2, 2, 2, 179, 177, 3, 2, 2, 2, 180, 181, 7, 3, 2, 2, 181, 27, 3, 2, 2, 2, 182, 186, 5, 30, 16, 2, 183, 186, 5, 34, 18, 2, 184, 186, 7, 4, 2, 2, 185, 182, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 185, 184, 3, 2, 2, 2, 186, 29, 3, 2, 2, 2, 187, 189, 5, 32, 17, 2, 188, 187, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 188, 3, 2, 2, 2, 190, 191, 3, 2, 2, 2, 191, 31, 3, 2, 2, 2, 192, 193, 9, 4, 2, 2, 193, 33, 3, 2, 2, 2, 194, 195, 7, 12, 2, 2, 195, 199, 5, 36, 19, 2, 196, 198, 7, 5, 2, 2, 197, 196, 3, 2, 2, 2, 198, 201, 3, 2, 2, 2, 199, 197, 3, 2, 2, 2, 199, 200, 3, 2, 2, 2, 200, 203, 3, 2, 2, 2, 201, 199, 3, 2, 2, 2, 202, 204, 5, 38, 20, 2, 203, 202, 3, 2, 2, 2, 203, 204, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 206, 7, 14, 2, 2, 206, 35, 3, 2, 2, 2, 207, 208, 7, 3, 2, 2, 208, 37, 3, 2, 2, 2, 209, 211, 5, 42, 22, 2, 210, 209, 3, 2, 2, 2, 211, 212, 3, 2, 2, 2, 212, 210, 3, 2, 2, 2, 212, 213, 3, 2, 2, 2, 213, 39, 3, 2, 2, 2, 214, 218, 7, 13, 2, 2, 215, 217, 5, 42, 22, 2, 216, 215, 3, 2, 2, 2, 217, 220, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 221, 3, 2, 2, 2, 220, 218, 3, 2, 2, 2, 221, 222, 7, 14, 2, 2, 222, 41, 3, 2, 2, 2, 223, 238, 5, 40, 21, 2, 224, 234, 5, 44, 23, 2, 225, 227, 7, 4, 2, 2, 226, 225, 3, 2, 2, 2, 227, 230, 3, 2, 2, 2, 228, 226, 3, 2, 2, 2, 228, 229, 3, 2, 2, 2, 229, 231, 3, 2, 2, 2, 230, 228, 3, 2, 2, 2, 231, 233, 5, 44, 23, 2, 232, 228, 3, 2, 2, 2, 233, 236, 3, 2, 2, 2, 234, 232, 3, 2, 2, 2, 234, 235, 3, 2, 2, 2, 235, 238, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 237, 223, 3, 2, 2, 2, 237, 224, 3, 2, 2, 2, 238, 43, 3, 2, 2, 2, 239, 240, 9, 5, 2, 2, 240, 45, 3, 2, 2, 2, 35, 51, 61, 67, 73, 79, 87, 92, 97, 105, 111, 118, 125, 128, 131, 136, 141, 143, 150, 155, 157, 164, 167, 172, 177, 185, 190, 199, 203, 212, 218, 228, 234, 237] \ No newline at end of file diff --git a/java2python/lang/JavadocParser.py b/java2python/lang/JavadocParser.py new file mode 100644 index 0000000..4674651 --- /dev/null +++ b/java2python/lang/JavadocParser.py @@ -0,0 +1,1717 @@ +# Generated from JavadocParser.g4 by ANTLR 4.7.2 +# encoding: utf-8 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3\16") + buf.write("\u00f2\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") + buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") + buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\3\2\3\2\3\2\7") + buf.write("\2\62\n\2\f\2\16\2\65\13\2\3\2\3\2\3\2\3\2\3\2\7\2<\n") + buf.write("\2\f\2\16\2?\13\2\3\2\3\2\3\2\5\2D\n\2\3\3\3\3\7\3H\n") + buf.write("\3\f\3\16\3K\13\3\3\3\7\3N\n\3\f\3\16\3Q\13\3\3\3\3\3") + buf.write("\3\3\6\3V\n\3\r\3\16\3W\3\3\7\3[\n\3\f\3\16\3^\13\3\3") + buf.write("\3\3\3\5\3b\n\3\3\4\3\4\3\5\3\5\6\5h\n\5\r\5\16\5i\3\5") + buf.write("\3\5\7\5n\n\5\f\5\16\5q\13\5\3\6\3\6\7\6u\n\6\f\6\16\6") + buf.write("x\13\6\3\6\3\6\7\6|\n\6\f\6\16\6\177\13\6\5\6\u0081\n") + buf.write("\6\3\7\5\7\u0084\n\7\3\7\6\7\u0087\n\7\r\7\16\7\u0088") + buf.write("\3\7\3\7\3\7\7\7\u008e\n\7\f\7\16\7\u0091\13\7\3\b\3\b") + buf.write("\3\t\3\t\5\t\u0097\n\t\3\n\3\n\3\n\6\n\u009c\n\n\r\n\16") + buf.write("\n\u009d\3\13\3\13\3\f\6\f\u00a3\n\f\r\f\16\f\u00a4\3") + buf.write("\r\5\r\u00a8\n\r\3\r\3\r\3\r\5\r\u00ad\n\r\3\r\7\r\u00b0") + buf.write("\n\r\f\r\16\r\u00b3\13\r\3\16\3\16\3\17\3\17\3\17\5\17") + buf.write("\u00ba\n\17\3\20\6\20\u00bd\n\20\r\20\16\20\u00be\3\21") + buf.write("\3\21\3\22\3\22\3\22\7\22\u00c6\n\22\f\22\16\22\u00c9") + buf.write("\13\22\3\22\5\22\u00cc\n\22\3\22\3\22\3\23\3\23\3\24\6") + buf.write("\24\u00d3\n\24\r\24\16\24\u00d4\3\25\3\25\7\25\u00d9\n") + buf.write("\25\f\25\16\25\u00dc\13\25\3\25\3\25\3\26\3\26\3\26\7") + buf.write("\26\u00e3\n\26\f\26\16\26\u00e6\13\26\3\26\7\26\u00e9") + buf.write("\n\26\f\26\16\26\u00ec\13\26\5\26\u00ee\n\26\3\27\3\27") + buf.write("\3\27\2\2\30\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"") + buf.write("$&(*,\2\6\3\2\4\5\6\2\3\3\6\6\b\t\r\16\6\2\3\3\5\6\b\t") + buf.write("\r\16\4\2\3\6\b\t\2\u0101\2C\3\2\2\2\4a\3\2\2\2\6c\3\2") + buf.write("\2\2\be\3\2\2\2\n\u0080\3\2\2\2\f\u0083\3\2\2\2\16\u0092") + buf.write("\3\2\2\2\20\u0096\3\2\2\2\22\u009b\3\2\2\2\24\u009f\3") + buf.write("\2\2\2\26\u00a2\3\2\2\2\30\u00a7\3\2\2\2\32\u00b4\3\2") + buf.write("\2\2\34\u00b9\3\2\2\2\36\u00bc\3\2\2\2 \u00c0\3\2\2\2") + buf.write("\"\u00c2\3\2\2\2$\u00cf\3\2\2\2&\u00d2\3\2\2\2(\u00d6") + buf.write("\3\2\2\2*\u00ed\3\2\2\2,\u00ef\3\2\2\2.D\7\2\2\3/\63\7") + buf.write("\n\2\2\60\62\5\6\4\2\61\60\3\2\2\2\62\65\3\2\2\2\63\61") + buf.write("\3\2\2\2\63\64\3\2\2\2\64\66\3\2\2\2\65\63\3\2\2\2\66") + buf.write("\67\5\4\3\2\678\7\13\2\289\7\2\2\39D\3\2\2\2:<\5\6\4\2") + buf.write(";:\3\2\2\2\3\2\2\2>@\3\2\2\2?=\3") + buf.write("\2\2\2@A\5\4\3\2AB\7\2\2\3BD\3\2\2\2C.\3\2\2\2C/\3\2\2") + buf.write("\2C=\3\2\2\2D\3\3\2\2\2EI\5\b\5\2FH\5\6\4\2GF\3\2\2\2") + buf.write("HK\3\2\2\2IG\3\2\2\2IJ\3\2\2\2Jb\3\2\2\2KI\3\2\2\2LN\5") + buf.write("\6\4\2ML\3\2\2\2NQ\3\2\2\2OM\3\2\2\2OP\3\2\2\2PR\3\2\2") + buf.write("\2QO\3\2\2\2Rb\5\26\f\2SU\5\b\5\2TV\7\4\2\2UT\3\2\2\2") + buf.write("VW\3\2\2\2WU\3\2\2\2WX\3\2\2\2X\\\3\2\2\2Y[\5\6\4\2ZY") + buf.write("\3\2\2\2[^\3\2\2\2\\Z\3\2\2\2\\]\3\2\2\2]_\3\2\2\2^\\") + buf.write("\3\2\2\2_`\5\26\f\2`b\3\2\2\2aE\3\2\2\2aO\3\2\2\2aS\3") + buf.write("\2\2\2b\5\3\2\2\2cd\t\2\2\2d\7\3\2\2\2eo\5\n\6\2fh\5\24") + buf.write("\13\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2ij\3\2\2\2jk\3\2\2") + buf.write("\2kl\5\n\6\2ln\3\2\2\2mg\3\2\2\2nq\3\2\2\2om\3\2\2\2o") + buf.write("p\3\2\2\2p\t\3\2\2\2qo\3\2\2\2rv\5\f\7\2su\5\20\t\2ts") + buf.write("\3\2\2\2ux\3\2\2\2vt\3\2\2\2vw\3\2\2\2w\u0081\3\2\2\2") + buf.write("xv\3\2\2\2y}\5\"\22\2z|\5\20\t\2{z\3\2\2\2|\177\3\2\2") + buf.write("\2}{\3\2\2\2}~\3\2\2\2~\u0081\3\2\2\2\177}\3\2\2\2\u0080") + buf.write("r\3\2\2\2\u0080y\3\2\2\2\u0081\13\3\2\2\2\u0082\u0084") + buf.write("\7\5\2\2\u0083\u0082\3\2\2\2\u0083\u0084\3\2\2\2\u0084") + buf.write("\u0086\3\2\2\2\u0085\u0087\5\16\b\2\u0086\u0085\3\2\2") + buf.write("\2\u0087\u0088\3\2\2\2\u0088\u0086\3\2\2\2\u0088\u0089") + buf.write("\3\2\2\2\u0089\u008f\3\2\2\2\u008a\u008e\5\16\b\2\u008b") + buf.write("\u008e\7\5\2\2\u008c\u008e\7\7\2\2\u008d\u008a\3\2\2\2") + buf.write("\u008d\u008b\3\2\2\2\u008d\u008c\3\2\2\2\u008e\u0091\3") + buf.write("\2\2\2\u008f\u008d\3\2\2\2\u008f\u0090\3\2\2\2\u0090\r") + buf.write("\3\2\2\2\u0091\u008f\3\2\2\2\u0092\u0093\t\3\2\2\u0093") + buf.write("\17\3\2\2\2\u0094\u0097\5\"\22\2\u0095\u0097\5\22\n\2") + buf.write("\u0096\u0094\3\2\2\2\u0096\u0095\3\2\2\2\u0097\21\3\2") + buf.write("\2\2\u0098\u009c\5\16\b\2\u0099\u009c\7\5\2\2\u009a\u009c") + buf.write("\7\7\2\2\u009b\u0098\3\2\2\2\u009b\u0099\3\2\2\2\u009b") + buf.write("\u009a\3\2\2\2\u009c\u009d\3\2\2\2\u009d\u009b\3\2\2\2") + buf.write("\u009d\u009e\3\2\2\2\u009e\23\3\2\2\2\u009f\u00a0\7\4") + buf.write("\2\2\u00a0\25\3\2\2\2\u00a1\u00a3\5\30\r\2\u00a2\u00a1") + buf.write("\3\2\2\2\u00a3\u00a4\3\2\2\2\u00a4\u00a2\3\2\2\2\u00a4") + buf.write("\u00a5\3\2\2\2\u00a5\27\3\2\2\2\u00a6\u00a8\7\5\2\2\u00a7") + buf.write("\u00a6\3\2\2\2\u00a7\u00a8\3\2\2\2\u00a8\u00a9\3\2\2\2") + buf.write("\u00a9\u00aa\7\7\2\2\u00aa\u00ac\5\32\16\2\u00ab\u00ad") + buf.write("\7\5\2\2\u00ac\u00ab\3\2\2\2\u00ac\u00ad\3\2\2\2\u00ad") + buf.write("\u00b1\3\2\2\2\u00ae\u00b0\5\34\17\2\u00af\u00ae\3\2\2") + buf.write("\2\u00b0\u00b3\3\2\2\2\u00b1\u00af\3\2\2\2\u00b1\u00b2") + buf.write("\3\2\2\2\u00b2\31\3\2\2\2\u00b3\u00b1\3\2\2\2\u00b4\u00b5") + buf.write("\7\3\2\2\u00b5\33\3\2\2\2\u00b6\u00ba\5\36\20\2\u00b7") + buf.write("\u00ba\5\"\22\2\u00b8\u00ba\7\4\2\2\u00b9\u00b6\3\2\2") + buf.write("\2\u00b9\u00b7\3\2\2\2\u00b9\u00b8\3\2\2\2\u00ba\35\3") + buf.write("\2\2\2\u00bb\u00bd\5 \21\2\u00bc\u00bb\3\2\2\2\u00bd\u00be") + buf.write("\3\2\2\2\u00be\u00bc\3\2\2\2\u00be\u00bf\3\2\2\2\u00bf") + buf.write("\37\3\2\2\2\u00c0\u00c1\t\4\2\2\u00c1!\3\2\2\2\u00c2\u00c3") + buf.write("\7\f\2\2\u00c3\u00c7\5$\23\2\u00c4\u00c6\7\5\2\2\u00c5") + buf.write("\u00c4\3\2\2\2\u00c6\u00c9\3\2\2\2\u00c7\u00c5\3\2\2\2") + buf.write("\u00c7\u00c8\3\2\2\2\u00c8\u00cb\3\2\2\2\u00c9\u00c7\3") + buf.write("\2\2\2\u00ca\u00cc\5&\24\2\u00cb\u00ca\3\2\2\2\u00cb\u00cc") + buf.write("\3\2\2\2\u00cc\u00cd\3\2\2\2\u00cd\u00ce\7\16\2\2\u00ce") + buf.write("#\3\2\2\2\u00cf\u00d0\7\3\2\2\u00d0%\3\2\2\2\u00d1\u00d3") + buf.write("\5*\26\2\u00d2\u00d1\3\2\2\2\u00d3\u00d4\3\2\2\2\u00d4") + buf.write("\u00d2\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5\'\3\2\2\2\u00d6") + buf.write("\u00da\7\r\2\2\u00d7\u00d9\5*\26\2\u00d8\u00d7\3\2\2\2") + buf.write("\u00d9\u00dc\3\2\2\2\u00da\u00d8\3\2\2\2\u00da\u00db\3") + buf.write("\2\2\2\u00db\u00dd\3\2\2\2\u00dc\u00da\3\2\2\2\u00dd\u00de") + buf.write("\7\16\2\2\u00de)\3\2\2\2\u00df\u00ee\5(\25\2\u00e0\u00ea") + buf.write("\5,\27\2\u00e1\u00e3\7\4\2\2\u00e2\u00e1\3\2\2\2\u00e3") + buf.write("\u00e6\3\2\2\2\u00e4\u00e2\3\2\2\2\u00e4\u00e5\3\2\2\2") + buf.write("\u00e5\u00e7\3\2\2\2\u00e6\u00e4\3\2\2\2\u00e7\u00e9\5") + buf.write(",\27\2\u00e8\u00e4\3\2\2\2\u00e9\u00ec\3\2\2\2\u00ea\u00e8") + buf.write("\3\2\2\2\u00ea\u00eb\3\2\2\2\u00eb\u00ee\3\2\2\2\u00ec") + buf.write("\u00ea\3\2\2\2\u00ed\u00df\3\2\2\2\u00ed\u00e0\3\2\2\2") + buf.write("\u00ee+\3\2\2\2\u00ef\u00f0\t\5\2\2\u00f0-\3\2\2\2#\63") + buf.write("=CIOW\\aiov}\u0080\u0083\u0088\u008d\u008f\u0096\u009b") + buf.write("\u009d\u00a4\u00a7\u00ac\u00b1\u00b9\u00be\u00c7\u00cb") + buf.write("\u00d4\u00da\u00e4\u00ea\u00ed") + return buf.getvalue() + + +class JavadocParser ( Parser ): + + grammarFileName = "JavadocParser.g4" + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + sharedContextCache = PredictionContextCache() + + literalNames = [ "", "", "", "", + "", "'@'", "'*'", "'/'", "", "", + "'{@'", "'{'", "'}'" ] + + symbolicNames = [ "", "NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", + "AT", "STAR", "SLASH", "JAVADOC_START", "JAVADOC_END", + "INLINE_TAG_START", "BRACE_OPEN", "BRACE_CLOSE" ] + + RULE_documentation = 0 + RULE_documentationContent = 1 + RULE_skipWhitespace = 2 + RULE_description = 3 + RULE_descriptionLine = 4 + RULE_descriptionLineStart = 5 + RULE_descriptionLineNoSpaceNoAt = 6 + RULE_descriptionLineElement = 7 + RULE_descriptionLineText = 8 + RULE_descriptionNewline = 9 + RULE_tagSection = 10 + RULE_blockTag = 11 + RULE_blockTagName = 12 + RULE_blockTagContent = 13 + RULE_blockTagText = 14 + RULE_blockTagTextElement = 15 + RULE_inlineTag = 16 + RULE_inlineTagName = 17 + RULE_inlineTagContent = 18 + RULE_braceExpression = 19 + RULE_braceContent = 20 + RULE_braceText = 21 + + ruleNames = [ "documentation", "documentationContent", "skipWhitespace", + "description", "descriptionLine", "descriptionLineStart", + "descriptionLineNoSpaceNoAt", "descriptionLineElement", + "descriptionLineText", "descriptionNewline", "tagSection", + "blockTag", "blockTagName", "blockTagContent", "blockTagText", + "blockTagTextElement", "inlineTag", "inlineTagName", + "inlineTagContent", "braceExpression", "braceContent", + "braceText" ] + + EOF = Token.EOF + NAME=1 + NEWLINE=2 + SPACE=3 + TEXT_CONTENT=4 + AT=5 + STAR=6 + SLASH=7 + JAVADOC_START=8 + JAVADOC_END=9 + INLINE_TAG_START=10 + BRACE_OPEN=11 + BRACE_CLOSE=12 + + def __init__(self, input:TokenStream, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) + self._predicates = None + + + + class DocumentationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EOF(self): + return self.getToken(JavadocParser.EOF, 0) + + def JAVADOC_START(self): + return self.getToken(JavadocParser.JAVADOC_START, 0) + + def documentationContent(self): + return self.getTypedRuleContext(JavadocParser.DocumentationContentContext,0) + + + def JAVADOC_END(self): + return self.getToken(JavadocParser.JAVADOC_END, 0) + + def skipWhitespace(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.SkipWhitespaceContext) + else: + return self.getTypedRuleContext(JavadocParser.SkipWhitespaceContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_documentation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDocumentation" ): + listener.enterDocumentation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDocumentation" ): + listener.exitDocumentation(self) + + + + + def documentation(self): + + localctx = JavadocParser.DocumentationContext(self, self._ctx, self.state) + self.enterRule(localctx, 0, self.RULE_documentation) + try: + self.state = 65 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.EOF]: + self.enterOuterAlt(localctx, 1) + self.state = 44 + self.match(JavadocParser.EOF) + pass + elif token in [JavadocParser.JAVADOC_START]: + self.enterOuterAlt(localctx, 2) + self.state = 45 + self.match(JavadocParser.JAVADOC_START) + self.state = 49 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,0,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 46 + self.skipWhitespace() + self.state = 51 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,0,self._ctx) + + self.state = 52 + self.documentationContent() + self.state = 53 + self.match(JavadocParser.JAVADOC_END) + self.state = 54 + self.match(JavadocParser.EOF) + pass + elif token in [JavadocParser.NAME, JavadocParser.NEWLINE, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.AT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.INLINE_TAG_START, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 3) + self.state = 59 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,1,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 56 + self.skipWhitespace() + self.state = 61 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,1,self._ctx) + + self.state = 62 + self.documentationContent() + self.state = 63 + self.match(JavadocParser.EOF) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DocumentationContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def description(self): + return self.getTypedRuleContext(JavadocParser.DescriptionContext,0) + + + def skipWhitespace(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.SkipWhitespaceContext) + else: + return self.getTypedRuleContext(JavadocParser.SkipWhitespaceContext,i) + + + def tagSection(self): + return self.getTypedRuleContext(JavadocParser.TagSectionContext,0) + + + def NEWLINE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.NEWLINE) + else: + return self.getToken(JavadocParser.NEWLINE, i) + + def getRuleIndex(self): + return JavadocParser.RULE_documentationContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDocumentationContent" ): + listener.enterDocumentationContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDocumentationContent" ): + listener.exitDocumentationContent(self) + + + + + def documentationContent(self): + + localctx = JavadocParser.DocumentationContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 2, self.RULE_documentationContent) + self._la = 0 # Token type + try: + self.state = 95 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,7,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 67 + self.description() + self.state = 71 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavadocParser.NEWLINE or _la==JavadocParser.SPACE: + self.state = 68 + self.skipWhitespace() + self.state = 73 + self._errHandler.sync(self) + _la = self._input.LA(1) + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 77 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,4,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 74 + self.skipWhitespace() + self.state = 79 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,4,self._ctx) + + self.state = 80 + self.tagSection() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 81 + self.description() + self.state = 83 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 82 + self.match(JavadocParser.NEWLINE) + + else: + raise NoViableAltException(self) + self.state = 85 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,5,self._ctx) + + self.state = 90 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 87 + self.skipWhitespace() + self.state = 92 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + + self.state = 93 + self.tagSection() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SkipWhitespaceContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SPACE(self): + return self.getToken(JavadocParser.SPACE, 0) + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_skipWhitespace + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSkipWhitespace" ): + listener.enterSkipWhitespace(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSkipWhitespace" ): + listener.exitSkipWhitespace(self) + + + + + def skipWhitespace(self): + + localctx = JavadocParser.SkipWhitespaceContext(self, self._ctx, self.state) + self.enterRule(localctx, 4, self.RULE_skipWhitespace) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 97 + _la = self._input.LA(1) + if not(_la==JavadocParser.NEWLINE or _la==JavadocParser.SPACE): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def descriptionLine(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineContext,i) + + + def descriptionNewline(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionNewlineContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionNewlineContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_description + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescription" ): + listener.enterDescription(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescription" ): + listener.exitDescription(self) + + + + + def description(self): + + localctx = JavadocParser.DescriptionContext(self, self._ctx, self.state) + self.enterRule(localctx, 6, self.RULE_description) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 99 + self.descriptionLine() + self.state = 109 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,9,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 101 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 100 + self.descriptionNewline() + self.state = 103 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavadocParser.NEWLINE): + break + + self.state = 105 + self.descriptionLine() + self.state = 111 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,9,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def descriptionLineStart(self): + return self.getTypedRuleContext(JavadocParser.DescriptionLineStartContext,0) + + + def descriptionLineElement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineElementContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineElementContext,i) + + + def inlineTag(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContext,0) + + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLine + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLine" ): + listener.enterDescriptionLine(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLine" ): + listener.exitDescriptionLine(self) + + + + + def descriptionLine(self): + + localctx = JavadocParser.DescriptionLineContext(self, self._ctx, self.state) + self.enterRule(localctx, 8, self.RULE_descriptionLine) + try: + self.state = 126 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 1) + self.state = 112 + self.descriptionLineStart() + self.state = 116 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,10,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 113 + self.descriptionLineElement() + self.state = 118 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,10,self._ctx) + + pass + elif token in [JavadocParser.INLINE_TAG_START]: + self.enterOuterAlt(localctx, 2) + self.state = 119 + self.inlineTag() + self.state = 123 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,11,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 120 + self.descriptionLineElement() + self.state = 125 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,11,self._ctx) + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineStartContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def descriptionLineNoSpaceNoAt(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineNoSpaceNoAtContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineNoSpaceNoAtContext,i) + + + def AT(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.AT) + else: + return self.getToken(JavadocParser.AT, i) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineStart + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineStart" ): + listener.enterDescriptionLineStart(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineStart" ): + listener.exitDescriptionLineStart(self) + + + + + def descriptionLineStart(self): + + localctx = JavadocParser.DescriptionLineStartContext(self, self._ctx, self.state) + self.enterRule(localctx, 10, self.RULE_descriptionLineStart) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 129 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavadocParser.SPACE: + self.state = 128 + self.match(JavadocParser.SPACE) + + + self.state = 132 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 131 + self.descriptionLineNoSpaceNoAt() + + else: + raise NoViableAltException(self) + self.state = 134 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,14,self._ctx) + + self.state = 141 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 139 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.state = 136 + self.descriptionLineNoSpaceNoAt() + pass + elif token in [JavadocParser.SPACE]: + self.state = 137 + self.match(JavadocParser.SPACE) + pass + elif token in [JavadocParser.AT]: + self.state = 138 + self.match(JavadocParser.AT) + pass + else: + raise NoViableAltException(self) + + self.state = 143 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineNoSpaceNoAtContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TEXT_CONTENT(self): + return self.getToken(JavadocParser.TEXT_CONTENT, 0) + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def STAR(self): + return self.getToken(JavadocParser.STAR, 0) + + def SLASH(self): + return self.getToken(JavadocParser.SLASH, 0) + + def BRACE_OPEN(self): + return self.getToken(JavadocParser.BRACE_OPEN, 0) + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineNoSpaceNoAt + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineNoSpaceNoAt" ): + listener.enterDescriptionLineNoSpaceNoAt(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineNoSpaceNoAt" ): + listener.exitDescriptionLineNoSpaceNoAt(self) + + + + + def descriptionLineNoSpaceNoAt(self): + + localctx = JavadocParser.DescriptionLineNoSpaceNoAtContext(self, self._ctx, self.state) + self.enterRule(localctx, 12, self.RULE_descriptionLineNoSpaceNoAt) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 144 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN) | (1 << JavadocParser.BRACE_CLOSE))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineElementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def inlineTag(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContext,0) + + + def descriptionLineText(self): + return self.getTypedRuleContext(JavadocParser.DescriptionLineTextContext,0) + + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineElement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineElement" ): + listener.enterDescriptionLineElement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineElement" ): + listener.exitDescriptionLineElement(self) + + + + + def descriptionLineElement(self): + + localctx = JavadocParser.DescriptionLineElementContext(self, self._ctx, self.state) + self.enterRule(localctx, 14, self.RULE_descriptionLineElement) + try: + self.state = 148 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.INLINE_TAG_START]: + self.enterOuterAlt(localctx, 1) + self.state = 146 + self.inlineTag() + pass + elif token in [JavadocParser.NAME, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.AT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 2) + self.state = 147 + self.descriptionLineText() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionLineTextContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def descriptionLineNoSpaceNoAt(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.DescriptionLineNoSpaceNoAtContext) + else: + return self.getTypedRuleContext(JavadocParser.DescriptionLineNoSpaceNoAtContext,i) + + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def AT(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.AT) + else: + return self.getToken(JavadocParser.AT, i) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionLineText + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionLineText" ): + listener.enterDescriptionLineText(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionLineText" ): + listener.exitDescriptionLineText(self) + + + + + def descriptionLineText(self): + + localctx = JavadocParser.DescriptionLineTextContext(self, self._ctx, self.state) + self.enterRule(localctx, 16, self.RULE_descriptionLineText) + try: + self.enterOuterAlt(localctx, 1) + self.state = 153 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 153 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.state = 150 + self.descriptionLineNoSpaceNoAt() + pass + elif token in [JavadocParser.SPACE]: + self.state = 151 + self.match(JavadocParser.SPACE) + pass + elif token in [JavadocParser.AT]: + self.state = 152 + self.match(JavadocParser.AT) + pass + else: + raise NoViableAltException(self) + + + else: + raise NoViableAltException(self) + self.state = 155 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,19,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DescriptionNewlineContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_descriptionNewline + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDescriptionNewline" ): + listener.enterDescriptionNewline(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDescriptionNewline" ): + listener.exitDescriptionNewline(self) + + + + + def descriptionNewline(self): + + localctx = JavadocParser.DescriptionNewlineContext(self, self._ctx, self.state) + self.enterRule(localctx, 18, self.RULE_descriptionNewline) + try: + self.enterOuterAlt(localctx, 1) + self.state = 157 + self.match(JavadocParser.NEWLINE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TagSectionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def blockTag(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BlockTagContext) + else: + return self.getTypedRuleContext(JavadocParser.BlockTagContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_tagSection + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTagSection" ): + listener.enterTagSection(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTagSection" ): + listener.exitTagSection(self) + + + + + def tagSection(self): + + localctx = JavadocParser.TagSectionContext(self, self._ctx, self.state) + self.enterRule(localctx, 20, self.RULE_tagSection) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 160 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 159 + self.blockTag() + self.state = 162 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavadocParser.SPACE or _la==JavadocParser.AT): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(JavadocParser.AT, 0) + + def blockTagName(self): + return self.getTypedRuleContext(JavadocParser.BlockTagNameContext,0) + + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def blockTagContent(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BlockTagContentContext) + else: + return self.getTypedRuleContext(JavadocParser.BlockTagContentContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_blockTag + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTag" ): + listener.enterBlockTag(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTag" ): + listener.exitBlockTag(self) + + + + + def blockTag(self): + + localctx = JavadocParser.BlockTagContext(self, self._ctx, self.state) + self.enterRule(localctx, 22, self.RULE_blockTag) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 165 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavadocParser.SPACE: + self.state = 164 + self.match(JavadocParser.SPACE) + + + self.state = 167 + self.match(JavadocParser.AT) + self.state = 168 + self.blockTagName() + self.state = 170 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,22,self._ctx) + if la_ == 1: + self.state = 169 + self.match(JavadocParser.SPACE) + + + self.state = 175 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,23,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 172 + self.blockTagContent() + self.state = 177 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,23,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagName" ): + listener.enterBlockTagName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagName" ): + listener.exitBlockTagName(self) + + + + + def blockTagName(self): + + localctx = JavadocParser.BlockTagNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 24, self.RULE_blockTagName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 178 + self.match(JavadocParser.NAME) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def blockTagText(self): + return self.getTypedRuleContext(JavadocParser.BlockTagTextContext,0) + + + def inlineTag(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContext,0) + + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagContent" ): + listener.enterBlockTagContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagContent" ): + listener.exitBlockTagContent(self) + + + + + def blockTagContent(self): + + localctx = JavadocParser.BlockTagContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 26, self.RULE_blockTagContent) + try: + self.state = 183 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.NAME, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH, JavadocParser.BRACE_OPEN, JavadocParser.BRACE_CLOSE]: + self.enterOuterAlt(localctx, 1) + self.state = 180 + self.blockTagText() + pass + elif token in [JavadocParser.INLINE_TAG_START]: + self.enterOuterAlt(localctx, 2) + self.state = 181 + self.inlineTag() + pass + elif token in [JavadocParser.NEWLINE]: + self.enterOuterAlt(localctx, 3) + self.state = 182 + self.match(JavadocParser.NEWLINE) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagTextContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def blockTagTextElement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BlockTagTextElementContext) + else: + return self.getTypedRuleContext(JavadocParser.BlockTagTextElementContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagText + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagText" ): + listener.enterBlockTagText(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagText" ): + listener.exitBlockTagText(self) + + + + + def blockTagText(self): + + localctx = JavadocParser.BlockTagTextContext(self, self._ctx, self.state) + self.enterRule(localctx, 28, self.RULE_blockTagText) + try: + self.enterOuterAlt(localctx, 1) + self.state = 186 + self._errHandler.sync(self) + _alt = 1 + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt == 1: + self.state = 185 + self.blockTagTextElement() + + else: + raise NoViableAltException(self) + self.state = 188 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,25,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockTagTextElementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TEXT_CONTENT(self): + return self.getToken(JavadocParser.TEXT_CONTENT, 0) + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def SPACE(self): + return self.getToken(JavadocParser.SPACE, 0) + + def STAR(self): + return self.getToken(JavadocParser.STAR, 0) + + def SLASH(self): + return self.getToken(JavadocParser.SLASH, 0) + + def BRACE_OPEN(self): + return self.getToken(JavadocParser.BRACE_OPEN, 0) + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_blockTagTextElement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockTagTextElement" ): + listener.enterBlockTagTextElement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockTagTextElement" ): + listener.exitBlockTagTextElement(self) + + + + + def blockTagTextElement(self): + + localctx = JavadocParser.BlockTagTextElementContext(self, self._ctx, self.state) + self.enterRule(localctx, 30, self.RULE_blockTagTextElement) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 190 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN) | (1 << JavadocParser.BRACE_CLOSE))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InlineTagContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def INLINE_TAG_START(self): + return self.getToken(JavadocParser.INLINE_TAG_START, 0) + + def inlineTagName(self): + return self.getTypedRuleContext(JavadocParser.InlineTagNameContext,0) + + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def SPACE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.SPACE) + else: + return self.getToken(JavadocParser.SPACE, i) + + def inlineTagContent(self): + return self.getTypedRuleContext(JavadocParser.InlineTagContentContext,0) + + + def getRuleIndex(self): + return JavadocParser.RULE_inlineTag + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInlineTag" ): + listener.enterInlineTag(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInlineTag" ): + listener.exitInlineTag(self) + + + + + def inlineTag(self): + + localctx = JavadocParser.InlineTagContext(self, self._ctx, self.state) + self.enterRule(localctx, 32, self.RULE_inlineTag) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 192 + self.match(JavadocParser.INLINE_TAG_START) + self.state = 193 + self.inlineTagName() + self.state = 197 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 194 + self.match(JavadocParser.SPACE) + self.state = 199 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,26,self._ctx) + + self.state = 201 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN))) != 0): + self.state = 200 + self.inlineTagContent() + + + self.state = 203 + self.match(JavadocParser.BRACE_CLOSE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InlineTagNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_inlineTagName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInlineTagName" ): + listener.enterInlineTagName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInlineTagName" ): + listener.exitInlineTagName(self) + + + + + def inlineTagName(self): + + localctx = JavadocParser.InlineTagNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 34, self.RULE_inlineTagName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 205 + self.match(JavadocParser.NAME) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InlineTagContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def braceContent(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BraceContentContext) + else: + return self.getTypedRuleContext(JavadocParser.BraceContentContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_inlineTagContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInlineTagContent" ): + listener.enterInlineTagContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInlineTagContent" ): + listener.exitInlineTagContent(self) + + + + + def inlineTagContent(self): + + localctx = JavadocParser.InlineTagContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 36, self.RULE_inlineTagContent) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 208 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 207 + self.braceContent() + self.state = 210 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN))) != 0)): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BraceExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def BRACE_OPEN(self): + return self.getToken(JavadocParser.BRACE_OPEN, 0) + + def BRACE_CLOSE(self): + return self.getToken(JavadocParser.BRACE_CLOSE, 0) + + def braceContent(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BraceContentContext) + else: + return self.getTypedRuleContext(JavadocParser.BraceContentContext,i) + + + def getRuleIndex(self): + return JavadocParser.RULE_braceExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBraceExpression" ): + listener.enterBraceExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBraceExpression" ): + listener.exitBraceExpression(self) + + + + + def braceExpression(self): + + localctx = JavadocParser.BraceExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 38, self.RULE_braceExpression) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 212 + self.match(JavadocParser.BRACE_OPEN) + self.state = 216 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH) | (1 << JavadocParser.BRACE_OPEN))) != 0): + self.state = 213 + self.braceContent() + self.state = 218 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 219 + self.match(JavadocParser.BRACE_CLOSE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BraceContentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def braceExpression(self): + return self.getTypedRuleContext(JavadocParser.BraceExpressionContext,0) + + + def braceText(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavadocParser.BraceTextContext) + else: + return self.getTypedRuleContext(JavadocParser.BraceTextContext,i) + + + def NEWLINE(self, i:int=None): + if i is None: + return self.getTokens(JavadocParser.NEWLINE) + else: + return self.getToken(JavadocParser.NEWLINE, i) + + def getRuleIndex(self): + return JavadocParser.RULE_braceContent + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBraceContent" ): + listener.enterBraceContent(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBraceContent" ): + listener.exitBraceContent(self) + + + + + def braceContent(self): + + localctx = JavadocParser.BraceContentContext(self, self._ctx, self.state) + self.enterRule(localctx, 40, self.RULE_braceContent) + try: + self.state = 235 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavadocParser.BRACE_OPEN]: + self.enterOuterAlt(localctx, 1) + self.state = 221 + self.braceExpression() + pass + elif token in [JavadocParser.NAME, JavadocParser.NEWLINE, JavadocParser.SPACE, JavadocParser.TEXT_CONTENT, JavadocParser.STAR, JavadocParser.SLASH]: + self.enterOuterAlt(localctx, 2) + self.state = 222 + self.braceText() + self.state = 232 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,31,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 226 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,30,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 223 + self.match(JavadocParser.NEWLINE) + self.state = 228 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,30,self._ctx) + + self.state = 229 + self.braceText() + self.state = 234 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,31,self._ctx) + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BraceTextContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def TEXT_CONTENT(self): + return self.getToken(JavadocParser.TEXT_CONTENT, 0) + + def NAME(self): + return self.getToken(JavadocParser.NAME, 0) + + def SPACE(self): + return self.getToken(JavadocParser.SPACE, 0) + + def STAR(self): + return self.getToken(JavadocParser.STAR, 0) + + def SLASH(self): + return self.getToken(JavadocParser.SLASH, 0) + + def NEWLINE(self): + return self.getToken(JavadocParser.NEWLINE, 0) + + def getRuleIndex(self): + return JavadocParser.RULE_braceText + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBraceText" ): + listener.enterBraceText(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBraceText" ): + listener.exitBraceText(self) + + + + + def braceText(self): + + localctx = JavadocParser.BraceTextContext(self, self._ctx, self.state) + self.enterRule(localctx, 42, self.RULE_braceText) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 237 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavadocParser.NAME) | (1 << JavadocParser.NEWLINE) | (1 << JavadocParser.SPACE) | (1 << JavadocParser.TEXT_CONTENT) | (1 << JavadocParser.STAR) | (1 << JavadocParser.SLASH))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + + + diff --git a/java2python/lang/JavadocParser.tokens b/java2python/lang/JavadocParser.tokens new file mode 100644 index 0000000..39ad57e --- /dev/null +++ b/java2python/lang/JavadocParser.tokens @@ -0,0 +1,18 @@ +NAME=1 +NEWLINE=2 +SPACE=3 +TEXT_CONTENT=4 +AT=5 +STAR=6 +SLASH=7 +JAVADOC_START=8 +JAVADOC_END=9 +INLINE_TAG_START=10 +BRACE_OPEN=11 +BRACE_CLOSE=12 +'@'=5 +'*'=6 +'/'=7 +'{@'=10 +'{'=11 +'}'=12 diff --git a/java2python/lang/JavadocParserListener.py b/java2python/lang/JavadocParserListener.py new file mode 100644 index 0000000..eeadc8c --- /dev/null +++ b/java2python/lang/JavadocParserListener.py @@ -0,0 +1,208 @@ +# Generated from JavadocParser.g4 by ANTLR 4.7.2 +from antlr4 import * +if __name__ is not None and "." in __name__: + from .JavadocParser import JavadocParser +else: + from JavadocParser import JavadocParser + +# This class defines a complete listener for a parse tree produced by JavadocParser. +class JavadocParserListener(ParseTreeListener): + + # Enter a parse tree produced by JavadocParser#documentation. + def enterDocumentation(self, ctx:JavadocParser.DocumentationContext): + pass + + # Exit a parse tree produced by JavadocParser#documentation. + def exitDocumentation(self, ctx:JavadocParser.DocumentationContext): + pass + + + # Enter a parse tree produced by JavadocParser#documentationContent. + def enterDocumentationContent(self, ctx:JavadocParser.DocumentationContentContext): + pass + + # Exit a parse tree produced by JavadocParser#documentationContent. + def exitDocumentationContent(self, ctx:JavadocParser.DocumentationContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#skipWhitespace. + def enterSkipWhitespace(self, ctx:JavadocParser.SkipWhitespaceContext): + pass + + # Exit a parse tree produced by JavadocParser#skipWhitespace. + def exitSkipWhitespace(self, ctx:JavadocParser.SkipWhitespaceContext): + pass + + + # Enter a parse tree produced by JavadocParser#description. + def enterDescription(self, ctx:JavadocParser.DescriptionContext): + pass + + # Exit a parse tree produced by JavadocParser#description. + def exitDescription(self, ctx:JavadocParser.DescriptionContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLine. + def enterDescriptionLine(self, ctx:JavadocParser.DescriptionLineContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLine. + def exitDescriptionLine(self, ctx:JavadocParser.DescriptionLineContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineStart. + def enterDescriptionLineStart(self, ctx:JavadocParser.DescriptionLineStartContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineStart. + def exitDescriptionLineStart(self, ctx:JavadocParser.DescriptionLineStartContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineNoSpaceNoAt. + def enterDescriptionLineNoSpaceNoAt(self, ctx:JavadocParser.DescriptionLineNoSpaceNoAtContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineNoSpaceNoAt. + def exitDescriptionLineNoSpaceNoAt(self, ctx:JavadocParser.DescriptionLineNoSpaceNoAtContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineElement. + def enterDescriptionLineElement(self, ctx:JavadocParser.DescriptionLineElementContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineElement. + def exitDescriptionLineElement(self, ctx:JavadocParser.DescriptionLineElementContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionLineText. + def enterDescriptionLineText(self, ctx:JavadocParser.DescriptionLineTextContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionLineText. + def exitDescriptionLineText(self, ctx:JavadocParser.DescriptionLineTextContext): + pass + + + # Enter a parse tree produced by JavadocParser#descriptionNewline. + def enterDescriptionNewline(self, ctx:JavadocParser.DescriptionNewlineContext): + pass + + # Exit a parse tree produced by JavadocParser#descriptionNewline. + def exitDescriptionNewline(self, ctx:JavadocParser.DescriptionNewlineContext): + pass + + + # Enter a parse tree produced by JavadocParser#tagSection. + def enterTagSection(self, ctx:JavadocParser.TagSectionContext): + pass + + # Exit a parse tree produced by JavadocParser#tagSection. + def exitTagSection(self, ctx:JavadocParser.TagSectionContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTag. + def enterBlockTag(self, ctx:JavadocParser.BlockTagContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTag. + def exitBlockTag(self, ctx:JavadocParser.BlockTagContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagName. + def enterBlockTagName(self, ctx:JavadocParser.BlockTagNameContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagName. + def exitBlockTagName(self, ctx:JavadocParser.BlockTagNameContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagContent. + def enterBlockTagContent(self, ctx:JavadocParser.BlockTagContentContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagContent. + def exitBlockTagContent(self, ctx:JavadocParser.BlockTagContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagText. + def enterBlockTagText(self, ctx:JavadocParser.BlockTagTextContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagText. + def exitBlockTagText(self, ctx:JavadocParser.BlockTagTextContext): + pass + + + # Enter a parse tree produced by JavadocParser#blockTagTextElement. + def enterBlockTagTextElement(self, ctx:JavadocParser.BlockTagTextElementContext): + pass + + # Exit a parse tree produced by JavadocParser#blockTagTextElement. + def exitBlockTagTextElement(self, ctx:JavadocParser.BlockTagTextElementContext): + pass + + + # Enter a parse tree produced by JavadocParser#inlineTag. + def enterInlineTag(self, ctx:JavadocParser.InlineTagContext): + pass + + # Exit a parse tree produced by JavadocParser#inlineTag. + def exitInlineTag(self, ctx:JavadocParser.InlineTagContext): + pass + + + # Enter a parse tree produced by JavadocParser#inlineTagName. + def enterInlineTagName(self, ctx:JavadocParser.InlineTagNameContext): + pass + + # Exit a parse tree produced by JavadocParser#inlineTagName. + def exitInlineTagName(self, ctx:JavadocParser.InlineTagNameContext): + pass + + + # Enter a parse tree produced by JavadocParser#inlineTagContent. + def enterInlineTagContent(self, ctx:JavadocParser.InlineTagContentContext): + pass + + # Exit a parse tree produced by JavadocParser#inlineTagContent. + def exitInlineTagContent(self, ctx:JavadocParser.InlineTagContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#braceExpression. + def enterBraceExpression(self, ctx:JavadocParser.BraceExpressionContext): + pass + + # Exit a parse tree produced by JavadocParser#braceExpression. + def exitBraceExpression(self, ctx:JavadocParser.BraceExpressionContext): + pass + + + # Enter a parse tree produced by JavadocParser#braceContent. + def enterBraceContent(self, ctx:JavadocParser.BraceContentContext): + pass + + # Exit a parse tree produced by JavadocParser#braceContent. + def exitBraceContent(self, ctx:JavadocParser.BraceContentContext): + pass + + + # Enter a parse tree produced by JavadocParser#braceText. + def enterBraceText(self, ctx:JavadocParser.BraceTextContext): + pass + + # Exit a parse tree produced by JavadocParser#braceText. + def exitBraceText(self, ctx:JavadocParser.BraceTextContext): + pass + + diff --git a/java2python/lang/Makefile b/java2python/lang/Makefile index 10eff10..87e5cb3 100644 --- a/java2python/lang/Makefile +++ b/java2python/lang/Makefile @@ -1,15 +1,15 @@ .PHONY: all clean .SILENT: clean -all: JavaParser.py JavaLexer.py +all: Java9Parser.py Java9Lexer.py -JavaParser.py: Java.g - antlr3 Java.g +Java9Parser.py: Java9Parser.g4 Java9Lexer.py + antlr4 -Dlanguage=Python3 Java9Lexer.g4 -JavaLexer.py: Java.g - antlr3 Java.g +Java9Lexer.py: Java9Lexer.g4 + antlr4 -Dlanguage=Python3 Java9Parser.g4 clean: From ec8ee44dd9db5afe16d1df0a56e5ec4ffce912f1 Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 9 Aug 2021 22:56:38 -0700 Subject: [PATCH 2/5] Fixup names --- java2python/compiler/__init__.py | 8 ++++---- java2python/lang/__init__.py | 4 ++-- java2python/lang/base.py | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/java2python/compiler/__init__.py b/java2python/compiler/__init__.py index 4325201..940510b 100644 --- a/java2python/compiler/__init__.py +++ b/java2python/compiler/__init__.py @@ -22,10 +22,10 @@ def buildAST(source): def buildJavaDocAST(source): """ Returns an AST for the given javadoc source. """ - from java2python.lang.JavaDocLexer import JavaDocLexer - from java2python.lang.JavaDocParser import JavaDocParser - lexer = JavaDocLexer(StringStream(source)) - parser = JavaDocParser(TokenStream(lexer)) + from java2python.lang.JavadocLexer import JavadocLexer + from java2python.lang.JavadocParser import JavaDocParser + lexer = JavadocLexer(StringStream(source)) + parser = JavadocParser(TokenStream(lexer)) scope = parser.commentBody() return scope.tree diff --git a/java2python/lang/__init__.py b/java2python/lang/__init__.py index 6e37576..db86dda 100644 --- a/java2python/lang/__init__.py +++ b/java2python/lang/__init__.py @@ -4,6 +4,6 @@ # # Clients should import values from this module instead of our submodules. -from java2python.lang.JavaLexer import JavaLexer as Lexer -from java2python.lang.JavaParser import JavaParser as Parser +from java2python.lang.Java9Lexer import Java9Lexer as Lexer +from java2python.lang.Java9Parser import JavaParser as Parser from java2python.lang.base import StringStream, TokenStream, TreeAdaptor, tokens diff --git a/java2python/lang/base.py b/java2python/lang/base.py index 0633b8e..ece0d8d 100644 --- a/java2python/lang/base.py +++ b/java2python/lang/base.py @@ -99,7 +99,7 @@ def module(self): module = self.parserModule if module: return module - import java2python.lang.JavaParser as module + import java2python.lang.Java9Parser as module self.parserModule = module return module From 5bc19d32b4c0bdbd6f7508dd938095aa87bb235e Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 9 Aug 2021 23:00:43 -0700 Subject: [PATCH 3/5] 2to3 --- bin/j2py | 20 ++++++++--------- java2python/compiler/block.py | 7 +++--- java2python/compiler/template.py | 26 +++++++++++----------- java2python/compiler/visitor.py | 30 +++++++++++++------------- java2python/lang/base.py | 8 +++---- java2python/lang/selector.py | 8 +++---- java2python/mod/basic.py | 4 ++-- java2python/mod/include/overloading.py | 2 +- java2python/mod/include/sync_test.py | 2 +- 9 files changed, 54 insertions(+), 53 deletions(-) diff --git a/bin/j2py b/bin/j2py index 6eb1a40..4b54d83 100755 --- a/bin/j2py +++ b/bin/j2py @@ -110,15 +110,15 @@ def runTransform(options): source = open(filein).read() else: source = sys.stdin.read() - except (IOError, ), exc: + except (IOError, ) as exc: code, msg = exc.args[0:2] - print 'IOError: %s.' % (msg, ) + print('IOError: %s.' % (msg, )) return code timed['comp'] try: tree = buildAST(source) - except (Exception, ), exc: + except (Exception, ) as exc: exception('exception while parsing') return 1 timed['comp_finish'] @@ -136,22 +136,22 @@ def runTransform(options): timed['visit_finish'] timed['encode'] - source = unicode(module) + source = str(module) timed['encode_finish'] timed['overall_finish'] if options.lexertokens: for idx, tok in enumerate(tree.parser.input.tokens): - print >> sys.stderr, '{0} {1}'.format(idx, tok) - print >> sys.stderr + print('{0} {1}'.format(idx, tok), file=sys.stderr) + print(file=sys.stderr) if options.javaast: tree.dump(sys.stderr) - print >> sys.stderr + print(file=sys.stderr) if options.pytree: module.dumpRepr(sys.stderr) - print >> sys.stderr + print(file=sys.stderr) if not options.skipsource: if fileout == filedefault: @@ -159,12 +159,12 @@ def runTransform(options): else: output = open(fileout, 'w') module.name = path.splitext(filein)[0] if filein != '-' else '' - print >> output, source + print(source, file=output) if not options.skipcompile: try: compile(source, '', 'exec') - except (SyntaxError, ), ex: + except (SyntaxError, ) as ex: warning('Generated source has invalid syntax. %s', ex) else: info('Generated source has valid syntax.') diff --git a/java2python/compiler/block.py b/java2python/compiler/block.py index 4cf7b09..7d8c40f 100644 --- a/java2python/compiler/block.py +++ b/java2python/compiler/block.py @@ -16,14 +16,15 @@ from java2python.compiler import template, visitor -def addTypeToModule((className, factoryName)): +def addTypeToModule(xxx_todo_changeme): """ Constructs and adds a new type to this module. """ + (className, factoryName) = xxx_todo_changeme bases = (getattr(template, className), getattr(visitor, className)) newType = type(className, bases, dict(factoryName=factoryName)) setattr(modules[__name__], className, newType) -map(addTypeToModule, ( +list(map(addTypeToModule, ( ('Annotation', 'at'), ('Class', 'klass'), ('Comment', 'comment'), @@ -35,4 +36,4 @@ def addTypeToModule((className, factoryName)): ('Module', 'module'), ('Statement', 'statement'), ) - ) + )) diff --git a/java2python/compiler/template.py b/java2python/compiler/template.py index 4f4dfe1..290f4c3 100644 --- a/java2python/compiler/template.py +++ b/java2python/compiler/template.py @@ -13,12 +13,13 @@ # are usually a sign of a bad design and/or language limitations, and # this case is no exception. -from cStringIO import StringIO +from io import StringIO from functools import partial -from itertools import chain, ifilter, imap +from itertools import chain from java2python.lang import tokens from java2python.lib import FS, colors +from functools import reduce class Factory(object): @@ -74,7 +75,7 @@ def __init__(cls, name, bases, namespace): pass -class Base(object): +class Base(object, metaclass=FactoryTypeDetector): """ Base -> base class for formatting Python output. This class defines a large set of attributes and methods for the @@ -110,7 +111,6 @@ class Base(object): a the template as tree for debugging. """ - __metaclass__ = FactoryTypeDetector isAnnotation = isClass = isComment = isEnum = isExpression = \ isInterface = isMethod = isModule = isStatement = False @@ -155,7 +155,7 @@ def altIdent(self, name): for klass in self.parents(lambda v:v.isClass): if name in klass.variables: try: - method = self.parents(lambda v:v.isMethod).next() + method = next(self.parents(lambda v:v.isMethod)) except (StopIteration, ): return name if name in [p['name'] for p in method.parameters]: @@ -173,20 +173,20 @@ def configHandler(self, part, suffix='Handler', default=None): def configHandlers(self, part, suffix='Handlers'): """ Returns config handlers for this type of template """ name = '{0}{1}{2}'.format(self.typeName, part, suffix) - return imap(self.toIter, chain(*self.config.every(name, []))) + return map(self.toIter, chain(*self.config.every(name, []))) def dump(self, fd, level=0): """ Writes the Python source code for this template to the given file. """ indent, isNotNone = level * self.indent, lambda x:x is not None lineFormat = '{0}{1}\n'.format - for line in ifilter(isNotNone, self.iterPrologue()): + for line in filter(isNotNone, self.iterPrologue()): line = lineFormat(indent, line) fd.write(line if line.strip() else '\n') - for item in ifilter(isNotNone, self.iterHead()): + for item in filter(isNotNone, self.iterHead()): item.dump(fd, level+1) for item in self.iterBody(): item.dump(fd, level+1) - for line in ifilter(isNotNone, self.iterEpilogue()): + for line in filter(isNotNone, self.iterEpilogue()): line = lineFormat(indent, line) fd.write(line if line.strip() else '\n') @@ -200,7 +200,7 @@ def dumpRepr(self, fd, level=0): """ Writes a debug string for this template to the given file. """ indent, default = self.indent, lambda x, y:None fd.write('{0}{1!r}\n'.format(indent*level, self)) - for child in ifilter(None, self.children): + for child in filter(None, self.children): getattr(child, 'dumpRepr', default)(fd, level+1) @property @@ -230,7 +230,7 @@ def iterPrologue(self): def iterHead(self): """ Yields the items in the head of this template. """ items = chain(*(h(self) for h in self.configHandlers('Head'))) - return imap(self.toExpr, items) + return map(self.toExpr, items) def iterBody(self): """ Yields the items in the body of this template. """ @@ -304,10 +304,10 @@ def __init__(self, config, left='', right='', fs=FS.lr, parent=None, tail=''): def __repr__(self): """ Returns the debug string representation of this template. """ parts, parent, showfs = [colors.blue(self.typeName)], self.parent, True - if isinstance(self.left, (basestring, )) and self.left: + if isinstance(self.left, str) and self.left: parts.append(colors.white('left:') + colors.yellow(self.left)) showfs = False - if isinstance(self.right, (basestring, )) and self.right: + if isinstance(self.right, str) and self.right: parts.append(colors.white('right:') + colors.yellow(self.right)) showfs = False if self.modifiers: diff --git a/java2python/compiler/visitor.py b/java2python/compiler/visitor.py index f62e53e..38b6564 100644 --- a/java2python/compiler/visitor.py +++ b/java2python/compiler/visitor.py @@ -13,7 +13,7 @@ from functools import reduce, partial -from itertools import ifilter, ifilterfalse, izip, tee +from itertools import filterfalse, tee from logging import debug, warn from re import compile as recompile, sub as resub @@ -31,7 +31,7 @@ def __init__(self): class Base(object): """ Base -> Parent class for AST visitors. """ - commentSubs = map(recompile, ['^\s*/(\*)+', '(\*)+/\s*$', '^\s*//']) + commentSubs = list(map(recompile, ['^\s*/(\*)+', '(\*)+/\s*$', '^\s*//'])) def accept(self, node, memo): """ Accept a node, possibly creating a child visitor. """ @@ -48,7 +48,7 @@ def insertComments(self, tmpl, tree, index, memo): cache, parser, comTypes = memo.comments, tree.parser, tokens.commentTypes comNew = lambda t:t.type in comTypes and (t.index not in cache) - for tok in ifilter(comNew, parser.input.tokens[memo.last:index]): + for tok in filter(comNew, parser.input.tokens[memo.last:index]): cache.add(tok.index) # loop over parents until we find the top expression @@ -70,7 +70,7 @@ def insertComments(self, tmpl, tree, index, memo): def stripComment(self, text): """ Regex substitutions for comments; removes comment characters. """ subText = lambda value, regex:resub(regex, '', value) - for text in ifilter(unicode.strip, text.split('\n')): + for text in filter(str.strip, text.split('\n')): yield reduce(subText, self.commentSubs, text) def walk(self, tree, memo=None): @@ -95,7 +95,7 @@ def walk(self, tree, memo=None): def zipWalk(self, nodes, visitors, memo): """ Walk the given nodes zipped with the given visitors. """ - for node, visitor in izip(nodes, visitors): + for node, visitor in zip(nodes, visitors): visitor.walk(node, memo) def nodeTypeToString(self, node): @@ -132,7 +132,7 @@ def acceptType(self, node, memo): _acceptInterface = makeAcceptType('interface') def acceptInterface(self, node, memo): - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsAbstractHelpers = True return self._acceptInterface(node, memo) @@ -161,9 +161,9 @@ class ModifiersAcceptor(object): def acceptModifierList(self, node, memo): """ Accept and process class and method modifiers. """ isAnno = lambda token:token.type==tokens.AT - for ano in ifilter(isAnno, node.children): + for ano in filter(isAnno, node.children): self.nodesToAnnos(ano, memo) - for mod in ifilterfalse(isAnno, node.children): + for mod in filterfalse(isAnno, node.children): self.nodesToModifiers(mod, node) return self @@ -407,7 +407,7 @@ def acceptCatch(self, node, memo): def acceptContinue(self, node, memo): """ Accept and process a continue statement. """ - parent = node.parents(lambda x: x.type in {tokens.FOR, tokens.FOR_EACH, tokens.DO, tokens.WHILE}).next() + parent = next(node.parents(lambda x: x.type in {tokens.FOR, tokens.FOR_EACH, tokens.DO, tokens.WHILE})) if parent.type == tokens.FOR: updateStat = self.factory.expr(parent=self) updateStat.walk(parent.firstChildOfType(tokens.FOR_UPDATE), memo) @@ -561,7 +561,7 @@ def acceptSwitch(self, node, memo): def acceptSynchronized(self, node, memo): """ Accept and process a synchronized statement (not a modifier). """ - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsSyncHelpers = True if node.parent.type == tokens.MODIFIER_LIST: # Skip any synchronized modifier @@ -743,7 +743,7 @@ def acceptPrePost(self, node, memo): name = node.firstChildOfType(tokens.IDENT).text handler = self.configHandler('VariableNaming') rename = handler(name) - block = self.parents(lambda x:x.isMethod).next() + block = next(self.parents(lambda x:x.isMethod)) if pre: left = name else: @@ -768,7 +768,7 @@ def acceptBitShiftRight(self, node, memo): self.fs = 'bsr(' + FS.l + ', ' + FS.r + ')' self.left, self.right = visitors = factory(parent=self), factory() self.zipWalk(node.children, visitors, memo) - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsBsrFunc = True def acceptBitShiftRightAssign(self, node, memo): @@ -777,7 +777,7 @@ def acceptBitShiftRightAssign(self, node, memo): self.fs = FS.l + ' = bsr(' + FS.l + ', ' + FS.r + ')' self.left, self.right = visitors = factory(parent=self), factory() self.zipWalk(node.children, visitors, memo) - module = self.parents(lambda x:x.isModule).next() + module = next(self.parents(lambda x:x.isModule)) module.needsBsrFunc = True def acceptClassConstructorCall(self, node, memo): @@ -853,12 +853,12 @@ def acceptStaticArrayCreator(self, node, memo): def acceptSuper(self, node, memo): """ Accept and process a super expression. """ - cls = self.parents(lambda c:c.isClass).next() + cls = next(self.parents(lambda c:c.isClass)) self.right = self.factory.expr(fs='super({name}, self)'.format(name=cls.name)) def acceptSuperConstructorCall(self, node, memo): """ Accept and process a super constructor call. """ - cls = self.parents(lambda c:c.isClass).next() + cls = next(self.parents(lambda c:c.isClass)) fs = 'super(' + FS.l + ', self).__init__(' + FS.r + ')' self.right = self.factory.expr(fs=fs, left=cls.name) return self.right diff --git a/java2python/lang/base.py b/java2python/lang/base.py index ece0d8d..c5df6d0 100644 --- a/java2python/lang/base.py +++ b/java2python/lang/base.py @@ -47,7 +47,7 @@ # instances. # -from cStringIO import StringIO +from io import StringIO from antlr3 import ANTLRStringStream as StringStream, CommonTokenStream as TokenStream from antlr3.tree import CommonTreeAdaptor, CommonTree @@ -184,13 +184,13 @@ def innerDump(root, offset): args[2] = ' ' + self.colorText(ttyp, token.text) for com in self.selectComments(start, seen): for line in self.colorComments(com): - print >> fd, '{0}{1}'.format(indent, line) - print >> fd, nform.format(*args) + print('{0}{1}'.format(indent, line), file=fd) + print(nform.format(*args), file=fd) for child in root.getChildren(): innerDump(child, offset+1) for com in self.selectComments(root.tokenStopIndex, seen): for line in self.colorComments(com): - print >> fd, '{0}{1}'.format(indent, line) + print('{0}{1}'.format(indent, line), file=fd) innerDump(self, level) def dumps(self, level=0): diff --git a/java2python/lang/selector.py b/java2python/lang/selector.py index 22b531a..d277c20 100644 --- a/java2python/lang/selector.py +++ b/java2python/lang/selector.py @@ -90,11 +90,11 @@ def __init__(self, **attrs): self.attrs = attrs ## we support strings so that the client can refer to the ## token name that way instead of via lookup or worse, integer. - if isinstance(attrs.get('type'), (basestring, )): + if isinstance(attrs.get('type'), str): self.attrs['type'] = getattr(tokens, attrs.get('type')) def __call__(self, tree): - items = self.attrs.items() + items = list(self.attrs.items()) token = tree.token def match_or_call(k, v): @@ -106,7 +106,7 @@ def match_or_call(k, v): yield tree def __str__(self): - items = self.attrs.items() + items = list(self.attrs.items()) keys = ('{}={}'.format(k, v) for k, v in items if v is not None) return 'Token({})'.format(', '.join(keys)) @@ -126,7 +126,7 @@ def __call__(self, tree): matches = tree.children[self.key] except (IndexError, ): return - if not isinstance(matches, (list, )): + if not isinstance(matches, list): matches = [matches] for child in matches: yield child diff --git a/java2python/mod/basic.py b/java2python/mod/basic.py index 02e2f57..0806160 100644 --- a/java2python/mod/basic.py +++ b/java2python/mod/basic.py @@ -137,7 +137,7 @@ def maybeSynchronizedMethod(method): def globalNameCounter(original, counter=count()): - return '__{0}_{1}'.format(original, counter.next()) + return '__{0}_{1}'.format(original, next(counter)) def getBsrSrc(): @@ -237,7 +237,7 @@ def zopeImplementsClassHead(obj): def moveStaticExpressions(cls): name = '{}.'.format(cls.name) # notice the dot exprs = [child for child in cls.children if child.isExpression and name in str(child)] - module = cls.parents(lambda x:x.isModule).next() + module = next(cls.parents(lambda x:x.isModule)) for expr in exprs: cls.children.remove(expr) newExpr = module.factory.expr(fs=name + '{right}', right=expr) diff --git a/java2python/mod/include/overloading.py b/java2python/mod/include/overloading.py index 2f8257c..bf340b8 100644 --- a/java2python/mod/include/overloading.py +++ b/java2python/mod/include/overloading.py @@ -42,7 +42,7 @@ if sys.version_info[0] < 3: # Make the environment more like Python 3.0 __metaclass__ = type - from itertools import izip as zip + class overloaded: diff --git a/java2python/mod/include/sync_test.py b/java2python/mod/include/sync_test.py index 70c13d4..d7d62ea 100755 --- a/java2python/mod/include/sync_test.py +++ b/java2python/mod/include/sync_test.py @@ -84,5 +84,5 @@ def cs2(cls, *values, **kwargs): assert expected_count == len(_locks) - print '[PASS]' + print('[PASS]') From 83525fac3fcd31b4640046e75005b510e0f5e64c Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 9 Aug 2021 23:19:11 -0700 Subject: [PATCH 4/5] optimized grammar --- bin/j2py | 2 +- java2python/lang/Java9Lexer.g4 | 517 - java2python/lang/Java9Lexer.interp | 417 - java2python/lang/Java9Lexer.py | 810 - java2python/lang/Java9Lexer.tokens | 227 - java2python/lang/Java9Parser.g4 | 1431 -- java2python/lang/Java9Parser.interp | 492 - java2python/lang/Java9Parser.py | 20880 ---------------------- java2python/lang/Java9Parser.tokens | 227 - java2python/lang/Java9ParserListener.py | 2215 --- java2python/lang/JavaLexer.g4 | 211 + java2python/lang/JavaLexer.interp | 357 + java2python/lang/JavaLexer.py | 630 + java2python/lang/JavaLexer.tokens | 209 + java2python/lang/JavaParser.g4 | 620 + java2python/lang/JavaParser.interp | 338 + java2python/lang/JavaParser.py | 9921 ++++++++++ java2python/lang/JavaParser.tokens | 209 + java2python/lang/JavaParserListener.py | 955 + java2python/lang/__init__.py | 4 +- java2python/lang/base.py | 2 +- 21 files changed, 13454 insertions(+), 27220 deletions(-) delete mode 100644 java2python/lang/Java9Lexer.g4 delete mode 100644 java2python/lang/Java9Lexer.interp delete mode 100644 java2python/lang/Java9Lexer.py delete mode 100644 java2python/lang/Java9Lexer.tokens delete mode 100644 java2python/lang/Java9Parser.g4 delete mode 100644 java2python/lang/Java9Parser.interp delete mode 100644 java2python/lang/Java9Parser.py delete mode 100644 java2python/lang/Java9Parser.tokens delete mode 100644 java2python/lang/Java9ParserListener.py create mode 100644 java2python/lang/JavaLexer.g4 create mode 100644 java2python/lang/JavaLexer.interp create mode 100644 java2python/lang/JavaLexer.py create mode 100644 java2python/lang/JavaLexer.tokens create mode 100644 java2python/lang/JavaParser.g4 create mode 100644 java2python/lang/JavaParser.interp create mode 100644 java2python/lang/JavaParser.py create mode 100644 java2python/lang/JavaParser.tokens create mode 100644 java2python/lang/JavaParserListener.py diff --git a/bin/j2py b/bin/j2py index 4b54d83..bfc1fbf 100755 --- a/bin/j2py +++ b/bin/j2py @@ -9,7 +9,7 @@ a file, translate it, and write it out. import sys from argparse import ArgumentParser, ArgumentTypeError from collections import defaultdict -from logging import _levelNames as logLevels, exception, warning, info, basicConfig +from logging import _nameToLevel as logLevels, exception, warning, info, basicConfig from os import path, makedirs from time import time diff --git a/java2python/lang/Java9Lexer.g4 b/java2python/lang/Java9Lexer.g4 deleted file mode 100644 index ceac274..0000000 --- a/java2python/lang/Java9Lexer.g4 +++ /dev/null @@ -1,517 +0,0 @@ -/* - * [The "BSD license"] - * Copyright (c) 2014 Terence Parr - * Copyright (c) 2014 Sam Harwell - * Copyright (c) 2017 Chan Chung Kwong - * 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 9 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 Java9.g4 - * $ javac *.java - * $ grun Java9 compilationUnit *.java - * - * Or, -~/antlr/code/grammars-v4/java9 $ java Test . -/Users/parrt/antlr/code/grammars-v4/java9/./Java9BaseListener.java -/Users/parrt/antlr/code/grammars-v4/java9/./Java9Lexer.java -/Users/parrt/antlr/code/grammars-v4/java9/./Java9Listener.java -/Users/parrt/antlr/code/grammars-v4/java9/./Java9Parser.java -/Users/parrt/antlr/code/grammars-v4/java9/./Test.java -Total lexer+parser time 30844ms. -~/antlr/code/grammars-v4/java9 $ java Test examples/module-info.java -/home/kwong/projects/grammars-v4/java9/examples/module-info.java -Total lexer+parser time 914ms. -~/antlr/code/grammars-v4/java9 $ java Test examples/TryWithResourceDemo.java -/home/kwong/projects/grammars-v4/java9/examples/TryWithResourceDemo.java -Total lexer+parser time 3634ms. -~/antlr/code/grammars-v4/java9 $ java Test examples/helloworld.java -/home/kwong/projects/grammars-v4/java9/examples/helloworld.java -Total lexer+parser time 2497ms. - - */ -lexer grammar Java9Lexer; - -options -{ - superClass = Java9LexerBase; -} - -// 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'; -EXPORTS : 'exports'; -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'; -MODULE : 'module'; -NATIVE : 'native'; -NEW : 'new'; -OPEN : 'open'; -OPERNS : 'opens'; -PACKAGE : 'package'; -PRIVATE : 'private'; -PROTECTED : 'protected'; -PROVIDES : 'provides'; -PUBLIC : 'public'; -REQUIRES : 'requires'; -RETURN : 'return'; -SHORT : 'short'; -STATIC : 'static'; -STRICTFP : 'strictfp'; -SUPER : 'super'; -SWITCH : 'switch'; -SYNCHRONIZED : 'synchronized'; -THIS : 'this'; -THROW : 'throw'; -THROWS : 'throws'; -TO : 'to'; -TRANSIENT : 'transient'; -TRANSITIVE : 'transitive'; -TRY : 'try'; -USES : 'uses'; -VOID : 'void'; -VOLATILE : 'volatile'; -WHILE : 'while'; -WITH : 'with'; -UNDER_SCORE : '_';//Introduced in Java 9 - -// §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 - : '\\' [btnfr"'\\] - | OctalEscape - | UnicodeEscape // This is not in the spec but prevents having to preprocess the input - ; - -fragment -OctalEscape - : '\\' OctalDigit - | '\\' OctalDigit OctalDigit - | '\\' 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 : '.'; -ELLIPSIS : '...'; -AT : '@'; -COLONCOLON : '::'; - - -// §3.12 Operators - -ASSIGN : '='; -GT : '>'; -LT : '<'; -BANG : '!'; -TILDE : '~'; -QUESTION : '?'; -COLON : ':'; -ARROW : '->'; -EQUAL : '=='; -LE : '<='; -GE : '>='; -NOTEQUAL : '!='; -AND : '&&'; -OR : '||'; -INC : '++'; -DEC : '--'; -ADD : '+'; -SUB : '-'; -MUL : '*'; -DIV : '/'; -BITAND : '&'; -BITOR : '|'; -CARET : '^'; -MOD : '%'; -//LSHIFT : '<<'; -//RSHIFT : '>>'; -//URSHIFT : '>>>'; - -ADD_ASSIGN : '+='; -SUB_ASSIGN : '-='; -MUL_ASSIGN : '*='; -DIV_ASSIGN : '/='; -AND_ASSIGN : '&='; -OR_ASSIGN : '|='; -XOR_ASSIGN : '^='; -MOD_ASSIGN : '%='; -LSHIFT_ASSIGN : '<<='; -RSHIFT_ASSIGN : '>>='; -URSHIFT_ASSIGN : '>>>='; - -// §3.8 Identifiers (must appear after all keywords in the grammar) - -Identifier - : JavaLetter JavaLetterOrDigit* - ; - -fragment -JavaLetter - : [a-zA-Z$_] // these are the "java letters" below 0x7F - | // covers all characters above 0x7F which are not a surrogate - ~[\u0000-\u007F\uD800-\uDBFF] - { Check1() }? - | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF - [\uD800-\uDBFF] [\uDC00-\uDFFF] - { Check2() }? - ; - -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] - { Check3() }? - | // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF - [\uD800-\uDBFF] [\uDC00-\uDFFF] - { Check4() }? - ; - -// -// Whitespace and comments -// - -WS : [ \t\r\n\u000C]+ -> skip - ; - -COMMENT - : '/*' .*? '*/' -> channel(HIDDEN) - ; - -LINE_COMMENT - : '//' ~[\r\n]* -> channel(HIDDEN) - ; diff --git a/java2python/lang/Java9Lexer.interp b/java2python/lang/Java9Lexer.interp deleted file mode 100644 index baf60bd..0000000 --- a/java2python/lang/Java9Lexer.interp +++ /dev/null @@ -1,417 +0,0 @@ -token literal names: -null -'abstract' -'assert' -'boolean' -'break' -'byte' -'case' -'catch' -'char' -'class' -'const' -'continue' -'default' -'do' -'double' -'else' -'enum' -'exports' -'extends' -'final' -'finally' -'float' -'for' -'if' -'goto' -'implements' -'import' -'instanceof' -'int' -'interface' -'long' -'module' -'native' -'new' -'open' -'opens' -'package' -'private' -'protected' -'provides' -'public' -'requires' -'return' -'short' -'static' -'strictfp' -'super' -'switch' -'synchronized' -'this' -'throw' -'throws' -'to' -'transient' -'transitive' -'try' -'uses' -'void' -'volatile' -'while' -'with' -'_' -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 -EXPORTS -EXTENDS -FINAL -FINALLY -FLOAT -FOR -IF -GOTO -IMPLEMENTS -IMPORT -INSTANCEOF -INT -INTERFACE -LONG -MODULE -NATIVE -NEW -OPEN -OPERNS -PACKAGE -PRIVATE -PROTECTED -PROVIDES -PUBLIC -REQUIRES -RETURN -SHORT -STATIC -STRICTFP -SUPER -SWITCH -SYNCHRONIZED -THIS -THROW -THROWS -TO -TRANSIENT -TRANSITIVE -TRY -USES -VOID -VOLATILE -WHILE -WITH -UNDER_SCORE -IntegerLiteral -FloatingPointLiteral -BooleanLiteral -CharacterLiteral -StringLiteral -NullLiteral -LPAREN -RPAREN -LBRACE -RBRACE -LBRACK -RBRACK -SEMI -COMMA -DOT -ELLIPSIS -AT -COLONCOLON -ASSIGN -GT -LT -BANG -TILDE -QUESTION -COLON -ARROW -EQUAL -LE -GE -NOTEQUAL -AND -OR -INC -DEC -ADD -SUB -MUL -DIV -BITAND -BITOR -CARET -MOD -ADD_ASSIGN -SUB_ASSIGN -MUL_ASSIGN -DIV_ASSIGN -AND_ASSIGN -OR_ASSIGN -XOR_ASSIGN -MOD_ASSIGN -LSHIFT_ASSIGN -RSHIFT_ASSIGN -URSHIFT_ASSIGN -Identifier -WS -COMMENT -LINE_COMMENT - -rule names: -ABSTRACT -ASSERT -BOOLEAN -BREAK -BYTE -CASE -CATCH -CHAR -CLASS -CONST -CONTINUE -DEFAULT -DO -DOUBLE -ELSE -ENUM -EXPORTS -EXTENDS -FINAL -FINALLY -FLOAT -FOR -IF -GOTO -IMPLEMENTS -IMPORT -INSTANCEOF -INT -INTERFACE -LONG -MODULE -NATIVE -NEW -OPEN -OPERNS -PACKAGE -PRIVATE -PROTECTED -PROVIDES -PUBLIC -REQUIRES -RETURN -SHORT -STATIC -STRICTFP -SUPER -SWITCH -SYNCHRONIZED -THIS -THROW -THROWS -TO -TRANSIENT -TRANSITIVE -TRY -USES -VOID -VOLATILE -WHILE -WITH -UNDER_SCORE -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 -ELLIPSIS -AT -COLONCOLON -ASSIGN -GT -LT -BANG -TILDE -QUESTION -COLON -ARROW -EQUAL -LE -GE -NOTEQUAL -AND -OR -INC -DEC -ADD -SUB -MUL -DIV -BITAND -BITOR -CARET -MOD -ADD_ASSIGN -SUB_ASSIGN -MUL_ASSIGN -DIV_ASSIGN -AND_ASSIGN -OR_ASSIGN -XOR_ASSIGN -MOD_ASSIGN -LSHIFT_ASSIGN -RSHIFT_ASSIGN -URSHIFT_ASSIGN -Identifier -JavaLetter -JavaLetterOrDigit -WS -COMMENT -LINE_COMMENT - -channel names: -DEFAULT_TOKEN_CHANNEL -HIDDEN - -mode names: -DEFAULT_MODE - -atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 120, 1192, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 745, 10, 63, 3, 64, 3, 64, 5, 64, 749, 10, 64, 3, 65, 3, 65, 5, 65, 753, 10, 65, 3, 66, 3, 66, 5, 66, 757, 10, 66, 3, 67, 3, 67, 5, 67, 761, 10, 67, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 5, 69, 768, 10, 69, 3, 69, 3, 69, 3, 69, 5, 69, 773, 10, 69, 5, 69, 775, 10, 69, 3, 70, 3, 70, 5, 70, 779, 10, 70, 3, 70, 5, 70, 782, 10, 70, 3, 71, 3, 71, 5, 71, 786, 10, 71, 3, 72, 3, 72, 3, 73, 6, 73, 791, 10, 73, 13, 73, 14, 73, 792, 3, 74, 3, 74, 5, 74, 797, 10, 74, 3, 75, 6, 75, 800, 10, 75, 13, 75, 14, 75, 801, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 5, 77, 810, 10, 77, 3, 77, 5, 77, 813, 10, 77, 3, 78, 3, 78, 3, 79, 6, 79, 818, 10, 79, 13, 79, 14, 79, 819, 3, 80, 3, 80, 5, 80, 824, 10, 80, 3, 81, 3, 81, 5, 81, 828, 10, 81, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 834, 10, 82, 3, 82, 5, 82, 837, 10, 82, 3, 83, 3, 83, 3, 84, 6, 84, 842, 10, 84, 13, 84, 14, 84, 843, 3, 85, 3, 85, 5, 85, 848, 10, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 5, 87, 856, 10, 87, 3, 87, 5, 87, 859, 10, 87, 3, 88, 3, 88, 3, 89, 6, 89, 864, 10, 89, 13, 89, 14, 89, 865, 3, 90, 3, 90, 5, 90, 870, 10, 90, 3, 91, 3, 91, 5, 91, 874, 10, 91, 3, 92, 3, 92, 3, 92, 5, 92, 879, 10, 92, 3, 92, 5, 92, 882, 10, 92, 3, 92, 5, 92, 885, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 890, 10, 92, 3, 92, 5, 92, 893, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 898, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 903, 10, 92, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 95, 5, 95, 911, 10, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 5, 98, 922, 10, 98, 3, 99, 3, 99, 5, 99, 926, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 931, 10, 99, 3, 99, 3, 99, 5, 99, 935, 10, 99, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 5, 102, 951, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 961, 10, 103, 3, 104, 3, 104, 3, 105, 3, 105, 5, 105, 967, 10, 105, 3, 105, 3, 105, 3, 106, 6, 106, 972, 10, 106, 13, 106, 14, 106, 973, 3, 107, 3, 107, 5, 107, 978, 10, 107, 3, 108, 3, 108, 3, 108, 3, 108, 5, 108, 984, 10, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 5, 109, 997, 10, 109, 3, 110, 3, 110, 3, 111, 3, 111, 6, 111, 1003, 10, 111, 13, 111, 14, 111, 1004, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 114, 3, 114, 3, 115, 3, 115, 3, 116, 3, 116, 3, 117, 3, 117, 3, 118, 3, 118, 3, 119, 3, 119, 3, 120, 3, 120, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 126, 3, 126, 3, 127, 3, 127, 3, 128, 3, 128, 3, 129, 3, 129, 3, 130, 3, 130, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 142, 3, 142, 3, 143, 3, 143, 3, 144, 3, 144, 3, 145, 3, 145, 3, 146, 3, 146, 3, 147, 3, 147, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 7, 160, 1140, 10, 160, 12, 160, 14, 160, 1143, 11, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 1151, 10, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 5, 162, 1159, 10, 162, 3, 163, 6, 163, 1162, 10, 163, 13, 163, 14, 163, 1163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 7, 164, 1172, 10, 164, 12, 164, 14, 164, 1175, 11, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 7, 165, 1186, 10, 165, 12, 165, 14, 165, 1189, 11, 165, 3, 165, 3, 165, 3, 1173, 2, 166, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 2, 129, 2, 131, 2, 133, 2, 135, 2, 137, 2, 139, 2, 141, 2, 143, 2, 145, 2, 147, 2, 149, 2, 151, 2, 153, 2, 155, 2, 157, 2, 159, 2, 161, 2, 163, 2, 165, 2, 167, 2, 169, 2, 171, 2, 173, 2, 175, 2, 177, 2, 179, 2, 181, 65, 183, 2, 185, 2, 187, 2, 189, 2, 191, 2, 193, 2, 195, 2, 197, 2, 199, 2, 201, 2, 203, 66, 205, 67, 207, 2, 209, 68, 211, 2, 213, 2, 215, 2, 217, 2, 219, 2, 221, 2, 223, 69, 225, 70, 227, 71, 229, 72, 231, 73, 233, 74, 235, 75, 237, 76, 239, 77, 241, 78, 243, 79, 245, 80, 247, 81, 249, 82, 251, 83, 253, 84, 255, 85, 257, 86, 259, 87, 261, 88, 263, 89, 265, 90, 267, 91, 269, 92, 271, 93, 273, 94, 275, 95, 277, 96, 279, 97, 281, 98, 283, 99, 285, 100, 287, 101, 289, 102, 291, 103, 293, 104, 295, 105, 297, 106, 299, 107, 301, 108, 303, 109, 305, 110, 307, 111, 309, 112, 311, 113, 313, 114, 315, 115, 317, 116, 319, 117, 321, 2, 323, 2, 325, 118, 327, 119, 329, 120, 3, 2, 24, 4, 2, 78, 78, 110, 110, 3, 2, 51, 59, 4, 2, 90, 90, 122, 122, 5, 2, 50, 59, 67, 72, 99, 104, 3, 2, 50, 57, 4, 2, 68, 68, 100, 100, 3, 2, 50, 51, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 6, 2, 70, 70, 72, 72, 102, 102, 104, 104, 4, 2, 82, 82, 114, 114, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 10, 2, 36, 36, 41, 41, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 3, 2, 50, 53, 6, 2, 38, 38, 67, 92, 97, 97, 99, 124, 4, 2, 2, 129, 55298, 56321, 3, 2, 55298, 56321, 3, 2, 56322, 57345, 7, 2, 38, 38, 50, 59, 67, 92, 97, 97, 99, 124, 5, 2, 11, 12, 14, 15, 34, 34, 4, 2, 12, 12, 15, 15, 2, 1207, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 3, 331, 3, 2, 2, 2, 5, 340, 3, 2, 2, 2, 7, 347, 3, 2, 2, 2, 9, 355, 3, 2, 2, 2, 11, 361, 3, 2, 2, 2, 13, 366, 3, 2, 2, 2, 15, 371, 3, 2, 2, 2, 17, 377, 3, 2, 2, 2, 19, 382, 3, 2, 2, 2, 21, 388, 3, 2, 2, 2, 23, 394, 3, 2, 2, 2, 25, 403, 3, 2, 2, 2, 27, 411, 3, 2, 2, 2, 29, 414, 3, 2, 2, 2, 31, 421, 3, 2, 2, 2, 33, 426, 3, 2, 2, 2, 35, 431, 3, 2, 2, 2, 37, 439, 3, 2, 2, 2, 39, 447, 3, 2, 2, 2, 41, 453, 3, 2, 2, 2, 43, 461, 3, 2, 2, 2, 45, 467, 3, 2, 2, 2, 47, 471, 3, 2, 2, 2, 49, 474, 3, 2, 2, 2, 51, 479, 3, 2, 2, 2, 53, 490, 3, 2, 2, 2, 55, 497, 3, 2, 2, 2, 57, 508, 3, 2, 2, 2, 59, 512, 3, 2, 2, 2, 61, 522, 3, 2, 2, 2, 63, 527, 3, 2, 2, 2, 65, 534, 3, 2, 2, 2, 67, 541, 3, 2, 2, 2, 69, 545, 3, 2, 2, 2, 71, 550, 3, 2, 2, 2, 73, 556, 3, 2, 2, 2, 75, 564, 3, 2, 2, 2, 77, 572, 3, 2, 2, 2, 79, 582, 3, 2, 2, 2, 81, 591, 3, 2, 2, 2, 83, 598, 3, 2, 2, 2, 85, 607, 3, 2, 2, 2, 87, 614, 3, 2, 2, 2, 89, 620, 3, 2, 2, 2, 91, 627, 3, 2, 2, 2, 93, 636, 3, 2, 2, 2, 95, 642, 3, 2, 2, 2, 97, 649, 3, 2, 2, 2, 99, 662, 3, 2, 2, 2, 101, 667, 3, 2, 2, 2, 103, 673, 3, 2, 2, 2, 105, 680, 3, 2, 2, 2, 107, 683, 3, 2, 2, 2, 109, 693, 3, 2, 2, 2, 111, 704, 3, 2, 2, 2, 113, 708, 3, 2, 2, 2, 115, 713, 3, 2, 2, 2, 117, 718, 3, 2, 2, 2, 119, 727, 3, 2, 2, 2, 121, 733, 3, 2, 2, 2, 123, 738, 3, 2, 2, 2, 125, 744, 3, 2, 2, 2, 127, 746, 3, 2, 2, 2, 129, 750, 3, 2, 2, 2, 131, 754, 3, 2, 2, 2, 133, 758, 3, 2, 2, 2, 135, 762, 3, 2, 2, 2, 137, 774, 3, 2, 2, 2, 139, 776, 3, 2, 2, 2, 141, 785, 3, 2, 2, 2, 143, 787, 3, 2, 2, 2, 145, 790, 3, 2, 2, 2, 147, 796, 3, 2, 2, 2, 149, 799, 3, 2, 2, 2, 151, 803, 3, 2, 2, 2, 153, 807, 3, 2, 2, 2, 155, 814, 3, 2, 2, 2, 157, 817, 3, 2, 2, 2, 159, 823, 3, 2, 2, 2, 161, 825, 3, 2, 2, 2, 163, 831, 3, 2, 2, 2, 165, 838, 3, 2, 2, 2, 167, 841, 3, 2, 2, 2, 169, 847, 3, 2, 2, 2, 171, 849, 3, 2, 2, 2, 173, 853, 3, 2, 2, 2, 175, 860, 3, 2, 2, 2, 177, 863, 3, 2, 2, 2, 179, 869, 3, 2, 2, 2, 181, 873, 3, 2, 2, 2, 183, 902, 3, 2, 2, 2, 185, 904, 3, 2, 2, 2, 187, 907, 3, 2, 2, 2, 189, 910, 3, 2, 2, 2, 191, 914, 3, 2, 2, 2, 193, 916, 3, 2, 2, 2, 195, 918, 3, 2, 2, 2, 197, 934, 3, 2, 2, 2, 199, 936, 3, 2, 2, 2, 201, 939, 3, 2, 2, 2, 203, 950, 3, 2, 2, 2, 205, 960, 3, 2, 2, 2, 207, 962, 3, 2, 2, 2, 209, 964, 3, 2, 2, 2, 211, 971, 3, 2, 2, 2, 213, 977, 3, 2, 2, 2, 215, 983, 3, 2, 2, 2, 217, 996, 3, 2, 2, 2, 219, 998, 3, 2, 2, 2, 221, 1000, 3, 2, 2, 2, 223, 1011, 3, 2, 2, 2, 225, 1016, 3, 2, 2, 2, 227, 1018, 3, 2, 2, 2, 229, 1020, 3, 2, 2, 2, 231, 1022, 3, 2, 2, 2, 233, 1024, 3, 2, 2, 2, 235, 1026, 3, 2, 2, 2, 237, 1028, 3, 2, 2, 2, 239, 1030, 3, 2, 2, 2, 241, 1032, 3, 2, 2, 2, 243, 1034, 3, 2, 2, 2, 245, 1038, 3, 2, 2, 2, 247, 1040, 3, 2, 2, 2, 249, 1043, 3, 2, 2, 2, 251, 1045, 3, 2, 2, 2, 253, 1047, 3, 2, 2, 2, 255, 1049, 3, 2, 2, 2, 257, 1051, 3, 2, 2, 2, 259, 1053, 3, 2, 2, 2, 261, 1055, 3, 2, 2, 2, 263, 1057, 3, 2, 2, 2, 265, 1060, 3, 2, 2, 2, 267, 1063, 3, 2, 2, 2, 269, 1066, 3, 2, 2, 2, 271, 1069, 3, 2, 2, 2, 273, 1072, 3, 2, 2, 2, 275, 1075, 3, 2, 2, 2, 277, 1078, 3, 2, 2, 2, 279, 1081, 3, 2, 2, 2, 281, 1084, 3, 2, 2, 2, 283, 1086, 3, 2, 2, 2, 285, 1088, 3, 2, 2, 2, 287, 1090, 3, 2, 2, 2, 289, 1092, 3, 2, 2, 2, 291, 1094, 3, 2, 2, 2, 293, 1096, 3, 2, 2, 2, 295, 1098, 3, 2, 2, 2, 297, 1100, 3, 2, 2, 2, 299, 1103, 3, 2, 2, 2, 301, 1106, 3, 2, 2, 2, 303, 1109, 3, 2, 2, 2, 305, 1112, 3, 2, 2, 2, 307, 1115, 3, 2, 2, 2, 309, 1118, 3, 2, 2, 2, 311, 1121, 3, 2, 2, 2, 313, 1124, 3, 2, 2, 2, 315, 1128, 3, 2, 2, 2, 317, 1132, 3, 2, 2, 2, 319, 1137, 3, 2, 2, 2, 321, 1150, 3, 2, 2, 2, 323, 1158, 3, 2, 2, 2, 325, 1161, 3, 2, 2, 2, 327, 1167, 3, 2, 2, 2, 329, 1181, 3, 2, 2, 2, 331, 332, 7, 99, 2, 2, 332, 333, 7, 100, 2, 2, 333, 334, 7, 117, 2, 2, 334, 335, 7, 118, 2, 2, 335, 336, 7, 116, 2, 2, 336, 337, 7, 99, 2, 2, 337, 338, 7, 101, 2, 2, 338, 339, 7, 118, 2, 2, 339, 4, 3, 2, 2, 2, 340, 341, 7, 99, 2, 2, 341, 342, 7, 117, 2, 2, 342, 343, 7, 117, 2, 2, 343, 344, 7, 103, 2, 2, 344, 345, 7, 116, 2, 2, 345, 346, 7, 118, 2, 2, 346, 6, 3, 2, 2, 2, 347, 348, 7, 100, 2, 2, 348, 349, 7, 113, 2, 2, 349, 350, 7, 113, 2, 2, 350, 351, 7, 110, 2, 2, 351, 352, 7, 103, 2, 2, 352, 353, 7, 99, 2, 2, 353, 354, 7, 112, 2, 2, 354, 8, 3, 2, 2, 2, 355, 356, 7, 100, 2, 2, 356, 357, 7, 116, 2, 2, 357, 358, 7, 103, 2, 2, 358, 359, 7, 99, 2, 2, 359, 360, 7, 109, 2, 2, 360, 10, 3, 2, 2, 2, 361, 362, 7, 100, 2, 2, 362, 363, 7, 123, 2, 2, 363, 364, 7, 118, 2, 2, 364, 365, 7, 103, 2, 2, 365, 12, 3, 2, 2, 2, 366, 367, 7, 101, 2, 2, 367, 368, 7, 99, 2, 2, 368, 369, 7, 117, 2, 2, 369, 370, 7, 103, 2, 2, 370, 14, 3, 2, 2, 2, 371, 372, 7, 101, 2, 2, 372, 373, 7, 99, 2, 2, 373, 374, 7, 118, 2, 2, 374, 375, 7, 101, 2, 2, 375, 376, 7, 106, 2, 2, 376, 16, 3, 2, 2, 2, 377, 378, 7, 101, 2, 2, 378, 379, 7, 106, 2, 2, 379, 380, 7, 99, 2, 2, 380, 381, 7, 116, 2, 2, 381, 18, 3, 2, 2, 2, 382, 383, 7, 101, 2, 2, 383, 384, 7, 110, 2, 2, 384, 385, 7, 99, 2, 2, 385, 386, 7, 117, 2, 2, 386, 387, 7, 117, 2, 2, 387, 20, 3, 2, 2, 2, 388, 389, 7, 101, 2, 2, 389, 390, 7, 113, 2, 2, 390, 391, 7, 112, 2, 2, 391, 392, 7, 117, 2, 2, 392, 393, 7, 118, 2, 2, 393, 22, 3, 2, 2, 2, 394, 395, 7, 101, 2, 2, 395, 396, 7, 113, 2, 2, 396, 397, 7, 112, 2, 2, 397, 398, 7, 118, 2, 2, 398, 399, 7, 107, 2, 2, 399, 400, 7, 112, 2, 2, 400, 401, 7, 119, 2, 2, 401, 402, 7, 103, 2, 2, 402, 24, 3, 2, 2, 2, 403, 404, 7, 102, 2, 2, 404, 405, 7, 103, 2, 2, 405, 406, 7, 104, 2, 2, 406, 407, 7, 99, 2, 2, 407, 408, 7, 119, 2, 2, 408, 409, 7, 110, 2, 2, 409, 410, 7, 118, 2, 2, 410, 26, 3, 2, 2, 2, 411, 412, 7, 102, 2, 2, 412, 413, 7, 113, 2, 2, 413, 28, 3, 2, 2, 2, 414, 415, 7, 102, 2, 2, 415, 416, 7, 113, 2, 2, 416, 417, 7, 119, 2, 2, 417, 418, 7, 100, 2, 2, 418, 419, 7, 110, 2, 2, 419, 420, 7, 103, 2, 2, 420, 30, 3, 2, 2, 2, 421, 422, 7, 103, 2, 2, 422, 423, 7, 110, 2, 2, 423, 424, 7, 117, 2, 2, 424, 425, 7, 103, 2, 2, 425, 32, 3, 2, 2, 2, 426, 427, 7, 103, 2, 2, 427, 428, 7, 112, 2, 2, 428, 429, 7, 119, 2, 2, 429, 430, 7, 111, 2, 2, 430, 34, 3, 2, 2, 2, 431, 432, 7, 103, 2, 2, 432, 433, 7, 122, 2, 2, 433, 434, 7, 114, 2, 2, 434, 435, 7, 113, 2, 2, 435, 436, 7, 116, 2, 2, 436, 437, 7, 118, 2, 2, 437, 438, 7, 117, 2, 2, 438, 36, 3, 2, 2, 2, 439, 440, 7, 103, 2, 2, 440, 441, 7, 122, 2, 2, 441, 442, 7, 118, 2, 2, 442, 443, 7, 103, 2, 2, 443, 444, 7, 112, 2, 2, 444, 445, 7, 102, 2, 2, 445, 446, 7, 117, 2, 2, 446, 38, 3, 2, 2, 2, 447, 448, 7, 104, 2, 2, 448, 449, 7, 107, 2, 2, 449, 450, 7, 112, 2, 2, 450, 451, 7, 99, 2, 2, 451, 452, 7, 110, 2, 2, 452, 40, 3, 2, 2, 2, 453, 454, 7, 104, 2, 2, 454, 455, 7, 107, 2, 2, 455, 456, 7, 112, 2, 2, 456, 457, 7, 99, 2, 2, 457, 458, 7, 110, 2, 2, 458, 459, 7, 110, 2, 2, 459, 460, 7, 123, 2, 2, 460, 42, 3, 2, 2, 2, 461, 462, 7, 104, 2, 2, 462, 463, 7, 110, 2, 2, 463, 464, 7, 113, 2, 2, 464, 465, 7, 99, 2, 2, 465, 466, 7, 118, 2, 2, 466, 44, 3, 2, 2, 2, 467, 468, 7, 104, 2, 2, 468, 469, 7, 113, 2, 2, 469, 470, 7, 116, 2, 2, 470, 46, 3, 2, 2, 2, 471, 472, 7, 107, 2, 2, 472, 473, 7, 104, 2, 2, 473, 48, 3, 2, 2, 2, 474, 475, 7, 105, 2, 2, 475, 476, 7, 113, 2, 2, 476, 477, 7, 118, 2, 2, 477, 478, 7, 113, 2, 2, 478, 50, 3, 2, 2, 2, 479, 480, 7, 107, 2, 2, 480, 481, 7, 111, 2, 2, 481, 482, 7, 114, 2, 2, 482, 483, 7, 110, 2, 2, 483, 484, 7, 103, 2, 2, 484, 485, 7, 111, 2, 2, 485, 486, 7, 103, 2, 2, 486, 487, 7, 112, 2, 2, 487, 488, 7, 118, 2, 2, 488, 489, 7, 117, 2, 2, 489, 52, 3, 2, 2, 2, 490, 491, 7, 107, 2, 2, 491, 492, 7, 111, 2, 2, 492, 493, 7, 114, 2, 2, 493, 494, 7, 113, 2, 2, 494, 495, 7, 116, 2, 2, 495, 496, 7, 118, 2, 2, 496, 54, 3, 2, 2, 2, 497, 498, 7, 107, 2, 2, 498, 499, 7, 112, 2, 2, 499, 500, 7, 117, 2, 2, 500, 501, 7, 118, 2, 2, 501, 502, 7, 99, 2, 2, 502, 503, 7, 112, 2, 2, 503, 504, 7, 101, 2, 2, 504, 505, 7, 103, 2, 2, 505, 506, 7, 113, 2, 2, 506, 507, 7, 104, 2, 2, 507, 56, 3, 2, 2, 2, 508, 509, 7, 107, 2, 2, 509, 510, 7, 112, 2, 2, 510, 511, 7, 118, 2, 2, 511, 58, 3, 2, 2, 2, 512, 513, 7, 107, 2, 2, 513, 514, 7, 112, 2, 2, 514, 515, 7, 118, 2, 2, 515, 516, 7, 103, 2, 2, 516, 517, 7, 116, 2, 2, 517, 518, 7, 104, 2, 2, 518, 519, 7, 99, 2, 2, 519, 520, 7, 101, 2, 2, 520, 521, 7, 103, 2, 2, 521, 60, 3, 2, 2, 2, 522, 523, 7, 110, 2, 2, 523, 524, 7, 113, 2, 2, 524, 525, 7, 112, 2, 2, 525, 526, 7, 105, 2, 2, 526, 62, 3, 2, 2, 2, 527, 528, 7, 111, 2, 2, 528, 529, 7, 113, 2, 2, 529, 530, 7, 102, 2, 2, 530, 531, 7, 119, 2, 2, 531, 532, 7, 110, 2, 2, 532, 533, 7, 103, 2, 2, 533, 64, 3, 2, 2, 2, 534, 535, 7, 112, 2, 2, 535, 536, 7, 99, 2, 2, 536, 537, 7, 118, 2, 2, 537, 538, 7, 107, 2, 2, 538, 539, 7, 120, 2, 2, 539, 540, 7, 103, 2, 2, 540, 66, 3, 2, 2, 2, 541, 542, 7, 112, 2, 2, 542, 543, 7, 103, 2, 2, 543, 544, 7, 121, 2, 2, 544, 68, 3, 2, 2, 2, 545, 546, 7, 113, 2, 2, 546, 547, 7, 114, 2, 2, 547, 548, 7, 103, 2, 2, 548, 549, 7, 112, 2, 2, 549, 70, 3, 2, 2, 2, 550, 551, 7, 113, 2, 2, 551, 552, 7, 114, 2, 2, 552, 553, 7, 103, 2, 2, 553, 554, 7, 112, 2, 2, 554, 555, 7, 117, 2, 2, 555, 72, 3, 2, 2, 2, 556, 557, 7, 114, 2, 2, 557, 558, 7, 99, 2, 2, 558, 559, 7, 101, 2, 2, 559, 560, 7, 109, 2, 2, 560, 561, 7, 99, 2, 2, 561, 562, 7, 105, 2, 2, 562, 563, 7, 103, 2, 2, 563, 74, 3, 2, 2, 2, 564, 565, 7, 114, 2, 2, 565, 566, 7, 116, 2, 2, 566, 567, 7, 107, 2, 2, 567, 568, 7, 120, 2, 2, 568, 569, 7, 99, 2, 2, 569, 570, 7, 118, 2, 2, 570, 571, 7, 103, 2, 2, 571, 76, 3, 2, 2, 2, 572, 573, 7, 114, 2, 2, 573, 574, 7, 116, 2, 2, 574, 575, 7, 113, 2, 2, 575, 576, 7, 118, 2, 2, 576, 577, 7, 103, 2, 2, 577, 578, 7, 101, 2, 2, 578, 579, 7, 118, 2, 2, 579, 580, 7, 103, 2, 2, 580, 581, 7, 102, 2, 2, 581, 78, 3, 2, 2, 2, 582, 583, 7, 114, 2, 2, 583, 584, 7, 116, 2, 2, 584, 585, 7, 113, 2, 2, 585, 586, 7, 120, 2, 2, 586, 587, 7, 107, 2, 2, 587, 588, 7, 102, 2, 2, 588, 589, 7, 103, 2, 2, 589, 590, 7, 117, 2, 2, 590, 80, 3, 2, 2, 2, 591, 592, 7, 114, 2, 2, 592, 593, 7, 119, 2, 2, 593, 594, 7, 100, 2, 2, 594, 595, 7, 110, 2, 2, 595, 596, 7, 107, 2, 2, 596, 597, 7, 101, 2, 2, 597, 82, 3, 2, 2, 2, 598, 599, 7, 116, 2, 2, 599, 600, 7, 103, 2, 2, 600, 601, 7, 115, 2, 2, 601, 602, 7, 119, 2, 2, 602, 603, 7, 107, 2, 2, 603, 604, 7, 116, 2, 2, 604, 605, 7, 103, 2, 2, 605, 606, 7, 117, 2, 2, 606, 84, 3, 2, 2, 2, 607, 608, 7, 116, 2, 2, 608, 609, 7, 103, 2, 2, 609, 610, 7, 118, 2, 2, 610, 611, 7, 119, 2, 2, 611, 612, 7, 116, 2, 2, 612, 613, 7, 112, 2, 2, 613, 86, 3, 2, 2, 2, 614, 615, 7, 117, 2, 2, 615, 616, 7, 106, 2, 2, 616, 617, 7, 113, 2, 2, 617, 618, 7, 116, 2, 2, 618, 619, 7, 118, 2, 2, 619, 88, 3, 2, 2, 2, 620, 621, 7, 117, 2, 2, 621, 622, 7, 118, 2, 2, 622, 623, 7, 99, 2, 2, 623, 624, 7, 118, 2, 2, 624, 625, 7, 107, 2, 2, 625, 626, 7, 101, 2, 2, 626, 90, 3, 2, 2, 2, 627, 628, 7, 117, 2, 2, 628, 629, 7, 118, 2, 2, 629, 630, 7, 116, 2, 2, 630, 631, 7, 107, 2, 2, 631, 632, 7, 101, 2, 2, 632, 633, 7, 118, 2, 2, 633, 634, 7, 104, 2, 2, 634, 635, 7, 114, 2, 2, 635, 92, 3, 2, 2, 2, 636, 637, 7, 117, 2, 2, 637, 638, 7, 119, 2, 2, 638, 639, 7, 114, 2, 2, 639, 640, 7, 103, 2, 2, 640, 641, 7, 116, 2, 2, 641, 94, 3, 2, 2, 2, 642, 643, 7, 117, 2, 2, 643, 644, 7, 121, 2, 2, 644, 645, 7, 107, 2, 2, 645, 646, 7, 118, 2, 2, 646, 647, 7, 101, 2, 2, 647, 648, 7, 106, 2, 2, 648, 96, 3, 2, 2, 2, 649, 650, 7, 117, 2, 2, 650, 651, 7, 123, 2, 2, 651, 652, 7, 112, 2, 2, 652, 653, 7, 101, 2, 2, 653, 654, 7, 106, 2, 2, 654, 655, 7, 116, 2, 2, 655, 656, 7, 113, 2, 2, 656, 657, 7, 112, 2, 2, 657, 658, 7, 107, 2, 2, 658, 659, 7, 124, 2, 2, 659, 660, 7, 103, 2, 2, 660, 661, 7, 102, 2, 2, 661, 98, 3, 2, 2, 2, 662, 663, 7, 118, 2, 2, 663, 664, 7, 106, 2, 2, 664, 665, 7, 107, 2, 2, 665, 666, 7, 117, 2, 2, 666, 100, 3, 2, 2, 2, 667, 668, 7, 118, 2, 2, 668, 669, 7, 106, 2, 2, 669, 670, 7, 116, 2, 2, 670, 671, 7, 113, 2, 2, 671, 672, 7, 121, 2, 2, 672, 102, 3, 2, 2, 2, 673, 674, 7, 118, 2, 2, 674, 675, 7, 106, 2, 2, 675, 676, 7, 116, 2, 2, 676, 677, 7, 113, 2, 2, 677, 678, 7, 121, 2, 2, 678, 679, 7, 117, 2, 2, 679, 104, 3, 2, 2, 2, 680, 681, 7, 118, 2, 2, 681, 682, 7, 113, 2, 2, 682, 106, 3, 2, 2, 2, 683, 684, 7, 118, 2, 2, 684, 685, 7, 116, 2, 2, 685, 686, 7, 99, 2, 2, 686, 687, 7, 112, 2, 2, 687, 688, 7, 117, 2, 2, 688, 689, 7, 107, 2, 2, 689, 690, 7, 103, 2, 2, 690, 691, 7, 112, 2, 2, 691, 692, 7, 118, 2, 2, 692, 108, 3, 2, 2, 2, 693, 694, 7, 118, 2, 2, 694, 695, 7, 116, 2, 2, 695, 696, 7, 99, 2, 2, 696, 697, 7, 112, 2, 2, 697, 698, 7, 117, 2, 2, 698, 699, 7, 107, 2, 2, 699, 700, 7, 118, 2, 2, 700, 701, 7, 107, 2, 2, 701, 702, 7, 120, 2, 2, 702, 703, 7, 103, 2, 2, 703, 110, 3, 2, 2, 2, 704, 705, 7, 118, 2, 2, 705, 706, 7, 116, 2, 2, 706, 707, 7, 123, 2, 2, 707, 112, 3, 2, 2, 2, 708, 709, 7, 119, 2, 2, 709, 710, 7, 117, 2, 2, 710, 711, 7, 103, 2, 2, 711, 712, 7, 117, 2, 2, 712, 114, 3, 2, 2, 2, 713, 714, 7, 120, 2, 2, 714, 715, 7, 113, 2, 2, 715, 716, 7, 107, 2, 2, 716, 717, 7, 102, 2, 2, 717, 116, 3, 2, 2, 2, 718, 719, 7, 120, 2, 2, 719, 720, 7, 113, 2, 2, 720, 721, 7, 110, 2, 2, 721, 722, 7, 99, 2, 2, 722, 723, 7, 118, 2, 2, 723, 724, 7, 107, 2, 2, 724, 725, 7, 110, 2, 2, 725, 726, 7, 103, 2, 2, 726, 118, 3, 2, 2, 2, 727, 728, 7, 121, 2, 2, 728, 729, 7, 106, 2, 2, 729, 730, 7, 107, 2, 2, 730, 731, 7, 110, 2, 2, 731, 732, 7, 103, 2, 2, 732, 120, 3, 2, 2, 2, 733, 734, 7, 121, 2, 2, 734, 735, 7, 107, 2, 2, 735, 736, 7, 118, 2, 2, 736, 737, 7, 106, 2, 2, 737, 122, 3, 2, 2, 2, 738, 739, 7, 97, 2, 2, 739, 124, 3, 2, 2, 2, 740, 745, 5, 127, 64, 2, 741, 745, 5, 129, 65, 2, 742, 745, 5, 131, 66, 2, 743, 745, 5, 133, 67, 2, 744, 740, 3, 2, 2, 2, 744, 741, 3, 2, 2, 2, 744, 742, 3, 2, 2, 2, 744, 743, 3, 2, 2, 2, 745, 126, 3, 2, 2, 2, 746, 748, 5, 137, 69, 2, 747, 749, 5, 135, 68, 2, 748, 747, 3, 2, 2, 2, 748, 749, 3, 2, 2, 2, 749, 128, 3, 2, 2, 2, 750, 752, 5, 151, 76, 2, 751, 753, 5, 135, 68, 2, 752, 751, 3, 2, 2, 2, 752, 753, 3, 2, 2, 2, 753, 130, 3, 2, 2, 2, 754, 756, 5, 161, 81, 2, 755, 757, 5, 135, 68, 2, 756, 755, 3, 2, 2, 2, 756, 757, 3, 2, 2, 2, 757, 132, 3, 2, 2, 2, 758, 760, 5, 171, 86, 2, 759, 761, 5, 135, 68, 2, 760, 759, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 134, 3, 2, 2, 2, 762, 763, 9, 2, 2, 2, 763, 136, 3, 2, 2, 2, 764, 775, 7, 50, 2, 2, 765, 772, 5, 143, 72, 2, 766, 768, 5, 139, 70, 2, 767, 766, 3, 2, 2, 2, 767, 768, 3, 2, 2, 2, 768, 773, 3, 2, 2, 2, 769, 770, 5, 149, 75, 2, 770, 771, 5, 139, 70, 2, 771, 773, 3, 2, 2, 2, 772, 767, 3, 2, 2, 2, 772, 769, 3, 2, 2, 2, 773, 775, 3, 2, 2, 2, 774, 764, 3, 2, 2, 2, 774, 765, 3, 2, 2, 2, 775, 138, 3, 2, 2, 2, 776, 781, 5, 141, 71, 2, 777, 779, 5, 145, 73, 2, 778, 777, 3, 2, 2, 2, 778, 779, 3, 2, 2, 2, 779, 780, 3, 2, 2, 2, 780, 782, 5, 141, 71, 2, 781, 778, 3, 2, 2, 2, 781, 782, 3, 2, 2, 2, 782, 140, 3, 2, 2, 2, 783, 786, 7, 50, 2, 2, 784, 786, 5, 143, 72, 2, 785, 783, 3, 2, 2, 2, 785, 784, 3, 2, 2, 2, 786, 142, 3, 2, 2, 2, 787, 788, 9, 3, 2, 2, 788, 144, 3, 2, 2, 2, 789, 791, 5, 147, 74, 2, 790, 789, 3, 2, 2, 2, 791, 792, 3, 2, 2, 2, 792, 790, 3, 2, 2, 2, 792, 793, 3, 2, 2, 2, 793, 146, 3, 2, 2, 2, 794, 797, 5, 141, 71, 2, 795, 797, 7, 97, 2, 2, 796, 794, 3, 2, 2, 2, 796, 795, 3, 2, 2, 2, 797, 148, 3, 2, 2, 2, 798, 800, 7, 97, 2, 2, 799, 798, 3, 2, 2, 2, 800, 801, 3, 2, 2, 2, 801, 799, 3, 2, 2, 2, 801, 802, 3, 2, 2, 2, 802, 150, 3, 2, 2, 2, 803, 804, 7, 50, 2, 2, 804, 805, 9, 4, 2, 2, 805, 806, 5, 153, 77, 2, 806, 152, 3, 2, 2, 2, 807, 812, 5, 155, 78, 2, 808, 810, 5, 157, 79, 2, 809, 808, 3, 2, 2, 2, 809, 810, 3, 2, 2, 2, 810, 811, 3, 2, 2, 2, 811, 813, 5, 155, 78, 2, 812, 809, 3, 2, 2, 2, 812, 813, 3, 2, 2, 2, 813, 154, 3, 2, 2, 2, 814, 815, 9, 5, 2, 2, 815, 156, 3, 2, 2, 2, 816, 818, 5, 159, 80, 2, 817, 816, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 817, 3, 2, 2, 2, 819, 820, 3, 2, 2, 2, 820, 158, 3, 2, 2, 2, 821, 824, 5, 155, 78, 2, 822, 824, 7, 97, 2, 2, 823, 821, 3, 2, 2, 2, 823, 822, 3, 2, 2, 2, 824, 160, 3, 2, 2, 2, 825, 827, 7, 50, 2, 2, 826, 828, 5, 149, 75, 2, 827, 826, 3, 2, 2, 2, 827, 828, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2, 829, 830, 5, 163, 82, 2, 830, 162, 3, 2, 2, 2, 831, 836, 5, 165, 83, 2, 832, 834, 5, 167, 84, 2, 833, 832, 3, 2, 2, 2, 833, 834, 3, 2, 2, 2, 834, 835, 3, 2, 2, 2, 835, 837, 5, 165, 83, 2, 836, 833, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 164, 3, 2, 2, 2, 838, 839, 9, 6, 2, 2, 839, 166, 3, 2, 2, 2, 840, 842, 5, 169, 85, 2, 841, 840, 3, 2, 2, 2, 842, 843, 3, 2, 2, 2, 843, 841, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 168, 3, 2, 2, 2, 845, 848, 5, 165, 83, 2, 846, 848, 7, 97, 2, 2, 847, 845, 3, 2, 2, 2, 847, 846, 3, 2, 2, 2, 848, 170, 3, 2, 2, 2, 849, 850, 7, 50, 2, 2, 850, 851, 9, 7, 2, 2, 851, 852, 5, 173, 87, 2, 852, 172, 3, 2, 2, 2, 853, 858, 5, 175, 88, 2, 854, 856, 5, 177, 89, 2, 855, 854, 3, 2, 2, 2, 855, 856, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 859, 5, 175, 88, 2, 858, 855, 3, 2, 2, 2, 858, 859, 3, 2, 2, 2, 859, 174, 3, 2, 2, 2, 860, 861, 9, 8, 2, 2, 861, 176, 3, 2, 2, 2, 862, 864, 5, 179, 90, 2, 863, 862, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 863, 3, 2, 2, 2, 865, 866, 3, 2, 2, 2, 866, 178, 3, 2, 2, 2, 867, 870, 5, 175, 88, 2, 868, 870, 7, 97, 2, 2, 869, 867, 3, 2, 2, 2, 869, 868, 3, 2, 2, 2, 870, 180, 3, 2, 2, 2, 871, 874, 5, 183, 92, 2, 872, 874, 5, 195, 98, 2, 873, 871, 3, 2, 2, 2, 873, 872, 3, 2, 2, 2, 874, 182, 3, 2, 2, 2, 875, 876, 5, 139, 70, 2, 876, 878, 7, 48, 2, 2, 877, 879, 5, 139, 70, 2, 878, 877, 3, 2, 2, 2, 878, 879, 3, 2, 2, 2, 879, 881, 3, 2, 2, 2, 880, 882, 5, 185, 93, 2, 881, 880, 3, 2, 2, 2, 881, 882, 3, 2, 2, 2, 882, 884, 3, 2, 2, 2, 883, 885, 5, 193, 97, 2, 884, 883, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 903, 3, 2, 2, 2, 886, 887, 7, 48, 2, 2, 887, 889, 5, 139, 70, 2, 888, 890, 5, 185, 93, 2, 889, 888, 3, 2, 2, 2, 889, 890, 3, 2, 2, 2, 890, 892, 3, 2, 2, 2, 891, 893, 5, 193, 97, 2, 892, 891, 3, 2, 2, 2, 892, 893, 3, 2, 2, 2, 893, 903, 3, 2, 2, 2, 894, 895, 5, 139, 70, 2, 895, 897, 5, 185, 93, 2, 896, 898, 5, 193, 97, 2, 897, 896, 3, 2, 2, 2, 897, 898, 3, 2, 2, 2, 898, 903, 3, 2, 2, 2, 899, 900, 5, 139, 70, 2, 900, 901, 5, 193, 97, 2, 901, 903, 3, 2, 2, 2, 902, 875, 3, 2, 2, 2, 902, 886, 3, 2, 2, 2, 902, 894, 3, 2, 2, 2, 902, 899, 3, 2, 2, 2, 903, 184, 3, 2, 2, 2, 904, 905, 5, 187, 94, 2, 905, 906, 5, 189, 95, 2, 906, 186, 3, 2, 2, 2, 907, 908, 9, 9, 2, 2, 908, 188, 3, 2, 2, 2, 909, 911, 5, 191, 96, 2, 910, 909, 3, 2, 2, 2, 910, 911, 3, 2, 2, 2, 911, 912, 3, 2, 2, 2, 912, 913, 5, 139, 70, 2, 913, 190, 3, 2, 2, 2, 914, 915, 9, 10, 2, 2, 915, 192, 3, 2, 2, 2, 916, 917, 9, 11, 2, 2, 917, 194, 3, 2, 2, 2, 918, 919, 5, 197, 99, 2, 919, 921, 5, 199, 100, 2, 920, 922, 5, 193, 97, 2, 921, 920, 3, 2, 2, 2, 921, 922, 3, 2, 2, 2, 922, 196, 3, 2, 2, 2, 923, 925, 5, 151, 76, 2, 924, 926, 7, 48, 2, 2, 925, 924, 3, 2, 2, 2, 925, 926, 3, 2, 2, 2, 926, 935, 3, 2, 2, 2, 927, 928, 7, 50, 2, 2, 928, 930, 9, 4, 2, 2, 929, 931, 5, 153, 77, 2, 930, 929, 3, 2, 2, 2, 930, 931, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 933, 7, 48, 2, 2, 933, 935, 5, 153, 77, 2, 934, 923, 3, 2, 2, 2, 934, 927, 3, 2, 2, 2, 935, 198, 3, 2, 2, 2, 936, 937, 5, 201, 101, 2, 937, 938, 5, 189, 95, 2, 938, 200, 3, 2, 2, 2, 939, 940, 9, 12, 2, 2, 940, 202, 3, 2, 2, 2, 941, 942, 7, 118, 2, 2, 942, 943, 7, 116, 2, 2, 943, 944, 7, 119, 2, 2, 944, 951, 7, 103, 2, 2, 945, 946, 7, 104, 2, 2, 946, 947, 7, 99, 2, 2, 947, 948, 7, 110, 2, 2, 948, 949, 7, 117, 2, 2, 949, 951, 7, 103, 2, 2, 950, 941, 3, 2, 2, 2, 950, 945, 3, 2, 2, 2, 951, 204, 3, 2, 2, 2, 952, 953, 7, 41, 2, 2, 953, 954, 5, 207, 104, 2, 954, 955, 7, 41, 2, 2, 955, 961, 3, 2, 2, 2, 956, 957, 7, 41, 2, 2, 957, 958, 5, 215, 108, 2, 958, 959, 7, 41, 2, 2, 959, 961, 3, 2, 2, 2, 960, 952, 3, 2, 2, 2, 960, 956, 3, 2, 2, 2, 961, 206, 3, 2, 2, 2, 962, 963, 10, 13, 2, 2, 963, 208, 3, 2, 2, 2, 964, 966, 7, 36, 2, 2, 965, 967, 5, 211, 106, 2, 966, 965, 3, 2, 2, 2, 966, 967, 3, 2, 2, 2, 967, 968, 3, 2, 2, 2, 968, 969, 7, 36, 2, 2, 969, 210, 3, 2, 2, 2, 970, 972, 5, 213, 107, 2, 971, 970, 3, 2, 2, 2, 972, 973, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 973, 974, 3, 2, 2, 2, 974, 212, 3, 2, 2, 2, 975, 978, 10, 14, 2, 2, 976, 978, 5, 215, 108, 2, 977, 975, 3, 2, 2, 2, 977, 976, 3, 2, 2, 2, 978, 214, 3, 2, 2, 2, 979, 980, 7, 94, 2, 2, 980, 984, 9, 15, 2, 2, 981, 984, 5, 217, 109, 2, 982, 984, 5, 221, 111, 2, 983, 979, 3, 2, 2, 2, 983, 981, 3, 2, 2, 2, 983, 982, 3, 2, 2, 2, 984, 216, 3, 2, 2, 2, 985, 986, 7, 94, 2, 2, 986, 997, 5, 165, 83, 2, 987, 988, 7, 94, 2, 2, 988, 989, 5, 165, 83, 2, 989, 990, 5, 165, 83, 2, 990, 997, 3, 2, 2, 2, 991, 992, 7, 94, 2, 2, 992, 993, 5, 219, 110, 2, 993, 994, 5, 165, 83, 2, 994, 995, 5, 165, 83, 2, 995, 997, 3, 2, 2, 2, 996, 985, 3, 2, 2, 2, 996, 987, 3, 2, 2, 2, 996, 991, 3, 2, 2, 2, 997, 218, 3, 2, 2, 2, 998, 999, 9, 16, 2, 2, 999, 220, 3, 2, 2, 2, 1000, 1002, 7, 94, 2, 2, 1001, 1003, 7, 119, 2, 2, 1002, 1001, 3, 2, 2, 2, 1003, 1004, 3, 2, 2, 2, 1004, 1002, 3, 2, 2, 2, 1004, 1005, 3, 2, 2, 2, 1005, 1006, 3, 2, 2, 2, 1006, 1007, 5, 155, 78, 2, 1007, 1008, 5, 155, 78, 2, 1008, 1009, 5, 155, 78, 2, 1009, 1010, 5, 155, 78, 2, 1010, 222, 3, 2, 2, 2, 1011, 1012, 7, 112, 2, 2, 1012, 1013, 7, 119, 2, 2, 1013, 1014, 7, 110, 2, 2, 1014, 1015, 7, 110, 2, 2, 1015, 224, 3, 2, 2, 2, 1016, 1017, 7, 42, 2, 2, 1017, 226, 3, 2, 2, 2, 1018, 1019, 7, 43, 2, 2, 1019, 228, 3, 2, 2, 2, 1020, 1021, 7, 125, 2, 2, 1021, 230, 3, 2, 2, 2, 1022, 1023, 7, 127, 2, 2, 1023, 232, 3, 2, 2, 2, 1024, 1025, 7, 93, 2, 2, 1025, 234, 3, 2, 2, 2, 1026, 1027, 7, 95, 2, 2, 1027, 236, 3, 2, 2, 2, 1028, 1029, 7, 61, 2, 2, 1029, 238, 3, 2, 2, 2, 1030, 1031, 7, 46, 2, 2, 1031, 240, 3, 2, 2, 2, 1032, 1033, 7, 48, 2, 2, 1033, 242, 3, 2, 2, 2, 1034, 1035, 7, 48, 2, 2, 1035, 1036, 7, 48, 2, 2, 1036, 1037, 7, 48, 2, 2, 1037, 244, 3, 2, 2, 2, 1038, 1039, 7, 66, 2, 2, 1039, 246, 3, 2, 2, 2, 1040, 1041, 7, 60, 2, 2, 1041, 1042, 7, 60, 2, 2, 1042, 248, 3, 2, 2, 2, 1043, 1044, 7, 63, 2, 2, 1044, 250, 3, 2, 2, 2, 1045, 1046, 7, 64, 2, 2, 1046, 252, 3, 2, 2, 2, 1047, 1048, 7, 62, 2, 2, 1048, 254, 3, 2, 2, 2, 1049, 1050, 7, 35, 2, 2, 1050, 256, 3, 2, 2, 2, 1051, 1052, 7, 128, 2, 2, 1052, 258, 3, 2, 2, 2, 1053, 1054, 7, 65, 2, 2, 1054, 260, 3, 2, 2, 2, 1055, 1056, 7, 60, 2, 2, 1056, 262, 3, 2, 2, 2, 1057, 1058, 7, 47, 2, 2, 1058, 1059, 7, 64, 2, 2, 1059, 264, 3, 2, 2, 2, 1060, 1061, 7, 63, 2, 2, 1061, 1062, 7, 63, 2, 2, 1062, 266, 3, 2, 2, 2, 1063, 1064, 7, 62, 2, 2, 1064, 1065, 7, 63, 2, 2, 1065, 268, 3, 2, 2, 2, 1066, 1067, 7, 64, 2, 2, 1067, 1068, 7, 63, 2, 2, 1068, 270, 3, 2, 2, 2, 1069, 1070, 7, 35, 2, 2, 1070, 1071, 7, 63, 2, 2, 1071, 272, 3, 2, 2, 2, 1072, 1073, 7, 40, 2, 2, 1073, 1074, 7, 40, 2, 2, 1074, 274, 3, 2, 2, 2, 1075, 1076, 7, 126, 2, 2, 1076, 1077, 7, 126, 2, 2, 1077, 276, 3, 2, 2, 2, 1078, 1079, 7, 45, 2, 2, 1079, 1080, 7, 45, 2, 2, 1080, 278, 3, 2, 2, 2, 1081, 1082, 7, 47, 2, 2, 1082, 1083, 7, 47, 2, 2, 1083, 280, 3, 2, 2, 2, 1084, 1085, 7, 45, 2, 2, 1085, 282, 3, 2, 2, 2, 1086, 1087, 7, 47, 2, 2, 1087, 284, 3, 2, 2, 2, 1088, 1089, 7, 44, 2, 2, 1089, 286, 3, 2, 2, 2, 1090, 1091, 7, 49, 2, 2, 1091, 288, 3, 2, 2, 2, 1092, 1093, 7, 40, 2, 2, 1093, 290, 3, 2, 2, 2, 1094, 1095, 7, 126, 2, 2, 1095, 292, 3, 2, 2, 2, 1096, 1097, 7, 96, 2, 2, 1097, 294, 3, 2, 2, 2, 1098, 1099, 7, 39, 2, 2, 1099, 296, 3, 2, 2, 2, 1100, 1101, 7, 45, 2, 2, 1101, 1102, 7, 63, 2, 2, 1102, 298, 3, 2, 2, 2, 1103, 1104, 7, 47, 2, 2, 1104, 1105, 7, 63, 2, 2, 1105, 300, 3, 2, 2, 2, 1106, 1107, 7, 44, 2, 2, 1107, 1108, 7, 63, 2, 2, 1108, 302, 3, 2, 2, 2, 1109, 1110, 7, 49, 2, 2, 1110, 1111, 7, 63, 2, 2, 1111, 304, 3, 2, 2, 2, 1112, 1113, 7, 40, 2, 2, 1113, 1114, 7, 63, 2, 2, 1114, 306, 3, 2, 2, 2, 1115, 1116, 7, 126, 2, 2, 1116, 1117, 7, 63, 2, 2, 1117, 308, 3, 2, 2, 2, 1118, 1119, 7, 96, 2, 2, 1119, 1120, 7, 63, 2, 2, 1120, 310, 3, 2, 2, 2, 1121, 1122, 7, 39, 2, 2, 1122, 1123, 7, 63, 2, 2, 1123, 312, 3, 2, 2, 2, 1124, 1125, 7, 62, 2, 2, 1125, 1126, 7, 62, 2, 2, 1126, 1127, 7, 63, 2, 2, 1127, 314, 3, 2, 2, 2, 1128, 1129, 7, 64, 2, 2, 1129, 1130, 7, 64, 2, 2, 1130, 1131, 7, 63, 2, 2, 1131, 316, 3, 2, 2, 2, 1132, 1133, 7, 64, 2, 2, 1133, 1134, 7, 64, 2, 2, 1134, 1135, 7, 64, 2, 2, 1135, 1136, 7, 63, 2, 2, 1136, 318, 3, 2, 2, 2, 1137, 1141, 5, 321, 161, 2, 1138, 1140, 5, 323, 162, 2, 1139, 1138, 3, 2, 2, 2, 1140, 1143, 3, 2, 2, 2, 1141, 1139, 3, 2, 2, 2, 1141, 1142, 3, 2, 2, 2, 1142, 320, 3, 2, 2, 2, 1143, 1141, 3, 2, 2, 2, 1144, 1151, 9, 17, 2, 2, 1145, 1146, 10, 18, 2, 2, 1146, 1151, 6, 161, 2, 2, 1147, 1148, 9, 19, 2, 2, 1148, 1149, 9, 20, 2, 2, 1149, 1151, 6, 161, 3, 2, 1150, 1144, 3, 2, 2, 2, 1150, 1145, 3, 2, 2, 2, 1150, 1147, 3, 2, 2, 2, 1151, 322, 3, 2, 2, 2, 1152, 1159, 9, 21, 2, 2, 1153, 1154, 10, 18, 2, 2, 1154, 1159, 6, 162, 4, 2, 1155, 1156, 9, 19, 2, 2, 1156, 1157, 9, 20, 2, 2, 1157, 1159, 6, 162, 5, 2, 1158, 1152, 3, 2, 2, 2, 1158, 1153, 3, 2, 2, 2, 1158, 1155, 3, 2, 2, 2, 1159, 324, 3, 2, 2, 2, 1160, 1162, 9, 22, 2, 2, 1161, 1160, 3, 2, 2, 2, 1162, 1163, 3, 2, 2, 2, 1163, 1161, 3, 2, 2, 2, 1163, 1164, 3, 2, 2, 2, 1164, 1165, 3, 2, 2, 2, 1165, 1166, 8, 163, 2, 2, 1166, 326, 3, 2, 2, 2, 1167, 1168, 7, 49, 2, 2, 1168, 1169, 7, 44, 2, 2, 1169, 1173, 3, 2, 2, 2, 1170, 1172, 11, 2, 2, 2, 1171, 1170, 3, 2, 2, 2, 1172, 1175, 3, 2, 2, 2, 1173, 1174, 3, 2, 2, 2, 1173, 1171, 3, 2, 2, 2, 1174, 1176, 3, 2, 2, 2, 1175, 1173, 3, 2, 2, 2, 1176, 1177, 7, 44, 2, 2, 1177, 1178, 7, 49, 2, 2, 1178, 1179, 3, 2, 2, 2, 1179, 1180, 8, 164, 3, 2, 1180, 328, 3, 2, 2, 2, 1181, 1182, 7, 49, 2, 2, 1182, 1183, 7, 49, 2, 2, 1183, 1187, 3, 2, 2, 2, 1184, 1186, 10, 23, 2, 2, 1185, 1184, 3, 2, 2, 2, 1186, 1189, 3, 2, 2, 2, 1187, 1185, 3, 2, 2, 2, 1187, 1188, 3, 2, 2, 2, 1188, 1190, 3, 2, 2, 2, 1189, 1187, 3, 2, 2, 2, 1190, 1191, 8, 165, 3, 2, 1191, 330, 3, 2, 2, 2, 57, 2, 744, 748, 752, 756, 760, 767, 772, 774, 778, 781, 785, 792, 796, 801, 809, 812, 819, 823, 827, 833, 836, 843, 847, 855, 858, 865, 869, 873, 878, 881, 884, 889, 892, 897, 902, 910, 921, 925, 930, 934, 950, 960, 966, 973, 977, 983, 996, 1004, 1141, 1150, 1158, 1163, 1173, 1187, 4, 8, 2, 2, 2, 3, 2] \ No newline at end of file diff --git a/java2python/lang/Java9Lexer.py b/java2python/lang/Java9Lexer.py deleted file mode 100644 index d8048bc..0000000 --- a/java2python/lang/Java9Lexer.py +++ /dev/null @@ -1,810 +0,0 @@ -# Generated from Java9Lexer.g4 by ANTLR 4.7.2 -from antlr4 import * -from io import StringIO -from typing.io import TextIO -import sys - - -if __name__ is not None and "." in __name__: - from .Java9LexerBase import Java9LexerBase -else: - from Java9LexerBase import Java9LexerBase - -def serializedATN(): - with StringIO() as buf: - buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2x") - buf.write("\u04a8\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") - buf.write("\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r") - buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23") - buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30") - buf.write("\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36") - buf.write("\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%") - buf.write("\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.") - buf.write("\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64") - buf.write("\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:") - buf.write("\4;\t;\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\t") - buf.write("C\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\t") - buf.write("L\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\t") - buf.write("U\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4") - buf.write("^\t^\4_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4") - buf.write("g\tg\4h\th\4i\ti\4j\tj\4k\tk\4l\tl\4m\tm\4n\tn\4o\to\4") - buf.write("p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4w\tw\4x\tx\4") - buf.write("y\ty\4z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080") - buf.write("\t\u0080\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083") - buf.write("\4\u0084\t\u0084\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087") - buf.write("\t\u0087\4\u0088\t\u0088\4\u0089\t\u0089\4\u008a\t\u008a") - buf.write("\4\u008b\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e") - buf.write("\t\u008e\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091") - buf.write("\4\u0092\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095") - buf.write("\t\u0095\4\u0096\t\u0096\4\u0097\t\u0097\4\u0098\t\u0098") - buf.write("\4\u0099\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b\4\u009c") - buf.write("\t\u009c\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f") - buf.write("\4\u00a0\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3") - buf.write("\t\u00a3\4\u00a4\t\u00a4\4\u00a5\t\u00a5\3\2\3\2\3\2\3") - buf.write("\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4") - buf.write("\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\3") - buf.write("\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b") - buf.write("\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\n\3") - buf.write("\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3") - buf.write("\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3") - buf.write("\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20") - buf.write("\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22") - buf.write("\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23") - buf.write("\3\23\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25") - buf.write("\3\25\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\27") - buf.write("\3\27\3\27\3\27\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31") - buf.write("\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32\3\32") - buf.write("\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34\3\34\3\34\3\34") - buf.write("\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35") - buf.write("\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37") - buf.write("\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3 \3!\3!\3!\3!") - buf.write("\3!\3!\3!\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3$\3$\3$\3$\3") - buf.write("$\3$\3%\3%\3%\3%\3%\3%\3%\3%\3&\3&\3&\3&\3&\3&\3&\3&\3") - buf.write("\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(") - buf.write("\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3") - buf.write("*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3-\3-\3") - buf.write("-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3") - buf.write("/\3/\3\60\3\60\3\60\3\60\3\60\3\60\3\60\3\61\3\61\3\61") - buf.write("\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\61\3\62") - buf.write("\3\62\3\62\3\62\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64") - buf.write("\3\64\3\64\3\64\3\64\3\64\3\64\3\65\3\65\3\65\3\66\3\66") - buf.write("\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\66\3\67\3\67\3\67") - buf.write("\3\67\3\67\3\67\3\67\3\67\3\67\3\67\3\67\38\38\38\38\3") - buf.write("9\39\39\39\39\3:\3:\3:\3:\3:\3;\3;\3;\3;\3;\3;\3;\3;\3") - buf.write(";\3<\3<\3<\3<\3<\3<\3=\3=\3=\3=\3=\3>\3>\3?\3?\3?\3?\5") - buf.write("?\u02e9\n?\3@\3@\5@\u02ed\n@\3A\3A\5A\u02f1\nA\3B\3B\5") - buf.write("B\u02f5\nB\3C\3C\5C\u02f9\nC\3D\3D\3E\3E\3E\5E\u0300\n") - buf.write("E\3E\3E\3E\5E\u0305\nE\5E\u0307\nE\3F\3F\5F\u030b\nF\3") - buf.write("F\5F\u030e\nF\3G\3G\5G\u0312\nG\3H\3H\3I\6I\u0317\nI\r") - buf.write("I\16I\u0318\3J\3J\5J\u031d\nJ\3K\6K\u0320\nK\rK\16K\u0321") - buf.write("\3L\3L\3L\3L\3M\3M\5M\u032a\nM\3M\5M\u032d\nM\3N\3N\3") - buf.write("O\6O\u0332\nO\rO\16O\u0333\3P\3P\5P\u0338\nP\3Q\3Q\5Q") - buf.write("\u033c\nQ\3Q\3Q\3R\3R\5R\u0342\nR\3R\5R\u0345\nR\3S\3") - buf.write("S\3T\6T\u034a\nT\rT\16T\u034b\3U\3U\5U\u0350\nU\3V\3V") - buf.write("\3V\3V\3W\3W\5W\u0358\nW\3W\5W\u035b\nW\3X\3X\3Y\6Y\u0360") - buf.write("\nY\rY\16Y\u0361\3Z\3Z\5Z\u0366\nZ\3[\3[\5[\u036a\n[\3") - buf.write("\\\3\\\3\\\5\\\u036f\n\\\3\\\5\\\u0372\n\\\3\\\5\\\u0375") - buf.write("\n\\\3\\\3\\\3\\\5\\\u037a\n\\\3\\\5\\\u037d\n\\\3\\\3") - buf.write("\\\3\\\5\\\u0382\n\\\3\\\3\\\3\\\5\\\u0387\n\\\3]\3]\3") - buf.write("]\3^\3^\3_\5_\u038f\n_\3_\3_\3`\3`\3a\3a\3b\3b\3b\5b\u039a") - buf.write("\nb\3c\3c\5c\u039e\nc\3c\3c\3c\5c\u03a3\nc\3c\3c\5c\u03a7") - buf.write("\nc\3d\3d\3d\3e\3e\3f\3f\3f\3f\3f\3f\3f\3f\3f\5f\u03b7") - buf.write("\nf\3g\3g\3g\3g\3g\3g\3g\3g\5g\u03c1\ng\3h\3h\3i\3i\5") - buf.write("i\u03c7\ni\3i\3i\3j\6j\u03cc\nj\rj\16j\u03cd\3k\3k\5k") - buf.write("\u03d2\nk\3l\3l\3l\3l\5l\u03d8\nl\3m\3m\3m\3m\3m\3m\3") - buf.write("m\3m\3m\3m\3m\5m\u03e5\nm\3n\3n\3o\3o\6o\u03eb\no\ro\16") - buf.write("o\u03ec\3o\3o\3o\3o\3o\3p\3p\3p\3p\3p\3q\3q\3r\3r\3s\3") - buf.write("s\3t\3t\3u\3u\3v\3v\3w\3w\3x\3x\3y\3y\3z\3z\3z\3z\3{\3") - buf.write("{\3|\3|\3|\3}\3}\3~\3~\3\177\3\177\3\u0080\3\u0080\3\u0081") - buf.write("\3\u0081\3\u0082\3\u0082\3\u0083\3\u0083\3\u0084\3\u0084") - buf.write("\3\u0084\3\u0085\3\u0085\3\u0085\3\u0086\3\u0086\3\u0086") - buf.write("\3\u0087\3\u0087\3\u0087\3\u0088\3\u0088\3\u0088\3\u0089") - buf.write("\3\u0089\3\u0089\3\u008a\3\u008a\3\u008a\3\u008b\3\u008b") - buf.write("\3\u008b\3\u008c\3\u008c\3\u008c\3\u008d\3\u008d\3\u008e") - buf.write("\3\u008e\3\u008f\3\u008f\3\u0090\3\u0090\3\u0091\3\u0091") - buf.write("\3\u0092\3\u0092\3\u0093\3\u0093\3\u0094\3\u0094\3\u0095") - buf.write("\3\u0095\3\u0095\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097") - buf.write("\3\u0097\3\u0098\3\u0098\3\u0098\3\u0099\3\u0099\3\u0099") - buf.write("\3\u009a\3\u009a\3\u009a\3\u009b\3\u009b\3\u009b\3\u009c") - buf.write("\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d\3\u009d\3\u009e") - buf.write("\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\3\u009f\3\u009f") - buf.write("\3\u009f\3\u00a0\3\u00a0\7\u00a0\u0474\n\u00a0\f\u00a0") - buf.write("\16\u00a0\u0477\13\u00a0\3\u00a1\3\u00a1\3\u00a1\3\u00a1") - buf.write("\3\u00a1\3\u00a1\5\u00a1\u047f\n\u00a1\3\u00a2\3\u00a2") - buf.write("\3\u00a2\3\u00a2\3\u00a2\3\u00a2\5\u00a2\u0487\n\u00a2") - buf.write("\3\u00a3\6\u00a3\u048a\n\u00a3\r\u00a3\16\u00a3\u048b") - buf.write("\3\u00a3\3\u00a3\3\u00a4\3\u00a4\3\u00a4\3\u00a4\7\u00a4") - buf.write("\u0494\n\u00a4\f\u00a4\16\u00a4\u0497\13\u00a4\3\u00a4") - buf.write("\3\u00a4\3\u00a4\3\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5") - buf.write("\3\u00a5\7\u00a5\u04a2\n\u00a5\f\u00a5\16\u00a5\u04a5") - buf.write("\13\u00a5\3\u00a5\3\u00a5\3\u0495\2\u00a6\3\3\5\4\7\5") - buf.write("\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35") - buf.write("\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33") - buf.write("\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[") - buf.write("/]\60_\61a\62c\63e\64g\65i\66k\67m8o9q:s;u{?}@\177") - buf.write("\2\u0081\2\u0083\2\u0085\2\u0087\2\u0089\2\u008b\2\u008d") - buf.write("\2\u008f\2\u0091\2\u0093\2\u0095\2\u0097\2\u0099\2\u009b") - buf.write("\2\u009d\2\u009f\2\u00a1\2\u00a3\2\u00a5\2\u00a7\2\u00a9") - buf.write("\2\u00ab\2\u00ad\2\u00af\2\u00b1\2\u00b3\2\u00b5A\u00b7") - buf.write("\2\u00b9\2\u00bb\2\u00bd\2\u00bf\2\u00c1\2\u00c3\2\u00c5") - buf.write("\2\u00c7\2\u00c9\2\u00cbB\u00cdC\u00cf\2\u00d1D\u00d3") - buf.write("\2\u00d5\2\u00d7\2\u00d9\2\u00db\2\u00dd\2\u00dfE\u00e1") - buf.write("F\u00e3G\u00e5H\u00e7I\u00e9J\u00ebK\u00edL\u00efM\u00f1") - buf.write("N\u00f3O\u00f5P\u00f7Q\u00f9R\u00fbS\u00fdT\u00ffU\u0101") - buf.write("V\u0103W\u0105X\u0107Y\u0109Z\u010b[\u010d\\\u010f]\u0111") - buf.write("^\u0113_\u0115`\u0117a\u0119b\u011bc\u011dd\u011fe\u0121") - buf.write("f\u0123g\u0125h\u0127i\u0129j\u012bk\u012dl\u012fm\u0131") - buf.write("n\u0133o\u0135p\u0137q\u0139r\u013bs\u013dt\u013fu\u0141") - buf.write("\2\u0143\2\u0145v\u0147w\u0149x\3\2\30\4\2NNnn\3\2\63") - buf.write(";\4\2ZZzz\5\2\62;CHch\3\2\629\4\2DDdd\3\2\62\63\4\2GG") - buf.write("gg\4\2--//\6\2FFHHffhh\4\2RRrr\6\2\f\f\17\17))^^\6\2\f") - buf.write("\f\17\17$$^^\n\2$$))^^ddhhppttvv\3\2\62\65\6\2&&C\\aa") - buf.write("c|\4\2\2\u0081\ud802\udc01\3\2\ud802\udc01\3\2\udc02\ue001") - buf.write("\7\2&&\62;C\\aac|\5\2\13\f\16\17\"\"\4\2\f\f\17\17\2\u04b7") - buf.write("\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13") - buf.write("\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3") - buf.write("\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2") - buf.write("\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2") - buf.write("%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2") - buf.write("\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67") - buf.write("\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2") - buf.write("A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2") - buf.write("\2K\3\2\2\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2") - buf.write("\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2\2\2[\3\2\2\2\2]\3\2") - buf.write("\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2g\3") - buf.write("\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q") - buf.write("\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2") - buf.write("{\3\2\2\2\2}\3\2\2\2\2\u00b5\3\2\2\2\2\u00cb\3\2\2\2\2") - buf.write("\u00cd\3\2\2\2\2\u00d1\3\2\2\2\2\u00df\3\2\2\2\2\u00e1") - buf.write("\3\2\2\2\2\u00e3\3\2\2\2\2\u00e5\3\2\2\2\2\u00e7\3\2\2") - buf.write("\2\2\u00e9\3\2\2\2\2\u00eb\3\2\2\2\2\u00ed\3\2\2\2\2\u00ef") - buf.write("\3\2\2\2\2\u00f1\3\2\2\2\2\u00f3\3\2\2\2\2\u00f5\3\2\2") - buf.write("\2\2\u00f7\3\2\2\2\2\u00f9\3\2\2\2\2\u00fb\3\2\2\2\2\u00fd") - buf.write("\3\2\2\2\2\u00ff\3\2\2\2\2\u0101\3\2\2\2\2\u0103\3\2\2") - buf.write("\2\2\u0105\3\2\2\2\2\u0107\3\2\2\2\2\u0109\3\2\2\2\2\u010b") - buf.write("\3\2\2\2\2\u010d\3\2\2\2\2\u010f\3\2\2\2\2\u0111\3\2\2") - buf.write("\2\2\u0113\3\2\2\2\2\u0115\3\2\2\2\2\u0117\3\2\2\2\2\u0119") - buf.write("\3\2\2\2\2\u011b\3\2\2\2\2\u011d\3\2\2\2\2\u011f\3\2\2") - buf.write("\2\2\u0121\3\2\2\2\2\u0123\3\2\2\2\2\u0125\3\2\2\2\2\u0127") - buf.write("\3\2\2\2\2\u0129\3\2\2\2\2\u012b\3\2\2\2\2\u012d\3\2\2") - buf.write("\2\2\u012f\3\2\2\2\2\u0131\3\2\2\2\2\u0133\3\2\2\2\2\u0135") - buf.write("\3\2\2\2\2\u0137\3\2\2\2\2\u0139\3\2\2\2\2\u013b\3\2\2") - buf.write("\2\2\u013d\3\2\2\2\2\u013f\3\2\2\2\2\u0145\3\2\2\2\2\u0147") - buf.write("\3\2\2\2\2\u0149\3\2\2\2\3\u014b\3\2\2\2\5\u0154\3\2\2") - buf.write("\2\7\u015b\3\2\2\2\t\u0163\3\2\2\2\13\u0169\3\2\2\2\r") - buf.write("\u016e\3\2\2\2\17\u0173\3\2\2\2\21\u0179\3\2\2\2\23\u017e") - buf.write("\3\2\2\2\25\u0184\3\2\2\2\27\u018a\3\2\2\2\31\u0193\3") - buf.write("\2\2\2\33\u019b\3\2\2\2\35\u019e\3\2\2\2\37\u01a5\3\2") - buf.write("\2\2!\u01aa\3\2\2\2#\u01af\3\2\2\2%\u01b7\3\2\2\2\'\u01bf") - buf.write("\3\2\2\2)\u01c5\3\2\2\2+\u01cd\3\2\2\2-\u01d3\3\2\2\2") - buf.write("/\u01d7\3\2\2\2\61\u01da\3\2\2\2\63\u01df\3\2\2\2\65\u01ea") - buf.write("\3\2\2\2\67\u01f1\3\2\2\29\u01fc\3\2\2\2;\u0200\3\2\2") - buf.write("\2=\u020a\3\2\2\2?\u020f\3\2\2\2A\u0216\3\2\2\2C\u021d") - buf.write("\3\2\2\2E\u0221\3\2\2\2G\u0226\3\2\2\2I\u022c\3\2\2\2") - buf.write("K\u0234\3\2\2\2M\u023c\3\2\2\2O\u0246\3\2\2\2Q\u024f\3") - buf.write("\2\2\2S\u0256\3\2\2\2U\u025f\3\2\2\2W\u0266\3\2\2\2Y\u026c") - buf.write("\3\2\2\2[\u0273\3\2\2\2]\u027c\3\2\2\2_\u0282\3\2\2\2") - buf.write("a\u0289\3\2\2\2c\u0296\3\2\2\2e\u029b\3\2\2\2g\u02a1\3") - buf.write("\2\2\2i\u02a8\3\2\2\2k\u02ab\3\2\2\2m\u02b5\3\2\2\2o\u02c0") - buf.write("\3\2\2\2q\u02c4\3\2\2\2s\u02c9\3\2\2\2u\u02ce\3\2\2\2") - buf.write("w\u02d7\3\2\2\2y\u02dd\3\2\2\2{\u02e2\3\2\2\2}\u02e8\3") - buf.write("\2\2\2\177\u02ea\3\2\2\2\u0081\u02ee\3\2\2\2\u0083\u02f2") - buf.write("\3\2\2\2\u0085\u02f6\3\2\2\2\u0087\u02fa\3\2\2\2\u0089") - buf.write("\u0306\3\2\2\2\u008b\u0308\3\2\2\2\u008d\u0311\3\2\2\2") - buf.write("\u008f\u0313\3\2\2\2\u0091\u0316\3\2\2\2\u0093\u031c\3") - buf.write("\2\2\2\u0095\u031f\3\2\2\2\u0097\u0323\3\2\2\2\u0099\u0327") - buf.write("\3\2\2\2\u009b\u032e\3\2\2\2\u009d\u0331\3\2\2\2\u009f") - buf.write("\u0337\3\2\2\2\u00a1\u0339\3\2\2\2\u00a3\u033f\3\2\2\2") - buf.write("\u00a5\u0346\3\2\2\2\u00a7\u0349\3\2\2\2\u00a9\u034f\3") - buf.write("\2\2\2\u00ab\u0351\3\2\2\2\u00ad\u0355\3\2\2\2\u00af\u035c") - buf.write("\3\2\2\2\u00b1\u035f\3\2\2\2\u00b3\u0365\3\2\2\2\u00b5") - buf.write("\u0369\3\2\2\2\u00b7\u0386\3\2\2\2\u00b9\u0388\3\2\2\2") - buf.write("\u00bb\u038b\3\2\2\2\u00bd\u038e\3\2\2\2\u00bf\u0392\3") - buf.write("\2\2\2\u00c1\u0394\3\2\2\2\u00c3\u0396\3\2\2\2\u00c5\u03a6") - buf.write("\3\2\2\2\u00c7\u03a8\3\2\2\2\u00c9\u03ab\3\2\2\2\u00cb") - buf.write("\u03b6\3\2\2\2\u00cd\u03c0\3\2\2\2\u00cf\u03c2\3\2\2\2") - buf.write("\u00d1\u03c4\3\2\2\2\u00d3\u03cb\3\2\2\2\u00d5\u03d1\3") - buf.write("\2\2\2\u00d7\u03d7\3\2\2\2\u00d9\u03e4\3\2\2\2\u00db\u03e6") - buf.write("\3\2\2\2\u00dd\u03e8\3\2\2\2\u00df\u03f3\3\2\2\2\u00e1") - buf.write("\u03f8\3\2\2\2\u00e3\u03fa\3\2\2\2\u00e5\u03fc\3\2\2\2") - buf.write("\u00e7\u03fe\3\2\2\2\u00e9\u0400\3\2\2\2\u00eb\u0402\3") - buf.write("\2\2\2\u00ed\u0404\3\2\2\2\u00ef\u0406\3\2\2\2\u00f1\u0408") - buf.write("\3\2\2\2\u00f3\u040a\3\2\2\2\u00f5\u040e\3\2\2\2\u00f7") - buf.write("\u0410\3\2\2\2\u00f9\u0413\3\2\2\2\u00fb\u0415\3\2\2\2") - buf.write("\u00fd\u0417\3\2\2\2\u00ff\u0419\3\2\2\2\u0101\u041b\3") - buf.write("\2\2\2\u0103\u041d\3\2\2\2\u0105\u041f\3\2\2\2\u0107\u0421") - buf.write("\3\2\2\2\u0109\u0424\3\2\2\2\u010b\u0427\3\2\2\2\u010d") - buf.write("\u042a\3\2\2\2\u010f\u042d\3\2\2\2\u0111\u0430\3\2\2\2") - buf.write("\u0113\u0433\3\2\2\2\u0115\u0436\3\2\2\2\u0117\u0439\3") - buf.write("\2\2\2\u0119\u043c\3\2\2\2\u011b\u043e\3\2\2\2\u011d\u0440") - buf.write("\3\2\2\2\u011f\u0442\3\2\2\2\u0121\u0444\3\2\2\2\u0123") - buf.write("\u0446\3\2\2\2\u0125\u0448\3\2\2\2\u0127\u044a\3\2\2\2") - buf.write("\u0129\u044c\3\2\2\2\u012b\u044f\3\2\2\2\u012d\u0452\3") - buf.write("\2\2\2\u012f\u0455\3\2\2\2\u0131\u0458\3\2\2\2\u0133\u045b") - buf.write("\3\2\2\2\u0135\u045e\3\2\2\2\u0137\u0461\3\2\2\2\u0139") - buf.write("\u0464\3\2\2\2\u013b\u0468\3\2\2\2\u013d\u046c\3\2\2\2") - buf.write("\u013f\u0471\3\2\2\2\u0141\u047e\3\2\2\2\u0143\u0486\3") - buf.write("\2\2\2\u0145\u0489\3\2\2\2\u0147\u048f\3\2\2\2\u0149\u049d") - buf.write("\3\2\2\2\u014b\u014c\7c\2\2\u014c\u014d\7d\2\2\u014d\u014e") - buf.write("\7u\2\2\u014e\u014f\7v\2\2\u014f\u0150\7t\2\2\u0150\u0151") - buf.write("\7c\2\2\u0151\u0152\7e\2\2\u0152\u0153\7v\2\2\u0153\4") - buf.write("\3\2\2\2\u0154\u0155\7c\2\2\u0155\u0156\7u\2\2\u0156\u0157") - buf.write("\7u\2\2\u0157\u0158\7g\2\2\u0158\u0159\7t\2\2\u0159\u015a") - buf.write("\7v\2\2\u015a\6\3\2\2\2\u015b\u015c\7d\2\2\u015c\u015d") - buf.write("\7q\2\2\u015d\u015e\7q\2\2\u015e\u015f\7n\2\2\u015f\u0160") - buf.write("\7g\2\2\u0160\u0161\7c\2\2\u0161\u0162\7p\2\2\u0162\b") - buf.write("\3\2\2\2\u0163\u0164\7d\2\2\u0164\u0165\7t\2\2\u0165\u0166") - buf.write("\7g\2\2\u0166\u0167\7c\2\2\u0167\u0168\7m\2\2\u0168\n") - buf.write("\3\2\2\2\u0169\u016a\7d\2\2\u016a\u016b\7{\2\2\u016b\u016c") - buf.write("\7v\2\2\u016c\u016d\7g\2\2\u016d\f\3\2\2\2\u016e\u016f") - buf.write("\7e\2\2\u016f\u0170\7c\2\2\u0170\u0171\7u\2\2\u0171\u0172") - buf.write("\7g\2\2\u0172\16\3\2\2\2\u0173\u0174\7e\2\2\u0174\u0175") - buf.write("\7c\2\2\u0175\u0176\7v\2\2\u0176\u0177\7e\2\2\u0177\u0178") - buf.write("\7j\2\2\u0178\20\3\2\2\2\u0179\u017a\7e\2\2\u017a\u017b") - buf.write("\7j\2\2\u017b\u017c\7c\2\2\u017c\u017d\7t\2\2\u017d\22") - buf.write("\3\2\2\2\u017e\u017f\7e\2\2\u017f\u0180\7n\2\2\u0180\u0181") - buf.write("\7c\2\2\u0181\u0182\7u\2\2\u0182\u0183\7u\2\2\u0183\24") - buf.write("\3\2\2\2\u0184\u0185\7e\2\2\u0185\u0186\7q\2\2\u0186\u0187") - buf.write("\7p\2\2\u0187\u0188\7u\2\2\u0188\u0189\7v\2\2\u0189\26") - buf.write("\3\2\2\2\u018a\u018b\7e\2\2\u018b\u018c\7q\2\2\u018c\u018d") - buf.write("\7p\2\2\u018d\u018e\7v\2\2\u018e\u018f\7k\2\2\u018f\u0190") - buf.write("\7p\2\2\u0190\u0191\7w\2\2\u0191\u0192\7g\2\2\u0192\30") - buf.write("\3\2\2\2\u0193\u0194\7f\2\2\u0194\u0195\7g\2\2\u0195\u0196") - buf.write("\7h\2\2\u0196\u0197\7c\2\2\u0197\u0198\7w\2\2\u0198\u0199") - buf.write("\7n\2\2\u0199\u019a\7v\2\2\u019a\32\3\2\2\2\u019b\u019c") - buf.write("\7f\2\2\u019c\u019d\7q\2\2\u019d\34\3\2\2\2\u019e\u019f") - buf.write("\7f\2\2\u019f\u01a0\7q\2\2\u01a0\u01a1\7w\2\2\u01a1\u01a2") - buf.write("\7d\2\2\u01a2\u01a3\7n\2\2\u01a3\u01a4\7g\2\2\u01a4\36") - buf.write("\3\2\2\2\u01a5\u01a6\7g\2\2\u01a6\u01a7\7n\2\2\u01a7\u01a8") - buf.write("\7u\2\2\u01a8\u01a9\7g\2\2\u01a9 \3\2\2\2\u01aa\u01ab") - buf.write("\7g\2\2\u01ab\u01ac\7p\2\2\u01ac\u01ad\7w\2\2\u01ad\u01ae") - buf.write("\7o\2\2\u01ae\"\3\2\2\2\u01af\u01b0\7g\2\2\u01b0\u01b1") - buf.write("\7z\2\2\u01b1\u01b2\7r\2\2\u01b2\u01b3\7q\2\2\u01b3\u01b4") - buf.write("\7t\2\2\u01b4\u01b5\7v\2\2\u01b5\u01b6\7u\2\2\u01b6$\3") - buf.write("\2\2\2\u01b7\u01b8\7g\2\2\u01b8\u01b9\7z\2\2\u01b9\u01ba") - buf.write("\7v\2\2\u01ba\u01bb\7g\2\2\u01bb\u01bc\7p\2\2\u01bc\u01bd") - buf.write("\7f\2\2\u01bd\u01be\7u\2\2\u01be&\3\2\2\2\u01bf\u01c0") - buf.write("\7h\2\2\u01c0\u01c1\7k\2\2\u01c1\u01c2\7p\2\2\u01c2\u01c3") - buf.write("\7c\2\2\u01c3\u01c4\7n\2\2\u01c4(\3\2\2\2\u01c5\u01c6") - buf.write("\7h\2\2\u01c6\u01c7\7k\2\2\u01c7\u01c8\7p\2\2\u01c8\u01c9") - buf.write("\7c\2\2\u01c9\u01ca\7n\2\2\u01ca\u01cb\7n\2\2\u01cb\u01cc") - buf.write("\7{\2\2\u01cc*\3\2\2\2\u01cd\u01ce\7h\2\2\u01ce\u01cf") - buf.write("\7n\2\2\u01cf\u01d0\7q\2\2\u01d0\u01d1\7c\2\2\u01d1\u01d2") - buf.write("\7v\2\2\u01d2,\3\2\2\2\u01d3\u01d4\7h\2\2\u01d4\u01d5") - buf.write("\7q\2\2\u01d5\u01d6\7t\2\2\u01d6.\3\2\2\2\u01d7\u01d8") - buf.write("\7k\2\2\u01d8\u01d9\7h\2\2\u01d9\60\3\2\2\2\u01da\u01db") - buf.write("\7i\2\2\u01db\u01dc\7q\2\2\u01dc\u01dd\7v\2\2\u01dd\u01de") - buf.write("\7q\2\2\u01de\62\3\2\2\2\u01df\u01e0\7k\2\2\u01e0\u01e1") - buf.write("\7o\2\2\u01e1\u01e2\7r\2\2\u01e2\u01e3\7n\2\2\u01e3\u01e4") - buf.write("\7g\2\2\u01e4\u01e5\7o\2\2\u01e5\u01e6\7g\2\2\u01e6\u01e7") - buf.write("\7p\2\2\u01e7\u01e8\7v\2\2\u01e8\u01e9\7u\2\2\u01e9\64") - buf.write("\3\2\2\2\u01ea\u01eb\7k\2\2\u01eb\u01ec\7o\2\2\u01ec\u01ed") - buf.write("\7r\2\2\u01ed\u01ee\7q\2\2\u01ee\u01ef\7t\2\2\u01ef\u01f0") - buf.write("\7v\2\2\u01f0\66\3\2\2\2\u01f1\u01f2\7k\2\2\u01f2\u01f3") - buf.write("\7p\2\2\u01f3\u01f4\7u\2\2\u01f4\u01f5\7v\2\2\u01f5\u01f6") - buf.write("\7c\2\2\u01f6\u01f7\7p\2\2\u01f7\u01f8\7e\2\2\u01f8\u01f9") - buf.write("\7g\2\2\u01f9\u01fa\7q\2\2\u01fa\u01fb\7h\2\2\u01fb8\3") - buf.write("\2\2\2\u01fc\u01fd\7k\2\2\u01fd\u01fe\7p\2\2\u01fe\u01ff") - buf.write("\7v\2\2\u01ff:\3\2\2\2\u0200\u0201\7k\2\2\u0201\u0202") - buf.write("\7p\2\2\u0202\u0203\7v\2\2\u0203\u0204\7g\2\2\u0204\u0205") - buf.write("\7t\2\2\u0205\u0206\7h\2\2\u0206\u0207\7c\2\2\u0207\u0208") - buf.write("\7e\2\2\u0208\u0209\7g\2\2\u0209<\3\2\2\2\u020a\u020b") - buf.write("\7n\2\2\u020b\u020c\7q\2\2\u020c\u020d\7p\2\2\u020d\u020e") - buf.write("\7i\2\2\u020e>\3\2\2\2\u020f\u0210\7o\2\2\u0210\u0211") - buf.write("\7q\2\2\u0211\u0212\7f\2\2\u0212\u0213\7w\2\2\u0213\u0214") - buf.write("\7n\2\2\u0214\u0215\7g\2\2\u0215@\3\2\2\2\u0216\u0217") - buf.write("\7p\2\2\u0217\u0218\7c\2\2\u0218\u0219\7v\2\2\u0219\u021a") - buf.write("\7k\2\2\u021a\u021b\7x\2\2\u021b\u021c\7g\2\2\u021cB\3") - buf.write("\2\2\2\u021d\u021e\7p\2\2\u021e\u021f\7g\2\2\u021f\u0220") - buf.write("\7y\2\2\u0220D\3\2\2\2\u0221\u0222\7q\2\2\u0222\u0223") - buf.write("\7r\2\2\u0223\u0224\7g\2\2\u0224\u0225\7p\2\2\u0225F\3") - buf.write("\2\2\2\u0226\u0227\7q\2\2\u0227\u0228\7r\2\2\u0228\u0229") - buf.write("\7g\2\2\u0229\u022a\7p\2\2\u022a\u022b\7u\2\2\u022bH\3") - buf.write("\2\2\2\u022c\u022d\7r\2\2\u022d\u022e\7c\2\2\u022e\u022f") - buf.write("\7e\2\2\u022f\u0230\7m\2\2\u0230\u0231\7c\2\2\u0231\u0232") - buf.write("\7i\2\2\u0232\u0233\7g\2\2\u0233J\3\2\2\2\u0234\u0235") - buf.write("\7r\2\2\u0235\u0236\7t\2\2\u0236\u0237\7k\2\2\u0237\u0238") - buf.write("\7x\2\2\u0238\u0239\7c\2\2\u0239\u023a\7v\2\2\u023a\u023b") - buf.write("\7g\2\2\u023bL\3\2\2\2\u023c\u023d\7r\2\2\u023d\u023e") - buf.write("\7t\2\2\u023e\u023f\7q\2\2\u023f\u0240\7v\2\2\u0240\u0241") - buf.write("\7g\2\2\u0241\u0242\7e\2\2\u0242\u0243\7v\2\2\u0243\u0244") - buf.write("\7g\2\2\u0244\u0245\7f\2\2\u0245N\3\2\2\2\u0246\u0247") - buf.write("\7r\2\2\u0247\u0248\7t\2\2\u0248\u0249\7q\2\2\u0249\u024a") - buf.write("\7x\2\2\u024a\u024b\7k\2\2\u024b\u024c\7f\2\2\u024c\u024d") - buf.write("\7g\2\2\u024d\u024e\7u\2\2\u024eP\3\2\2\2\u024f\u0250") - buf.write("\7r\2\2\u0250\u0251\7w\2\2\u0251\u0252\7d\2\2\u0252\u0253") - buf.write("\7n\2\2\u0253\u0254\7k\2\2\u0254\u0255\7e\2\2\u0255R\3") - buf.write("\2\2\2\u0256\u0257\7t\2\2\u0257\u0258\7g\2\2\u0258\u0259") - buf.write("\7s\2\2\u0259\u025a\7w\2\2\u025a\u025b\7k\2\2\u025b\u025c") - buf.write("\7t\2\2\u025c\u025d\7g\2\2\u025d\u025e\7u\2\2\u025eT\3") - buf.write("\2\2\2\u025f\u0260\7t\2\2\u0260\u0261\7g\2\2\u0261\u0262") - buf.write("\7v\2\2\u0262\u0263\7w\2\2\u0263\u0264\7t\2\2\u0264\u0265") - buf.write("\7p\2\2\u0265V\3\2\2\2\u0266\u0267\7u\2\2\u0267\u0268") - buf.write("\7j\2\2\u0268\u0269\7q\2\2\u0269\u026a\7t\2\2\u026a\u026b") - buf.write("\7v\2\2\u026bX\3\2\2\2\u026c\u026d\7u\2\2\u026d\u026e") - buf.write("\7v\2\2\u026e\u026f\7c\2\2\u026f\u0270\7v\2\2\u0270\u0271") - buf.write("\7k\2\2\u0271\u0272\7e\2\2\u0272Z\3\2\2\2\u0273\u0274") - buf.write("\7u\2\2\u0274\u0275\7v\2\2\u0275\u0276\7t\2\2\u0276\u0277") - buf.write("\7k\2\2\u0277\u0278\7e\2\2\u0278\u0279\7v\2\2\u0279\u027a") - buf.write("\7h\2\2\u027a\u027b\7r\2\2\u027b\\\3\2\2\2\u027c\u027d") - buf.write("\7u\2\2\u027d\u027e\7w\2\2\u027e\u027f\7r\2\2\u027f\u0280") - buf.write("\7g\2\2\u0280\u0281\7t\2\2\u0281^\3\2\2\2\u0282\u0283") - buf.write("\7u\2\2\u0283\u0284\7y\2\2\u0284\u0285\7k\2\2\u0285\u0286") - buf.write("\7v\2\2\u0286\u0287\7e\2\2\u0287\u0288\7j\2\2\u0288`\3") - buf.write("\2\2\2\u0289\u028a\7u\2\2\u028a\u028b\7{\2\2\u028b\u028c") - buf.write("\7p\2\2\u028c\u028d\7e\2\2\u028d\u028e\7j\2\2\u028e\u028f") - buf.write("\7t\2\2\u028f\u0290\7q\2\2\u0290\u0291\7p\2\2\u0291\u0292") - buf.write("\7k\2\2\u0292\u0293\7|\2\2\u0293\u0294\7g\2\2\u0294\u0295") - buf.write("\7f\2\2\u0295b\3\2\2\2\u0296\u0297\7v\2\2\u0297\u0298") - buf.write("\7j\2\2\u0298\u0299\7k\2\2\u0299\u029a\7u\2\2\u029ad\3") - buf.write("\2\2\2\u029b\u029c\7v\2\2\u029c\u029d\7j\2\2\u029d\u029e") - buf.write("\7t\2\2\u029e\u029f\7q\2\2\u029f\u02a0\7y\2\2\u02a0f\3") - buf.write("\2\2\2\u02a1\u02a2\7v\2\2\u02a2\u02a3\7j\2\2\u02a3\u02a4") - buf.write("\7t\2\2\u02a4\u02a5\7q\2\2\u02a5\u02a6\7y\2\2\u02a6\u02a7") - buf.write("\7u\2\2\u02a7h\3\2\2\2\u02a8\u02a9\7v\2\2\u02a9\u02aa") - buf.write("\7q\2\2\u02aaj\3\2\2\2\u02ab\u02ac\7v\2\2\u02ac\u02ad") - buf.write("\7t\2\2\u02ad\u02ae\7c\2\2\u02ae\u02af\7p\2\2\u02af\u02b0") - buf.write("\7u\2\2\u02b0\u02b1\7k\2\2\u02b1\u02b2\7g\2\2\u02b2\u02b3") - buf.write("\7p\2\2\u02b3\u02b4\7v\2\2\u02b4l\3\2\2\2\u02b5\u02b6") - buf.write("\7v\2\2\u02b6\u02b7\7t\2\2\u02b7\u02b8\7c\2\2\u02b8\u02b9") - buf.write("\7p\2\2\u02b9\u02ba\7u\2\2\u02ba\u02bb\7k\2\2\u02bb\u02bc") - buf.write("\7v\2\2\u02bc\u02bd\7k\2\2\u02bd\u02be\7x\2\2\u02be\u02bf") - buf.write("\7g\2\2\u02bfn\3\2\2\2\u02c0\u02c1\7v\2\2\u02c1\u02c2") - buf.write("\7t\2\2\u02c2\u02c3\7{\2\2\u02c3p\3\2\2\2\u02c4\u02c5") - buf.write("\7w\2\2\u02c5\u02c6\7u\2\2\u02c6\u02c7\7g\2\2\u02c7\u02c8") - buf.write("\7u\2\2\u02c8r\3\2\2\2\u02c9\u02ca\7x\2\2\u02ca\u02cb") - buf.write("\7q\2\2\u02cb\u02cc\7k\2\2\u02cc\u02cd\7f\2\2\u02cdt\3") - buf.write("\2\2\2\u02ce\u02cf\7x\2\2\u02cf\u02d0\7q\2\2\u02d0\u02d1") - buf.write("\7n\2\2\u02d1\u02d2\7c\2\2\u02d2\u02d3\7v\2\2\u02d3\u02d4") - buf.write("\7k\2\2\u02d4\u02d5\7n\2\2\u02d5\u02d6\7g\2\2\u02d6v\3") - buf.write("\2\2\2\u02d7\u02d8\7y\2\2\u02d8\u02d9\7j\2\2\u02d9\u02da") - buf.write("\7k\2\2\u02da\u02db\7n\2\2\u02db\u02dc\7g\2\2\u02dcx\3") - buf.write("\2\2\2\u02dd\u02de\7y\2\2\u02de\u02df\7k\2\2\u02df\u02e0") - buf.write("\7v\2\2\u02e0\u02e1\7j\2\2\u02e1z\3\2\2\2\u02e2\u02e3") - buf.write("\7a\2\2\u02e3|\3\2\2\2\u02e4\u02e9\5\177@\2\u02e5\u02e9") - buf.write("\5\u0081A\2\u02e6\u02e9\5\u0083B\2\u02e7\u02e9\5\u0085") - buf.write("C\2\u02e8\u02e4\3\2\2\2\u02e8\u02e5\3\2\2\2\u02e8\u02e6") - buf.write("\3\2\2\2\u02e8\u02e7\3\2\2\2\u02e9~\3\2\2\2\u02ea\u02ec") - buf.write("\5\u0089E\2\u02eb\u02ed\5\u0087D\2\u02ec\u02eb\3\2\2\2") - buf.write("\u02ec\u02ed\3\2\2\2\u02ed\u0080\3\2\2\2\u02ee\u02f0\5") - buf.write("\u0097L\2\u02ef\u02f1\5\u0087D\2\u02f0\u02ef\3\2\2\2\u02f0") - buf.write("\u02f1\3\2\2\2\u02f1\u0082\3\2\2\2\u02f2\u02f4\5\u00a1") - buf.write("Q\2\u02f3\u02f5\5\u0087D\2\u02f4\u02f3\3\2\2\2\u02f4\u02f5") - buf.write("\3\2\2\2\u02f5\u0084\3\2\2\2\u02f6\u02f8\5\u00abV\2\u02f7") - buf.write("\u02f9\5\u0087D\2\u02f8\u02f7\3\2\2\2\u02f8\u02f9\3\2") - buf.write("\2\2\u02f9\u0086\3\2\2\2\u02fa\u02fb\t\2\2\2\u02fb\u0088") - buf.write("\3\2\2\2\u02fc\u0307\7\62\2\2\u02fd\u0304\5\u008fH\2\u02fe") - buf.write("\u0300\5\u008bF\2\u02ff\u02fe\3\2\2\2\u02ff\u0300\3\2") - buf.write("\2\2\u0300\u0305\3\2\2\2\u0301\u0302\5\u0095K\2\u0302") - buf.write("\u0303\5\u008bF\2\u0303\u0305\3\2\2\2\u0304\u02ff\3\2") - buf.write("\2\2\u0304\u0301\3\2\2\2\u0305\u0307\3\2\2\2\u0306\u02fc") - buf.write("\3\2\2\2\u0306\u02fd\3\2\2\2\u0307\u008a\3\2\2\2\u0308") - buf.write("\u030d\5\u008dG\2\u0309\u030b\5\u0091I\2\u030a\u0309\3") - buf.write("\2\2\2\u030a\u030b\3\2\2\2\u030b\u030c\3\2\2\2\u030c\u030e") - buf.write("\5\u008dG\2\u030d\u030a\3\2\2\2\u030d\u030e\3\2\2\2\u030e") - buf.write("\u008c\3\2\2\2\u030f\u0312\7\62\2\2\u0310\u0312\5\u008f") - buf.write("H\2\u0311\u030f\3\2\2\2\u0311\u0310\3\2\2\2\u0312\u008e") - buf.write("\3\2\2\2\u0313\u0314\t\3\2\2\u0314\u0090\3\2\2\2\u0315") - buf.write("\u0317\5\u0093J\2\u0316\u0315\3\2\2\2\u0317\u0318\3\2") - buf.write("\2\2\u0318\u0316\3\2\2\2\u0318\u0319\3\2\2\2\u0319\u0092") - buf.write("\3\2\2\2\u031a\u031d\5\u008dG\2\u031b\u031d\7a\2\2\u031c") - buf.write("\u031a\3\2\2\2\u031c\u031b\3\2\2\2\u031d\u0094\3\2\2\2") - buf.write("\u031e\u0320\7a\2\2\u031f\u031e\3\2\2\2\u0320\u0321\3") - buf.write("\2\2\2\u0321\u031f\3\2\2\2\u0321\u0322\3\2\2\2\u0322\u0096") - buf.write("\3\2\2\2\u0323\u0324\7\62\2\2\u0324\u0325\t\4\2\2\u0325") - buf.write("\u0326\5\u0099M\2\u0326\u0098\3\2\2\2\u0327\u032c\5\u009b") - buf.write("N\2\u0328\u032a\5\u009dO\2\u0329\u0328\3\2\2\2\u0329\u032a") - buf.write("\3\2\2\2\u032a\u032b\3\2\2\2\u032b\u032d\5\u009bN\2\u032c") - buf.write("\u0329\3\2\2\2\u032c\u032d\3\2\2\2\u032d\u009a\3\2\2\2") - buf.write("\u032e\u032f\t\5\2\2\u032f\u009c\3\2\2\2\u0330\u0332\5") - buf.write("\u009fP\2\u0331\u0330\3\2\2\2\u0332\u0333\3\2\2\2\u0333") - buf.write("\u0331\3\2\2\2\u0333\u0334\3\2\2\2\u0334\u009e\3\2\2\2") - buf.write("\u0335\u0338\5\u009bN\2\u0336\u0338\7a\2\2\u0337\u0335") - buf.write("\3\2\2\2\u0337\u0336\3\2\2\2\u0338\u00a0\3\2\2\2\u0339") - buf.write("\u033b\7\62\2\2\u033a\u033c\5\u0095K\2\u033b\u033a\3\2") - buf.write("\2\2\u033b\u033c\3\2\2\2\u033c\u033d\3\2\2\2\u033d\u033e") - buf.write("\5\u00a3R\2\u033e\u00a2\3\2\2\2\u033f\u0344\5\u00a5S\2") - buf.write("\u0340\u0342\5\u00a7T\2\u0341\u0340\3\2\2\2\u0341\u0342") - buf.write("\3\2\2\2\u0342\u0343\3\2\2\2\u0343\u0345\5\u00a5S\2\u0344") - buf.write("\u0341\3\2\2\2\u0344\u0345\3\2\2\2\u0345\u00a4\3\2\2\2") - buf.write("\u0346\u0347\t\6\2\2\u0347\u00a6\3\2\2\2\u0348\u034a\5") - buf.write("\u00a9U\2\u0349\u0348\3\2\2\2\u034a\u034b\3\2\2\2\u034b") - buf.write("\u0349\3\2\2\2\u034b\u034c\3\2\2\2\u034c\u00a8\3\2\2\2") - buf.write("\u034d\u0350\5\u00a5S\2\u034e\u0350\7a\2\2\u034f\u034d") - buf.write("\3\2\2\2\u034f\u034e\3\2\2\2\u0350\u00aa\3\2\2\2\u0351") - buf.write("\u0352\7\62\2\2\u0352\u0353\t\7\2\2\u0353\u0354\5\u00ad") - buf.write("W\2\u0354\u00ac\3\2\2\2\u0355\u035a\5\u00afX\2\u0356\u0358") - buf.write("\5\u00b1Y\2\u0357\u0356\3\2\2\2\u0357\u0358\3\2\2\2\u0358") - buf.write("\u0359\3\2\2\2\u0359\u035b\5\u00afX\2\u035a\u0357\3\2") - buf.write("\2\2\u035a\u035b\3\2\2\2\u035b\u00ae\3\2\2\2\u035c\u035d") - buf.write("\t\b\2\2\u035d\u00b0\3\2\2\2\u035e\u0360\5\u00b3Z\2\u035f") - buf.write("\u035e\3\2\2\2\u0360\u0361\3\2\2\2\u0361\u035f\3\2\2\2") - buf.write("\u0361\u0362\3\2\2\2\u0362\u00b2\3\2\2\2\u0363\u0366\5") - buf.write("\u00afX\2\u0364\u0366\7a\2\2\u0365\u0363\3\2\2\2\u0365") - buf.write("\u0364\3\2\2\2\u0366\u00b4\3\2\2\2\u0367\u036a\5\u00b7") - buf.write("\\\2\u0368\u036a\5\u00c3b\2\u0369\u0367\3\2\2\2\u0369") - buf.write("\u0368\3\2\2\2\u036a\u00b6\3\2\2\2\u036b\u036c\5\u008b") - buf.write("F\2\u036c\u036e\7\60\2\2\u036d\u036f\5\u008bF\2\u036e") - buf.write("\u036d\3\2\2\2\u036e\u036f\3\2\2\2\u036f\u0371\3\2\2\2") - buf.write("\u0370\u0372\5\u00b9]\2\u0371\u0370\3\2\2\2\u0371\u0372") - buf.write("\3\2\2\2\u0372\u0374\3\2\2\2\u0373\u0375\5\u00c1a\2\u0374") - buf.write("\u0373\3\2\2\2\u0374\u0375\3\2\2\2\u0375\u0387\3\2\2\2") - buf.write("\u0376\u0377\7\60\2\2\u0377\u0379\5\u008bF\2\u0378\u037a") - buf.write("\5\u00b9]\2\u0379\u0378\3\2\2\2\u0379\u037a\3\2\2\2\u037a") - buf.write("\u037c\3\2\2\2\u037b\u037d\5\u00c1a\2\u037c\u037b\3\2") - buf.write("\2\2\u037c\u037d\3\2\2\2\u037d\u0387\3\2\2\2\u037e\u037f") - buf.write("\5\u008bF\2\u037f\u0381\5\u00b9]\2\u0380\u0382\5\u00c1") - buf.write("a\2\u0381\u0380\3\2\2\2\u0381\u0382\3\2\2\2\u0382\u0387") - buf.write("\3\2\2\2\u0383\u0384\5\u008bF\2\u0384\u0385\5\u00c1a\2") - buf.write("\u0385\u0387\3\2\2\2\u0386\u036b\3\2\2\2\u0386\u0376\3") - buf.write("\2\2\2\u0386\u037e\3\2\2\2\u0386\u0383\3\2\2\2\u0387\u00b8") - buf.write("\3\2\2\2\u0388\u0389\5\u00bb^\2\u0389\u038a\5\u00bd_\2") - buf.write("\u038a\u00ba\3\2\2\2\u038b\u038c\t\t\2\2\u038c\u00bc\3") - buf.write("\2\2\2\u038d\u038f\5\u00bf`\2\u038e\u038d\3\2\2\2\u038e") - buf.write("\u038f\3\2\2\2\u038f\u0390\3\2\2\2\u0390\u0391\5\u008b") - buf.write("F\2\u0391\u00be\3\2\2\2\u0392\u0393\t\n\2\2\u0393\u00c0") - buf.write("\3\2\2\2\u0394\u0395\t\13\2\2\u0395\u00c2\3\2\2\2\u0396") - buf.write("\u0397\5\u00c5c\2\u0397\u0399\5\u00c7d\2\u0398\u039a\5") - buf.write("\u00c1a\2\u0399\u0398\3\2\2\2\u0399\u039a\3\2\2\2\u039a") - buf.write("\u00c4\3\2\2\2\u039b\u039d\5\u0097L\2\u039c\u039e\7\60") - buf.write("\2\2\u039d\u039c\3\2\2\2\u039d\u039e\3\2\2\2\u039e\u03a7") - buf.write("\3\2\2\2\u039f\u03a0\7\62\2\2\u03a0\u03a2\t\4\2\2\u03a1") - buf.write("\u03a3\5\u0099M\2\u03a2\u03a1\3\2\2\2\u03a2\u03a3\3\2") - buf.write("\2\2\u03a3\u03a4\3\2\2\2\u03a4\u03a5\7\60\2\2\u03a5\u03a7") - buf.write("\5\u0099M\2\u03a6\u039b\3\2\2\2\u03a6\u039f\3\2\2\2\u03a7") - buf.write("\u00c6\3\2\2\2\u03a8\u03a9\5\u00c9e\2\u03a9\u03aa\5\u00bd") - buf.write("_\2\u03aa\u00c8\3\2\2\2\u03ab\u03ac\t\f\2\2\u03ac\u00ca") - buf.write("\3\2\2\2\u03ad\u03ae\7v\2\2\u03ae\u03af\7t\2\2\u03af\u03b0") - buf.write("\7w\2\2\u03b0\u03b7\7g\2\2\u03b1\u03b2\7h\2\2\u03b2\u03b3") - buf.write("\7c\2\2\u03b3\u03b4\7n\2\2\u03b4\u03b5\7u\2\2\u03b5\u03b7") - buf.write("\7g\2\2\u03b6\u03ad\3\2\2\2\u03b6\u03b1\3\2\2\2\u03b7") - buf.write("\u00cc\3\2\2\2\u03b8\u03b9\7)\2\2\u03b9\u03ba\5\u00cf") - buf.write("h\2\u03ba\u03bb\7)\2\2\u03bb\u03c1\3\2\2\2\u03bc\u03bd") - buf.write("\7)\2\2\u03bd\u03be\5\u00d7l\2\u03be\u03bf\7)\2\2\u03bf") - buf.write("\u03c1\3\2\2\2\u03c0\u03b8\3\2\2\2\u03c0\u03bc\3\2\2\2") - buf.write("\u03c1\u00ce\3\2\2\2\u03c2\u03c3\n\r\2\2\u03c3\u00d0\3") - buf.write("\2\2\2\u03c4\u03c6\7$\2\2\u03c5\u03c7\5\u00d3j\2\u03c6") - buf.write("\u03c5\3\2\2\2\u03c6\u03c7\3\2\2\2\u03c7\u03c8\3\2\2\2") - buf.write("\u03c8\u03c9\7$\2\2\u03c9\u00d2\3\2\2\2\u03ca\u03cc\5") - buf.write("\u00d5k\2\u03cb\u03ca\3\2\2\2\u03cc\u03cd\3\2\2\2\u03cd") - buf.write("\u03cb\3\2\2\2\u03cd\u03ce\3\2\2\2\u03ce\u00d4\3\2\2\2") - buf.write("\u03cf\u03d2\n\16\2\2\u03d0\u03d2\5\u00d7l\2\u03d1\u03cf") - buf.write("\3\2\2\2\u03d1\u03d0\3\2\2\2\u03d2\u00d6\3\2\2\2\u03d3") - buf.write("\u03d4\7^\2\2\u03d4\u03d8\t\17\2\2\u03d5\u03d8\5\u00d9") - buf.write("m\2\u03d6\u03d8\5\u00ddo\2\u03d7\u03d3\3\2\2\2\u03d7\u03d5") - buf.write("\3\2\2\2\u03d7\u03d6\3\2\2\2\u03d8\u00d8\3\2\2\2\u03d9") - buf.write("\u03da\7^\2\2\u03da\u03e5\5\u00a5S\2\u03db\u03dc\7^\2") - buf.write("\2\u03dc\u03dd\5\u00a5S\2\u03dd\u03de\5\u00a5S\2\u03de") - buf.write("\u03e5\3\2\2\2\u03df\u03e0\7^\2\2\u03e0\u03e1\5\u00db") - buf.write("n\2\u03e1\u03e2\5\u00a5S\2\u03e2\u03e3\5\u00a5S\2\u03e3") - buf.write("\u03e5\3\2\2\2\u03e4\u03d9\3\2\2\2\u03e4\u03db\3\2\2\2") - buf.write("\u03e4\u03df\3\2\2\2\u03e5\u00da\3\2\2\2\u03e6\u03e7\t") - buf.write("\20\2\2\u03e7\u00dc\3\2\2\2\u03e8\u03ea\7^\2\2\u03e9\u03eb") - buf.write("\7w\2\2\u03ea\u03e9\3\2\2\2\u03eb\u03ec\3\2\2\2\u03ec") - buf.write("\u03ea\3\2\2\2\u03ec\u03ed\3\2\2\2\u03ed\u03ee\3\2\2\2") - buf.write("\u03ee\u03ef\5\u009bN\2\u03ef\u03f0\5\u009bN\2\u03f0\u03f1") - buf.write("\5\u009bN\2\u03f1\u03f2\5\u009bN\2\u03f2\u00de\3\2\2\2") - buf.write("\u03f3\u03f4\7p\2\2\u03f4\u03f5\7w\2\2\u03f5\u03f6\7n") - buf.write("\2\2\u03f6\u03f7\7n\2\2\u03f7\u00e0\3\2\2\2\u03f8\u03f9") - buf.write("\7*\2\2\u03f9\u00e2\3\2\2\2\u03fa\u03fb\7+\2\2\u03fb\u00e4") - buf.write("\3\2\2\2\u03fc\u03fd\7}\2\2\u03fd\u00e6\3\2\2\2\u03fe") - buf.write("\u03ff\7\177\2\2\u03ff\u00e8\3\2\2\2\u0400\u0401\7]\2") - buf.write("\2\u0401\u00ea\3\2\2\2\u0402\u0403\7_\2\2\u0403\u00ec") - buf.write("\3\2\2\2\u0404\u0405\7=\2\2\u0405\u00ee\3\2\2\2\u0406") - buf.write("\u0407\7.\2\2\u0407\u00f0\3\2\2\2\u0408\u0409\7\60\2\2") - buf.write("\u0409\u00f2\3\2\2\2\u040a\u040b\7\60\2\2\u040b\u040c") - buf.write("\7\60\2\2\u040c\u040d\7\60\2\2\u040d\u00f4\3\2\2\2\u040e") - buf.write("\u040f\7B\2\2\u040f\u00f6\3\2\2\2\u0410\u0411\7<\2\2\u0411") - buf.write("\u0412\7<\2\2\u0412\u00f8\3\2\2\2\u0413\u0414\7?\2\2\u0414") - buf.write("\u00fa\3\2\2\2\u0415\u0416\7@\2\2\u0416\u00fc\3\2\2\2") - buf.write("\u0417\u0418\7>\2\2\u0418\u00fe\3\2\2\2\u0419\u041a\7") - buf.write("#\2\2\u041a\u0100\3\2\2\2\u041b\u041c\7\u0080\2\2\u041c") - buf.write("\u0102\3\2\2\2\u041d\u041e\7A\2\2\u041e\u0104\3\2\2\2") - buf.write("\u041f\u0420\7<\2\2\u0420\u0106\3\2\2\2\u0421\u0422\7") - buf.write("/\2\2\u0422\u0423\7@\2\2\u0423\u0108\3\2\2\2\u0424\u0425") - buf.write("\7?\2\2\u0425\u0426\7?\2\2\u0426\u010a\3\2\2\2\u0427\u0428") - buf.write("\7>\2\2\u0428\u0429\7?\2\2\u0429\u010c\3\2\2\2\u042a\u042b") - buf.write("\7@\2\2\u042b\u042c\7?\2\2\u042c\u010e\3\2\2\2\u042d\u042e") - buf.write("\7#\2\2\u042e\u042f\7?\2\2\u042f\u0110\3\2\2\2\u0430\u0431") - buf.write("\7(\2\2\u0431\u0432\7(\2\2\u0432\u0112\3\2\2\2\u0433\u0434") - buf.write("\7~\2\2\u0434\u0435\7~\2\2\u0435\u0114\3\2\2\2\u0436\u0437") - buf.write("\7-\2\2\u0437\u0438\7-\2\2\u0438\u0116\3\2\2\2\u0439\u043a") - buf.write("\7/\2\2\u043a\u043b\7/\2\2\u043b\u0118\3\2\2\2\u043c\u043d") - buf.write("\7-\2\2\u043d\u011a\3\2\2\2\u043e\u043f\7/\2\2\u043f\u011c") - buf.write("\3\2\2\2\u0440\u0441\7,\2\2\u0441\u011e\3\2\2\2\u0442") - buf.write("\u0443\7\61\2\2\u0443\u0120\3\2\2\2\u0444\u0445\7(\2\2") - buf.write("\u0445\u0122\3\2\2\2\u0446\u0447\7~\2\2\u0447\u0124\3") - buf.write("\2\2\2\u0448\u0449\7`\2\2\u0449\u0126\3\2\2\2\u044a\u044b") - buf.write("\7\'\2\2\u044b\u0128\3\2\2\2\u044c\u044d\7-\2\2\u044d") - buf.write("\u044e\7?\2\2\u044e\u012a\3\2\2\2\u044f\u0450\7/\2\2\u0450") - buf.write("\u0451\7?\2\2\u0451\u012c\3\2\2\2\u0452\u0453\7,\2\2\u0453") - buf.write("\u0454\7?\2\2\u0454\u012e\3\2\2\2\u0455\u0456\7\61\2\2") - buf.write("\u0456\u0457\7?\2\2\u0457\u0130\3\2\2\2\u0458\u0459\7") - buf.write("(\2\2\u0459\u045a\7?\2\2\u045a\u0132\3\2\2\2\u045b\u045c") - buf.write("\7~\2\2\u045c\u045d\7?\2\2\u045d\u0134\3\2\2\2\u045e\u045f") - buf.write("\7`\2\2\u045f\u0460\7?\2\2\u0460\u0136\3\2\2\2\u0461\u0462") - buf.write("\7\'\2\2\u0462\u0463\7?\2\2\u0463\u0138\3\2\2\2\u0464") - buf.write("\u0465\7>\2\2\u0465\u0466\7>\2\2\u0466\u0467\7?\2\2\u0467") - buf.write("\u013a\3\2\2\2\u0468\u0469\7@\2\2\u0469\u046a\7@\2\2\u046a") - buf.write("\u046b\7?\2\2\u046b\u013c\3\2\2\2\u046c\u046d\7@\2\2\u046d") - buf.write("\u046e\7@\2\2\u046e\u046f\7@\2\2\u046f\u0470\7?\2\2\u0470") - buf.write("\u013e\3\2\2\2\u0471\u0475\5\u0141\u00a1\2\u0472\u0474") - buf.write("\5\u0143\u00a2\2\u0473\u0472\3\2\2\2\u0474\u0477\3\2\2") - buf.write("\2\u0475\u0473\3\2\2\2\u0475\u0476\3\2\2\2\u0476\u0140") - buf.write("\3\2\2\2\u0477\u0475\3\2\2\2\u0478\u047f\t\21\2\2\u0479") - buf.write("\u047a\n\22\2\2\u047a\u047f\6\u00a1\2\2\u047b\u047c\t") - buf.write("\23\2\2\u047c\u047d\t\24\2\2\u047d\u047f\6\u00a1\3\2\u047e") - buf.write("\u0478\3\2\2\2\u047e\u0479\3\2\2\2\u047e\u047b\3\2\2\2") - buf.write("\u047f\u0142\3\2\2\2\u0480\u0487\t\25\2\2\u0481\u0482") - buf.write("\n\22\2\2\u0482\u0487\6\u00a2\4\2\u0483\u0484\t\23\2\2") - buf.write("\u0484\u0485\t\24\2\2\u0485\u0487\6\u00a2\5\2\u0486\u0480") - buf.write("\3\2\2\2\u0486\u0481\3\2\2\2\u0486\u0483\3\2\2\2\u0487") - buf.write("\u0144\3\2\2\2\u0488\u048a\t\26\2\2\u0489\u0488\3\2\2") - buf.write("\2\u048a\u048b\3\2\2\2\u048b\u0489\3\2\2\2\u048b\u048c") - buf.write("\3\2\2\2\u048c\u048d\3\2\2\2\u048d\u048e\b\u00a3\2\2\u048e") - buf.write("\u0146\3\2\2\2\u048f\u0490\7\61\2\2\u0490\u0491\7,\2\2") - buf.write("\u0491\u0495\3\2\2\2\u0492\u0494\13\2\2\2\u0493\u0492") - buf.write("\3\2\2\2\u0494\u0497\3\2\2\2\u0495\u0496\3\2\2\2\u0495") - buf.write("\u0493\3\2\2\2\u0496\u0498\3\2\2\2\u0497\u0495\3\2\2\2") - buf.write("\u0498\u0499\7,\2\2\u0499\u049a\7\61\2\2\u049a\u049b\3") - buf.write("\2\2\2\u049b\u049c\b\u00a4\3\2\u049c\u0148\3\2\2\2\u049d") - buf.write("\u049e\7\61\2\2\u049e\u049f\7\61\2\2\u049f\u04a3\3\2\2") - buf.write("\2\u04a0\u04a2\n\27\2\2\u04a1\u04a0\3\2\2\2\u04a2\u04a5") - buf.write("\3\2\2\2\u04a3\u04a1\3\2\2\2\u04a3\u04a4\3\2\2\2\u04a4") - buf.write("\u04a6\3\2\2\2\u04a5\u04a3\3\2\2\2\u04a6\u04a7\b\u00a5") - buf.write("\3\2\u04a7\u014a\3\2\2\29\2\u02e8\u02ec\u02f0\u02f4\u02f8") - buf.write("\u02ff\u0304\u0306\u030a\u030d\u0311\u0318\u031c\u0321") - buf.write("\u0329\u032c\u0333\u0337\u033b\u0341\u0344\u034b\u034f") - buf.write("\u0357\u035a\u0361\u0365\u0369\u036e\u0371\u0374\u0379") - buf.write("\u037c\u0381\u0386\u038e\u0399\u039d\u03a2\u03a6\u03b6") - buf.write("\u03c0\u03c6\u03cd\u03d1\u03d7\u03e4\u03ec\u0475\u047e") - buf.write("\u0486\u048b\u0495\u04a3\4\b\2\2\2\3\2") - return buf.getvalue() - - -class Java9Lexer(Java9LexerBase): - - atn = ATNDeserializer().deserialize(serializedATN()) - - decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] - - 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 - EXPORTS = 17 - EXTENDS = 18 - FINAL = 19 - FINALLY = 20 - FLOAT = 21 - FOR = 22 - IF = 23 - GOTO = 24 - IMPLEMENTS = 25 - IMPORT = 26 - INSTANCEOF = 27 - INT = 28 - INTERFACE = 29 - LONG = 30 - MODULE = 31 - NATIVE = 32 - NEW = 33 - OPEN = 34 - OPERNS = 35 - PACKAGE = 36 - PRIVATE = 37 - PROTECTED = 38 - PROVIDES = 39 - PUBLIC = 40 - REQUIRES = 41 - RETURN = 42 - SHORT = 43 - STATIC = 44 - STRICTFP = 45 - SUPER = 46 - SWITCH = 47 - SYNCHRONIZED = 48 - THIS = 49 - THROW = 50 - THROWS = 51 - TO = 52 - TRANSIENT = 53 - TRANSITIVE = 54 - TRY = 55 - USES = 56 - VOID = 57 - VOLATILE = 58 - WHILE = 59 - WITH = 60 - UNDER_SCORE = 61 - IntegerLiteral = 62 - FloatingPointLiteral = 63 - BooleanLiteral = 64 - CharacterLiteral = 65 - StringLiteral = 66 - NullLiteral = 67 - LPAREN = 68 - RPAREN = 69 - LBRACE = 70 - RBRACE = 71 - LBRACK = 72 - RBRACK = 73 - SEMI = 74 - COMMA = 75 - DOT = 76 - ELLIPSIS = 77 - AT = 78 - COLONCOLON = 79 - ASSIGN = 80 - GT = 81 - LT = 82 - BANG = 83 - TILDE = 84 - QUESTION = 85 - COLON = 86 - ARROW = 87 - EQUAL = 88 - LE = 89 - GE = 90 - NOTEQUAL = 91 - AND = 92 - OR = 93 - INC = 94 - DEC = 95 - ADD = 96 - SUB = 97 - MUL = 98 - DIV = 99 - BITAND = 100 - BITOR = 101 - CARET = 102 - MOD = 103 - ADD_ASSIGN = 104 - SUB_ASSIGN = 105 - MUL_ASSIGN = 106 - DIV_ASSIGN = 107 - AND_ASSIGN = 108 - OR_ASSIGN = 109 - XOR_ASSIGN = 110 - MOD_ASSIGN = 111 - LSHIFT_ASSIGN = 112 - RSHIFT_ASSIGN = 113 - URSHIFT_ASSIGN = 114 - Identifier = 115 - WS = 116 - COMMENT = 117 - LINE_COMMENT = 118 - - channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] - - modeNames = [ "DEFAULT_MODE" ] - - literalNames = [ "", - "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", - "'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", - "'default'", "'do'", "'double'", "'else'", "'enum'", "'exports'", - "'extends'", "'final'", "'finally'", "'float'", "'for'", "'if'", - "'goto'", "'implements'", "'import'", "'instanceof'", "'int'", - "'interface'", "'long'", "'module'", "'native'", "'new'", "'open'", - "'opens'", "'package'", "'private'", "'protected'", "'provides'", - "'public'", "'requires'", "'return'", "'short'", "'static'", - "'strictfp'", "'super'", "'switch'", "'synchronized'", "'this'", - "'throw'", "'throws'", "'to'", "'transient'", "'transitive'", - "'try'", "'uses'", "'void'", "'volatile'", "'while'", "'with'", - "'_'", "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", "';'", - "','", "'.'", "'...'", "'@'", "'::'", "'='", "'>'", "'<'", "'!'", - "'~'", "'?'", "':'", "'->'", "'=='", "'<='", "'>='", "'!='", - "'&&'", "'||'", "'++'", "'--'", "'+'", "'-'", "'*'", "'/'", - "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", "'/='", - "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", "'>>>='" ] - - symbolicNames = [ "", - "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", - "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", - "ELSE", "ENUM", "EXPORTS", "EXTENDS", "FINAL", "FINALLY", "FLOAT", - "FOR", "IF", "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", - "INTERFACE", "LONG", "MODULE", "NATIVE", "NEW", "OPEN", "OPERNS", - "PACKAGE", "PRIVATE", "PROTECTED", "PROVIDES", "PUBLIC", "REQUIRES", - "RETURN", "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", - "SYNCHRONIZED", "THIS", "THROW", "THROWS", "TO", "TRANSIENT", - "TRANSITIVE", "TRY", "USES", "VOID", "VOLATILE", "WHILE", "WITH", - "UNDER_SCORE", "IntegerLiteral", "FloatingPointLiteral", "BooleanLiteral", - "CharacterLiteral", "StringLiteral", "NullLiteral", "LPAREN", - "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", - "DOT", "ELLIPSIS", "AT", "COLONCOLON", "ASSIGN", "GT", "LT", - "BANG", "TILDE", "QUESTION", "COLON", "ARROW", "EQUAL", "LE", - "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", - "DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", - "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", - "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", - "Identifier", "WS", "COMMENT", "LINE_COMMENT" ] - - ruleNames = [ "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", - "CATCH", "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", - "DO", "DOUBLE", "ELSE", "ENUM", "EXPORTS", "EXTENDS", - "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", - "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "MODULE", - "NATIVE", "NEW", "OPEN", "OPERNS", "PACKAGE", "PRIVATE", - "PROTECTED", "PROVIDES", "PUBLIC", "REQUIRES", "RETURN", - "SHORT", "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", - "THIS", "THROW", "THROWS", "TO", "TRANSIENT", "TRANSITIVE", - "TRY", "USES", "VOID", "VOLATILE", "WHILE", "WITH", "UNDER_SCORE", - "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", "ELLIPSIS", - "AT", "COLONCOLON", "ASSIGN", "GT", "LT", "BANG", "TILDE", - "QUESTION", "COLON", "ARROW", "EQUAL", "LE", "GE", "NOTEQUAL", - "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", "DIV", - "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", - "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", - "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", - "URSHIFT_ASSIGN", "Identifier", "JavaLetter", "JavaLetterOrDigit", - "WS", "COMMENT", "LINE_COMMENT" ] - - grammarFileName = "Java9Lexer.g4" - - def __init__(self, input=None, output:TextIO = sys.stdout): - super().__init__(input, output) - self.checkVersion("4.7.2") - self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) - self._actions = None - self._predicates = None - - - def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): - if self._predicates is None: - preds = dict() - preds[159] = self.JavaLetter_sempred - preds[160] = self.JavaLetterOrDigit_sempred - self._predicates = preds - pred = self._predicates.get(ruleIndex, None) - if pred is not None: - return pred(localctx, predIndex) - else: - raise Exception("No registered predicate for:" + str(ruleIndex)) - - def JavaLetter_sempred(self, localctx:RuleContext, predIndex:int): - if predIndex == 0: - return Check1() - - - if predIndex == 1: - return Check2() - - - def JavaLetterOrDigit_sempred(self, localctx:RuleContext, predIndex:int): - if predIndex == 2: - return Check3() - - - if predIndex == 3: - return Check4() - - - diff --git a/java2python/lang/Java9Lexer.tokens b/java2python/lang/Java9Lexer.tokens deleted file mode 100644 index 9c8b31a..0000000 --- a/java2python/lang/Java9Lexer.tokens +++ /dev/null @@ -1,227 +0,0 @@ -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 -EXPORTS=17 -EXTENDS=18 -FINAL=19 -FINALLY=20 -FLOAT=21 -FOR=22 -IF=23 -GOTO=24 -IMPLEMENTS=25 -IMPORT=26 -INSTANCEOF=27 -INT=28 -INTERFACE=29 -LONG=30 -MODULE=31 -NATIVE=32 -NEW=33 -OPEN=34 -OPERNS=35 -PACKAGE=36 -PRIVATE=37 -PROTECTED=38 -PROVIDES=39 -PUBLIC=40 -REQUIRES=41 -RETURN=42 -SHORT=43 -STATIC=44 -STRICTFP=45 -SUPER=46 -SWITCH=47 -SYNCHRONIZED=48 -THIS=49 -THROW=50 -THROWS=51 -TO=52 -TRANSIENT=53 -TRANSITIVE=54 -TRY=55 -USES=56 -VOID=57 -VOLATILE=58 -WHILE=59 -WITH=60 -UNDER_SCORE=61 -IntegerLiteral=62 -FloatingPointLiteral=63 -BooleanLiteral=64 -CharacterLiteral=65 -StringLiteral=66 -NullLiteral=67 -LPAREN=68 -RPAREN=69 -LBRACE=70 -RBRACE=71 -LBRACK=72 -RBRACK=73 -SEMI=74 -COMMA=75 -DOT=76 -ELLIPSIS=77 -AT=78 -COLONCOLON=79 -ASSIGN=80 -GT=81 -LT=82 -BANG=83 -TILDE=84 -QUESTION=85 -COLON=86 -ARROW=87 -EQUAL=88 -LE=89 -GE=90 -NOTEQUAL=91 -AND=92 -OR=93 -INC=94 -DEC=95 -ADD=96 -SUB=97 -MUL=98 -DIV=99 -BITAND=100 -BITOR=101 -CARET=102 -MOD=103 -ADD_ASSIGN=104 -SUB_ASSIGN=105 -MUL_ASSIGN=106 -DIV_ASSIGN=107 -AND_ASSIGN=108 -OR_ASSIGN=109 -XOR_ASSIGN=110 -MOD_ASSIGN=111 -LSHIFT_ASSIGN=112 -RSHIFT_ASSIGN=113 -URSHIFT_ASSIGN=114 -Identifier=115 -WS=116 -COMMENT=117 -LINE_COMMENT=118 -'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 -'exports'=17 -'extends'=18 -'final'=19 -'finally'=20 -'float'=21 -'for'=22 -'if'=23 -'goto'=24 -'implements'=25 -'import'=26 -'instanceof'=27 -'int'=28 -'interface'=29 -'long'=30 -'module'=31 -'native'=32 -'new'=33 -'open'=34 -'opens'=35 -'package'=36 -'private'=37 -'protected'=38 -'provides'=39 -'public'=40 -'requires'=41 -'return'=42 -'short'=43 -'static'=44 -'strictfp'=45 -'super'=46 -'switch'=47 -'synchronized'=48 -'this'=49 -'throw'=50 -'throws'=51 -'to'=52 -'transient'=53 -'transitive'=54 -'try'=55 -'uses'=56 -'void'=57 -'volatile'=58 -'while'=59 -'with'=60 -'_'=61 -'null'=67 -'('=68 -')'=69 -'{'=70 -'}'=71 -'['=72 -']'=73 -';'=74 -','=75 -'.'=76 -'...'=77 -'@'=78 -'::'=79 -'='=80 -'>'=81 -'<'=82 -'!'=83 -'~'=84 -'?'=85 -':'=86 -'->'=87 -'=='=88 -'<='=89 -'>='=90 -'!='=91 -'&&'=92 -'||'=93 -'++'=94 -'--'=95 -'+'=96 -'-'=97 -'*'=98 -'/'=99 -'&'=100 -'|'=101 -'^'=102 -'%'=103 -'+='=104 -'-='=105 -'*='=106 -'/='=107 -'&='=108 -'|='=109 -'^='=110 -'%='=111 -'<<='=112 -'>>='=113 -'>>>='=114 diff --git a/java2python/lang/Java9Parser.g4 b/java2python/lang/Java9Parser.g4 deleted file mode 100644 index 65972c3..0000000 --- a/java2python/lang/Java9Parser.g4 +++ /dev/null @@ -1,1431 +0,0 @@ -/* - * [The "BSD license"] - * Copyright (c) 2014 Terence Parr - * Copyright (c) 2014 Sam Harwell - * Copyright (c) 2017 Chan Chung Kwong - * 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 9 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 Java9.g4 - * $ javac *.java - * $ grun Java9 compilationUnit *.java - * - * Or, -~/antlr/code/grammars-v4/java9 $ java Test . -/Users/parrt/antlr/code/grammars-v4/java9/./Java9BaseListener.java -/Users/parrt/antlr/code/grammars-v4/java9/./Java9Lexer.java -/Users/parrt/antlr/code/grammars-v4/java9/./Java9Listener.java -/Users/parrt/antlr/code/grammars-v4/java9/./Java9Parser.java -/Users/parrt/antlr/code/grammars-v4/java9/./Test.java -Total lexer+parser time 30844ms. -~/antlr/code/grammars-v4/java9 $ java Test examples/module-info.java -/home/kwong/projects/grammars-v4/java9/examples/module-info.java -Total lexer+parser time 914ms. -~/antlr/code/grammars-v4/java9 $ java Test examples/TryWithResourceDemo.java -/home/kwong/projects/grammars-v4/java9/examples/TryWithResourceDemo.java -Total lexer+parser time 3634ms. -~/antlr/code/grammars-v4/java9 $ java Test examples/helloworld.java -/home/kwong/projects/grammars-v4/java9/examples/helloworld.java -Total lexer+parser time 2497ms. - - */ -parser grammar Java9Parser; - -options -{ - tokenVocab = Java9Lexer; -} - -/* - * 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 - | interfaceType - ; -*/ -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) - */ - -moduleName - : identifier - | moduleName '.' identifier - ; - -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 - : ordinaryCompilation - | modularCompilation - ; - -ordinaryCompilation - : packageDeclaration? importDeclaration* typeDeclaration* EOF - ; - -modularCompilation - : importDeclaration* moduleDeclaration - ; - -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 - | ';' - ; - -moduleDeclaration - : annotation* 'open'? 'module' moduleName '{' moduleDirective* '}' - ; - -moduleDirective - : 'requires' requiresModifier* moduleName ';' - | 'exports' packageName ('to' moduleName (',' moduleName)*)? ';' - | 'opens' packageName ('to' moduleName (',' moduleName)*)? ';' - | 'uses' typeName ';' - | 'provides' typeName 'with' typeName (',' typeName)* ';' - ; - -requiresModifier - : 'transitive' - | 'static' - ; - -/* - * 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 - | unannInterfaceType - ; -*/ - -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 - : formalParameters ',' lastFormalParameter - | lastFormalParameter - | receiverParameter - ; - -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' - | 'private'//Introduced in Java 9 - | '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 - : '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 - : '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 - | variableAccess//Introduced in Java 9 - ; - -variableAccess - : expressionName - | fieldAccess - ; - -/* - * Productions from §15 (Expressions) - */ - -/*primary - : primaryNoNewArray - | arrayCreationExpression - ; -*/ - -primary - : ( primaryNoNewArray_lfno_primary - | arrayCreationExpression - ) - ( primaryNoNewArray_lf_primary - )* - ; - -primaryNoNewArray - : literal - | classLiteral - | '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 - ; - -classLiteral - : (typeName|numericType|'boolean') ('[' ']')* '.' 'class' - | 'void' '.' 'class' - ; - -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 '[' expression ']' - ; -*/ - -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 - : 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|lambdaExpression) - ; - -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 - | postDecrementExpression - ; -*/ - -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 - ; - -identifier : Identifier | 'to' | 'module' | 'open' | 'with' | 'provides' | 'uses' | 'opens' | 'requires' | 'exports'; - diff --git a/java2python/lang/Java9Parser.interp b/java2python/lang/Java9Parser.interp deleted file mode 100644 index 3670872..0000000 --- a/java2python/lang/Java9Parser.interp +++ /dev/null @@ -1,492 +0,0 @@ -token literal names: -null -'abstract' -'assert' -'boolean' -'break' -'byte' -'case' -'catch' -'char' -'class' -'const' -'continue' -'default' -'do' -'double' -'else' -'enum' -'exports' -'extends' -'final' -'finally' -'float' -'for' -'if' -'goto' -'implements' -'import' -'instanceof' -'int' -'interface' -'long' -'module' -'native' -'new' -'open' -'opens' -'package' -'private' -'protected' -'provides' -'public' -'requires' -'return' -'short' -'static' -'strictfp' -'super' -'switch' -'synchronized' -'this' -'throw' -'throws' -'to' -'transient' -'transitive' -'try' -'uses' -'void' -'volatile' -'while' -'with' -'_' -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 -EXPORTS -EXTENDS -FINAL -FINALLY -FLOAT -FOR -IF -GOTO -IMPLEMENTS -IMPORT -INSTANCEOF -INT -INTERFACE -LONG -MODULE -NATIVE -NEW -OPEN -OPERNS -PACKAGE -PRIVATE -PROTECTED -PROVIDES -PUBLIC -REQUIRES -RETURN -SHORT -STATIC -STRICTFP -SUPER -SWITCH -SYNCHRONIZED -THIS -THROW -THROWS -TO -TRANSIENT -TRANSITIVE -TRY -USES -VOID -VOLATILE -WHILE -WITH -UNDER_SCORE -IntegerLiteral -FloatingPointLiteral -BooleanLiteral -CharacterLiteral -StringLiteral -NullLiteral -LPAREN -RPAREN -LBRACE -RBRACE -LBRACK -RBRACK -SEMI -COMMA -DOT -ELLIPSIS -AT -COLONCOLON -ASSIGN -GT -LT -BANG -TILDE -QUESTION -COLON -ARROW -EQUAL -LE -GE -NOTEQUAL -AND -OR -INC -DEC -ADD -SUB -MUL -DIV -BITAND -BITOR -CARET -MOD -ADD_ASSIGN -SUB_ASSIGN -MUL_ASSIGN -DIV_ASSIGN -AND_ASSIGN -OR_ASSIGN -XOR_ASSIGN -MOD_ASSIGN -LSHIFT_ASSIGN -RSHIFT_ASSIGN -URSHIFT_ASSIGN -Identifier -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 -moduleName -packageName -typeName -packageOrTypeName -expressionName -methodName -ambiguousName -compilationUnit -ordinaryCompilation -modularCompilation -packageDeclaration -packageModifier -importDeclaration -singleTypeImportDeclaration -typeImportOnDemandDeclaration -singleStaticImportDeclaration -staticImportOnDemandDeclaration -typeDeclaration -moduleDeclaration -moduleDirective -requiresModifier -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 -variableAccess -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 -classLiteral -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 -identifier - - -atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 120, 2983, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 3, 2, 3, 2, 3, 3, 7, 3, 496, 10, 3, 12, 3, 14, 3, 499, 11, 3, 3, 3, 3, 3, 7, 3, 503, 10, 3, 12, 3, 14, 3, 506, 11, 3, 3, 3, 5, 3, 509, 10, 3, 3, 4, 3, 4, 5, 4, 513, 10, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 5, 7, 522, 10, 7, 3, 8, 3, 8, 5, 8, 526, 10, 8, 3, 8, 3, 8, 7, 8, 530, 10, 8, 12, 8, 14, 8, 533, 11, 8, 3, 9, 7, 9, 536, 10, 9, 12, 9, 14, 9, 539, 11, 9, 3, 9, 3, 9, 5, 9, 543, 10, 9, 3, 9, 3, 9, 3, 9, 7, 9, 548, 10, 9, 12, 9, 14, 9, 551, 11, 9, 3, 9, 3, 9, 5, 9, 555, 10, 9, 5, 9, 557, 10, 9, 3, 10, 3, 10, 7, 10, 561, 10, 10, 12, 10, 14, 10, 564, 11, 10, 3, 10, 3, 10, 5, 10, 568, 10, 10, 3, 11, 7, 11, 571, 10, 11, 12, 11, 14, 11, 574, 11, 11, 3, 11, 3, 11, 5, 11, 578, 10, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 7, 15, 587, 10, 15, 12, 15, 14, 15, 590, 11, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 603, 10, 16, 3, 17, 7, 17, 606, 10, 17, 12, 17, 14, 17, 609, 11, 17, 3, 17, 3, 17, 3, 17, 7, 17, 614, 10, 17, 12, 17, 14, 17, 617, 11, 17, 3, 17, 3, 17, 7, 17, 621, 10, 17, 12, 17, 14, 17, 624, 11, 17, 3, 18, 7, 18, 627, 10, 18, 12, 18, 14, 18, 630, 11, 18, 3, 18, 3, 18, 5, 18, 634, 10, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 643, 10, 20, 12, 20, 14, 20, 646, 11, 20, 5, 20, 648, 10, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 7, 23, 660, 10, 23, 12, 23, 14, 23, 663, 11, 23, 3, 24, 3, 24, 5, 24, 667, 10, 24, 3, 25, 7, 25, 670, 10, 25, 12, 25, 14, 25, 673, 11, 25, 3, 25, 3, 25, 5, 25, 677, 10, 25, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 683, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 691, 10, 27, 12, 27, 14, 27, 694, 11, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 7, 28, 702, 10, 28, 12, 28, 14, 28, 705, 11, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 5, 29, 712, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 720, 10, 30, 12, 30, 14, 30, 723, 11, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 5, 31, 730, 10, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 740, 10, 33, 12, 33, 14, 33, 743, 11, 33, 3, 34, 3, 34, 5, 34, 747, 10, 34, 3, 35, 5, 35, 750, 10, 35, 3, 35, 7, 35, 753, 10, 35, 12, 35, 14, 35, 756, 11, 35, 3, 35, 7, 35, 759, 10, 35, 12, 35, 14, 35, 762, 11, 35, 3, 35, 3, 35, 3, 36, 7, 36, 767, 10, 36, 12, 36, 14, 36, 770, 11, 36, 3, 36, 3, 36, 3, 37, 7, 37, 775, 10, 37, 12, 37, 14, 37, 778, 11, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 5, 39, 790, 10, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 5, 44, 819, 10, 44, 3, 45, 7, 45, 822, 10, 45, 12, 45, 14, 45, 825, 11, 45, 3, 45, 5, 45, 828, 10, 45, 3, 45, 3, 45, 3, 45, 3, 45, 7, 45, 834, 10, 45, 12, 45, 14, 45, 837, 11, 45, 3, 45, 3, 45, 3, 46, 3, 46, 7, 46, 843, 10, 46, 12, 46, 14, 46, 846, 11, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 7, 46, 857, 10, 46, 12, 46, 14, 46, 860, 11, 46, 5, 46, 862, 10, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 7, 46, 872, 10, 46, 12, 46, 14, 46, 875, 11, 46, 5, 46, 877, 10, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 7, 46, 891, 10, 46, 12, 46, 14, 46, 894, 11, 46, 3, 46, 3, 46, 5, 46, 898, 10, 46, 3, 47, 3, 47, 3, 48, 3, 48, 5, 48, 904, 10, 48, 3, 49, 7, 49, 907, 10, 49, 12, 49, 14, 49, 910, 11, 49, 3, 49, 3, 49, 3, 49, 5, 49, 915, 10, 49, 3, 49, 5, 49, 918, 10, 49, 3, 49, 5, 49, 921, 10, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 933, 10, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 7, 52, 942, 10, 52, 12, 52, 14, 52, 945, 11, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 7, 55, 956, 10, 55, 12, 55, 14, 55, 959, 11, 55, 3, 56, 3, 56, 7, 56, 963, 10, 56, 12, 56, 14, 56, 966, 11, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 5, 57, 974, 10, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 981, 10, 58, 3, 59, 7, 59, 984, 10, 59, 12, 59, 14, 59, 987, 11, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1001, 10, 60, 3, 61, 3, 61, 3, 61, 7, 61, 1006, 10, 61, 12, 61, 14, 61, 1009, 11, 61, 3, 62, 3, 62, 3, 62, 5, 62, 1014, 10, 62, 3, 63, 3, 63, 5, 63, 1018, 10, 63, 3, 64, 3, 64, 5, 64, 1022, 10, 64, 3, 65, 3, 65, 5, 65, 1026, 10, 65, 3, 66, 3, 66, 5, 66, 1030, 10, 66, 3, 67, 3, 67, 3, 67, 5, 67, 1035, 10, 67, 3, 68, 3, 68, 5, 68, 1039, 10, 68, 3, 68, 3, 68, 7, 68, 1043, 10, 68, 12, 68, 14, 68, 1046, 11, 68, 3, 69, 3, 69, 5, 69, 1050, 10, 69, 3, 69, 3, 69, 3, 69, 7, 69, 1055, 10, 69, 12, 69, 14, 69, 1058, 11, 69, 3, 69, 3, 69, 5, 69, 1062, 10, 69, 5, 69, 1064, 10, 69, 3, 70, 3, 70, 7, 70, 1068, 10, 70, 12, 70, 14, 70, 1071, 11, 70, 3, 70, 3, 70, 5, 70, 1075, 10, 70, 3, 71, 3, 71, 5, 71, 1079, 10, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 5, 76, 1098, 10, 76, 3, 77, 7, 77, 1101, 10, 77, 12, 77, 14, 77, 1104, 11, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 1119, 10, 78, 3, 79, 3, 79, 3, 79, 5, 79, 1124, 10, 79, 3, 79, 3, 79, 7, 79, 1128, 10, 79, 12, 79, 14, 79, 1131, 11, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1136, 10, 79, 5, 79, 1138, 10, 79, 3, 80, 3, 80, 5, 80, 1142, 10, 80, 3, 81, 3, 81, 3, 81, 5, 81, 1147, 10, 81, 3, 81, 3, 81, 5, 81, 1151, 10, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1159, 10, 82, 3, 83, 3, 83, 3, 83, 7, 83, 1164, 10, 83, 12, 83, 14, 83, 1167, 11, 83, 3, 83, 3, 83, 3, 83, 7, 83, 1172, 10, 83, 12, 83, 14, 83, 1175, 11, 83, 5, 83, 1177, 10, 83, 3, 84, 7, 84, 1180, 10, 84, 12, 84, 14, 84, 1183, 11, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 5, 85, 1190, 10, 85, 3, 86, 7, 86, 1193, 10, 86, 12, 86, 14, 86, 1196, 11, 86, 3, 86, 3, 86, 7, 86, 1200, 10, 86, 12, 86, 14, 86, 1203, 11, 86, 3, 86, 3, 86, 3, 86, 3, 86, 5, 86, 1209, 10, 86, 3, 87, 7, 87, 1212, 10, 87, 12, 87, 14, 87, 1215, 11, 87, 3, 87, 3, 87, 3, 87, 3, 87, 5, 87, 1221, 10, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 7, 89, 1231, 10, 89, 12, 89, 14, 89, 1234, 11, 89, 3, 90, 3, 90, 5, 90, 1238, 10, 90, 3, 91, 3, 91, 5, 91, 1242, 10, 91, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 94, 7, 94, 1250, 10, 94, 12, 94, 14, 94, 1253, 11, 94, 3, 94, 3, 94, 5, 94, 1257, 10, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 5, 95, 1265, 10, 95, 3, 96, 5, 96, 1268, 10, 96, 3, 96, 3, 96, 3, 96, 5, 96, 1273, 10, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 98, 3, 98, 5, 98, 1281, 10, 98, 3, 98, 5, 98, 1284, 10, 98, 3, 98, 3, 98, 3, 99, 5, 99, 1289, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1294, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1299, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1304, 10, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1311, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1316, 10, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1324, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1329, 10, 99, 3, 99, 3, 99, 3, 99, 5, 99, 1334, 10, 99, 3, 100, 7, 100, 1337, 10, 100, 12, 100, 14, 100, 1340, 11, 100, 3, 100, 3, 100, 3, 100, 5, 100, 1345, 10, 100, 3, 100, 3, 100, 3, 101, 3, 101, 5, 101, 1351, 10, 101, 3, 101, 5, 101, 1354, 10, 101, 3, 101, 5, 101, 1357, 10, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 7, 102, 1364, 10, 102, 12, 102, 14, 102, 1367, 11, 102, 3, 103, 7, 103, 1370, 10, 103, 12, 103, 14, 103, 1373, 11, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1378, 10, 103, 3, 103, 5, 103, 1381, 10, 103, 3, 103, 5, 103, 1384, 10, 103, 3, 104, 3, 104, 3, 105, 3, 105, 7, 105, 1390, 10, 105, 12, 105, 14, 105, 1393, 11, 105, 3, 106, 3, 106, 5, 106, 1397, 10, 106, 3, 107, 7, 107, 1400, 10, 107, 12, 107, 14, 107, 1403, 11, 107, 3, 107, 3, 107, 3, 107, 5, 107, 1408, 10, 107, 3, 107, 5, 107, 1411, 10, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 5, 108, 1422, 10, 108, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 7, 110, 1429, 10, 110, 12, 110, 14, 110, 1432, 11, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 5, 111, 1441, 10, 111, 3, 112, 7, 112, 1444, 10, 112, 12, 112, 14, 112, 1447, 11, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 5, 113, 1457, 10, 113, 3, 114, 7, 114, 1460, 10, 114, 12, 114, 14, 114, 1463, 11, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 5, 115, 1475, 10, 115, 3, 116, 7, 116, 1478, 10, 116, 12, 116, 14, 116, 1481, 11, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 7, 117, 1490, 10, 117, 12, 117, 14, 117, 1493, 11, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 5, 118, 1502, 10, 118, 3, 119, 7, 119, 1505, 10, 119, 12, 119, 14, 119, 1508, 11, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 1515, 10, 119, 3, 119, 5, 119, 1518, 10, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 5, 120, 1525, 10, 120, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 5, 122, 1533, 10, 122, 3, 123, 3, 123, 3, 123, 3, 123, 5, 123, 1539, 10, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 7, 124, 1546, 10, 124, 12, 124, 14, 124, 1549, 11, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 5, 126, 1558, 10, 126, 3, 127, 3, 127, 5, 127, 1562, 10, 127, 3, 127, 5, 127, 1565, 10, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 7, 128, 1572, 10, 128, 12, 128, 14, 128, 1575, 11, 128, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 5, 131, 1588, 10, 131, 3, 131, 5, 131, 1591, 10, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 7, 132, 1598, 10, 132, 12, 132, 14, 132, 1601, 11, 132, 3, 133, 3, 133, 5, 133, 1605, 10, 133, 3, 133, 3, 133, 3, 134, 6, 134, 1610, 10, 134, 13, 134, 14, 134, 1611, 3, 135, 3, 135, 3, 135, 5, 135, 1617, 10, 135, 3, 136, 3, 136, 3, 136, 3, 137, 7, 137, 1623, 10, 137, 12, 137, 14, 137, 1626, 11, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 1637, 10, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 1644, 10, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 1658, 10, 140, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 5, 145, 1680, 10, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 5, 149, 1714, 10, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 7, 151, 1724, 10, 151, 12, 151, 14, 151, 1727, 11, 151, 3, 151, 7, 151, 1730, 10, 151, 12, 151, 14, 151, 1733, 11, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 6, 153, 1741, 10, 153, 13, 153, 14, 153, 1742, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 1755, 10, 154, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 5, 159, 1781, 10, 159, 3, 160, 3, 160, 5, 160, 1785, 10, 160, 3, 161, 3, 161, 3, 161, 5, 161, 1790, 10, 161, 3, 161, 3, 161, 5, 161, 1794, 10, 161, 3, 161, 3, 161, 5, 161, 1798, 10, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 5, 162, 1806, 10, 162, 3, 162, 3, 162, 5, 162, 1810, 10, 162, 3, 162, 3, 162, 5, 162, 1814, 10, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 5, 163, 1821, 10, 163, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 7, 165, 1828, 10, 165, 12, 165, 14, 165, 1831, 11, 165, 3, 166, 3, 166, 3, 166, 7, 166, 1836, 10, 166, 12, 166, 14, 166, 1839, 11, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 7, 167, 1851, 10, 167, 12, 167, 14, 167, 1854, 11, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 5, 168, 1865, 10, 168, 3, 168, 3, 168, 3, 169, 3, 169, 5, 169, 1871, 10, 169, 3, 169, 3, 169, 3, 170, 3, 170, 5, 170, 1877, 10, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 1898, 10, 173, 3, 173, 3, 173, 3, 173, 5, 173, 1903, 10, 173, 3, 174, 6, 174, 1906, 10, 174, 13, 174, 14, 174, 1907, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 7, 176, 1917, 10, 176, 12, 176, 14, 176, 1920, 11, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 7, 177, 1928, 10, 177, 12, 177, 14, 177, 1931, 11, 177, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 1940, 10, 179, 3, 179, 5, 179, 1943, 10, 179, 3, 180, 3, 180, 3, 180, 5, 180, 1948, 10, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 7, 181, 1955, 10, 181, 12, 181, 14, 181, 1958, 11, 181, 3, 182, 7, 182, 1961, 10, 182, 12, 182, 14, 182, 1964, 11, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 5, 182, 1972, 10, 182, 3, 183, 3, 183, 5, 183, 1976, 10, 183, 3, 184, 3, 184, 5, 184, 1980, 10, 184, 3, 184, 7, 184, 1983, 10, 184, 12, 184, 14, 184, 1986, 11, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2004, 10, 185, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 7, 187, 2012, 10, 187, 12, 187, 14, 187, 2015, 11, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2036, 10, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 5, 188, 2043, 10, 188, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 5, 190, 2051, 10, 190, 3, 191, 3, 191, 3, 191, 3, 191, 7, 191, 2057, 10, 191, 12, 191, 14, 191, 2060, 11, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 7, 191, 2068, 10, 191, 12, 191, 14, 191, 2071, 11, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 5, 191, 2093, 10, 191, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2101, 10, 193, 12, 193, 14, 193, 2104, 11, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2112, 10, 193, 12, 193, 14, 193, 2115, 11, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 2136, 10, 193, 3, 194, 3, 194, 3, 194, 5, 194, 2141, 10, 194, 3, 194, 3, 194, 7, 194, 2145, 10, 194, 12, 194, 14, 194, 2148, 11, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 5, 194, 2155, 10, 194, 3, 195, 3, 195, 5, 195, 2159, 10, 195, 3, 195, 7, 195, 2162, 10, 195, 12, 195, 14, 195, 2165, 11, 195, 3, 195, 3, 195, 3, 195, 7, 195, 2170, 10, 195, 12, 195, 14, 195, 2173, 11, 195, 3, 195, 7, 195, 2176, 10, 195, 12, 195, 14, 195, 2179, 11, 195, 3, 195, 5, 195, 2182, 10, 195, 3, 195, 3, 195, 5, 195, 2186, 10, 195, 3, 195, 3, 195, 5, 195, 2190, 10, 195, 3, 195, 3, 195, 3, 195, 3, 195, 5, 195, 2196, 10, 195, 3, 195, 7, 195, 2199, 10, 195, 12, 195, 14, 195, 2202, 11, 195, 3, 195, 3, 195, 5, 195, 2206, 10, 195, 3, 195, 3, 195, 5, 195, 2210, 10, 195, 3, 195, 3, 195, 5, 195, 2214, 10, 195, 3, 195, 3, 195, 3, 195, 3, 195, 5, 195, 2220, 10, 195, 3, 195, 7, 195, 2223, 10, 195, 12, 195, 14, 195, 2226, 11, 195, 3, 195, 3, 195, 5, 195, 2230, 10, 195, 3, 195, 3, 195, 5, 195, 2234, 10, 195, 3, 195, 3, 195, 5, 195, 2238, 10, 195, 5, 195, 2240, 10, 195, 3, 196, 3, 196, 3, 196, 5, 196, 2245, 10, 196, 3, 196, 7, 196, 2248, 10, 196, 12, 196, 14, 196, 2251, 11, 196, 3, 196, 3, 196, 5, 196, 2255, 10, 196, 3, 196, 3, 196, 5, 196, 2259, 10, 196, 3, 196, 3, 196, 5, 196, 2263, 10, 196, 3, 197, 3, 197, 5, 197, 2267, 10, 197, 3, 197, 7, 197, 2270, 10, 197, 12, 197, 14, 197, 2273, 11, 197, 3, 197, 3, 197, 3, 197, 7, 197, 2278, 10, 197, 12, 197, 14, 197, 2281, 11, 197, 3, 197, 7, 197, 2284, 10, 197, 12, 197, 14, 197, 2287, 11, 197, 3, 197, 5, 197, 2290, 10, 197, 3, 197, 3, 197, 5, 197, 2294, 10, 197, 3, 197, 3, 197, 5, 197, 2298, 10, 197, 3, 197, 3, 197, 3, 197, 3, 197, 5, 197, 2304, 10, 197, 3, 197, 7, 197, 2307, 10, 197, 12, 197, 14, 197, 2310, 11, 197, 3, 197, 3, 197, 5, 197, 2314, 10, 197, 3, 197, 3, 197, 5, 197, 2318, 10, 197, 3, 197, 3, 197, 5, 197, 2322, 10, 197, 5, 197, 2324, 10, 197, 3, 198, 3, 198, 3, 198, 5, 198, 2329, 10, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 5, 199, 2344, 10, 199, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 5, 201, 2358, 10, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 5, 202, 2370, 10, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 7, 202, 2377, 10, 202, 12, 202, 14, 202, 2380, 11, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 7, 203, 2392, 10, 203, 12, 203, 14, 203, 2395, 11, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 5, 204, 2407, 10, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 7, 204, 2414, 10, 204, 12, 204, 14, 204, 2417, 11, 204, 3, 205, 3, 205, 3, 205, 5, 205, 2422, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2429, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2434, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2441, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2446, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2453, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2458, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2465, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2470, 10, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2479, 10, 205, 3, 205, 3, 205, 3, 205, 5, 205, 2484, 10, 205, 3, 205, 3, 205, 5, 205, 2488, 10, 205, 3, 206, 3, 206, 5, 206, 2492, 10, 206, 3, 206, 3, 206, 3, 206, 5, 206, 2497, 10, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 5, 207, 2504, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2511, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2516, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2523, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2528, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2535, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2540, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2549, 10, 207, 3, 207, 3, 207, 3, 207, 5, 207, 2554, 10, 207, 3, 207, 3, 207, 5, 207, 2558, 10, 207, 3, 208, 3, 208, 3, 208, 7, 208, 2563, 10, 208, 12, 208, 14, 208, 2566, 11, 208, 3, 209, 3, 209, 3, 209, 5, 209, 2571, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2578, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2585, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2592, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2600, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2607, 10, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 5, 209, 2615, 10, 209, 3, 210, 3, 210, 5, 210, 2619, 10, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 5, 211, 2626, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2633, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2640, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2648, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2655, 10, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 5, 211, 2663, 10, 211, 3, 212, 3, 212, 3, 212, 3, 212, 5, 212, 2669, 10, 212, 3, 212, 3, 212, 3, 212, 3, 212, 5, 212, 2675, 10, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 5, 212, 2687, 10, 212, 3, 213, 6, 213, 2690, 10, 213, 13, 213, 14, 213, 2691, 3, 214, 7, 214, 2695, 10, 214, 12, 214, 14, 214, 2698, 11, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 216, 3, 216, 5, 216, 2708, 10, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 5, 218, 2717, 10, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 2724, 10, 218, 3, 219, 3, 219, 3, 219, 7, 219, 2729, 10, 219, 12, 219, 14, 219, 2732, 11, 219, 3, 220, 3, 220, 5, 220, 2736, 10, 220, 3, 221, 3, 221, 5, 221, 2740, 10, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 5, 223, 2749, 10, 223, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 5, 225, 2760, 10, 225, 5, 225, 2762, 10, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 7, 226, 2770, 10, 226, 12, 226, 14, 226, 2773, 11, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 7, 227, 2781, 10, 227, 12, 227, 14, 227, 2784, 11, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 7, 228, 2792, 10, 228, 12, 228, 14, 228, 2795, 11, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 7, 229, 2803, 10, 229, 12, 229, 14, 229, 2806, 11, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 7, 230, 2814, 10, 230, 12, 230, 14, 230, 2817, 11, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 7, 231, 2828, 10, 231, 12, 231, 14, 231, 2831, 11, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 7, 232, 2851, 10, 232, 12, 232, 14, 232, 2854, 11, 232, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 7, 233, 2872, 10, 233, 12, 233, 14, 233, 2875, 11, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 7, 234, 2886, 10, 234, 12, 234, 14, 234, 2889, 11, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 7, 235, 2903, 10, 235, 12, 235, 14, 235, 2906, 11, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 5, 236, 2915, 10, 236, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 5, 239, 2929, 10, 239, 3, 240, 3, 240, 5, 240, 2933, 10, 240, 3, 240, 3, 240, 7, 240, 2937, 10, 240, 12, 240, 14, 240, 2940, 11, 240, 3, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 7, 245, 2960, 10, 245, 12, 245, 14, 245, 2963, 11, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 7, 245, 2971, 10, 245, 12, 245, 14, 245, 2974, 11, 245, 3, 245, 3, 245, 3, 245, 5, 245, 2979, 10, 245, 3, 246, 3, 246, 3, 246, 2, 16, 52, 54, 58, 64, 450, 452, 454, 456, 458, 460, 462, 464, 466, 468, 247, 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, 472, 474, 476, 478, 480, 482, 484, 486, 488, 490, 2, 8, 3, 2, 64, 69, 7, 2, 7, 7, 10, 10, 30, 30, 32, 32, 45, 45, 4, 2, 16, 16, 23, 23, 4, 2, 46, 46, 56, 56, 4, 2, 82, 82, 106, 116, 11, 2, 19, 19, 33, 33, 36, 37, 41, 41, 43, 43, 54, 54, 58, 58, 62, 62, 117, 117, 2, 3237, 2, 492, 3, 2, 2, 2, 4, 508, 3, 2, 2, 2, 6, 512, 3, 2, 2, 2, 8, 514, 3, 2, 2, 2, 10, 516, 3, 2, 2, 2, 12, 521, 3, 2, 2, 2, 14, 525, 3, 2, 2, 2, 16, 556, 3, 2, 2, 2, 18, 558, 3, 2, 2, 2, 20, 572, 3, 2, 2, 2, 22, 579, 3, 2, 2, 2, 24, 581, 3, 2, 2, 2, 26, 583, 3, 2, 2, 2, 28, 588, 3, 2, 2, 2, 30, 602, 3, 2, 2, 2, 32, 607, 3, 2, 2, 2, 34, 628, 3, 2, 2, 2, 36, 635, 3, 2, 2, 2, 38, 647, 3, 2, 2, 2, 40, 649, 3, 2, 2, 2, 42, 652, 3, 2, 2, 2, 44, 656, 3, 2, 2, 2, 46, 666, 3, 2, 2, 2, 48, 671, 3, 2, 2, 2, 50, 682, 3, 2, 2, 2, 52, 684, 3, 2, 2, 2, 54, 695, 3, 2, 2, 2, 56, 711, 3, 2, 2, 2, 58, 713, 3, 2, 2, 2, 60, 729, 3, 2, 2, 2, 62, 731, 3, 2, 2, 2, 64, 733, 3, 2, 2, 2, 66, 746, 3, 2, 2, 2, 68, 749, 3, 2, 2, 2, 70, 768, 3, 2, 2, 2, 72, 776, 3, 2, 2, 2, 74, 783, 3, 2, 2, 2, 76, 789, 3, 2, 2, 2, 78, 791, 3, 2, 2, 2, 80, 795, 3, 2, 2, 2, 82, 801, 3, 2, 2, 2, 84, 808, 3, 2, 2, 2, 86, 818, 3, 2, 2, 2, 88, 823, 3, 2, 2, 2, 90, 897, 3, 2, 2, 2, 92, 899, 3, 2, 2, 2, 94, 903, 3, 2, 2, 2, 96, 908, 3, 2, 2, 2, 98, 932, 3, 2, 2, 2, 100, 934, 3, 2, 2, 2, 102, 938, 3, 2, 2, 2, 104, 946, 3, 2, 2, 2, 106, 949, 3, 2, 2, 2, 108, 952, 3, 2, 2, 2, 110, 960, 3, 2, 2, 2, 112, 973, 3, 2, 2, 2, 114, 980, 3, 2, 2, 2, 116, 985, 3, 2, 2, 2, 118, 1000, 3, 2, 2, 2, 120, 1002, 3, 2, 2, 2, 122, 1010, 3, 2, 2, 2, 124, 1015, 3, 2, 2, 2, 126, 1021, 3, 2, 2, 2, 128, 1025, 3, 2, 2, 2, 130, 1029, 3, 2, 2, 2, 132, 1034, 3, 2, 2, 2, 134, 1038, 3, 2, 2, 2, 136, 1063, 3, 2, 2, 2, 138, 1065, 3, 2, 2, 2, 140, 1076, 3, 2, 2, 2, 142, 1080, 3, 2, 2, 2, 144, 1082, 3, 2, 2, 2, 146, 1084, 3, 2, 2, 2, 148, 1086, 3, 2, 2, 2, 150, 1097, 3, 2, 2, 2, 152, 1102, 3, 2, 2, 2, 154, 1118, 3, 2, 2, 2, 156, 1137, 3, 2, 2, 2, 158, 1141, 3, 2, 2, 2, 160, 1143, 3, 2, 2, 2, 162, 1158, 3, 2, 2, 2, 164, 1176, 3, 2, 2, 2, 166, 1181, 3, 2, 2, 2, 168, 1189, 3, 2, 2, 2, 170, 1208, 3, 2, 2, 2, 172, 1213, 3, 2, 2, 2, 174, 1224, 3, 2, 2, 2, 176, 1227, 3, 2, 2, 2, 178, 1237, 3, 2, 2, 2, 180, 1241, 3, 2, 2, 2, 182, 1243, 3, 2, 2, 2, 184, 1245, 3, 2, 2, 2, 186, 1251, 3, 2, 2, 2, 188, 1264, 3, 2, 2, 2, 190, 1267, 3, 2, 2, 2, 192, 1276, 3, 2, 2, 2, 194, 1278, 3, 2, 2, 2, 196, 1333, 3, 2, 2, 2, 198, 1338, 3, 2, 2, 2, 200, 1348, 3, 2, 2, 2, 202, 1360, 3, 2, 2, 2, 204, 1371, 3, 2, 2, 2, 206, 1385, 3, 2, 2, 2, 208, 1387, 3, 2, 2, 2, 210, 1396, 3, 2, 2, 2, 212, 1401, 3, 2, 2, 2, 214, 1421, 3, 2, 2, 2, 216, 1423, 3, 2, 2, 2, 218, 1426, 3, 2, 2, 2, 220, 1440, 3, 2, 2, 2, 222, 1445, 3, 2, 2, 2, 224, 1456, 3, 2, 2, 2, 226, 1461, 3, 2, 2, 2, 228, 1474, 3, 2, 2, 2, 230, 1479, 3, 2, 2, 2, 232, 1487, 3, 2, 2, 2, 234, 1501, 3, 2, 2, 2, 236, 1506, 3, 2, 2, 2, 238, 1524, 3, 2, 2, 2, 240, 1526, 3, 2, 2, 2, 242, 1532, 3, 2, 2, 2, 244, 1534, 3, 2, 2, 2, 246, 1542, 3, 2, 2, 2, 248, 1550, 3, 2, 2, 2, 250, 1557, 3, 2, 2, 2, 252, 1559, 3, 2, 2, 2, 254, 1568, 3, 2, 2, 2, 256, 1576, 3, 2, 2, 2, 258, 1579, 3, 2, 2, 2, 260, 1585, 3, 2, 2, 2, 262, 1594, 3, 2, 2, 2, 264, 1602, 3, 2, 2, 2, 266, 1609, 3, 2, 2, 2, 268, 1616, 3, 2, 2, 2, 270, 1618, 3, 2, 2, 2, 272, 1624, 3, 2, 2, 2, 274, 1636, 3, 2, 2, 2, 276, 1643, 3, 2, 2, 2, 278, 1657, 3, 2, 2, 2, 280, 1659, 3, 2, 2, 2, 282, 1661, 3, 2, 2, 2, 284, 1665, 3, 2, 2, 2, 286, 1669, 3, 2, 2, 2, 288, 1679, 3, 2, 2, 2, 290, 1681, 3, 2, 2, 2, 292, 1687, 3, 2, 2, 2, 294, 1695, 3, 2, 2, 2, 296, 1713, 3, 2, 2, 2, 298, 1715, 3, 2, 2, 2, 300, 1721, 3, 2, 2, 2, 302, 1736, 3, 2, 2, 2, 304, 1740, 3, 2, 2, 2, 306, 1754, 3, 2, 2, 2, 308, 1756, 3, 2, 2, 2, 310, 1758, 3, 2, 2, 2, 312, 1764, 3, 2, 2, 2, 314, 1770, 3, 2, 2, 2, 316, 1780, 3, 2, 2, 2, 318, 1784, 3, 2, 2, 2, 320, 1786, 3, 2, 2, 2, 322, 1802, 3, 2, 2, 2, 324, 1820, 3, 2, 2, 2, 326, 1822, 3, 2, 2, 2, 328, 1824, 3, 2, 2, 2, 330, 1832, 3, 2, 2, 2, 332, 1847, 3, 2, 2, 2, 334, 1862, 3, 2, 2, 2, 336, 1868, 3, 2, 2, 2, 338, 1874, 3, 2, 2, 2, 340, 1880, 3, 2, 2, 2, 342, 1884, 3, 2, 2, 2, 344, 1902, 3, 2, 2, 2, 346, 1905, 3, 2, 2, 2, 348, 1909, 3, 2, 2, 2, 350, 1918, 3, 2, 2, 2, 352, 1924, 3, 2, 2, 2, 354, 1932, 3, 2, 2, 2, 356, 1935, 3, 2, 2, 2, 358, 1944, 3, 2, 2, 2, 360, 1951, 3, 2, 2, 2, 362, 1971, 3, 2, 2, 2, 364, 1975, 3, 2, 2, 2, 366, 1979, 3, 2, 2, 2, 368, 2003, 3, 2, 2, 2, 370, 2005, 3, 2, 2, 2, 372, 2035, 3, 2, 2, 2, 374, 2042, 3, 2, 2, 2, 376, 2044, 3, 2, 2, 2, 378, 2050, 3, 2, 2, 2, 380, 2092, 3, 2, 2, 2, 382, 2094, 3, 2, 2, 2, 384, 2135, 3, 2, 2, 2, 386, 2154, 3, 2, 2, 2, 388, 2239, 3, 2, 2, 2, 390, 2241, 3, 2, 2, 2, 392, 2323, 3, 2, 2, 2, 394, 2328, 3, 2, 2, 2, 396, 2343, 3, 2, 2, 2, 398, 2345, 3, 2, 2, 2, 400, 2357, 3, 2, 2, 2, 402, 2369, 3, 2, 2, 2, 404, 2381, 3, 2, 2, 2, 406, 2406, 3, 2, 2, 2, 408, 2487, 3, 2, 2, 2, 410, 2489, 3, 2, 2, 2, 412, 2557, 3, 2, 2, 2, 414, 2559, 3, 2, 2, 2, 416, 2614, 3, 2, 2, 2, 418, 2616, 3, 2, 2, 2, 420, 2662, 3, 2, 2, 2, 422, 2686, 3, 2, 2, 2, 424, 2689, 3, 2, 2, 2, 426, 2696, 3, 2, 2, 2, 428, 2703, 3, 2, 2, 2, 430, 2707, 3, 2, 2, 2, 432, 2709, 3, 2, 2, 2, 434, 2723, 3, 2, 2, 2, 436, 2725, 3, 2, 2, 2, 438, 2735, 3, 2, 2, 2, 440, 2739, 3, 2, 2, 2, 442, 2741, 3, 2, 2, 2, 444, 2748, 3, 2, 2, 2, 446, 2750, 3, 2, 2, 2, 448, 2761, 3, 2, 2, 2, 450, 2763, 3, 2, 2, 2, 452, 2774, 3, 2, 2, 2, 454, 2785, 3, 2, 2, 2, 456, 2796, 3, 2, 2, 2, 458, 2807, 3, 2, 2, 2, 460, 2818, 3, 2, 2, 2, 462, 2832, 3, 2, 2, 2, 464, 2855, 3, 2, 2, 2, 466, 2876, 3, 2, 2, 2, 468, 2890, 3, 2, 2, 2, 470, 2914, 3, 2, 2, 2, 472, 2916, 3, 2, 2, 2, 474, 2919, 3, 2, 2, 2, 476, 2928, 3, 2, 2, 2, 478, 2932, 3, 2, 2, 2, 480, 2941, 3, 2, 2, 2, 482, 2944, 3, 2, 2, 2, 484, 2946, 3, 2, 2, 2, 486, 2949, 3, 2, 2, 2, 488, 2978, 3, 2, 2, 2, 490, 2980, 3, 2, 2, 2, 492, 493, 9, 2, 2, 2, 493, 3, 3, 2, 2, 2, 494, 496, 5, 242, 122, 2, 495, 494, 3, 2, 2, 2, 496, 499, 3, 2, 2, 2, 497, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 500, 3, 2, 2, 2, 499, 497, 3, 2, 2, 2, 500, 509, 5, 6, 4, 2, 501, 503, 5, 242, 122, 2, 502, 501, 3, 2, 2, 2, 503, 506, 3, 2, 2, 2, 504, 502, 3, 2, 2, 2, 504, 505, 3, 2, 2, 2, 505, 507, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 507, 509, 7, 5, 2, 2, 508, 497, 3, 2, 2, 2, 508, 504, 3, 2, 2, 2, 509, 5, 3, 2, 2, 2, 510, 513, 5, 8, 5, 2, 511, 513, 5, 10, 6, 2, 512, 510, 3, 2, 2, 2, 512, 511, 3, 2, 2, 2, 513, 7, 3, 2, 2, 2, 514, 515, 9, 3, 2, 2, 515, 9, 3, 2, 2, 2, 516, 517, 9, 4, 2, 2, 517, 11, 3, 2, 2, 2, 518, 522, 5, 14, 8, 2, 519, 522, 5, 28, 15, 2, 520, 522, 5, 30, 16, 2, 521, 518, 3, 2, 2, 2, 521, 519, 3, 2, 2, 2, 521, 520, 3, 2, 2, 2, 522, 13, 3, 2, 2, 2, 523, 526, 5, 20, 11, 2, 524, 526, 5, 26, 14, 2, 525, 523, 3, 2, 2, 2, 525, 524, 3, 2, 2, 2, 526, 531, 3, 2, 2, 2, 527, 530, 5, 18, 10, 2, 528, 530, 5, 24, 13, 2, 529, 527, 3, 2, 2, 2, 529, 528, 3, 2, 2, 2, 530, 533, 3, 2, 2, 2, 531, 529, 3, 2, 2, 2, 531, 532, 3, 2, 2, 2, 532, 15, 3, 2, 2, 2, 533, 531, 3, 2, 2, 2, 534, 536, 5, 242, 122, 2, 535, 534, 3, 2, 2, 2, 536, 539, 3, 2, 2, 2, 537, 535, 3, 2, 2, 2, 537, 538, 3, 2, 2, 2, 538, 540, 3, 2, 2, 2, 539, 537, 3, 2, 2, 2, 540, 542, 5, 490, 246, 2, 541, 543, 5, 42, 22, 2, 542, 541, 3, 2, 2, 2, 542, 543, 3, 2, 2, 2, 543, 557, 3, 2, 2, 2, 544, 545, 5, 14, 8, 2, 545, 549, 7, 78, 2, 2, 546, 548, 5, 242, 122, 2, 547, 546, 3, 2, 2, 2, 548, 551, 3, 2, 2, 2, 549, 547, 3, 2, 2, 2, 549, 550, 3, 2, 2, 2, 550, 552, 3, 2, 2, 2, 551, 549, 3, 2, 2, 2, 552, 554, 5, 490, 246, 2, 553, 555, 5, 42, 22, 2, 554, 553, 3, 2, 2, 2, 554, 555, 3, 2, 2, 2, 555, 557, 3, 2, 2, 2, 556, 537, 3, 2, 2, 2, 556, 544, 3, 2, 2, 2, 557, 17, 3, 2, 2, 2, 558, 562, 7, 78, 2, 2, 559, 561, 5, 242, 122, 2, 560, 559, 3, 2, 2, 2, 561, 564, 3, 2, 2, 2, 562, 560, 3, 2, 2, 2, 562, 563, 3, 2, 2, 2, 563, 565, 3, 2, 2, 2, 564, 562, 3, 2, 2, 2, 565, 567, 5, 490, 246, 2, 566, 568, 5, 42, 22, 2, 567, 566, 3, 2, 2, 2, 567, 568, 3, 2, 2, 2, 568, 19, 3, 2, 2, 2, 569, 571, 5, 242, 122, 2, 570, 569, 3, 2, 2, 2, 571, 574, 3, 2, 2, 2, 572, 570, 3, 2, 2, 2, 572, 573, 3, 2, 2, 2, 573, 575, 3, 2, 2, 2, 574, 572, 3, 2, 2, 2, 575, 577, 5, 490, 246, 2, 576, 578, 5, 42, 22, 2, 577, 576, 3, 2, 2, 2, 577, 578, 3, 2, 2, 2, 578, 21, 3, 2, 2, 2, 579, 580, 5, 16, 9, 2, 580, 23, 3, 2, 2, 2, 581, 582, 5, 18, 10, 2, 582, 25, 3, 2, 2, 2, 583, 584, 5, 20, 11, 2, 584, 27, 3, 2, 2, 2, 585, 587, 5, 242, 122, 2, 586, 585, 3, 2, 2, 2, 587, 590, 3, 2, 2, 2, 588, 586, 3, 2, 2, 2, 588, 589, 3, 2, 2, 2, 589, 591, 3, 2, 2, 2, 590, 588, 3, 2, 2, 2, 591, 592, 5, 490, 246, 2, 592, 29, 3, 2, 2, 2, 593, 594, 5, 4, 3, 2, 594, 595, 5, 32, 17, 2, 595, 603, 3, 2, 2, 2, 596, 597, 5, 14, 8, 2, 597, 598, 5, 32, 17, 2, 598, 603, 3, 2, 2, 2, 599, 600, 5, 28, 15, 2, 600, 601, 5, 32, 17, 2, 601, 603, 3, 2, 2, 2, 602, 593, 3, 2, 2, 2, 602, 596, 3, 2, 2, 2, 602, 599, 3, 2, 2, 2, 603, 31, 3, 2, 2, 2, 604, 606, 5, 242, 122, 2, 605, 604, 3, 2, 2, 2, 606, 609, 3, 2, 2, 2, 607, 605, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 610, 3, 2, 2, 2, 609, 607, 3, 2, 2, 2, 610, 611, 7, 74, 2, 2, 611, 622, 7, 75, 2, 2, 612, 614, 5, 242, 122, 2, 613, 612, 3, 2, 2, 2, 614, 617, 3, 2, 2, 2, 615, 613, 3, 2, 2, 2, 615, 616, 3, 2, 2, 2, 616, 618, 3, 2, 2, 2, 617, 615, 3, 2, 2, 2, 618, 619, 7, 74, 2, 2, 619, 621, 7, 75, 2, 2, 620, 615, 3, 2, 2, 2, 621, 624, 3, 2, 2, 2, 622, 620, 3, 2, 2, 2, 622, 623, 3, 2, 2, 2, 623, 33, 3, 2, 2, 2, 624, 622, 3, 2, 2, 2, 625, 627, 5, 36, 19, 2, 626, 625, 3, 2, 2, 2, 627, 630, 3, 2, 2, 2, 628, 626, 3, 2, 2, 2, 628, 629, 3, 2, 2, 2, 629, 631, 3, 2, 2, 2, 630, 628, 3, 2, 2, 2, 631, 633, 5, 490, 246, 2, 632, 634, 5, 38, 20, 2, 633, 632, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 35, 3, 2, 2, 2, 635, 636, 5, 242, 122, 2, 636, 37, 3, 2, 2, 2, 637, 638, 7, 20, 2, 2, 638, 648, 5, 28, 15, 2, 639, 640, 7, 20, 2, 2, 640, 644, 5, 14, 8, 2, 641, 643, 5, 40, 21, 2, 642, 641, 3, 2, 2, 2, 643, 646, 3, 2, 2, 2, 644, 642, 3, 2, 2, 2, 644, 645, 3, 2, 2, 2, 645, 648, 3, 2, 2, 2, 646, 644, 3, 2, 2, 2, 647, 637, 3, 2, 2, 2, 647, 639, 3, 2, 2, 2, 648, 39, 3, 2, 2, 2, 649, 650, 7, 102, 2, 2, 650, 651, 5, 22, 12, 2, 651, 41, 3, 2, 2, 2, 652, 653, 7, 84, 2, 2, 653, 654, 5, 44, 23, 2, 654, 655, 7, 83, 2, 2, 655, 43, 3, 2, 2, 2, 656, 661, 5, 46, 24, 2, 657, 658, 7, 77, 2, 2, 658, 660, 5, 46, 24, 2, 659, 657, 3, 2, 2, 2, 660, 663, 3, 2, 2, 2, 661, 659, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 662, 45, 3, 2, 2, 2, 663, 661, 3, 2, 2, 2, 664, 667, 5, 12, 7, 2, 665, 667, 5, 48, 25, 2, 666, 664, 3, 2, 2, 2, 666, 665, 3, 2, 2, 2, 667, 47, 3, 2, 2, 2, 668, 670, 5, 242, 122, 2, 669, 668, 3, 2, 2, 2, 670, 673, 3, 2, 2, 2, 671, 669, 3, 2, 2, 2, 671, 672, 3, 2, 2, 2, 672, 674, 3, 2, 2, 2, 673, 671, 3, 2, 2, 2, 674, 676, 7, 87, 2, 2, 675, 677, 5, 50, 26, 2, 676, 675, 3, 2, 2, 2, 676, 677, 3, 2, 2, 2, 677, 49, 3, 2, 2, 2, 678, 679, 7, 20, 2, 2, 679, 683, 5, 12, 7, 2, 680, 681, 7, 48, 2, 2, 681, 683, 5, 12, 7, 2, 682, 678, 3, 2, 2, 2, 682, 680, 3, 2, 2, 2, 683, 51, 3, 2, 2, 2, 684, 685, 8, 27, 1, 2, 685, 686, 5, 490, 246, 2, 686, 692, 3, 2, 2, 2, 687, 688, 12, 3, 2, 2, 688, 689, 7, 78, 2, 2, 689, 691, 5, 490, 246, 2, 690, 687, 3, 2, 2, 2, 691, 694, 3, 2, 2, 2, 692, 690, 3, 2, 2, 2, 692, 693, 3, 2, 2, 2, 693, 53, 3, 2, 2, 2, 694, 692, 3, 2, 2, 2, 695, 696, 8, 28, 1, 2, 696, 697, 5, 490, 246, 2, 697, 703, 3, 2, 2, 2, 698, 699, 12, 3, 2, 2, 699, 700, 7, 78, 2, 2, 700, 702, 5, 490, 246, 2, 701, 698, 3, 2, 2, 2, 702, 705, 3, 2, 2, 2, 703, 701, 3, 2, 2, 2, 703, 704, 3, 2, 2, 2, 704, 55, 3, 2, 2, 2, 705, 703, 3, 2, 2, 2, 706, 712, 5, 490, 246, 2, 707, 708, 5, 58, 30, 2, 708, 709, 7, 78, 2, 2, 709, 710, 5, 490, 246, 2, 710, 712, 3, 2, 2, 2, 711, 706, 3, 2, 2, 2, 711, 707, 3, 2, 2, 2, 712, 57, 3, 2, 2, 2, 713, 714, 8, 30, 1, 2, 714, 715, 5, 490, 246, 2, 715, 721, 3, 2, 2, 2, 716, 717, 12, 3, 2, 2, 717, 718, 7, 78, 2, 2, 718, 720, 5, 490, 246, 2, 719, 716, 3, 2, 2, 2, 720, 723, 3, 2, 2, 2, 721, 719, 3, 2, 2, 2, 721, 722, 3, 2, 2, 2, 722, 59, 3, 2, 2, 2, 723, 721, 3, 2, 2, 2, 724, 730, 5, 490, 246, 2, 725, 726, 5, 64, 33, 2, 726, 727, 7, 78, 2, 2, 727, 728, 5, 490, 246, 2, 728, 730, 3, 2, 2, 2, 729, 724, 3, 2, 2, 2, 729, 725, 3, 2, 2, 2, 730, 61, 3, 2, 2, 2, 731, 732, 5, 490, 246, 2, 732, 63, 3, 2, 2, 2, 733, 734, 8, 33, 1, 2, 734, 735, 5, 490, 246, 2, 735, 741, 3, 2, 2, 2, 736, 737, 12, 3, 2, 2, 737, 738, 7, 78, 2, 2, 738, 740, 5, 490, 246, 2, 739, 736, 3, 2, 2, 2, 740, 743, 3, 2, 2, 2, 741, 739, 3, 2, 2, 2, 741, 742, 3, 2, 2, 2, 742, 65, 3, 2, 2, 2, 743, 741, 3, 2, 2, 2, 744, 747, 5, 68, 35, 2, 745, 747, 5, 70, 36, 2, 746, 744, 3, 2, 2, 2, 746, 745, 3, 2, 2, 2, 747, 67, 3, 2, 2, 2, 748, 750, 5, 72, 37, 2, 749, 748, 3, 2, 2, 2, 749, 750, 3, 2, 2, 2, 750, 754, 3, 2, 2, 2, 751, 753, 5, 76, 39, 2, 752, 751, 3, 2, 2, 2, 753, 756, 3, 2, 2, 2, 754, 752, 3, 2, 2, 2, 754, 755, 3, 2, 2, 2, 755, 760, 3, 2, 2, 2, 756, 754, 3, 2, 2, 2, 757, 759, 5, 86, 44, 2, 758, 757, 3, 2, 2, 2, 759, 762, 3, 2, 2, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 763, 3, 2, 2, 2, 762, 760, 3, 2, 2, 2, 763, 764, 7, 2, 2, 3, 764, 69, 3, 2, 2, 2, 765, 767, 5, 76, 39, 2, 766, 765, 3, 2, 2, 2, 767, 770, 3, 2, 2, 2, 768, 766, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 771, 3, 2, 2, 2, 770, 768, 3, 2, 2, 2, 771, 772, 5, 88, 45, 2, 772, 71, 3, 2, 2, 2, 773, 775, 5, 74, 38, 2, 774, 773, 3, 2, 2, 2, 775, 778, 3, 2, 2, 2, 776, 774, 3, 2, 2, 2, 776, 777, 3, 2, 2, 2, 777, 779, 3, 2, 2, 2, 778, 776, 3, 2, 2, 2, 779, 780, 7, 38, 2, 2, 780, 781, 5, 54, 28, 2, 781, 782, 7, 76, 2, 2, 782, 73, 3, 2, 2, 2, 783, 784, 5, 242, 122, 2, 784, 75, 3, 2, 2, 2, 785, 790, 5, 78, 40, 2, 786, 790, 5, 80, 41, 2, 787, 790, 5, 82, 42, 2, 788, 790, 5, 84, 43, 2, 789, 785, 3, 2, 2, 2, 789, 786, 3, 2, 2, 2, 789, 787, 3, 2, 2, 2, 789, 788, 3, 2, 2, 2, 790, 77, 3, 2, 2, 2, 791, 792, 7, 28, 2, 2, 792, 793, 5, 56, 29, 2, 793, 794, 7, 76, 2, 2, 794, 79, 3, 2, 2, 2, 795, 796, 7, 28, 2, 2, 796, 797, 5, 58, 30, 2, 797, 798, 7, 78, 2, 2, 798, 799, 7, 100, 2, 2, 799, 800, 7, 76, 2, 2, 800, 81, 3, 2, 2, 2, 801, 802, 7, 28, 2, 2, 802, 803, 7, 46, 2, 2, 803, 804, 5, 56, 29, 2, 804, 805, 7, 78, 2, 2, 805, 806, 5, 490, 246, 2, 806, 807, 7, 76, 2, 2, 807, 83, 3, 2, 2, 2, 808, 809, 7, 28, 2, 2, 809, 810, 7, 46, 2, 2, 810, 811, 5, 56, 29, 2, 811, 812, 7, 78, 2, 2, 812, 813, 7, 100, 2, 2, 813, 814, 7, 76, 2, 2, 814, 85, 3, 2, 2, 2, 815, 819, 5, 94, 48, 2, 816, 819, 5, 210, 106, 2, 817, 819, 7, 76, 2, 2, 818, 815, 3, 2, 2, 2, 818, 816, 3, 2, 2, 2, 818, 817, 3, 2, 2, 2, 819, 87, 3, 2, 2, 2, 820, 822, 5, 242, 122, 2, 821, 820, 3, 2, 2, 2, 822, 825, 3, 2, 2, 2, 823, 821, 3, 2, 2, 2, 823, 824, 3, 2, 2, 2, 824, 827, 3, 2, 2, 2, 825, 823, 3, 2, 2, 2, 826, 828, 7, 36, 2, 2, 827, 826, 3, 2, 2, 2, 827, 828, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2, 829, 830, 7, 33, 2, 2, 830, 831, 5, 52, 27, 2, 831, 835, 7, 72, 2, 2, 832, 834, 5, 90, 46, 2, 833, 832, 3, 2, 2, 2, 834, 837, 3, 2, 2, 2, 835, 833, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 838, 3, 2, 2, 2, 837, 835, 3, 2, 2, 2, 838, 839, 7, 73, 2, 2, 839, 89, 3, 2, 2, 2, 840, 844, 7, 43, 2, 2, 841, 843, 5, 92, 47, 2, 842, 841, 3, 2, 2, 2, 843, 846, 3, 2, 2, 2, 844, 842, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 847, 3, 2, 2, 2, 846, 844, 3, 2, 2, 2, 847, 848, 5, 52, 27, 2, 848, 849, 7, 76, 2, 2, 849, 898, 3, 2, 2, 2, 850, 851, 7, 19, 2, 2, 851, 861, 5, 54, 28, 2, 852, 853, 7, 54, 2, 2, 853, 858, 5, 52, 27, 2, 854, 855, 7, 77, 2, 2, 855, 857, 5, 52, 27, 2, 856, 854, 3, 2, 2, 2, 857, 860, 3, 2, 2, 2, 858, 856, 3, 2, 2, 2, 858, 859, 3, 2, 2, 2, 859, 862, 3, 2, 2, 2, 860, 858, 3, 2, 2, 2, 861, 852, 3, 2, 2, 2, 861, 862, 3, 2, 2, 2, 862, 863, 3, 2, 2, 2, 863, 864, 7, 76, 2, 2, 864, 898, 3, 2, 2, 2, 865, 866, 7, 37, 2, 2, 866, 876, 5, 54, 28, 2, 867, 868, 7, 54, 2, 2, 868, 873, 5, 52, 27, 2, 869, 870, 7, 77, 2, 2, 870, 872, 5, 52, 27, 2, 871, 869, 3, 2, 2, 2, 872, 875, 3, 2, 2, 2, 873, 871, 3, 2, 2, 2, 873, 874, 3, 2, 2, 2, 874, 877, 3, 2, 2, 2, 875, 873, 3, 2, 2, 2, 876, 867, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 878, 3, 2, 2, 2, 878, 879, 7, 76, 2, 2, 879, 898, 3, 2, 2, 2, 880, 881, 7, 58, 2, 2, 881, 882, 5, 56, 29, 2, 882, 883, 7, 76, 2, 2, 883, 898, 3, 2, 2, 2, 884, 885, 7, 41, 2, 2, 885, 886, 5, 56, 29, 2, 886, 887, 7, 62, 2, 2, 887, 892, 5, 56, 29, 2, 888, 889, 7, 77, 2, 2, 889, 891, 5, 56, 29, 2, 890, 888, 3, 2, 2, 2, 891, 894, 3, 2, 2, 2, 892, 890, 3, 2, 2, 2, 892, 893, 3, 2, 2, 2, 893, 895, 3, 2, 2, 2, 894, 892, 3, 2, 2, 2, 895, 896, 7, 76, 2, 2, 896, 898, 3, 2, 2, 2, 897, 840, 3, 2, 2, 2, 897, 850, 3, 2, 2, 2, 897, 865, 3, 2, 2, 2, 897, 880, 3, 2, 2, 2, 897, 884, 3, 2, 2, 2, 898, 91, 3, 2, 2, 2, 899, 900, 9, 5, 2, 2, 900, 93, 3, 2, 2, 2, 901, 904, 5, 96, 49, 2, 902, 904, 5, 198, 100, 2, 903, 901, 3, 2, 2, 2, 903, 902, 3, 2, 2, 2, 904, 95, 3, 2, 2, 2, 905, 907, 5, 98, 50, 2, 906, 905, 3, 2, 2, 2, 907, 910, 3, 2, 2, 2, 908, 906, 3, 2, 2, 2, 908, 909, 3, 2, 2, 2, 909, 911, 3, 2, 2, 2, 910, 908, 3, 2, 2, 2, 911, 912, 7, 11, 2, 2, 912, 914, 5, 490, 246, 2, 913, 915, 5, 100, 51, 2, 914, 913, 3, 2, 2, 2, 914, 915, 3, 2, 2, 2, 915, 917, 3, 2, 2, 2, 916, 918, 5, 104, 53, 2, 917, 916, 3, 2, 2, 2, 917, 918, 3, 2, 2, 2, 918, 920, 3, 2, 2, 2, 919, 921, 5, 106, 54, 2, 920, 919, 3, 2, 2, 2, 920, 921, 3, 2, 2, 2, 921, 922, 3, 2, 2, 2, 922, 923, 5, 110, 56, 2, 923, 97, 3, 2, 2, 2, 924, 933, 5, 242, 122, 2, 925, 933, 7, 42, 2, 2, 926, 933, 7, 40, 2, 2, 927, 933, 7, 39, 2, 2, 928, 933, 7, 3, 2, 2, 929, 933, 7, 46, 2, 2, 930, 933, 7, 21, 2, 2, 931, 933, 7, 47, 2, 2, 932, 924, 3, 2, 2, 2, 932, 925, 3, 2, 2, 2, 932, 926, 3, 2, 2, 2, 932, 927, 3, 2, 2, 2, 932, 928, 3, 2, 2, 2, 932, 929, 3, 2, 2, 2, 932, 930, 3, 2, 2, 2, 932, 931, 3, 2, 2, 2, 933, 99, 3, 2, 2, 2, 934, 935, 7, 84, 2, 2, 935, 936, 5, 102, 52, 2, 936, 937, 7, 83, 2, 2, 937, 101, 3, 2, 2, 2, 938, 943, 5, 34, 18, 2, 939, 940, 7, 77, 2, 2, 940, 942, 5, 34, 18, 2, 941, 939, 3, 2, 2, 2, 942, 945, 3, 2, 2, 2, 943, 941, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 103, 3, 2, 2, 2, 945, 943, 3, 2, 2, 2, 946, 947, 7, 20, 2, 2, 947, 948, 5, 16, 9, 2, 948, 105, 3, 2, 2, 2, 949, 950, 7, 27, 2, 2, 950, 951, 5, 108, 55, 2, 951, 107, 3, 2, 2, 2, 952, 957, 5, 22, 12, 2, 953, 954, 7, 77, 2, 2, 954, 956, 5, 22, 12, 2, 955, 953, 3, 2, 2, 2, 956, 959, 3, 2, 2, 2, 957, 955, 3, 2, 2, 2, 957, 958, 3, 2, 2, 2, 958, 109, 3, 2, 2, 2, 959, 957, 3, 2, 2, 2, 960, 964, 7, 72, 2, 2, 961, 963, 5, 112, 57, 2, 962, 961, 3, 2, 2, 2, 963, 966, 3, 2, 2, 2, 964, 962, 3, 2, 2, 2, 964, 965, 3, 2, 2, 2, 965, 967, 3, 2, 2, 2, 966, 964, 3, 2, 2, 2, 967, 968, 7, 73, 2, 2, 968, 111, 3, 2, 2, 2, 969, 974, 5, 114, 58, 2, 970, 974, 5, 182, 92, 2, 971, 974, 5, 184, 93, 2, 972, 974, 5, 186, 94, 2, 973, 969, 3, 2, 2, 2, 973, 970, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 973, 972, 3, 2, 2, 2, 974, 113, 3, 2, 2, 2, 975, 981, 5, 116, 59, 2, 976, 981, 5, 152, 77, 2, 977, 981, 5, 94, 48, 2, 978, 981, 5, 210, 106, 2, 979, 981, 7, 76, 2, 2, 980, 975, 3, 2, 2, 2, 980, 976, 3, 2, 2, 2, 980, 977, 3, 2, 2, 2, 980, 978, 3, 2, 2, 2, 980, 979, 3, 2, 2, 2, 981, 115, 3, 2, 2, 2, 982, 984, 5, 118, 60, 2, 983, 982, 3, 2, 2, 2, 984, 987, 3, 2, 2, 2, 985, 983, 3, 2, 2, 2, 985, 986, 3, 2, 2, 2, 986, 988, 3, 2, 2, 2, 987, 985, 3, 2, 2, 2, 988, 989, 5, 128, 65, 2, 989, 990, 5, 120, 61, 2, 990, 991, 7, 76, 2, 2, 991, 117, 3, 2, 2, 2, 992, 1001, 5, 242, 122, 2, 993, 1001, 7, 42, 2, 2, 994, 1001, 7, 40, 2, 2, 995, 1001, 7, 39, 2, 2, 996, 1001, 7, 46, 2, 2, 997, 1001, 7, 21, 2, 2, 998, 1001, 7, 55, 2, 2, 999, 1001, 7, 60, 2, 2, 1000, 992, 3, 2, 2, 2, 1000, 993, 3, 2, 2, 2, 1000, 994, 3, 2, 2, 2, 1000, 995, 3, 2, 2, 2, 1000, 996, 3, 2, 2, 2, 1000, 997, 3, 2, 2, 2, 1000, 998, 3, 2, 2, 2, 1000, 999, 3, 2, 2, 2, 1001, 119, 3, 2, 2, 2, 1002, 1007, 5, 122, 62, 2, 1003, 1004, 7, 77, 2, 2, 1004, 1006, 5, 122, 62, 2, 1005, 1003, 3, 2, 2, 2, 1006, 1009, 3, 2, 2, 2, 1007, 1005, 3, 2, 2, 2, 1007, 1008, 3, 2, 2, 2, 1008, 121, 3, 2, 2, 2, 1009, 1007, 3, 2, 2, 2, 1010, 1013, 5, 124, 63, 2, 1011, 1012, 7, 82, 2, 2, 1012, 1014, 5, 126, 64, 2, 1013, 1011, 3, 2, 2, 2, 1013, 1014, 3, 2, 2, 2, 1014, 123, 3, 2, 2, 2, 1015, 1017, 5, 490, 246, 2, 1016, 1018, 5, 32, 17, 2, 1017, 1016, 3, 2, 2, 2, 1017, 1018, 3, 2, 2, 2, 1018, 125, 3, 2, 2, 2, 1019, 1022, 5, 430, 216, 2, 1020, 1022, 5, 260, 131, 2, 1021, 1019, 3, 2, 2, 2, 1021, 1020, 3, 2, 2, 2, 1022, 127, 3, 2, 2, 2, 1023, 1026, 5, 130, 66, 2, 1024, 1026, 5, 132, 67, 2, 1025, 1023, 3, 2, 2, 2, 1025, 1024, 3, 2, 2, 2, 1026, 129, 3, 2, 2, 2, 1027, 1030, 5, 6, 4, 2, 1028, 1030, 7, 5, 2, 2, 1029, 1027, 3, 2, 2, 2, 1029, 1028, 3, 2, 2, 2, 1030, 131, 3, 2, 2, 2, 1031, 1035, 5, 134, 68, 2, 1032, 1035, 5, 148, 75, 2, 1033, 1035, 5, 150, 76, 2, 1034, 1031, 3, 2, 2, 2, 1034, 1032, 3, 2, 2, 2, 1034, 1033, 3, 2, 2, 2, 1035, 133, 3, 2, 2, 2, 1036, 1039, 5, 140, 71, 2, 1037, 1039, 5, 146, 74, 2, 1038, 1036, 3, 2, 2, 2, 1038, 1037, 3, 2, 2, 2, 1039, 1044, 3, 2, 2, 2, 1040, 1043, 5, 138, 70, 2, 1041, 1043, 5, 144, 73, 2, 1042, 1040, 3, 2, 2, 2, 1042, 1041, 3, 2, 2, 2, 1043, 1046, 3, 2, 2, 2, 1044, 1042, 3, 2, 2, 2, 1044, 1045, 3, 2, 2, 2, 1045, 135, 3, 2, 2, 2, 1046, 1044, 3, 2, 2, 2, 1047, 1049, 5, 490, 246, 2, 1048, 1050, 5, 42, 22, 2, 1049, 1048, 3, 2, 2, 2, 1049, 1050, 3, 2, 2, 2, 1050, 1064, 3, 2, 2, 2, 1051, 1052, 5, 134, 68, 2, 1052, 1056, 7, 78, 2, 2, 1053, 1055, 5, 242, 122, 2, 1054, 1053, 3, 2, 2, 2, 1055, 1058, 3, 2, 2, 2, 1056, 1054, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1059, 3, 2, 2, 2, 1058, 1056, 3, 2, 2, 2, 1059, 1061, 5, 490, 246, 2, 1060, 1062, 5, 42, 22, 2, 1061, 1060, 3, 2, 2, 2, 1061, 1062, 3, 2, 2, 2, 1062, 1064, 3, 2, 2, 2, 1063, 1047, 3, 2, 2, 2, 1063, 1051, 3, 2, 2, 2, 1064, 137, 3, 2, 2, 2, 1065, 1069, 7, 78, 2, 2, 1066, 1068, 5, 242, 122, 2, 1067, 1066, 3, 2, 2, 2, 1068, 1071, 3, 2, 2, 2, 1069, 1067, 3, 2, 2, 2, 1069, 1070, 3, 2, 2, 2, 1070, 1072, 3, 2, 2, 2, 1071, 1069, 3, 2, 2, 2, 1072, 1074, 5, 490, 246, 2, 1073, 1075, 5, 42, 22, 2, 1074, 1073, 3, 2, 2, 2, 1074, 1075, 3, 2, 2, 2, 1075, 139, 3, 2, 2, 2, 1076, 1078, 5, 490, 246, 2, 1077, 1079, 5, 42, 22, 2, 1078, 1077, 3, 2, 2, 2, 1078, 1079, 3, 2, 2, 2, 1079, 141, 3, 2, 2, 2, 1080, 1081, 5, 136, 69, 2, 1081, 143, 3, 2, 2, 2, 1082, 1083, 5, 138, 70, 2, 1083, 145, 3, 2, 2, 2, 1084, 1085, 5, 140, 71, 2, 1085, 147, 3, 2, 2, 2, 1086, 1087, 5, 490, 246, 2, 1087, 149, 3, 2, 2, 2, 1088, 1089, 5, 130, 66, 2, 1089, 1090, 5, 32, 17, 2, 1090, 1098, 3, 2, 2, 2, 1091, 1092, 5, 134, 68, 2, 1092, 1093, 5, 32, 17, 2, 1093, 1098, 3, 2, 2, 2, 1094, 1095, 5, 148, 75, 2, 1095, 1096, 5, 32, 17, 2, 1096, 1098, 3, 2, 2, 2, 1097, 1088, 3, 2, 2, 2, 1097, 1091, 3, 2, 2, 2, 1097, 1094, 3, 2, 2, 2, 1098, 151, 3, 2, 2, 2, 1099, 1101, 5, 154, 78, 2, 1100, 1099, 3, 2, 2, 2, 1101, 1104, 3, 2, 2, 2, 1102, 1100, 3, 2, 2, 2, 1102, 1103, 3, 2, 2, 2, 1103, 1105, 3, 2, 2, 2, 1104, 1102, 3, 2, 2, 2, 1105, 1106, 5, 156, 79, 2, 1106, 1107, 5, 180, 91, 2, 1107, 153, 3, 2, 2, 2, 1108, 1119, 5, 242, 122, 2, 1109, 1119, 7, 42, 2, 2, 1110, 1119, 7, 40, 2, 2, 1111, 1119, 7, 39, 2, 2, 1112, 1119, 7, 3, 2, 2, 1113, 1119, 7, 46, 2, 2, 1114, 1119, 7, 21, 2, 2, 1115, 1119, 7, 50, 2, 2, 1116, 1119, 7, 34, 2, 2, 1117, 1119, 7, 47, 2, 2, 1118, 1108, 3, 2, 2, 2, 1118, 1109, 3, 2, 2, 2, 1118, 1110, 3, 2, 2, 2, 1118, 1111, 3, 2, 2, 2, 1118, 1112, 3, 2, 2, 2, 1118, 1113, 3, 2, 2, 2, 1118, 1114, 3, 2, 2, 2, 1118, 1115, 3, 2, 2, 2, 1118, 1116, 3, 2, 2, 2, 1118, 1117, 3, 2, 2, 2, 1119, 155, 3, 2, 2, 2, 1120, 1121, 5, 158, 80, 2, 1121, 1123, 5, 160, 81, 2, 1122, 1124, 5, 174, 88, 2, 1123, 1122, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 1138, 3, 2, 2, 2, 1125, 1129, 5, 100, 51, 2, 1126, 1128, 5, 242, 122, 2, 1127, 1126, 3, 2, 2, 2, 1128, 1131, 3, 2, 2, 2, 1129, 1127, 3, 2, 2, 2, 1129, 1130, 3, 2, 2, 2, 1130, 1132, 3, 2, 2, 2, 1131, 1129, 3, 2, 2, 2, 1132, 1133, 5, 158, 80, 2, 1133, 1135, 5, 160, 81, 2, 1134, 1136, 5, 174, 88, 2, 1135, 1134, 3, 2, 2, 2, 1135, 1136, 3, 2, 2, 2, 1136, 1138, 3, 2, 2, 2, 1137, 1120, 3, 2, 2, 2, 1137, 1125, 3, 2, 2, 2, 1138, 157, 3, 2, 2, 2, 1139, 1142, 5, 128, 65, 2, 1140, 1142, 7, 59, 2, 2, 1141, 1139, 3, 2, 2, 2, 1141, 1140, 3, 2, 2, 2, 1142, 159, 3, 2, 2, 2, 1143, 1144, 5, 490, 246, 2, 1144, 1146, 7, 70, 2, 2, 1145, 1147, 5, 162, 82, 2, 1146, 1145, 3, 2, 2, 2, 1146, 1147, 3, 2, 2, 2, 1147, 1148, 3, 2, 2, 2, 1148, 1150, 7, 71, 2, 2, 1149, 1151, 5, 32, 17, 2, 1150, 1149, 3, 2, 2, 2, 1150, 1151, 3, 2, 2, 2, 1151, 161, 3, 2, 2, 2, 1152, 1153, 5, 164, 83, 2, 1153, 1154, 7, 77, 2, 2, 1154, 1155, 5, 170, 86, 2, 1155, 1159, 3, 2, 2, 2, 1156, 1159, 5, 170, 86, 2, 1157, 1159, 5, 172, 87, 2, 1158, 1152, 3, 2, 2, 2, 1158, 1156, 3, 2, 2, 2, 1158, 1157, 3, 2, 2, 2, 1159, 163, 3, 2, 2, 2, 1160, 1165, 5, 166, 84, 2, 1161, 1162, 7, 77, 2, 2, 1162, 1164, 5, 166, 84, 2, 1163, 1161, 3, 2, 2, 2, 1164, 1167, 3, 2, 2, 2, 1165, 1163, 3, 2, 2, 2, 1165, 1166, 3, 2, 2, 2, 1166, 1177, 3, 2, 2, 2, 1167, 1165, 3, 2, 2, 2, 1168, 1173, 5, 172, 87, 2, 1169, 1170, 7, 77, 2, 2, 1170, 1172, 5, 166, 84, 2, 1171, 1169, 3, 2, 2, 2, 1172, 1175, 3, 2, 2, 2, 1173, 1171, 3, 2, 2, 2, 1173, 1174, 3, 2, 2, 2, 1174, 1177, 3, 2, 2, 2, 1175, 1173, 3, 2, 2, 2, 1176, 1160, 3, 2, 2, 2, 1176, 1168, 3, 2, 2, 2, 1177, 165, 3, 2, 2, 2, 1178, 1180, 5, 168, 85, 2, 1179, 1178, 3, 2, 2, 2, 1180, 1183, 3, 2, 2, 2, 1181, 1179, 3, 2, 2, 2, 1181, 1182, 3, 2, 2, 2, 1182, 1184, 3, 2, 2, 2, 1183, 1181, 3, 2, 2, 2, 1184, 1185, 5, 128, 65, 2, 1185, 1186, 5, 124, 63, 2, 1186, 167, 3, 2, 2, 2, 1187, 1190, 5, 242, 122, 2, 1188, 1190, 7, 21, 2, 2, 1189, 1187, 3, 2, 2, 2, 1189, 1188, 3, 2, 2, 2, 1190, 169, 3, 2, 2, 2, 1191, 1193, 5, 168, 85, 2, 1192, 1191, 3, 2, 2, 2, 1193, 1196, 3, 2, 2, 2, 1194, 1192, 3, 2, 2, 2, 1194, 1195, 3, 2, 2, 2, 1195, 1197, 3, 2, 2, 2, 1196, 1194, 3, 2, 2, 2, 1197, 1201, 5, 128, 65, 2, 1198, 1200, 5, 242, 122, 2, 1199, 1198, 3, 2, 2, 2, 1200, 1203, 3, 2, 2, 2, 1201, 1199, 3, 2, 2, 2, 1201, 1202, 3, 2, 2, 2, 1202, 1204, 3, 2, 2, 2, 1203, 1201, 3, 2, 2, 2, 1204, 1205, 7, 79, 2, 2, 1205, 1206, 5, 124, 63, 2, 1206, 1209, 3, 2, 2, 2, 1207, 1209, 5, 166, 84, 2, 1208, 1194, 3, 2, 2, 2, 1208, 1207, 3, 2, 2, 2, 1209, 171, 3, 2, 2, 2, 1210, 1212, 5, 242, 122, 2, 1211, 1210, 3, 2, 2, 2, 1212, 1215, 3, 2, 2, 2, 1213, 1211, 3, 2, 2, 2, 1213, 1214, 3, 2, 2, 2, 1214, 1216, 3, 2, 2, 2, 1215, 1213, 3, 2, 2, 2, 1216, 1220, 5, 128, 65, 2, 1217, 1218, 5, 490, 246, 2, 1218, 1219, 7, 78, 2, 2, 1219, 1221, 3, 2, 2, 2, 1220, 1217, 3, 2, 2, 2, 1220, 1221, 3, 2, 2, 2, 1221, 1222, 3, 2, 2, 2, 1222, 1223, 7, 51, 2, 2, 1223, 173, 3, 2, 2, 2, 1224, 1225, 7, 53, 2, 2, 1225, 1226, 5, 176, 89, 2, 1226, 175, 3, 2, 2, 2, 1227, 1232, 5, 178, 90, 2, 1228, 1229, 7, 77, 2, 2, 1229, 1231, 5, 178, 90, 2, 1230, 1228, 3, 2, 2, 2, 1231, 1234, 3, 2, 2, 2, 1232, 1230, 3, 2, 2, 2, 1232, 1233, 3, 2, 2, 2, 1233, 177, 3, 2, 2, 2, 1234, 1232, 3, 2, 2, 2, 1235, 1238, 5, 16, 9, 2, 1236, 1238, 5, 28, 15, 2, 1237, 1235, 3, 2, 2, 2, 1237, 1236, 3, 2, 2, 2, 1238, 179, 3, 2, 2, 2, 1239, 1242, 5, 264, 133, 2, 1240, 1242, 7, 76, 2, 2, 1241, 1239, 3, 2, 2, 2, 1241, 1240, 3, 2, 2, 2, 1242, 181, 3, 2, 2, 2, 1243, 1244, 5, 264, 133, 2, 1244, 183, 3, 2, 2, 2, 1245, 1246, 7, 46, 2, 2, 1246, 1247, 5, 264, 133, 2, 1247, 185, 3, 2, 2, 2, 1248, 1250, 5, 188, 95, 2, 1249, 1248, 3, 2, 2, 2, 1250, 1253, 3, 2, 2, 2, 1251, 1249, 3, 2, 2, 2, 1251, 1252, 3, 2, 2, 2, 1252, 1254, 3, 2, 2, 2, 1253, 1251, 3, 2, 2, 2, 1254, 1256, 5, 190, 96, 2, 1255, 1257, 5, 174, 88, 2, 1256, 1255, 3, 2, 2, 2, 1256, 1257, 3, 2, 2, 2, 1257, 1258, 3, 2, 2, 2, 1258, 1259, 5, 194, 98, 2, 1259, 187, 3, 2, 2, 2, 1260, 1265, 5, 242, 122, 2, 1261, 1265, 7, 42, 2, 2, 1262, 1265, 7, 40, 2, 2, 1263, 1265, 7, 39, 2, 2, 1264, 1260, 3, 2, 2, 2, 1264, 1261, 3, 2, 2, 2, 1264, 1262, 3, 2, 2, 2, 1264, 1263, 3, 2, 2, 2, 1265, 189, 3, 2, 2, 2, 1266, 1268, 5, 100, 51, 2, 1267, 1266, 3, 2, 2, 2, 1267, 1268, 3, 2, 2, 2, 1268, 1269, 3, 2, 2, 2, 1269, 1270, 5, 192, 97, 2, 1270, 1272, 7, 70, 2, 2, 1271, 1273, 5, 162, 82, 2, 1272, 1271, 3, 2, 2, 2, 1272, 1273, 3, 2, 2, 2, 1273, 1274, 3, 2, 2, 2, 1274, 1275, 7, 71, 2, 2, 1275, 191, 3, 2, 2, 2, 1276, 1277, 5, 490, 246, 2, 1277, 193, 3, 2, 2, 2, 1278, 1280, 7, 72, 2, 2, 1279, 1281, 5, 196, 99, 2, 1280, 1279, 3, 2, 2, 2, 1280, 1281, 3, 2, 2, 2, 1281, 1283, 3, 2, 2, 2, 1282, 1284, 5, 266, 134, 2, 1283, 1282, 3, 2, 2, 2, 1283, 1284, 3, 2, 2, 2, 1284, 1285, 3, 2, 2, 2, 1285, 1286, 7, 73, 2, 2, 1286, 195, 3, 2, 2, 2, 1287, 1289, 5, 42, 22, 2, 1288, 1287, 3, 2, 2, 2, 1288, 1289, 3, 2, 2, 2, 1289, 1290, 3, 2, 2, 2, 1290, 1291, 7, 51, 2, 2, 1291, 1293, 7, 70, 2, 2, 1292, 1294, 5, 414, 208, 2, 1293, 1292, 3, 2, 2, 2, 1293, 1294, 3, 2, 2, 2, 1294, 1295, 3, 2, 2, 2, 1295, 1296, 7, 71, 2, 2, 1296, 1334, 7, 76, 2, 2, 1297, 1299, 5, 42, 22, 2, 1298, 1297, 3, 2, 2, 2, 1298, 1299, 3, 2, 2, 2, 1299, 1300, 3, 2, 2, 2, 1300, 1301, 7, 48, 2, 2, 1301, 1303, 7, 70, 2, 2, 1302, 1304, 5, 414, 208, 2, 1303, 1302, 3, 2, 2, 2, 1303, 1304, 3, 2, 2, 2, 1304, 1305, 3, 2, 2, 2, 1305, 1306, 7, 71, 2, 2, 1306, 1334, 7, 76, 2, 2, 1307, 1308, 5, 60, 31, 2, 1308, 1310, 7, 78, 2, 2, 1309, 1311, 5, 42, 22, 2, 1310, 1309, 3, 2, 2, 2, 1310, 1311, 3, 2, 2, 2, 1311, 1312, 3, 2, 2, 2, 1312, 1313, 7, 48, 2, 2, 1313, 1315, 7, 70, 2, 2, 1314, 1316, 5, 414, 208, 2, 1315, 1314, 3, 2, 2, 2, 1315, 1316, 3, 2, 2, 2, 1316, 1317, 3, 2, 2, 2, 1317, 1318, 7, 71, 2, 2, 1318, 1319, 7, 76, 2, 2, 1319, 1334, 3, 2, 2, 2, 1320, 1321, 5, 366, 184, 2, 1321, 1323, 7, 78, 2, 2, 1322, 1324, 5, 42, 22, 2, 1323, 1322, 3, 2, 2, 2, 1323, 1324, 3, 2, 2, 2, 1324, 1325, 3, 2, 2, 2, 1325, 1326, 7, 48, 2, 2, 1326, 1328, 7, 70, 2, 2, 1327, 1329, 5, 414, 208, 2, 1328, 1327, 3, 2, 2, 2, 1328, 1329, 3, 2, 2, 2, 1329, 1330, 3, 2, 2, 2, 1330, 1331, 7, 71, 2, 2, 1331, 1332, 7, 76, 2, 2, 1332, 1334, 3, 2, 2, 2, 1333, 1288, 3, 2, 2, 2, 1333, 1298, 3, 2, 2, 2, 1333, 1307, 3, 2, 2, 2, 1333, 1320, 3, 2, 2, 2, 1334, 197, 3, 2, 2, 2, 1335, 1337, 5, 98, 50, 2, 1336, 1335, 3, 2, 2, 2, 1337, 1340, 3, 2, 2, 2, 1338, 1336, 3, 2, 2, 2, 1338, 1339, 3, 2, 2, 2, 1339, 1341, 3, 2, 2, 2, 1340, 1338, 3, 2, 2, 2, 1341, 1342, 7, 18, 2, 2, 1342, 1344, 5, 490, 246, 2, 1343, 1345, 5, 106, 54, 2, 1344, 1343, 3, 2, 2, 2, 1344, 1345, 3, 2, 2, 2, 1345, 1346, 3, 2, 2, 2, 1346, 1347, 5, 200, 101, 2, 1347, 199, 3, 2, 2, 2, 1348, 1350, 7, 72, 2, 2, 1349, 1351, 5, 202, 102, 2, 1350, 1349, 3, 2, 2, 2, 1350, 1351, 3, 2, 2, 2, 1351, 1353, 3, 2, 2, 2, 1352, 1354, 7, 77, 2, 2, 1353, 1352, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1356, 3, 2, 2, 2, 1355, 1357, 5, 208, 105, 2, 1356, 1355, 3, 2, 2, 2, 1356, 1357, 3, 2, 2, 2, 1357, 1358, 3, 2, 2, 2, 1358, 1359, 7, 73, 2, 2, 1359, 201, 3, 2, 2, 2, 1360, 1365, 5, 204, 103, 2, 1361, 1362, 7, 77, 2, 2, 1362, 1364, 5, 204, 103, 2, 1363, 1361, 3, 2, 2, 2, 1364, 1367, 3, 2, 2, 2, 1365, 1363, 3, 2, 2, 2, 1365, 1366, 3, 2, 2, 2, 1366, 203, 3, 2, 2, 2, 1367, 1365, 3, 2, 2, 2, 1368, 1370, 5, 206, 104, 2, 1369, 1368, 3, 2, 2, 2, 1370, 1373, 3, 2, 2, 2, 1371, 1369, 3, 2, 2, 2, 1371, 1372, 3, 2, 2, 2, 1372, 1374, 3, 2, 2, 2, 1373, 1371, 3, 2, 2, 2, 1374, 1380, 5, 490, 246, 2, 1375, 1377, 7, 70, 2, 2, 1376, 1378, 5, 414, 208, 2, 1377, 1376, 3, 2, 2, 2, 1377, 1378, 3, 2, 2, 2, 1378, 1379, 3, 2, 2, 2, 1379, 1381, 7, 71, 2, 2, 1380, 1375, 3, 2, 2, 2, 1380, 1381, 3, 2, 2, 2, 1381, 1383, 3, 2, 2, 2, 1382, 1384, 5, 110, 56, 2, 1383, 1382, 3, 2, 2, 2, 1383, 1384, 3, 2, 2, 2, 1384, 205, 3, 2, 2, 2, 1385, 1386, 5, 242, 122, 2, 1386, 207, 3, 2, 2, 2, 1387, 1391, 7, 76, 2, 2, 1388, 1390, 5, 112, 57, 2, 1389, 1388, 3, 2, 2, 2, 1390, 1393, 3, 2, 2, 2, 1391, 1389, 3, 2, 2, 2, 1391, 1392, 3, 2, 2, 2, 1392, 209, 3, 2, 2, 2, 1393, 1391, 3, 2, 2, 2, 1394, 1397, 5, 212, 107, 2, 1395, 1397, 5, 230, 116, 2, 1396, 1394, 3, 2, 2, 2, 1396, 1395, 3, 2, 2, 2, 1397, 211, 3, 2, 2, 2, 1398, 1400, 5, 214, 108, 2, 1399, 1398, 3, 2, 2, 2, 1400, 1403, 3, 2, 2, 2, 1401, 1399, 3, 2, 2, 2, 1401, 1402, 3, 2, 2, 2, 1402, 1404, 3, 2, 2, 2, 1403, 1401, 3, 2, 2, 2, 1404, 1405, 7, 31, 2, 2, 1405, 1407, 5, 490, 246, 2, 1406, 1408, 5, 100, 51, 2, 1407, 1406, 3, 2, 2, 2, 1407, 1408, 3, 2, 2, 2, 1408, 1410, 3, 2, 2, 2, 1409, 1411, 5, 216, 109, 2, 1410, 1409, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1412, 3, 2, 2, 2, 1412, 1413, 5, 218, 110, 2, 1413, 213, 3, 2, 2, 2, 1414, 1422, 5, 242, 122, 2, 1415, 1422, 7, 42, 2, 2, 1416, 1422, 7, 40, 2, 2, 1417, 1422, 7, 39, 2, 2, 1418, 1422, 7, 3, 2, 2, 1419, 1422, 7, 46, 2, 2, 1420, 1422, 7, 47, 2, 2, 1421, 1414, 3, 2, 2, 2, 1421, 1415, 3, 2, 2, 2, 1421, 1416, 3, 2, 2, 2, 1421, 1417, 3, 2, 2, 2, 1421, 1418, 3, 2, 2, 2, 1421, 1419, 3, 2, 2, 2, 1421, 1420, 3, 2, 2, 2, 1422, 215, 3, 2, 2, 2, 1423, 1424, 7, 20, 2, 2, 1424, 1425, 5, 108, 55, 2, 1425, 217, 3, 2, 2, 2, 1426, 1430, 7, 72, 2, 2, 1427, 1429, 5, 220, 111, 2, 1428, 1427, 3, 2, 2, 2, 1429, 1432, 3, 2, 2, 2, 1430, 1428, 3, 2, 2, 2, 1430, 1431, 3, 2, 2, 2, 1431, 1433, 3, 2, 2, 2, 1432, 1430, 3, 2, 2, 2, 1433, 1434, 7, 73, 2, 2, 1434, 219, 3, 2, 2, 2, 1435, 1441, 5, 222, 112, 2, 1436, 1441, 5, 226, 114, 2, 1437, 1441, 5, 94, 48, 2, 1438, 1441, 5, 210, 106, 2, 1439, 1441, 7, 76, 2, 2, 1440, 1435, 3, 2, 2, 2, 1440, 1436, 3, 2, 2, 2, 1440, 1437, 3, 2, 2, 2, 1440, 1438, 3, 2, 2, 2, 1440, 1439, 3, 2, 2, 2, 1441, 221, 3, 2, 2, 2, 1442, 1444, 5, 224, 113, 2, 1443, 1442, 3, 2, 2, 2, 1444, 1447, 3, 2, 2, 2, 1445, 1443, 3, 2, 2, 2, 1445, 1446, 3, 2, 2, 2, 1446, 1448, 3, 2, 2, 2, 1447, 1445, 3, 2, 2, 2, 1448, 1449, 5, 128, 65, 2, 1449, 1450, 5, 120, 61, 2, 1450, 1451, 7, 76, 2, 2, 1451, 223, 3, 2, 2, 2, 1452, 1457, 5, 242, 122, 2, 1453, 1457, 7, 42, 2, 2, 1454, 1457, 7, 46, 2, 2, 1455, 1457, 7, 21, 2, 2, 1456, 1452, 3, 2, 2, 2, 1456, 1453, 3, 2, 2, 2, 1456, 1454, 3, 2, 2, 2, 1456, 1455, 3, 2, 2, 2, 1457, 225, 3, 2, 2, 2, 1458, 1460, 5, 228, 115, 2, 1459, 1458, 3, 2, 2, 2, 1460, 1463, 3, 2, 2, 2, 1461, 1459, 3, 2, 2, 2, 1461, 1462, 3, 2, 2, 2, 1462, 1464, 3, 2, 2, 2, 1463, 1461, 3, 2, 2, 2, 1464, 1465, 5, 156, 79, 2, 1465, 1466, 5, 180, 91, 2, 1466, 227, 3, 2, 2, 2, 1467, 1475, 5, 242, 122, 2, 1468, 1475, 7, 42, 2, 2, 1469, 1475, 7, 39, 2, 2, 1470, 1475, 7, 3, 2, 2, 1471, 1475, 7, 14, 2, 2, 1472, 1475, 7, 46, 2, 2, 1473, 1475, 7, 47, 2, 2, 1474, 1467, 3, 2, 2, 2, 1474, 1468, 3, 2, 2, 2, 1474, 1469, 3, 2, 2, 2, 1474, 1470, 3, 2, 2, 2, 1474, 1471, 3, 2, 2, 2, 1474, 1472, 3, 2, 2, 2, 1474, 1473, 3, 2, 2, 2, 1475, 229, 3, 2, 2, 2, 1476, 1478, 5, 214, 108, 2, 1477, 1476, 3, 2, 2, 2, 1478, 1481, 3, 2, 2, 2, 1479, 1477, 3, 2, 2, 2, 1479, 1480, 3, 2, 2, 2, 1480, 1482, 3, 2, 2, 2, 1481, 1479, 3, 2, 2, 2, 1482, 1483, 7, 80, 2, 2, 1483, 1484, 7, 31, 2, 2, 1484, 1485, 5, 490, 246, 2, 1485, 1486, 5, 232, 117, 2, 1486, 231, 3, 2, 2, 2, 1487, 1491, 7, 72, 2, 2, 1488, 1490, 5, 234, 118, 2, 1489, 1488, 3, 2, 2, 2, 1490, 1493, 3, 2, 2, 2, 1491, 1489, 3, 2, 2, 2, 1491, 1492, 3, 2, 2, 2, 1492, 1494, 3, 2, 2, 2, 1493, 1491, 3, 2, 2, 2, 1494, 1495, 7, 73, 2, 2, 1495, 233, 3, 2, 2, 2, 1496, 1502, 5, 236, 119, 2, 1497, 1502, 5, 222, 112, 2, 1498, 1502, 5, 94, 48, 2, 1499, 1502, 5, 210, 106, 2, 1500, 1502, 7, 76, 2, 2, 1501, 1496, 3, 2, 2, 2, 1501, 1497, 3, 2, 2, 2, 1501, 1498, 3, 2, 2, 2, 1501, 1499, 3, 2, 2, 2, 1501, 1500, 3, 2, 2, 2, 1502, 235, 3, 2, 2, 2, 1503, 1505, 5, 238, 120, 2, 1504, 1503, 3, 2, 2, 2, 1505, 1508, 3, 2, 2, 2, 1506, 1504, 3, 2, 2, 2, 1506, 1507, 3, 2, 2, 2, 1507, 1509, 3, 2, 2, 2, 1508, 1506, 3, 2, 2, 2, 1509, 1510, 5, 128, 65, 2, 1510, 1511, 5, 490, 246, 2, 1511, 1512, 7, 70, 2, 2, 1512, 1514, 7, 71, 2, 2, 1513, 1515, 5, 32, 17, 2, 1514, 1513, 3, 2, 2, 2, 1514, 1515, 3, 2, 2, 2, 1515, 1517, 3, 2, 2, 2, 1516, 1518, 5, 240, 121, 2, 1517, 1516, 3, 2, 2, 2, 1517, 1518, 3, 2, 2, 2, 1518, 1519, 3, 2, 2, 2, 1519, 1520, 7, 76, 2, 2, 1520, 237, 3, 2, 2, 2, 1521, 1525, 5, 242, 122, 2, 1522, 1525, 7, 42, 2, 2, 1523, 1525, 7, 3, 2, 2, 1524, 1521, 3, 2, 2, 2, 1524, 1522, 3, 2, 2, 2, 1524, 1523, 3, 2, 2, 2, 1525, 239, 3, 2, 2, 2, 1526, 1527, 7, 14, 2, 2, 1527, 1528, 5, 250, 126, 2, 1528, 241, 3, 2, 2, 2, 1529, 1533, 5, 244, 123, 2, 1530, 1533, 5, 256, 129, 2, 1531, 1533, 5, 258, 130, 2, 1532, 1529, 3, 2, 2, 2, 1532, 1530, 3, 2, 2, 2, 1532, 1531, 3, 2, 2, 2, 1533, 243, 3, 2, 2, 2, 1534, 1535, 7, 80, 2, 2, 1535, 1536, 5, 56, 29, 2, 1536, 1538, 7, 70, 2, 2, 1537, 1539, 5, 246, 124, 2, 1538, 1537, 3, 2, 2, 2, 1538, 1539, 3, 2, 2, 2, 1539, 1540, 3, 2, 2, 2, 1540, 1541, 7, 71, 2, 2, 1541, 245, 3, 2, 2, 2, 1542, 1547, 5, 248, 125, 2, 1543, 1544, 7, 77, 2, 2, 1544, 1546, 5, 248, 125, 2, 1545, 1543, 3, 2, 2, 2, 1546, 1549, 3, 2, 2, 2, 1547, 1545, 3, 2, 2, 2, 1547, 1548, 3, 2, 2, 2, 1548, 247, 3, 2, 2, 2, 1549, 1547, 3, 2, 2, 2, 1550, 1551, 5, 490, 246, 2, 1551, 1552, 7, 82, 2, 2, 1552, 1553, 5, 250, 126, 2, 1553, 249, 3, 2, 2, 2, 1554, 1558, 5, 448, 225, 2, 1555, 1558, 5, 252, 127, 2, 1556, 1558, 5, 242, 122, 2, 1557, 1554, 3, 2, 2, 2, 1557, 1555, 3, 2, 2, 2, 1557, 1556, 3, 2, 2, 2, 1558, 251, 3, 2, 2, 2, 1559, 1561, 7, 72, 2, 2, 1560, 1562, 5, 254, 128, 2, 1561, 1560, 3, 2, 2, 2, 1561, 1562, 3, 2, 2, 2, 1562, 1564, 3, 2, 2, 2, 1563, 1565, 7, 77, 2, 2, 1564, 1563, 3, 2, 2, 2, 1564, 1565, 3, 2, 2, 2, 1565, 1566, 3, 2, 2, 2, 1566, 1567, 7, 73, 2, 2, 1567, 253, 3, 2, 2, 2, 1568, 1573, 5, 250, 126, 2, 1569, 1570, 7, 77, 2, 2, 1570, 1572, 5, 250, 126, 2, 1571, 1569, 3, 2, 2, 2, 1572, 1575, 3, 2, 2, 2, 1573, 1571, 3, 2, 2, 2, 1573, 1574, 3, 2, 2, 2, 1574, 255, 3, 2, 2, 2, 1575, 1573, 3, 2, 2, 2, 1576, 1577, 7, 80, 2, 2, 1577, 1578, 5, 56, 29, 2, 1578, 257, 3, 2, 2, 2, 1579, 1580, 7, 80, 2, 2, 1580, 1581, 5, 56, 29, 2, 1581, 1582, 7, 70, 2, 2, 1582, 1583, 5, 250, 126, 2, 1583, 1584, 7, 71, 2, 2, 1584, 259, 3, 2, 2, 2, 1585, 1587, 7, 72, 2, 2, 1586, 1588, 5, 262, 132, 2, 1587, 1586, 3, 2, 2, 2, 1587, 1588, 3, 2, 2, 2, 1588, 1590, 3, 2, 2, 2, 1589, 1591, 7, 77, 2, 2, 1590, 1589, 3, 2, 2, 2, 1590, 1591, 3, 2, 2, 2, 1591, 1592, 3, 2, 2, 2, 1592, 1593, 7, 73, 2, 2, 1593, 261, 3, 2, 2, 2, 1594, 1599, 5, 126, 64, 2, 1595, 1596, 7, 77, 2, 2, 1596, 1598, 5, 126, 64, 2, 1597, 1595, 3, 2, 2, 2, 1598, 1601, 3, 2, 2, 2, 1599, 1597, 3, 2, 2, 2, 1599, 1600, 3, 2, 2, 2, 1600, 263, 3, 2, 2, 2, 1601, 1599, 3, 2, 2, 2, 1602, 1604, 7, 72, 2, 2, 1603, 1605, 5, 266, 134, 2, 1604, 1603, 3, 2, 2, 2, 1604, 1605, 3, 2, 2, 2, 1605, 1606, 3, 2, 2, 2, 1606, 1607, 7, 73, 2, 2, 1607, 265, 3, 2, 2, 2, 1608, 1610, 5, 268, 135, 2, 1609, 1608, 3, 2, 2, 2, 1610, 1611, 3, 2, 2, 2, 1611, 1609, 3, 2, 2, 2, 1611, 1612, 3, 2, 2, 2, 1612, 267, 3, 2, 2, 2, 1613, 1617, 5, 270, 136, 2, 1614, 1617, 5, 94, 48, 2, 1615, 1617, 5, 274, 138, 2, 1616, 1613, 3, 2, 2, 2, 1616, 1614, 3, 2, 2, 2, 1616, 1615, 3, 2, 2, 2, 1617, 269, 3, 2, 2, 2, 1618, 1619, 5, 272, 137, 2, 1619, 1620, 7, 76, 2, 2, 1620, 271, 3, 2, 2, 2, 1621, 1623, 5, 168, 85, 2, 1622, 1621, 3, 2, 2, 2, 1623, 1626, 3, 2, 2, 2, 1624, 1622, 3, 2, 2, 2, 1624, 1625, 3, 2, 2, 2, 1625, 1627, 3, 2, 2, 2, 1626, 1624, 3, 2, 2, 2, 1627, 1628, 5, 128, 65, 2, 1628, 1629, 5, 120, 61, 2, 1629, 273, 3, 2, 2, 2, 1630, 1637, 5, 278, 140, 2, 1631, 1637, 5, 282, 142, 2, 1632, 1637, 5, 290, 146, 2, 1633, 1637, 5, 292, 147, 2, 1634, 1637, 5, 310, 156, 2, 1635, 1637, 5, 316, 159, 2, 1636, 1630, 3, 2, 2, 2, 1636, 1631, 3, 2, 2, 2, 1636, 1632, 3, 2, 2, 2, 1636, 1633, 3, 2, 2, 2, 1636, 1634, 3, 2, 2, 2, 1636, 1635, 3, 2, 2, 2, 1637, 275, 3, 2, 2, 2, 1638, 1644, 5, 278, 140, 2, 1639, 1644, 5, 284, 143, 2, 1640, 1644, 5, 294, 148, 2, 1641, 1644, 5, 312, 157, 2, 1642, 1644, 5, 318, 160, 2, 1643, 1638, 3, 2, 2, 2, 1643, 1639, 3, 2, 2, 2, 1643, 1640, 3, 2, 2, 2, 1643, 1641, 3, 2, 2, 2, 1643, 1642, 3, 2, 2, 2, 1644, 277, 3, 2, 2, 2, 1645, 1658, 5, 264, 133, 2, 1646, 1658, 5, 280, 141, 2, 1647, 1658, 5, 286, 144, 2, 1648, 1658, 5, 296, 149, 2, 1649, 1658, 5, 298, 150, 2, 1650, 1658, 5, 314, 158, 2, 1651, 1658, 5, 334, 168, 2, 1652, 1658, 5, 336, 169, 2, 1653, 1658, 5, 338, 170, 2, 1654, 1658, 5, 342, 172, 2, 1655, 1658, 5, 340, 171, 2, 1656, 1658, 5, 344, 173, 2, 1657, 1645, 3, 2, 2, 2, 1657, 1646, 3, 2, 2, 2, 1657, 1647, 3, 2, 2, 2, 1657, 1648, 3, 2, 2, 2, 1657, 1649, 3, 2, 2, 2, 1657, 1650, 3, 2, 2, 2, 1657, 1651, 3, 2, 2, 2, 1657, 1652, 3, 2, 2, 2, 1657, 1653, 3, 2, 2, 2, 1657, 1654, 3, 2, 2, 2, 1657, 1655, 3, 2, 2, 2, 1657, 1656, 3, 2, 2, 2, 1658, 279, 3, 2, 2, 2, 1659, 1660, 7, 76, 2, 2, 1660, 281, 3, 2, 2, 2, 1661, 1662, 5, 490, 246, 2, 1662, 1663, 7, 88, 2, 2, 1663, 1664, 5, 274, 138, 2, 1664, 283, 3, 2, 2, 2, 1665, 1666, 5, 490, 246, 2, 1666, 1667, 7, 88, 2, 2, 1667, 1668, 5, 276, 139, 2, 1668, 285, 3, 2, 2, 2, 1669, 1670, 5, 288, 145, 2, 1670, 1671, 7, 76, 2, 2, 1671, 287, 3, 2, 2, 2, 1672, 1680, 5, 442, 222, 2, 1673, 1680, 5, 472, 237, 2, 1674, 1680, 5, 474, 238, 2, 1675, 1680, 5, 480, 241, 2, 1676, 1680, 5, 484, 243, 2, 1677, 1680, 5, 408, 205, 2, 1678, 1680, 5, 388, 195, 2, 1679, 1672, 3, 2, 2, 2, 1679, 1673, 3, 2, 2, 2, 1679, 1674, 3, 2, 2, 2, 1679, 1675, 3, 2, 2, 2, 1679, 1676, 3, 2, 2, 2, 1679, 1677, 3, 2, 2, 2, 1679, 1678, 3, 2, 2, 2, 1680, 289, 3, 2, 2, 2, 1681, 1682, 7, 25, 2, 2, 1682, 1683, 7, 70, 2, 2, 1683, 1684, 5, 430, 216, 2, 1684, 1685, 7, 71, 2, 2, 1685, 1686, 5, 274, 138, 2, 1686, 291, 3, 2, 2, 2, 1687, 1688, 7, 25, 2, 2, 1688, 1689, 7, 70, 2, 2, 1689, 1690, 5, 430, 216, 2, 1690, 1691, 7, 71, 2, 2, 1691, 1692, 5, 276, 139, 2, 1692, 1693, 7, 17, 2, 2, 1693, 1694, 5, 274, 138, 2, 1694, 293, 3, 2, 2, 2, 1695, 1696, 7, 25, 2, 2, 1696, 1697, 7, 70, 2, 2, 1697, 1698, 5, 430, 216, 2, 1698, 1699, 7, 71, 2, 2, 1699, 1700, 5, 276, 139, 2, 1700, 1701, 7, 17, 2, 2, 1701, 1702, 5, 276, 139, 2, 1702, 295, 3, 2, 2, 2, 1703, 1704, 7, 4, 2, 2, 1704, 1705, 5, 430, 216, 2, 1705, 1706, 7, 76, 2, 2, 1706, 1714, 3, 2, 2, 2, 1707, 1708, 7, 4, 2, 2, 1708, 1709, 5, 430, 216, 2, 1709, 1710, 7, 88, 2, 2, 1710, 1711, 5, 430, 216, 2, 1711, 1712, 7, 76, 2, 2, 1712, 1714, 3, 2, 2, 2, 1713, 1703, 3, 2, 2, 2, 1713, 1707, 3, 2, 2, 2, 1714, 297, 3, 2, 2, 2, 1715, 1716, 7, 49, 2, 2, 1716, 1717, 7, 70, 2, 2, 1717, 1718, 5, 430, 216, 2, 1718, 1719, 7, 71, 2, 2, 1719, 1720, 5, 300, 151, 2, 1720, 299, 3, 2, 2, 2, 1721, 1725, 7, 72, 2, 2, 1722, 1724, 5, 302, 152, 2, 1723, 1722, 3, 2, 2, 2, 1724, 1727, 3, 2, 2, 2, 1725, 1723, 3, 2, 2, 2, 1725, 1726, 3, 2, 2, 2, 1726, 1731, 3, 2, 2, 2, 1727, 1725, 3, 2, 2, 2, 1728, 1730, 5, 306, 154, 2, 1729, 1728, 3, 2, 2, 2, 1730, 1733, 3, 2, 2, 2, 1731, 1729, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1734, 3, 2, 2, 2, 1733, 1731, 3, 2, 2, 2, 1734, 1735, 7, 73, 2, 2, 1735, 301, 3, 2, 2, 2, 1736, 1737, 5, 304, 153, 2, 1737, 1738, 5, 266, 134, 2, 1738, 303, 3, 2, 2, 2, 1739, 1741, 5, 306, 154, 2, 1740, 1739, 3, 2, 2, 2, 1741, 1742, 3, 2, 2, 2, 1742, 1740, 3, 2, 2, 2, 1742, 1743, 3, 2, 2, 2, 1743, 305, 3, 2, 2, 2, 1744, 1745, 7, 8, 2, 2, 1745, 1746, 5, 428, 215, 2, 1746, 1747, 7, 88, 2, 2, 1747, 1755, 3, 2, 2, 2, 1748, 1749, 7, 8, 2, 2, 1749, 1750, 5, 308, 155, 2, 1750, 1751, 7, 88, 2, 2, 1751, 1755, 3, 2, 2, 2, 1752, 1753, 7, 14, 2, 2, 1753, 1755, 7, 88, 2, 2, 1754, 1744, 3, 2, 2, 2, 1754, 1748, 3, 2, 2, 2, 1754, 1752, 3, 2, 2, 2, 1755, 307, 3, 2, 2, 2, 1756, 1757, 5, 490, 246, 2, 1757, 309, 3, 2, 2, 2, 1758, 1759, 7, 61, 2, 2, 1759, 1760, 7, 70, 2, 2, 1760, 1761, 5, 430, 216, 2, 1761, 1762, 7, 71, 2, 2, 1762, 1763, 5, 274, 138, 2, 1763, 311, 3, 2, 2, 2, 1764, 1765, 7, 61, 2, 2, 1765, 1766, 7, 70, 2, 2, 1766, 1767, 5, 430, 216, 2, 1767, 1768, 7, 71, 2, 2, 1768, 1769, 5, 276, 139, 2, 1769, 313, 3, 2, 2, 2, 1770, 1771, 7, 15, 2, 2, 1771, 1772, 5, 274, 138, 2, 1772, 1773, 7, 61, 2, 2, 1773, 1774, 7, 70, 2, 2, 1774, 1775, 5, 430, 216, 2, 1775, 1776, 7, 71, 2, 2, 1776, 1777, 7, 76, 2, 2, 1777, 315, 3, 2, 2, 2, 1778, 1781, 5, 320, 161, 2, 1779, 1781, 5, 330, 166, 2, 1780, 1778, 3, 2, 2, 2, 1780, 1779, 3, 2, 2, 2, 1781, 317, 3, 2, 2, 2, 1782, 1785, 5, 322, 162, 2, 1783, 1785, 5, 332, 167, 2, 1784, 1782, 3, 2, 2, 2, 1784, 1783, 3, 2, 2, 2, 1785, 319, 3, 2, 2, 2, 1786, 1787, 7, 24, 2, 2, 1787, 1789, 7, 70, 2, 2, 1788, 1790, 5, 324, 163, 2, 1789, 1788, 3, 2, 2, 2, 1789, 1790, 3, 2, 2, 2, 1790, 1791, 3, 2, 2, 2, 1791, 1793, 7, 76, 2, 2, 1792, 1794, 5, 430, 216, 2, 1793, 1792, 3, 2, 2, 2, 1793, 1794, 3, 2, 2, 2, 1794, 1795, 3, 2, 2, 2, 1795, 1797, 7, 76, 2, 2, 1796, 1798, 5, 326, 164, 2, 1797, 1796, 3, 2, 2, 2, 1797, 1798, 3, 2, 2, 2, 1798, 1799, 3, 2, 2, 2, 1799, 1800, 7, 71, 2, 2, 1800, 1801, 5, 274, 138, 2, 1801, 321, 3, 2, 2, 2, 1802, 1803, 7, 24, 2, 2, 1803, 1805, 7, 70, 2, 2, 1804, 1806, 5, 324, 163, 2, 1805, 1804, 3, 2, 2, 2, 1805, 1806, 3, 2, 2, 2, 1806, 1807, 3, 2, 2, 2, 1807, 1809, 7, 76, 2, 2, 1808, 1810, 5, 430, 216, 2, 1809, 1808, 3, 2, 2, 2, 1809, 1810, 3, 2, 2, 2, 1810, 1811, 3, 2, 2, 2, 1811, 1813, 7, 76, 2, 2, 1812, 1814, 5, 326, 164, 2, 1813, 1812, 3, 2, 2, 2, 1813, 1814, 3, 2, 2, 2, 1814, 1815, 3, 2, 2, 2, 1815, 1816, 7, 71, 2, 2, 1816, 1817, 5, 276, 139, 2, 1817, 323, 3, 2, 2, 2, 1818, 1821, 5, 328, 165, 2, 1819, 1821, 5, 272, 137, 2, 1820, 1818, 3, 2, 2, 2, 1820, 1819, 3, 2, 2, 2, 1821, 325, 3, 2, 2, 2, 1822, 1823, 5, 328, 165, 2, 1823, 327, 3, 2, 2, 2, 1824, 1829, 5, 288, 145, 2, 1825, 1826, 7, 77, 2, 2, 1826, 1828, 5, 288, 145, 2, 1827, 1825, 3, 2, 2, 2, 1828, 1831, 3, 2, 2, 2, 1829, 1827, 3, 2, 2, 2, 1829, 1830, 3, 2, 2, 2, 1830, 329, 3, 2, 2, 2, 1831, 1829, 3, 2, 2, 2, 1832, 1833, 7, 24, 2, 2, 1833, 1837, 7, 70, 2, 2, 1834, 1836, 5, 168, 85, 2, 1835, 1834, 3, 2, 2, 2, 1836, 1839, 3, 2, 2, 2, 1837, 1835, 3, 2, 2, 2, 1837, 1838, 3, 2, 2, 2, 1838, 1840, 3, 2, 2, 2, 1839, 1837, 3, 2, 2, 2, 1840, 1841, 5, 128, 65, 2, 1841, 1842, 5, 124, 63, 2, 1842, 1843, 7, 88, 2, 2, 1843, 1844, 5, 430, 216, 2, 1844, 1845, 7, 71, 2, 2, 1845, 1846, 5, 274, 138, 2, 1846, 331, 3, 2, 2, 2, 1847, 1848, 7, 24, 2, 2, 1848, 1852, 7, 70, 2, 2, 1849, 1851, 5, 168, 85, 2, 1850, 1849, 3, 2, 2, 2, 1851, 1854, 3, 2, 2, 2, 1852, 1850, 3, 2, 2, 2, 1852, 1853, 3, 2, 2, 2, 1853, 1855, 3, 2, 2, 2, 1854, 1852, 3, 2, 2, 2, 1855, 1856, 5, 128, 65, 2, 1856, 1857, 5, 124, 63, 2, 1857, 1858, 7, 88, 2, 2, 1858, 1859, 5, 430, 216, 2, 1859, 1860, 7, 71, 2, 2, 1860, 1861, 5, 276, 139, 2, 1861, 333, 3, 2, 2, 2, 1862, 1864, 7, 6, 2, 2, 1863, 1865, 5, 490, 246, 2, 1864, 1863, 3, 2, 2, 2, 1864, 1865, 3, 2, 2, 2, 1865, 1866, 3, 2, 2, 2, 1866, 1867, 7, 76, 2, 2, 1867, 335, 3, 2, 2, 2, 1868, 1870, 7, 13, 2, 2, 1869, 1871, 5, 490, 246, 2, 1870, 1869, 3, 2, 2, 2, 1870, 1871, 3, 2, 2, 2, 1871, 1872, 3, 2, 2, 2, 1872, 1873, 7, 76, 2, 2, 1873, 337, 3, 2, 2, 2, 1874, 1876, 7, 44, 2, 2, 1875, 1877, 5, 430, 216, 2, 1876, 1875, 3, 2, 2, 2, 1876, 1877, 3, 2, 2, 2, 1877, 1878, 3, 2, 2, 2, 1878, 1879, 7, 76, 2, 2, 1879, 339, 3, 2, 2, 2, 1880, 1881, 7, 52, 2, 2, 1881, 1882, 5, 430, 216, 2, 1882, 1883, 7, 76, 2, 2, 1883, 341, 3, 2, 2, 2, 1884, 1885, 7, 50, 2, 2, 1885, 1886, 7, 70, 2, 2, 1886, 1887, 5, 430, 216, 2, 1887, 1888, 7, 71, 2, 2, 1888, 1889, 5, 264, 133, 2, 1889, 343, 3, 2, 2, 2, 1890, 1891, 7, 57, 2, 2, 1891, 1892, 5, 264, 133, 2, 1892, 1893, 5, 346, 174, 2, 1893, 1903, 3, 2, 2, 2, 1894, 1895, 7, 57, 2, 2, 1895, 1897, 5, 264, 133, 2, 1896, 1898, 5, 346, 174, 2, 1897, 1896, 3, 2, 2, 2, 1897, 1898, 3, 2, 2, 2, 1898, 1899, 3, 2, 2, 2, 1899, 1900, 5, 354, 178, 2, 1900, 1903, 3, 2, 2, 2, 1901, 1903, 5, 356, 179, 2, 1902, 1890, 3, 2, 2, 2, 1902, 1894, 3, 2, 2, 2, 1902, 1901, 3, 2, 2, 2, 1903, 345, 3, 2, 2, 2, 1904, 1906, 5, 348, 175, 2, 1905, 1904, 3, 2, 2, 2, 1906, 1907, 3, 2, 2, 2, 1907, 1905, 3, 2, 2, 2, 1907, 1908, 3, 2, 2, 2, 1908, 347, 3, 2, 2, 2, 1909, 1910, 7, 9, 2, 2, 1910, 1911, 7, 70, 2, 2, 1911, 1912, 5, 350, 176, 2, 1912, 1913, 7, 71, 2, 2, 1913, 1914, 5, 264, 133, 2, 1914, 349, 3, 2, 2, 2, 1915, 1917, 5, 168, 85, 2, 1916, 1915, 3, 2, 2, 2, 1917, 1920, 3, 2, 2, 2, 1918, 1916, 3, 2, 2, 2, 1918, 1919, 3, 2, 2, 2, 1919, 1921, 3, 2, 2, 2, 1920, 1918, 3, 2, 2, 2, 1921, 1922, 5, 352, 177, 2, 1922, 1923, 5, 124, 63, 2, 1923, 351, 3, 2, 2, 2, 1924, 1929, 5, 136, 69, 2, 1925, 1926, 7, 103, 2, 2, 1926, 1928, 5, 16, 9, 2, 1927, 1925, 3, 2, 2, 2, 1928, 1931, 3, 2, 2, 2, 1929, 1927, 3, 2, 2, 2, 1929, 1930, 3, 2, 2, 2, 1930, 353, 3, 2, 2, 2, 1931, 1929, 3, 2, 2, 2, 1932, 1933, 7, 22, 2, 2, 1933, 1934, 5, 264, 133, 2, 1934, 355, 3, 2, 2, 2, 1935, 1936, 7, 57, 2, 2, 1936, 1937, 5, 358, 180, 2, 1937, 1939, 5, 264, 133, 2, 1938, 1940, 5, 346, 174, 2, 1939, 1938, 3, 2, 2, 2, 1939, 1940, 3, 2, 2, 2, 1940, 1942, 3, 2, 2, 2, 1941, 1943, 5, 354, 178, 2, 1942, 1941, 3, 2, 2, 2, 1942, 1943, 3, 2, 2, 2, 1943, 357, 3, 2, 2, 2, 1944, 1945, 7, 70, 2, 2, 1945, 1947, 5, 360, 181, 2, 1946, 1948, 7, 76, 2, 2, 1947, 1946, 3, 2, 2, 2, 1947, 1948, 3, 2, 2, 2, 1948, 1949, 3, 2, 2, 2, 1949, 1950, 7, 71, 2, 2, 1950, 359, 3, 2, 2, 2, 1951, 1956, 5, 362, 182, 2, 1952, 1953, 7, 76, 2, 2, 1953, 1955, 5, 362, 182, 2, 1954, 1952, 3, 2, 2, 2, 1955, 1958, 3, 2, 2, 2, 1956, 1954, 3, 2, 2, 2, 1956, 1957, 3, 2, 2, 2, 1957, 361, 3, 2, 2, 2, 1958, 1956, 3, 2, 2, 2, 1959, 1961, 5, 168, 85, 2, 1960, 1959, 3, 2, 2, 2, 1961, 1964, 3, 2, 2, 2, 1962, 1960, 3, 2, 2, 2, 1962, 1963, 3, 2, 2, 2, 1963, 1965, 3, 2, 2, 2, 1964, 1962, 3, 2, 2, 2, 1965, 1966, 5, 128, 65, 2, 1966, 1967, 5, 124, 63, 2, 1967, 1968, 7, 82, 2, 2, 1968, 1969, 5, 430, 216, 2, 1969, 1972, 3, 2, 2, 2, 1970, 1972, 5, 364, 183, 2, 1971, 1962, 3, 2, 2, 2, 1971, 1970, 3, 2, 2, 2, 1972, 363, 3, 2, 2, 2, 1973, 1976, 5, 60, 31, 2, 1974, 1976, 5, 396, 199, 2, 1975, 1973, 3, 2, 2, 2, 1975, 1974, 3, 2, 2, 2, 1976, 365, 3, 2, 2, 2, 1977, 1980, 5, 380, 191, 2, 1978, 1980, 5, 422, 212, 2, 1979, 1977, 3, 2, 2, 2, 1979, 1978, 3, 2, 2, 2, 1980, 1984, 3, 2, 2, 2, 1981, 1983, 5, 374, 188, 2, 1982, 1981, 3, 2, 2, 2, 1983, 1986, 3, 2, 2, 2, 1984, 1982, 3, 2, 2, 2, 1984, 1985, 3, 2, 2, 2, 1985, 367, 3, 2, 2, 2, 1986, 1984, 3, 2, 2, 2, 1987, 2004, 5, 2, 2, 2, 1988, 2004, 5, 386, 194, 2, 1989, 2004, 7, 51, 2, 2, 1990, 1991, 5, 56, 29, 2, 1991, 1992, 7, 78, 2, 2, 1992, 1993, 7, 51, 2, 2, 1993, 2004, 3, 2, 2, 2, 1994, 1995, 7, 70, 2, 2, 1995, 1996, 5, 430, 216, 2, 1996, 1997, 7, 71, 2, 2, 1997, 2004, 3, 2, 2, 2, 1998, 2004, 5, 388, 195, 2, 1999, 2004, 5, 396, 199, 2, 2000, 2004, 5, 402, 202, 2, 2001, 2004, 5, 408, 205, 2, 2002, 2004, 5, 416, 209, 2, 2003, 1987, 3, 2, 2, 2, 2003, 1988, 3, 2, 2, 2, 2003, 1989, 3, 2, 2, 2, 2003, 1990, 3, 2, 2, 2, 2003, 1994, 3, 2, 2, 2, 2003, 1998, 3, 2, 2, 2, 2003, 1999, 3, 2, 2, 2, 2003, 2000, 3, 2, 2, 2, 2003, 2001, 3, 2, 2, 2, 2003, 2002, 3, 2, 2, 2, 2004, 369, 3, 2, 2, 2, 2005, 2006, 3, 2, 2, 2, 2006, 371, 3, 2, 2, 2, 2007, 2036, 5, 2, 2, 2, 2008, 2013, 5, 56, 29, 2, 2009, 2010, 7, 74, 2, 2, 2010, 2012, 7, 75, 2, 2, 2011, 2009, 3, 2, 2, 2, 2012, 2015, 3, 2, 2, 2, 2013, 2011, 3, 2, 2, 2, 2013, 2014, 3, 2, 2, 2, 2014, 2016, 3, 2, 2, 2, 2015, 2013, 3, 2, 2, 2, 2016, 2017, 7, 78, 2, 2, 2017, 2018, 7, 11, 2, 2, 2018, 2036, 3, 2, 2, 2, 2019, 2020, 7, 59, 2, 2, 2020, 2021, 7, 78, 2, 2, 2021, 2036, 7, 11, 2, 2, 2022, 2036, 7, 51, 2, 2, 2023, 2024, 5, 56, 29, 2, 2024, 2025, 7, 78, 2, 2, 2025, 2026, 7, 51, 2, 2, 2026, 2036, 3, 2, 2, 2, 2027, 2028, 7, 70, 2, 2, 2028, 2029, 5, 430, 216, 2, 2029, 2030, 7, 71, 2, 2, 2030, 2036, 3, 2, 2, 2, 2031, 2036, 5, 388, 195, 2, 2032, 2036, 5, 396, 199, 2, 2033, 2036, 5, 408, 205, 2, 2034, 2036, 5, 416, 209, 2, 2035, 2007, 3, 2, 2, 2, 2035, 2008, 3, 2, 2, 2, 2035, 2019, 3, 2, 2, 2, 2035, 2022, 3, 2, 2, 2, 2035, 2023, 3, 2, 2, 2, 2035, 2027, 3, 2, 2, 2, 2035, 2031, 3, 2, 2, 2, 2035, 2032, 3, 2, 2, 2, 2035, 2033, 3, 2, 2, 2, 2035, 2034, 3, 2, 2, 2, 2036, 373, 3, 2, 2, 2, 2037, 2043, 5, 390, 196, 2, 2038, 2043, 5, 398, 200, 2, 2039, 2043, 5, 404, 203, 2, 2040, 2043, 5, 410, 206, 2, 2041, 2043, 5, 418, 210, 2, 2042, 2037, 3, 2, 2, 2, 2042, 2038, 3, 2, 2, 2, 2042, 2039, 3, 2, 2, 2, 2042, 2040, 3, 2, 2, 2, 2042, 2041, 3, 2, 2, 2, 2043, 375, 3, 2, 2, 2, 2044, 2045, 3, 2, 2, 2, 2045, 377, 3, 2, 2, 2, 2046, 2051, 5, 390, 196, 2, 2047, 2051, 5, 398, 200, 2, 2048, 2051, 5, 410, 206, 2, 2049, 2051, 5, 418, 210, 2, 2050, 2046, 3, 2, 2, 2, 2050, 2047, 3, 2, 2, 2, 2050, 2048, 3, 2, 2, 2, 2050, 2049, 3, 2, 2, 2, 2051, 379, 3, 2, 2, 2, 2052, 2093, 5, 2, 2, 2, 2053, 2058, 5, 56, 29, 2, 2054, 2055, 7, 74, 2, 2, 2055, 2057, 7, 75, 2, 2, 2056, 2054, 3, 2, 2, 2, 2057, 2060, 3, 2, 2, 2, 2058, 2056, 3, 2, 2, 2, 2058, 2059, 3, 2, 2, 2, 2059, 2061, 3, 2, 2, 2, 2060, 2058, 3, 2, 2, 2, 2061, 2062, 7, 78, 2, 2, 2062, 2063, 7, 11, 2, 2, 2063, 2093, 3, 2, 2, 2, 2064, 2069, 5, 130, 66, 2, 2065, 2066, 7, 74, 2, 2, 2066, 2068, 7, 75, 2, 2, 2067, 2065, 3, 2, 2, 2, 2068, 2071, 3, 2, 2, 2, 2069, 2067, 3, 2, 2, 2, 2069, 2070, 3, 2, 2, 2, 2070, 2072, 3, 2, 2, 2, 2071, 2069, 3, 2, 2, 2, 2072, 2073, 7, 78, 2, 2, 2073, 2074, 7, 11, 2, 2, 2074, 2093, 3, 2, 2, 2, 2075, 2076, 7, 59, 2, 2, 2076, 2077, 7, 78, 2, 2, 2077, 2093, 7, 11, 2, 2, 2078, 2093, 7, 51, 2, 2, 2079, 2080, 5, 56, 29, 2, 2080, 2081, 7, 78, 2, 2, 2081, 2082, 7, 51, 2, 2, 2082, 2093, 3, 2, 2, 2, 2083, 2084, 7, 70, 2, 2, 2084, 2085, 5, 430, 216, 2, 2085, 2086, 7, 71, 2, 2, 2086, 2093, 3, 2, 2, 2, 2087, 2093, 5, 392, 197, 2, 2088, 2093, 5, 400, 201, 2, 2089, 2093, 5, 406, 204, 2, 2090, 2093, 5, 412, 207, 2, 2091, 2093, 5, 420, 211, 2, 2092, 2052, 3, 2, 2, 2, 2092, 2053, 3, 2, 2, 2, 2092, 2064, 3, 2, 2, 2, 2092, 2075, 3, 2, 2, 2, 2092, 2078, 3, 2, 2, 2, 2092, 2079, 3, 2, 2, 2, 2092, 2083, 3, 2, 2, 2, 2092, 2087, 3, 2, 2, 2, 2092, 2088, 3, 2, 2, 2, 2092, 2089, 3, 2, 2, 2, 2092, 2090, 3, 2, 2, 2, 2092, 2091, 3, 2, 2, 2, 2093, 381, 3, 2, 2, 2, 2094, 2095, 3, 2, 2, 2, 2095, 383, 3, 2, 2, 2, 2096, 2136, 5, 2, 2, 2, 2097, 2102, 5, 56, 29, 2, 2098, 2099, 7, 74, 2, 2, 2099, 2101, 7, 75, 2, 2, 2100, 2098, 3, 2, 2, 2, 2101, 2104, 3, 2, 2, 2, 2102, 2100, 3, 2, 2, 2, 2102, 2103, 3, 2, 2, 2, 2103, 2105, 3, 2, 2, 2, 2104, 2102, 3, 2, 2, 2, 2105, 2106, 7, 78, 2, 2, 2106, 2107, 7, 11, 2, 2, 2107, 2136, 3, 2, 2, 2, 2108, 2113, 5, 130, 66, 2, 2109, 2110, 7, 74, 2, 2, 2110, 2112, 7, 75, 2, 2, 2111, 2109, 3, 2, 2, 2, 2112, 2115, 3, 2, 2, 2, 2113, 2111, 3, 2, 2, 2, 2113, 2114, 3, 2, 2, 2, 2114, 2116, 3, 2, 2, 2, 2115, 2113, 3, 2, 2, 2, 2116, 2117, 7, 78, 2, 2, 2117, 2118, 7, 11, 2, 2, 2118, 2136, 3, 2, 2, 2, 2119, 2120, 7, 59, 2, 2, 2120, 2121, 7, 78, 2, 2, 2121, 2136, 7, 11, 2, 2, 2122, 2136, 7, 51, 2, 2, 2123, 2124, 5, 56, 29, 2, 2124, 2125, 7, 78, 2, 2, 2125, 2126, 7, 51, 2, 2, 2126, 2136, 3, 2, 2, 2, 2127, 2128, 7, 70, 2, 2, 2128, 2129, 5, 430, 216, 2, 2129, 2130, 7, 71, 2, 2, 2130, 2136, 3, 2, 2, 2, 2131, 2136, 5, 392, 197, 2, 2132, 2136, 5, 400, 201, 2, 2133, 2136, 5, 412, 207, 2, 2134, 2136, 5, 420, 211, 2, 2135, 2096, 3, 2, 2, 2, 2135, 2097, 3, 2, 2, 2, 2135, 2108, 3, 2, 2, 2, 2135, 2119, 3, 2, 2, 2, 2135, 2122, 3, 2, 2, 2, 2135, 2123, 3, 2, 2, 2, 2135, 2127, 3, 2, 2, 2, 2135, 2131, 3, 2, 2, 2, 2135, 2132, 3, 2, 2, 2, 2135, 2133, 3, 2, 2, 2, 2135, 2134, 3, 2, 2, 2, 2136, 385, 3, 2, 2, 2, 2137, 2141, 5, 56, 29, 2, 2138, 2141, 5, 6, 4, 2, 2139, 2141, 7, 5, 2, 2, 2140, 2137, 3, 2, 2, 2, 2140, 2138, 3, 2, 2, 2, 2140, 2139, 3, 2, 2, 2, 2141, 2146, 3, 2, 2, 2, 2142, 2143, 7, 74, 2, 2, 2143, 2145, 7, 75, 2, 2, 2144, 2142, 3, 2, 2, 2, 2145, 2148, 3, 2, 2, 2, 2146, 2144, 3, 2, 2, 2, 2146, 2147, 3, 2, 2, 2, 2147, 2149, 3, 2, 2, 2, 2148, 2146, 3, 2, 2, 2, 2149, 2150, 7, 78, 2, 2, 2150, 2155, 7, 11, 2, 2, 2151, 2152, 7, 59, 2, 2, 2152, 2153, 7, 78, 2, 2, 2153, 2155, 7, 11, 2, 2, 2154, 2140, 3, 2, 2, 2, 2154, 2151, 3, 2, 2, 2, 2155, 387, 3, 2, 2, 2, 2156, 2158, 7, 35, 2, 2, 2157, 2159, 5, 42, 22, 2, 2158, 2157, 3, 2, 2, 2, 2158, 2159, 3, 2, 2, 2, 2159, 2163, 3, 2, 2, 2, 2160, 2162, 5, 242, 122, 2, 2161, 2160, 3, 2, 2, 2, 2162, 2165, 3, 2, 2, 2, 2163, 2161, 3, 2, 2, 2, 2163, 2164, 3, 2, 2, 2, 2164, 2166, 3, 2, 2, 2, 2165, 2163, 3, 2, 2, 2, 2166, 2177, 5, 490, 246, 2, 2167, 2171, 7, 78, 2, 2, 2168, 2170, 5, 242, 122, 2, 2169, 2168, 3, 2, 2, 2, 2170, 2173, 3, 2, 2, 2, 2171, 2169, 3, 2, 2, 2, 2171, 2172, 3, 2, 2, 2, 2172, 2174, 3, 2, 2, 2, 2173, 2171, 3, 2, 2, 2, 2174, 2176, 5, 490, 246, 2, 2175, 2167, 3, 2, 2, 2, 2176, 2179, 3, 2, 2, 2, 2177, 2175, 3, 2, 2, 2, 2177, 2178, 3, 2, 2, 2, 2178, 2181, 3, 2, 2, 2, 2179, 2177, 3, 2, 2, 2, 2180, 2182, 5, 394, 198, 2, 2181, 2180, 3, 2, 2, 2, 2181, 2182, 3, 2, 2, 2, 2182, 2183, 3, 2, 2, 2, 2183, 2185, 7, 70, 2, 2, 2184, 2186, 5, 414, 208, 2, 2185, 2184, 3, 2, 2, 2, 2185, 2186, 3, 2, 2, 2, 2186, 2187, 3, 2, 2, 2, 2187, 2189, 7, 71, 2, 2, 2188, 2190, 5, 110, 56, 2, 2189, 2188, 3, 2, 2, 2, 2189, 2190, 3, 2, 2, 2, 2190, 2240, 3, 2, 2, 2, 2191, 2192, 5, 60, 31, 2, 2192, 2193, 7, 78, 2, 2, 2193, 2195, 7, 35, 2, 2, 2194, 2196, 5, 42, 22, 2, 2195, 2194, 3, 2, 2, 2, 2195, 2196, 3, 2, 2, 2, 2196, 2200, 3, 2, 2, 2, 2197, 2199, 5, 242, 122, 2, 2198, 2197, 3, 2, 2, 2, 2199, 2202, 3, 2, 2, 2, 2200, 2198, 3, 2, 2, 2, 2200, 2201, 3, 2, 2, 2, 2201, 2203, 3, 2, 2, 2, 2202, 2200, 3, 2, 2, 2, 2203, 2205, 5, 490, 246, 2, 2204, 2206, 5, 394, 198, 2, 2205, 2204, 3, 2, 2, 2, 2205, 2206, 3, 2, 2, 2, 2206, 2207, 3, 2, 2, 2, 2207, 2209, 7, 70, 2, 2, 2208, 2210, 5, 414, 208, 2, 2209, 2208, 3, 2, 2, 2, 2209, 2210, 3, 2, 2, 2, 2210, 2211, 3, 2, 2, 2, 2211, 2213, 7, 71, 2, 2, 2212, 2214, 5, 110, 56, 2, 2213, 2212, 3, 2, 2, 2, 2213, 2214, 3, 2, 2, 2, 2214, 2240, 3, 2, 2, 2, 2215, 2216, 5, 366, 184, 2, 2216, 2217, 7, 78, 2, 2, 2217, 2219, 7, 35, 2, 2, 2218, 2220, 5, 42, 22, 2, 2219, 2218, 3, 2, 2, 2, 2219, 2220, 3, 2, 2, 2, 2220, 2224, 3, 2, 2, 2, 2221, 2223, 5, 242, 122, 2, 2222, 2221, 3, 2, 2, 2, 2223, 2226, 3, 2, 2, 2, 2224, 2222, 3, 2, 2, 2, 2224, 2225, 3, 2, 2, 2, 2225, 2227, 3, 2, 2, 2, 2226, 2224, 3, 2, 2, 2, 2227, 2229, 5, 490, 246, 2, 2228, 2230, 5, 394, 198, 2, 2229, 2228, 3, 2, 2, 2, 2229, 2230, 3, 2, 2, 2, 2230, 2231, 3, 2, 2, 2, 2231, 2233, 7, 70, 2, 2, 2232, 2234, 5, 414, 208, 2, 2233, 2232, 3, 2, 2, 2, 2233, 2234, 3, 2, 2, 2, 2234, 2235, 3, 2, 2, 2, 2235, 2237, 7, 71, 2, 2, 2236, 2238, 5, 110, 56, 2, 2237, 2236, 3, 2, 2, 2, 2237, 2238, 3, 2, 2, 2, 2238, 2240, 3, 2, 2, 2, 2239, 2156, 3, 2, 2, 2, 2239, 2191, 3, 2, 2, 2, 2239, 2215, 3, 2, 2, 2, 2240, 389, 3, 2, 2, 2, 2241, 2242, 7, 78, 2, 2, 2242, 2244, 7, 35, 2, 2, 2243, 2245, 5, 42, 22, 2, 2244, 2243, 3, 2, 2, 2, 2244, 2245, 3, 2, 2, 2, 2245, 2249, 3, 2, 2, 2, 2246, 2248, 5, 242, 122, 2, 2247, 2246, 3, 2, 2, 2, 2248, 2251, 3, 2, 2, 2, 2249, 2247, 3, 2, 2, 2, 2249, 2250, 3, 2, 2, 2, 2250, 2252, 3, 2, 2, 2, 2251, 2249, 3, 2, 2, 2, 2252, 2254, 5, 490, 246, 2, 2253, 2255, 5, 394, 198, 2, 2254, 2253, 3, 2, 2, 2, 2254, 2255, 3, 2, 2, 2, 2255, 2256, 3, 2, 2, 2, 2256, 2258, 7, 70, 2, 2, 2257, 2259, 5, 414, 208, 2, 2258, 2257, 3, 2, 2, 2, 2258, 2259, 3, 2, 2, 2, 2259, 2260, 3, 2, 2, 2, 2260, 2262, 7, 71, 2, 2, 2261, 2263, 5, 110, 56, 2, 2262, 2261, 3, 2, 2, 2, 2262, 2263, 3, 2, 2, 2, 2263, 391, 3, 2, 2, 2, 2264, 2266, 7, 35, 2, 2, 2265, 2267, 5, 42, 22, 2, 2266, 2265, 3, 2, 2, 2, 2266, 2267, 3, 2, 2, 2, 2267, 2271, 3, 2, 2, 2, 2268, 2270, 5, 242, 122, 2, 2269, 2268, 3, 2, 2, 2, 2270, 2273, 3, 2, 2, 2, 2271, 2269, 3, 2, 2, 2, 2271, 2272, 3, 2, 2, 2, 2272, 2274, 3, 2, 2, 2, 2273, 2271, 3, 2, 2, 2, 2274, 2285, 5, 490, 246, 2, 2275, 2279, 7, 78, 2, 2, 2276, 2278, 5, 242, 122, 2, 2277, 2276, 3, 2, 2, 2, 2278, 2281, 3, 2, 2, 2, 2279, 2277, 3, 2, 2, 2, 2279, 2280, 3, 2, 2, 2, 2280, 2282, 3, 2, 2, 2, 2281, 2279, 3, 2, 2, 2, 2282, 2284, 5, 490, 246, 2, 2283, 2275, 3, 2, 2, 2, 2284, 2287, 3, 2, 2, 2, 2285, 2283, 3, 2, 2, 2, 2285, 2286, 3, 2, 2, 2, 2286, 2289, 3, 2, 2, 2, 2287, 2285, 3, 2, 2, 2, 2288, 2290, 5, 394, 198, 2, 2289, 2288, 3, 2, 2, 2, 2289, 2290, 3, 2, 2, 2, 2290, 2291, 3, 2, 2, 2, 2291, 2293, 7, 70, 2, 2, 2292, 2294, 5, 414, 208, 2, 2293, 2292, 3, 2, 2, 2, 2293, 2294, 3, 2, 2, 2, 2294, 2295, 3, 2, 2, 2, 2295, 2297, 7, 71, 2, 2, 2296, 2298, 5, 110, 56, 2, 2297, 2296, 3, 2, 2, 2, 2297, 2298, 3, 2, 2, 2, 2298, 2324, 3, 2, 2, 2, 2299, 2300, 5, 60, 31, 2, 2300, 2301, 7, 78, 2, 2, 2301, 2303, 7, 35, 2, 2, 2302, 2304, 5, 42, 22, 2, 2303, 2302, 3, 2, 2, 2, 2303, 2304, 3, 2, 2, 2, 2304, 2308, 3, 2, 2, 2, 2305, 2307, 5, 242, 122, 2, 2306, 2305, 3, 2, 2, 2, 2307, 2310, 3, 2, 2, 2, 2308, 2306, 3, 2, 2, 2, 2308, 2309, 3, 2, 2, 2, 2309, 2311, 3, 2, 2, 2, 2310, 2308, 3, 2, 2, 2, 2311, 2313, 5, 490, 246, 2, 2312, 2314, 5, 394, 198, 2, 2313, 2312, 3, 2, 2, 2, 2313, 2314, 3, 2, 2, 2, 2314, 2315, 3, 2, 2, 2, 2315, 2317, 7, 70, 2, 2, 2316, 2318, 5, 414, 208, 2, 2317, 2316, 3, 2, 2, 2, 2317, 2318, 3, 2, 2, 2, 2318, 2319, 3, 2, 2, 2, 2319, 2321, 7, 71, 2, 2, 2320, 2322, 5, 110, 56, 2, 2321, 2320, 3, 2, 2, 2, 2321, 2322, 3, 2, 2, 2, 2322, 2324, 3, 2, 2, 2, 2323, 2264, 3, 2, 2, 2, 2323, 2299, 3, 2, 2, 2, 2324, 393, 3, 2, 2, 2, 2325, 2329, 5, 42, 22, 2, 2326, 2327, 7, 84, 2, 2, 2327, 2329, 7, 83, 2, 2, 2328, 2325, 3, 2, 2, 2, 2328, 2326, 3, 2, 2, 2, 2329, 395, 3, 2, 2, 2, 2330, 2331, 5, 366, 184, 2, 2331, 2332, 7, 78, 2, 2, 2332, 2333, 5, 490, 246, 2, 2333, 2344, 3, 2, 2, 2, 2334, 2335, 7, 48, 2, 2, 2335, 2336, 7, 78, 2, 2, 2336, 2344, 5, 490, 246, 2, 2337, 2338, 5, 56, 29, 2, 2338, 2339, 7, 78, 2, 2, 2339, 2340, 7, 48, 2, 2, 2340, 2341, 7, 78, 2, 2, 2341, 2342, 5, 490, 246, 2, 2342, 2344, 3, 2, 2, 2, 2343, 2330, 3, 2, 2, 2, 2343, 2334, 3, 2, 2, 2, 2343, 2337, 3, 2, 2, 2, 2344, 397, 3, 2, 2, 2, 2345, 2346, 7, 78, 2, 2, 2346, 2347, 5, 490, 246, 2, 2347, 399, 3, 2, 2, 2, 2348, 2349, 7, 48, 2, 2, 2349, 2350, 7, 78, 2, 2, 2350, 2358, 5, 490, 246, 2, 2351, 2352, 5, 56, 29, 2, 2352, 2353, 7, 78, 2, 2, 2353, 2354, 7, 48, 2, 2, 2354, 2355, 7, 78, 2, 2, 2355, 2356, 5, 490, 246, 2, 2356, 2358, 3, 2, 2, 2, 2357, 2348, 3, 2, 2, 2, 2357, 2351, 3, 2, 2, 2, 2358, 401, 3, 2, 2, 2, 2359, 2360, 5, 60, 31, 2, 2360, 2361, 7, 74, 2, 2, 2361, 2362, 5, 430, 216, 2, 2362, 2363, 7, 75, 2, 2, 2363, 2370, 3, 2, 2, 2, 2364, 2365, 5, 372, 187, 2, 2365, 2366, 7, 74, 2, 2, 2366, 2367, 5, 430, 216, 2, 2367, 2368, 7, 75, 2, 2, 2368, 2370, 3, 2, 2, 2, 2369, 2359, 3, 2, 2, 2, 2369, 2364, 3, 2, 2, 2, 2370, 2378, 3, 2, 2, 2, 2371, 2372, 5, 370, 186, 2, 2372, 2373, 7, 74, 2, 2, 2373, 2374, 5, 430, 216, 2, 2374, 2375, 7, 75, 2, 2, 2375, 2377, 3, 2, 2, 2, 2376, 2371, 3, 2, 2, 2, 2377, 2380, 3, 2, 2, 2, 2378, 2376, 3, 2, 2, 2, 2378, 2379, 3, 2, 2, 2, 2379, 403, 3, 2, 2, 2, 2380, 2378, 3, 2, 2, 2, 2381, 2382, 5, 378, 190, 2, 2382, 2383, 7, 74, 2, 2, 2383, 2384, 5, 430, 216, 2, 2384, 2385, 7, 75, 2, 2, 2385, 2393, 3, 2, 2, 2, 2386, 2387, 5, 376, 189, 2, 2387, 2388, 7, 74, 2, 2, 2388, 2389, 5, 430, 216, 2, 2389, 2390, 7, 75, 2, 2, 2390, 2392, 3, 2, 2, 2, 2391, 2386, 3, 2, 2, 2, 2392, 2395, 3, 2, 2, 2, 2393, 2391, 3, 2, 2, 2, 2393, 2394, 3, 2, 2, 2, 2394, 405, 3, 2, 2, 2, 2395, 2393, 3, 2, 2, 2, 2396, 2397, 5, 60, 31, 2, 2397, 2398, 7, 74, 2, 2, 2398, 2399, 5, 430, 216, 2, 2399, 2400, 7, 75, 2, 2, 2400, 2407, 3, 2, 2, 2, 2401, 2402, 5, 384, 193, 2, 2402, 2403, 7, 74, 2, 2, 2403, 2404, 5, 430, 216, 2, 2404, 2405, 7, 75, 2, 2, 2405, 2407, 3, 2, 2, 2, 2406, 2396, 3, 2, 2, 2, 2406, 2401, 3, 2, 2, 2, 2407, 2415, 3, 2, 2, 2, 2408, 2409, 5, 382, 192, 2, 2409, 2410, 7, 74, 2, 2, 2410, 2411, 5, 430, 216, 2, 2411, 2412, 7, 75, 2, 2, 2412, 2414, 3, 2, 2, 2, 2413, 2408, 3, 2, 2, 2, 2414, 2417, 3, 2, 2, 2, 2415, 2413, 3, 2, 2, 2, 2415, 2416, 3, 2, 2, 2, 2416, 407, 3, 2, 2, 2, 2417, 2415, 3, 2, 2, 2, 2418, 2419, 5, 62, 32, 2, 2419, 2421, 7, 70, 2, 2, 2420, 2422, 5, 414, 208, 2, 2421, 2420, 3, 2, 2, 2, 2421, 2422, 3, 2, 2, 2, 2422, 2423, 3, 2, 2, 2, 2423, 2424, 7, 71, 2, 2, 2424, 2488, 3, 2, 2, 2, 2425, 2426, 5, 56, 29, 2, 2426, 2428, 7, 78, 2, 2, 2427, 2429, 5, 42, 22, 2, 2428, 2427, 3, 2, 2, 2, 2428, 2429, 3, 2, 2, 2, 2429, 2430, 3, 2, 2, 2, 2430, 2431, 5, 490, 246, 2, 2431, 2433, 7, 70, 2, 2, 2432, 2434, 5, 414, 208, 2, 2433, 2432, 3, 2, 2, 2, 2433, 2434, 3, 2, 2, 2, 2434, 2435, 3, 2, 2, 2, 2435, 2436, 7, 71, 2, 2, 2436, 2488, 3, 2, 2, 2, 2437, 2438, 5, 60, 31, 2, 2438, 2440, 7, 78, 2, 2, 2439, 2441, 5, 42, 22, 2, 2440, 2439, 3, 2, 2, 2, 2440, 2441, 3, 2, 2, 2, 2441, 2442, 3, 2, 2, 2, 2442, 2443, 5, 490, 246, 2, 2443, 2445, 7, 70, 2, 2, 2444, 2446, 5, 414, 208, 2, 2445, 2444, 3, 2, 2, 2, 2445, 2446, 3, 2, 2, 2, 2446, 2447, 3, 2, 2, 2, 2447, 2448, 7, 71, 2, 2, 2448, 2488, 3, 2, 2, 2, 2449, 2450, 5, 366, 184, 2, 2450, 2452, 7, 78, 2, 2, 2451, 2453, 5, 42, 22, 2, 2452, 2451, 3, 2, 2, 2, 2452, 2453, 3, 2, 2, 2, 2453, 2454, 3, 2, 2, 2, 2454, 2455, 5, 490, 246, 2, 2455, 2457, 7, 70, 2, 2, 2456, 2458, 5, 414, 208, 2, 2457, 2456, 3, 2, 2, 2, 2457, 2458, 3, 2, 2, 2, 2458, 2459, 3, 2, 2, 2, 2459, 2460, 7, 71, 2, 2, 2460, 2488, 3, 2, 2, 2, 2461, 2462, 7, 48, 2, 2, 2462, 2464, 7, 78, 2, 2, 2463, 2465, 5, 42, 22, 2, 2464, 2463, 3, 2, 2, 2, 2464, 2465, 3, 2, 2, 2, 2465, 2466, 3, 2, 2, 2, 2466, 2467, 5, 490, 246, 2, 2467, 2469, 7, 70, 2, 2, 2468, 2470, 5, 414, 208, 2, 2469, 2468, 3, 2, 2, 2, 2469, 2470, 3, 2, 2, 2, 2470, 2471, 3, 2, 2, 2, 2471, 2472, 7, 71, 2, 2, 2472, 2488, 3, 2, 2, 2, 2473, 2474, 5, 56, 29, 2, 2474, 2475, 7, 78, 2, 2, 2475, 2476, 7, 48, 2, 2, 2476, 2478, 7, 78, 2, 2, 2477, 2479, 5, 42, 22, 2, 2478, 2477, 3, 2, 2, 2, 2478, 2479, 3, 2, 2, 2, 2479, 2480, 3, 2, 2, 2, 2480, 2481, 5, 490, 246, 2, 2481, 2483, 7, 70, 2, 2, 2482, 2484, 5, 414, 208, 2, 2483, 2482, 3, 2, 2, 2, 2483, 2484, 3, 2, 2, 2, 2484, 2485, 3, 2, 2, 2, 2485, 2486, 7, 71, 2, 2, 2486, 2488, 3, 2, 2, 2, 2487, 2418, 3, 2, 2, 2, 2487, 2425, 3, 2, 2, 2, 2487, 2437, 3, 2, 2, 2, 2487, 2449, 3, 2, 2, 2, 2487, 2461, 3, 2, 2, 2, 2487, 2473, 3, 2, 2, 2, 2488, 409, 3, 2, 2, 2, 2489, 2491, 7, 78, 2, 2, 2490, 2492, 5, 42, 22, 2, 2491, 2490, 3, 2, 2, 2, 2491, 2492, 3, 2, 2, 2, 2492, 2493, 3, 2, 2, 2, 2493, 2494, 5, 490, 246, 2, 2494, 2496, 7, 70, 2, 2, 2495, 2497, 5, 414, 208, 2, 2496, 2495, 3, 2, 2, 2, 2496, 2497, 3, 2, 2, 2, 2497, 2498, 3, 2, 2, 2, 2498, 2499, 7, 71, 2, 2, 2499, 411, 3, 2, 2, 2, 2500, 2501, 5, 62, 32, 2, 2501, 2503, 7, 70, 2, 2, 2502, 2504, 5, 414, 208, 2, 2503, 2502, 3, 2, 2, 2, 2503, 2504, 3, 2, 2, 2, 2504, 2505, 3, 2, 2, 2, 2505, 2506, 7, 71, 2, 2, 2506, 2558, 3, 2, 2, 2, 2507, 2508, 5, 56, 29, 2, 2508, 2510, 7, 78, 2, 2, 2509, 2511, 5, 42, 22, 2, 2510, 2509, 3, 2, 2, 2, 2510, 2511, 3, 2, 2, 2, 2511, 2512, 3, 2, 2, 2, 2512, 2513, 5, 490, 246, 2, 2513, 2515, 7, 70, 2, 2, 2514, 2516, 5, 414, 208, 2, 2515, 2514, 3, 2, 2, 2, 2515, 2516, 3, 2, 2, 2, 2516, 2517, 3, 2, 2, 2, 2517, 2518, 7, 71, 2, 2, 2518, 2558, 3, 2, 2, 2, 2519, 2520, 5, 60, 31, 2, 2520, 2522, 7, 78, 2, 2, 2521, 2523, 5, 42, 22, 2, 2522, 2521, 3, 2, 2, 2, 2522, 2523, 3, 2, 2, 2, 2523, 2524, 3, 2, 2, 2, 2524, 2525, 5, 490, 246, 2, 2525, 2527, 7, 70, 2, 2, 2526, 2528, 5, 414, 208, 2, 2527, 2526, 3, 2, 2, 2, 2527, 2528, 3, 2, 2, 2, 2528, 2529, 3, 2, 2, 2, 2529, 2530, 7, 71, 2, 2, 2530, 2558, 3, 2, 2, 2, 2531, 2532, 7, 48, 2, 2, 2532, 2534, 7, 78, 2, 2, 2533, 2535, 5, 42, 22, 2, 2534, 2533, 3, 2, 2, 2, 2534, 2535, 3, 2, 2, 2, 2535, 2536, 3, 2, 2, 2, 2536, 2537, 5, 490, 246, 2, 2537, 2539, 7, 70, 2, 2, 2538, 2540, 5, 414, 208, 2, 2539, 2538, 3, 2, 2, 2, 2539, 2540, 3, 2, 2, 2, 2540, 2541, 3, 2, 2, 2, 2541, 2542, 7, 71, 2, 2, 2542, 2558, 3, 2, 2, 2, 2543, 2544, 5, 56, 29, 2, 2544, 2545, 7, 78, 2, 2, 2545, 2546, 7, 48, 2, 2, 2546, 2548, 7, 78, 2, 2, 2547, 2549, 5, 42, 22, 2, 2548, 2547, 3, 2, 2, 2, 2548, 2549, 3, 2, 2, 2, 2549, 2550, 3, 2, 2, 2, 2550, 2551, 5, 490, 246, 2, 2551, 2553, 7, 70, 2, 2, 2552, 2554, 5, 414, 208, 2, 2553, 2552, 3, 2, 2, 2, 2553, 2554, 3, 2, 2, 2, 2554, 2555, 3, 2, 2, 2, 2555, 2556, 7, 71, 2, 2, 2556, 2558, 3, 2, 2, 2, 2557, 2500, 3, 2, 2, 2, 2557, 2507, 3, 2, 2, 2, 2557, 2519, 3, 2, 2, 2, 2557, 2531, 3, 2, 2, 2, 2557, 2543, 3, 2, 2, 2, 2558, 413, 3, 2, 2, 2, 2559, 2564, 5, 430, 216, 2, 2560, 2561, 7, 77, 2, 2, 2561, 2563, 5, 430, 216, 2, 2562, 2560, 3, 2, 2, 2, 2563, 2566, 3, 2, 2, 2, 2564, 2562, 3, 2, 2, 2, 2564, 2565, 3, 2, 2, 2, 2565, 415, 3, 2, 2, 2, 2566, 2564, 3, 2, 2, 2, 2567, 2568, 5, 60, 31, 2, 2568, 2570, 7, 81, 2, 2, 2569, 2571, 5, 42, 22, 2, 2570, 2569, 3, 2, 2, 2, 2570, 2571, 3, 2, 2, 2, 2571, 2572, 3, 2, 2, 2, 2572, 2573, 5, 490, 246, 2, 2573, 2615, 3, 2, 2, 2, 2574, 2575, 5, 12, 7, 2, 2575, 2577, 7, 81, 2, 2, 2576, 2578, 5, 42, 22, 2, 2577, 2576, 3, 2, 2, 2, 2577, 2578, 3, 2, 2, 2, 2578, 2579, 3, 2, 2, 2, 2579, 2580, 5, 490, 246, 2, 2580, 2615, 3, 2, 2, 2, 2581, 2582, 5, 366, 184, 2, 2582, 2584, 7, 81, 2, 2, 2583, 2585, 5, 42, 22, 2, 2584, 2583, 3, 2, 2, 2, 2584, 2585, 3, 2, 2, 2, 2585, 2586, 3, 2, 2, 2, 2586, 2587, 5, 490, 246, 2, 2587, 2615, 3, 2, 2, 2, 2588, 2589, 7, 48, 2, 2, 2589, 2591, 7, 81, 2, 2, 2590, 2592, 5, 42, 22, 2, 2591, 2590, 3, 2, 2, 2, 2591, 2592, 3, 2, 2, 2, 2592, 2593, 3, 2, 2, 2, 2593, 2615, 5, 490, 246, 2, 2594, 2595, 5, 56, 29, 2, 2595, 2596, 7, 78, 2, 2, 2596, 2597, 7, 48, 2, 2, 2597, 2599, 7, 81, 2, 2, 2598, 2600, 5, 42, 22, 2, 2599, 2598, 3, 2, 2, 2, 2599, 2600, 3, 2, 2, 2, 2600, 2601, 3, 2, 2, 2, 2601, 2602, 5, 490, 246, 2, 2602, 2615, 3, 2, 2, 2, 2603, 2604, 5, 16, 9, 2, 2604, 2606, 7, 81, 2, 2, 2605, 2607, 5, 42, 22, 2, 2606, 2605, 3, 2, 2, 2, 2606, 2607, 3, 2, 2, 2, 2607, 2608, 3, 2, 2, 2, 2608, 2609, 7, 35, 2, 2, 2609, 2615, 3, 2, 2, 2, 2610, 2611, 5, 30, 16, 2, 2611, 2612, 7, 81, 2, 2, 2612, 2613, 7, 35, 2, 2, 2613, 2615, 3, 2, 2, 2, 2614, 2567, 3, 2, 2, 2, 2614, 2574, 3, 2, 2, 2, 2614, 2581, 3, 2, 2, 2, 2614, 2588, 3, 2, 2, 2, 2614, 2594, 3, 2, 2, 2, 2614, 2603, 3, 2, 2, 2, 2614, 2610, 3, 2, 2, 2, 2615, 417, 3, 2, 2, 2, 2616, 2618, 7, 81, 2, 2, 2617, 2619, 5, 42, 22, 2, 2618, 2617, 3, 2, 2, 2, 2618, 2619, 3, 2, 2, 2, 2619, 2620, 3, 2, 2, 2, 2620, 2621, 5, 490, 246, 2, 2621, 419, 3, 2, 2, 2, 2622, 2623, 5, 60, 31, 2, 2623, 2625, 7, 81, 2, 2, 2624, 2626, 5, 42, 22, 2, 2625, 2624, 3, 2, 2, 2, 2625, 2626, 3, 2, 2, 2, 2626, 2627, 3, 2, 2, 2, 2627, 2628, 5, 490, 246, 2, 2628, 2663, 3, 2, 2, 2, 2629, 2630, 5, 12, 7, 2, 2630, 2632, 7, 81, 2, 2, 2631, 2633, 5, 42, 22, 2, 2632, 2631, 3, 2, 2, 2, 2632, 2633, 3, 2, 2, 2, 2633, 2634, 3, 2, 2, 2, 2634, 2635, 5, 490, 246, 2, 2635, 2663, 3, 2, 2, 2, 2636, 2637, 7, 48, 2, 2, 2637, 2639, 7, 81, 2, 2, 2638, 2640, 5, 42, 22, 2, 2639, 2638, 3, 2, 2, 2, 2639, 2640, 3, 2, 2, 2, 2640, 2641, 3, 2, 2, 2, 2641, 2663, 5, 490, 246, 2, 2642, 2643, 5, 56, 29, 2, 2643, 2644, 7, 78, 2, 2, 2644, 2645, 7, 48, 2, 2, 2645, 2647, 7, 81, 2, 2, 2646, 2648, 5, 42, 22, 2, 2647, 2646, 3, 2, 2, 2, 2647, 2648, 3, 2, 2, 2, 2648, 2649, 3, 2, 2, 2, 2649, 2650, 5, 490, 246, 2, 2650, 2663, 3, 2, 2, 2, 2651, 2652, 5, 16, 9, 2, 2652, 2654, 7, 81, 2, 2, 2653, 2655, 5, 42, 22, 2, 2654, 2653, 3, 2, 2, 2, 2654, 2655, 3, 2, 2, 2, 2655, 2656, 3, 2, 2, 2, 2656, 2657, 7, 35, 2, 2, 2657, 2663, 3, 2, 2, 2, 2658, 2659, 5, 30, 16, 2, 2659, 2660, 7, 81, 2, 2, 2660, 2661, 7, 35, 2, 2, 2661, 2663, 3, 2, 2, 2, 2662, 2622, 3, 2, 2, 2, 2662, 2629, 3, 2, 2, 2, 2662, 2636, 3, 2, 2, 2, 2662, 2642, 3, 2, 2, 2, 2662, 2651, 3, 2, 2, 2, 2662, 2658, 3, 2, 2, 2, 2663, 421, 3, 2, 2, 2, 2664, 2665, 7, 35, 2, 2, 2665, 2666, 5, 4, 3, 2, 2666, 2668, 5, 424, 213, 2, 2667, 2669, 5, 32, 17, 2, 2668, 2667, 3, 2, 2, 2, 2668, 2669, 3, 2, 2, 2, 2669, 2687, 3, 2, 2, 2, 2670, 2671, 7, 35, 2, 2, 2671, 2672, 5, 14, 8, 2, 2672, 2674, 5, 424, 213, 2, 2673, 2675, 5, 32, 17, 2, 2674, 2673, 3, 2, 2, 2, 2674, 2675, 3, 2, 2, 2, 2675, 2687, 3, 2, 2, 2, 2676, 2677, 7, 35, 2, 2, 2677, 2678, 5, 4, 3, 2, 2678, 2679, 5, 32, 17, 2, 2679, 2680, 5, 260, 131, 2, 2680, 2687, 3, 2, 2, 2, 2681, 2682, 7, 35, 2, 2, 2682, 2683, 5, 14, 8, 2, 2683, 2684, 5, 32, 17, 2, 2684, 2685, 5, 260, 131, 2, 2685, 2687, 3, 2, 2, 2, 2686, 2664, 3, 2, 2, 2, 2686, 2670, 3, 2, 2, 2, 2686, 2676, 3, 2, 2, 2, 2686, 2681, 3, 2, 2, 2, 2687, 423, 3, 2, 2, 2, 2688, 2690, 5, 426, 214, 2, 2689, 2688, 3, 2, 2, 2, 2690, 2691, 3, 2, 2, 2, 2691, 2689, 3, 2, 2, 2, 2691, 2692, 3, 2, 2, 2, 2692, 425, 3, 2, 2, 2, 2693, 2695, 5, 242, 122, 2, 2694, 2693, 3, 2, 2, 2, 2695, 2698, 3, 2, 2, 2, 2696, 2694, 3, 2, 2, 2, 2696, 2697, 3, 2, 2, 2, 2697, 2699, 3, 2, 2, 2, 2698, 2696, 3, 2, 2, 2, 2699, 2700, 7, 74, 2, 2, 2700, 2701, 5, 430, 216, 2, 2701, 2702, 7, 75, 2, 2, 2702, 427, 3, 2, 2, 2, 2703, 2704, 5, 430, 216, 2, 2704, 429, 3, 2, 2, 2, 2705, 2708, 5, 432, 217, 2, 2706, 2708, 5, 440, 221, 2, 2707, 2705, 3, 2, 2, 2, 2707, 2706, 3, 2, 2, 2, 2708, 431, 3, 2, 2, 2, 2709, 2710, 5, 434, 218, 2, 2710, 2711, 7, 89, 2, 2, 2711, 2712, 5, 438, 220, 2, 2712, 433, 3, 2, 2, 2, 2713, 2724, 5, 490, 246, 2, 2714, 2716, 7, 70, 2, 2, 2715, 2717, 5, 162, 82, 2, 2716, 2715, 3, 2, 2, 2, 2716, 2717, 3, 2, 2, 2, 2717, 2718, 3, 2, 2, 2, 2718, 2724, 7, 71, 2, 2, 2719, 2720, 7, 70, 2, 2, 2720, 2721, 5, 436, 219, 2, 2721, 2722, 7, 71, 2, 2, 2722, 2724, 3, 2, 2, 2, 2723, 2713, 3, 2, 2, 2, 2723, 2714, 3, 2, 2, 2, 2723, 2719, 3, 2, 2, 2, 2724, 435, 3, 2, 2, 2, 2725, 2730, 5, 490, 246, 2, 2726, 2727, 7, 77, 2, 2, 2727, 2729, 5, 490, 246, 2, 2728, 2726, 3, 2, 2, 2, 2729, 2732, 3, 2, 2, 2, 2730, 2728, 3, 2, 2, 2, 2730, 2731, 3, 2, 2, 2, 2731, 437, 3, 2, 2, 2, 2732, 2730, 3, 2, 2, 2, 2733, 2736, 5, 430, 216, 2, 2734, 2736, 5, 264, 133, 2, 2735, 2733, 3, 2, 2, 2, 2735, 2734, 3, 2, 2, 2, 2736, 439, 3, 2, 2, 2, 2737, 2740, 5, 448, 225, 2, 2738, 2740, 5, 442, 222, 2, 2739, 2737, 3, 2, 2, 2, 2739, 2738, 3, 2, 2, 2, 2740, 441, 3, 2, 2, 2, 2741, 2742, 5, 444, 223, 2, 2742, 2743, 5, 446, 224, 2, 2743, 2744, 5, 430, 216, 2, 2744, 443, 3, 2, 2, 2, 2745, 2749, 5, 60, 31, 2, 2746, 2749, 5, 396, 199, 2, 2747, 2749, 5, 402, 202, 2, 2748, 2745, 3, 2, 2, 2, 2748, 2746, 3, 2, 2, 2, 2748, 2747, 3, 2, 2, 2, 2749, 445, 3, 2, 2, 2, 2750, 2751, 9, 6, 2, 2, 2751, 447, 3, 2, 2, 2, 2752, 2762, 5, 450, 226, 2, 2753, 2754, 5, 450, 226, 2, 2754, 2755, 7, 87, 2, 2, 2755, 2756, 5, 430, 216, 2, 2756, 2759, 7, 88, 2, 2, 2757, 2760, 5, 448, 225, 2, 2758, 2760, 5, 432, 217, 2, 2759, 2757, 3, 2, 2, 2, 2759, 2758, 3, 2, 2, 2, 2760, 2762, 3, 2, 2, 2, 2761, 2752, 3, 2, 2, 2, 2761, 2753, 3, 2, 2, 2, 2762, 449, 3, 2, 2, 2, 2763, 2764, 8, 226, 1, 2, 2764, 2765, 5, 452, 227, 2, 2765, 2771, 3, 2, 2, 2, 2766, 2767, 12, 3, 2, 2, 2767, 2768, 7, 95, 2, 2, 2768, 2770, 5, 452, 227, 2, 2769, 2766, 3, 2, 2, 2, 2770, 2773, 3, 2, 2, 2, 2771, 2769, 3, 2, 2, 2, 2771, 2772, 3, 2, 2, 2, 2772, 451, 3, 2, 2, 2, 2773, 2771, 3, 2, 2, 2, 2774, 2775, 8, 227, 1, 2, 2775, 2776, 5, 454, 228, 2, 2776, 2782, 3, 2, 2, 2, 2777, 2778, 12, 3, 2, 2, 2778, 2779, 7, 94, 2, 2, 2779, 2781, 5, 454, 228, 2, 2780, 2777, 3, 2, 2, 2, 2781, 2784, 3, 2, 2, 2, 2782, 2780, 3, 2, 2, 2, 2782, 2783, 3, 2, 2, 2, 2783, 453, 3, 2, 2, 2, 2784, 2782, 3, 2, 2, 2, 2785, 2786, 8, 228, 1, 2, 2786, 2787, 5, 456, 229, 2, 2787, 2793, 3, 2, 2, 2, 2788, 2789, 12, 3, 2, 2, 2789, 2790, 7, 103, 2, 2, 2790, 2792, 5, 456, 229, 2, 2791, 2788, 3, 2, 2, 2, 2792, 2795, 3, 2, 2, 2, 2793, 2791, 3, 2, 2, 2, 2793, 2794, 3, 2, 2, 2, 2794, 455, 3, 2, 2, 2, 2795, 2793, 3, 2, 2, 2, 2796, 2797, 8, 229, 1, 2, 2797, 2798, 5, 458, 230, 2, 2798, 2804, 3, 2, 2, 2, 2799, 2800, 12, 3, 2, 2, 2800, 2801, 7, 104, 2, 2, 2801, 2803, 5, 458, 230, 2, 2802, 2799, 3, 2, 2, 2, 2803, 2806, 3, 2, 2, 2, 2804, 2802, 3, 2, 2, 2, 2804, 2805, 3, 2, 2, 2, 2805, 457, 3, 2, 2, 2, 2806, 2804, 3, 2, 2, 2, 2807, 2808, 8, 230, 1, 2, 2808, 2809, 5, 460, 231, 2, 2809, 2815, 3, 2, 2, 2, 2810, 2811, 12, 3, 2, 2, 2811, 2812, 7, 102, 2, 2, 2812, 2814, 5, 460, 231, 2, 2813, 2810, 3, 2, 2, 2, 2814, 2817, 3, 2, 2, 2, 2815, 2813, 3, 2, 2, 2, 2815, 2816, 3, 2, 2, 2, 2816, 459, 3, 2, 2, 2, 2817, 2815, 3, 2, 2, 2, 2818, 2819, 8, 231, 1, 2, 2819, 2820, 5, 462, 232, 2, 2820, 2829, 3, 2, 2, 2, 2821, 2822, 12, 4, 2, 2, 2822, 2823, 7, 90, 2, 2, 2823, 2828, 5, 462, 232, 2, 2824, 2825, 12, 3, 2, 2, 2825, 2826, 7, 93, 2, 2, 2826, 2828, 5, 462, 232, 2, 2827, 2821, 3, 2, 2, 2, 2827, 2824, 3, 2, 2, 2, 2828, 2831, 3, 2, 2, 2, 2829, 2827, 3, 2, 2, 2, 2829, 2830, 3, 2, 2, 2, 2830, 461, 3, 2, 2, 2, 2831, 2829, 3, 2, 2, 2, 2832, 2833, 8, 232, 1, 2, 2833, 2834, 5, 464, 233, 2, 2834, 2852, 3, 2, 2, 2, 2835, 2836, 12, 7, 2, 2, 2836, 2837, 7, 84, 2, 2, 2837, 2851, 5, 464, 233, 2, 2838, 2839, 12, 6, 2, 2, 2839, 2840, 7, 83, 2, 2, 2840, 2851, 5, 464, 233, 2, 2841, 2842, 12, 5, 2, 2, 2842, 2843, 7, 91, 2, 2, 2843, 2851, 5, 464, 233, 2, 2844, 2845, 12, 4, 2, 2, 2845, 2846, 7, 92, 2, 2, 2846, 2851, 5, 464, 233, 2, 2847, 2848, 12, 3, 2, 2, 2848, 2849, 7, 29, 2, 2, 2849, 2851, 5, 12, 7, 2, 2850, 2835, 3, 2, 2, 2, 2850, 2838, 3, 2, 2, 2, 2850, 2841, 3, 2, 2, 2, 2850, 2844, 3, 2, 2, 2, 2850, 2847, 3, 2, 2, 2, 2851, 2854, 3, 2, 2, 2, 2852, 2850, 3, 2, 2, 2, 2852, 2853, 3, 2, 2, 2, 2853, 463, 3, 2, 2, 2, 2854, 2852, 3, 2, 2, 2, 2855, 2856, 8, 233, 1, 2, 2856, 2857, 5, 466, 234, 2, 2857, 2873, 3, 2, 2, 2, 2858, 2859, 12, 5, 2, 2, 2859, 2860, 7, 84, 2, 2, 2860, 2861, 7, 84, 2, 2, 2861, 2872, 5, 466, 234, 2, 2862, 2863, 12, 4, 2, 2, 2863, 2864, 7, 83, 2, 2, 2864, 2865, 7, 83, 2, 2, 2865, 2872, 5, 466, 234, 2, 2866, 2867, 12, 3, 2, 2, 2867, 2868, 7, 83, 2, 2, 2868, 2869, 7, 83, 2, 2, 2869, 2870, 7, 83, 2, 2, 2870, 2872, 5, 466, 234, 2, 2871, 2858, 3, 2, 2, 2, 2871, 2862, 3, 2, 2, 2, 2871, 2866, 3, 2, 2, 2, 2872, 2875, 3, 2, 2, 2, 2873, 2871, 3, 2, 2, 2, 2873, 2874, 3, 2, 2, 2, 2874, 465, 3, 2, 2, 2, 2875, 2873, 3, 2, 2, 2, 2876, 2877, 8, 234, 1, 2, 2877, 2878, 5, 468, 235, 2, 2878, 2887, 3, 2, 2, 2, 2879, 2880, 12, 4, 2, 2, 2880, 2881, 7, 98, 2, 2, 2881, 2886, 5, 468, 235, 2, 2882, 2883, 12, 3, 2, 2, 2883, 2884, 7, 99, 2, 2, 2884, 2886, 5, 468, 235, 2, 2885, 2879, 3, 2, 2, 2, 2885, 2882, 3, 2, 2, 2, 2886, 2889, 3, 2, 2, 2, 2887, 2885, 3, 2, 2, 2, 2887, 2888, 3, 2, 2, 2, 2888, 467, 3, 2, 2, 2, 2889, 2887, 3, 2, 2, 2, 2890, 2891, 8, 235, 1, 2, 2891, 2892, 5, 470, 236, 2, 2892, 2904, 3, 2, 2, 2, 2893, 2894, 12, 5, 2, 2, 2894, 2895, 7, 100, 2, 2, 2895, 2903, 5, 470, 236, 2, 2896, 2897, 12, 4, 2, 2, 2897, 2898, 7, 101, 2, 2, 2898, 2903, 5, 470, 236, 2, 2899, 2900, 12, 3, 2, 2, 2900, 2901, 7, 105, 2, 2, 2901, 2903, 5, 470, 236, 2, 2902, 2893, 3, 2, 2, 2, 2902, 2896, 3, 2, 2, 2, 2902, 2899, 3, 2, 2, 2, 2903, 2906, 3, 2, 2, 2, 2904, 2902, 3, 2, 2, 2, 2904, 2905, 3, 2, 2, 2, 2905, 469, 3, 2, 2, 2, 2906, 2904, 3, 2, 2, 2, 2907, 2915, 5, 472, 237, 2, 2908, 2915, 5, 474, 238, 2, 2909, 2910, 7, 98, 2, 2, 2910, 2915, 5, 470, 236, 2, 2911, 2912, 7, 99, 2, 2, 2912, 2915, 5, 470, 236, 2, 2913, 2915, 5, 476, 239, 2, 2914, 2907, 3, 2, 2, 2, 2914, 2908, 3, 2, 2, 2, 2914, 2909, 3, 2, 2, 2, 2914, 2911, 3, 2, 2, 2, 2914, 2913, 3, 2, 2, 2, 2915, 471, 3, 2, 2, 2, 2916, 2917, 7, 96, 2, 2, 2917, 2918, 5, 470, 236, 2, 2918, 473, 3, 2, 2, 2, 2919, 2920, 7, 97, 2, 2, 2920, 2921, 5, 470, 236, 2, 2921, 475, 3, 2, 2, 2, 2922, 2929, 5, 478, 240, 2, 2923, 2924, 7, 86, 2, 2, 2924, 2929, 5, 470, 236, 2, 2925, 2926, 7, 85, 2, 2, 2926, 2929, 5, 470, 236, 2, 2927, 2929, 5, 488, 245, 2, 2928, 2922, 3, 2, 2, 2, 2928, 2923, 3, 2, 2, 2, 2928, 2925, 3, 2, 2, 2, 2928, 2927, 3, 2, 2, 2, 2929, 477, 3, 2, 2, 2, 2930, 2933, 5, 366, 184, 2, 2931, 2933, 5, 60, 31, 2, 2932, 2930, 3, 2, 2, 2, 2932, 2931, 3, 2, 2, 2, 2933, 2938, 3, 2, 2, 2, 2934, 2937, 5, 482, 242, 2, 2935, 2937, 5, 486, 244, 2, 2936, 2934, 3, 2, 2, 2, 2936, 2935, 3, 2, 2, 2, 2937, 2940, 3, 2, 2, 2, 2938, 2936, 3, 2, 2, 2, 2938, 2939, 3, 2, 2, 2, 2939, 479, 3, 2, 2, 2, 2940, 2938, 3, 2, 2, 2, 2941, 2942, 5, 478, 240, 2, 2942, 2943, 7, 96, 2, 2, 2943, 481, 3, 2, 2, 2, 2944, 2945, 7, 96, 2, 2, 2945, 483, 3, 2, 2, 2, 2946, 2947, 5, 478, 240, 2, 2947, 2948, 7, 97, 2, 2, 2948, 485, 3, 2, 2, 2, 2949, 2950, 7, 97, 2, 2, 2950, 487, 3, 2, 2, 2, 2951, 2952, 7, 70, 2, 2, 2952, 2953, 5, 4, 3, 2, 2953, 2954, 7, 71, 2, 2, 2954, 2955, 5, 470, 236, 2, 2955, 2979, 3, 2, 2, 2, 2956, 2957, 7, 70, 2, 2, 2957, 2961, 5, 12, 7, 2, 2958, 2960, 5, 40, 21, 2, 2959, 2958, 3, 2, 2, 2, 2960, 2963, 3, 2, 2, 2, 2961, 2959, 3, 2, 2, 2, 2961, 2962, 3, 2, 2, 2, 2962, 2964, 3, 2, 2, 2, 2963, 2961, 3, 2, 2, 2, 2964, 2965, 7, 71, 2, 2, 2965, 2966, 5, 476, 239, 2, 2966, 2979, 3, 2, 2, 2, 2967, 2968, 7, 70, 2, 2, 2968, 2972, 5, 12, 7, 2, 2969, 2971, 5, 40, 21, 2, 2970, 2969, 3, 2, 2, 2, 2971, 2974, 3, 2, 2, 2, 2972, 2970, 3, 2, 2, 2, 2972, 2973, 3, 2, 2, 2, 2973, 2975, 3, 2, 2, 2, 2974, 2972, 3, 2, 2, 2, 2975, 2976, 7, 71, 2, 2, 2976, 2977, 5, 432, 217, 2, 2977, 2979, 3, 2, 2, 2, 2978, 2951, 3, 2, 2, 2, 2978, 2956, 3, 2, 2, 2, 2978, 2967, 3, 2, 2, 2, 2979, 489, 3, 2, 2, 2, 2980, 2981, 9, 7, 2, 2, 2981, 491, 3, 2, 2, 2, 342, 497, 504, 508, 512, 521, 525, 529, 531, 537, 542, 549, 554, 556, 562, 567, 572, 577, 588, 602, 607, 615, 622, 628, 633, 644, 647, 661, 666, 671, 676, 682, 692, 703, 711, 721, 729, 741, 746, 749, 754, 760, 768, 776, 789, 818, 823, 827, 835, 844, 858, 861, 873, 876, 892, 897, 903, 908, 914, 917, 920, 932, 943, 957, 964, 973, 980, 985, 1000, 1007, 1013, 1017, 1021, 1025, 1029, 1034, 1038, 1042, 1044, 1049, 1056, 1061, 1063, 1069, 1074, 1078, 1097, 1102, 1118, 1123, 1129, 1135, 1137, 1141, 1146, 1150, 1158, 1165, 1173, 1176, 1181, 1189, 1194, 1201, 1208, 1213, 1220, 1232, 1237, 1241, 1251, 1256, 1264, 1267, 1272, 1280, 1283, 1288, 1293, 1298, 1303, 1310, 1315, 1323, 1328, 1333, 1338, 1344, 1350, 1353, 1356, 1365, 1371, 1377, 1380, 1383, 1391, 1396, 1401, 1407, 1410, 1421, 1430, 1440, 1445, 1456, 1461, 1474, 1479, 1491, 1501, 1506, 1514, 1517, 1524, 1532, 1538, 1547, 1557, 1561, 1564, 1573, 1587, 1590, 1599, 1604, 1611, 1616, 1624, 1636, 1643, 1657, 1679, 1713, 1725, 1731, 1742, 1754, 1780, 1784, 1789, 1793, 1797, 1805, 1809, 1813, 1820, 1829, 1837, 1852, 1864, 1870, 1876, 1897, 1902, 1907, 1918, 1929, 1939, 1942, 1947, 1956, 1962, 1971, 1975, 1979, 1984, 2003, 2013, 2035, 2042, 2050, 2058, 2069, 2092, 2102, 2113, 2135, 2140, 2146, 2154, 2158, 2163, 2171, 2177, 2181, 2185, 2189, 2195, 2200, 2205, 2209, 2213, 2219, 2224, 2229, 2233, 2237, 2239, 2244, 2249, 2254, 2258, 2262, 2266, 2271, 2279, 2285, 2289, 2293, 2297, 2303, 2308, 2313, 2317, 2321, 2323, 2328, 2343, 2357, 2369, 2378, 2393, 2406, 2415, 2421, 2428, 2433, 2440, 2445, 2452, 2457, 2464, 2469, 2478, 2483, 2487, 2491, 2496, 2503, 2510, 2515, 2522, 2527, 2534, 2539, 2548, 2553, 2557, 2564, 2570, 2577, 2584, 2591, 2599, 2606, 2614, 2618, 2625, 2632, 2639, 2647, 2654, 2662, 2668, 2674, 2686, 2691, 2696, 2707, 2716, 2723, 2730, 2735, 2739, 2748, 2759, 2761, 2771, 2782, 2793, 2804, 2815, 2827, 2829, 2850, 2852, 2871, 2873, 2885, 2887, 2902, 2904, 2914, 2928, 2932, 2936, 2938, 2961, 2972, 2978] \ No newline at end of file diff --git a/java2python/lang/Java9Parser.py b/java2python/lang/Java9Parser.py deleted file mode 100644 index 4a1d2be..0000000 --- a/java2python/lang/Java9Parser.py +++ /dev/null @@ -1,20880 +0,0 @@ -# Generated from Java9Parser.g4 by ANTLR 4.7.2 -# encoding: utf-8 -from antlr4 import * -from io import StringIO -from typing.io import TextIO -import sys - -def serializedATN(): - with StringIO() as buf: - buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3x") - buf.write("\u0ba7\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") - buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") - buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") - buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31") - buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36") - buf.write("\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t") - buf.write("&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4") - buf.write("/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64") - buf.write("\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t") - buf.write(";\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\t") - buf.write("D\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\tL\4M\t") - buf.write("M\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\tU\4V\t") - buf.write("V\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4") - buf.write("_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4") - buf.write("h\th\4i\ti\4j\tj\4k\tk\4l\tl\4m\tm\4n\tn\4o\to\4p\tp\4") - buf.write("q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4w\tw\4x\tx\4y\ty\4") - buf.write("z\tz\4{\t{\4|\t|\4}\t}\4~\t~\4\177\t\177\4\u0080\t\u0080") - buf.write("\4\u0081\t\u0081\4\u0082\t\u0082\4\u0083\t\u0083\4\u0084") - buf.write("\t\u0084\4\u0085\t\u0085\4\u0086\t\u0086\4\u0087\t\u0087") - buf.write("\4\u0088\t\u0088\4\u0089\t\u0089\4\u008a\t\u008a\4\u008b") - buf.write("\t\u008b\4\u008c\t\u008c\4\u008d\t\u008d\4\u008e\t\u008e") - buf.write("\4\u008f\t\u008f\4\u0090\t\u0090\4\u0091\t\u0091\4\u0092") - buf.write("\t\u0092\4\u0093\t\u0093\4\u0094\t\u0094\4\u0095\t\u0095") - buf.write("\4\u0096\t\u0096\4\u0097\t\u0097\4\u0098\t\u0098\4\u0099") - buf.write("\t\u0099\4\u009a\t\u009a\4\u009b\t\u009b\4\u009c\t\u009c") - buf.write("\4\u009d\t\u009d\4\u009e\t\u009e\4\u009f\t\u009f\4\u00a0") - buf.write("\t\u00a0\4\u00a1\t\u00a1\4\u00a2\t\u00a2\4\u00a3\t\u00a3") - buf.write("\4\u00a4\t\u00a4\4\u00a5\t\u00a5\4\u00a6\t\u00a6\4\u00a7") - buf.write("\t\u00a7\4\u00a8\t\u00a8\4\u00a9\t\u00a9\4\u00aa\t\u00aa") - buf.write("\4\u00ab\t\u00ab\4\u00ac\t\u00ac\4\u00ad\t\u00ad\4\u00ae") - buf.write("\t\u00ae\4\u00af\t\u00af\4\u00b0\t\u00b0\4\u00b1\t\u00b1") - buf.write("\4\u00b2\t\u00b2\4\u00b3\t\u00b3\4\u00b4\t\u00b4\4\u00b5") - buf.write("\t\u00b5\4\u00b6\t\u00b6\4\u00b7\t\u00b7\4\u00b8\t\u00b8") - buf.write("\4\u00b9\t\u00b9\4\u00ba\t\u00ba\4\u00bb\t\u00bb\4\u00bc") - buf.write("\t\u00bc\4\u00bd\t\u00bd\4\u00be\t\u00be\4\u00bf\t\u00bf") - buf.write("\4\u00c0\t\u00c0\4\u00c1\t\u00c1\4\u00c2\t\u00c2\4\u00c3") - buf.write("\t\u00c3\4\u00c4\t\u00c4\4\u00c5\t\u00c5\4\u00c6\t\u00c6") - buf.write("\4\u00c7\t\u00c7\4\u00c8\t\u00c8\4\u00c9\t\u00c9\4\u00ca") - buf.write("\t\u00ca\4\u00cb\t\u00cb\4\u00cc\t\u00cc\4\u00cd\t\u00cd") - buf.write("\4\u00ce\t\u00ce\4\u00cf\t\u00cf\4\u00d0\t\u00d0\4\u00d1") - buf.write("\t\u00d1\4\u00d2\t\u00d2\4\u00d3\t\u00d3\4\u00d4\t\u00d4") - buf.write("\4\u00d5\t\u00d5\4\u00d6\t\u00d6\4\u00d7\t\u00d7\4\u00d8") - buf.write("\t\u00d8\4\u00d9\t\u00d9\4\u00da\t\u00da\4\u00db\t\u00db") - buf.write("\4\u00dc\t\u00dc\4\u00dd\t\u00dd\4\u00de\t\u00de\4\u00df") - buf.write("\t\u00df\4\u00e0\t\u00e0\4\u00e1\t\u00e1\4\u00e2\t\u00e2") - buf.write("\4\u00e3\t\u00e3\4\u00e4\t\u00e4\4\u00e5\t\u00e5\4\u00e6") - buf.write("\t\u00e6\4\u00e7\t\u00e7\4\u00e8\t\u00e8\4\u00e9\t\u00e9") - buf.write("\4\u00ea\t\u00ea\4\u00eb\t\u00eb\4\u00ec\t\u00ec\4\u00ed") - buf.write("\t\u00ed\4\u00ee\t\u00ee\4\u00ef\t\u00ef\4\u00f0\t\u00f0") - buf.write("\4\u00f1\t\u00f1\4\u00f2\t\u00f2\4\u00f3\t\u00f3\4\u00f4") - buf.write("\t\u00f4\4\u00f5\t\u00f5\4\u00f6\t\u00f6\3\2\3\2\3\3\7") - buf.write("\3\u01f0\n\3\f\3\16\3\u01f3\13\3\3\3\3\3\7\3\u01f7\n\3") - buf.write("\f\3\16\3\u01fa\13\3\3\3\5\3\u01fd\n\3\3\4\3\4\5\4\u0201") - buf.write("\n\4\3\5\3\5\3\6\3\6\3\7\3\7\3\7\5\7\u020a\n\7\3\b\3\b") - buf.write("\5\b\u020e\n\b\3\b\3\b\7\b\u0212\n\b\f\b\16\b\u0215\13") - buf.write("\b\3\t\7\t\u0218\n\t\f\t\16\t\u021b\13\t\3\t\3\t\5\t\u021f") - buf.write("\n\t\3\t\3\t\3\t\7\t\u0224\n\t\f\t\16\t\u0227\13\t\3\t") - buf.write("\3\t\5\t\u022b\n\t\5\t\u022d\n\t\3\n\3\n\7\n\u0231\n\n") - buf.write("\f\n\16\n\u0234\13\n\3\n\3\n\5\n\u0238\n\n\3\13\7\13\u023b") - buf.write("\n\13\f\13\16\13\u023e\13\13\3\13\3\13\5\13\u0242\n\13") - buf.write("\3\f\3\f\3\r\3\r\3\16\3\16\3\17\7\17\u024b\n\17\f\17\16") - buf.write("\17\u024e\13\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20") - buf.write("\3\20\3\20\3\20\5\20\u025b\n\20\3\21\7\21\u025e\n\21\f") - buf.write("\21\16\21\u0261\13\21\3\21\3\21\3\21\7\21\u0266\n\21\f") - buf.write("\21\16\21\u0269\13\21\3\21\3\21\7\21\u026d\n\21\f\21\16") - buf.write("\21\u0270\13\21\3\22\7\22\u0273\n\22\f\22\16\22\u0276") - buf.write("\13\22\3\22\3\22\5\22\u027a\n\22\3\23\3\23\3\24\3\24\3") - buf.write("\24\3\24\3\24\7\24\u0283\n\24\f\24\16\24\u0286\13\24\5") - buf.write("\24\u0288\n\24\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27") - buf.write("\3\27\3\27\7\27\u0294\n\27\f\27\16\27\u0297\13\27\3\30") - buf.write("\3\30\5\30\u029b\n\30\3\31\7\31\u029e\n\31\f\31\16\31") - buf.write("\u02a1\13\31\3\31\3\31\5\31\u02a5\n\31\3\32\3\32\3\32") - buf.write("\3\32\5\32\u02ab\n\32\3\33\3\33\3\33\3\33\3\33\3\33\7") - buf.write("\33\u02b3\n\33\f\33\16\33\u02b6\13\33\3\34\3\34\3\34\3") - buf.write("\34\3\34\3\34\7\34\u02be\n\34\f\34\16\34\u02c1\13\34\3") - buf.write("\35\3\35\3\35\3\35\3\35\5\35\u02c8\n\35\3\36\3\36\3\36") - buf.write("\3\36\3\36\3\36\7\36\u02d0\n\36\f\36\16\36\u02d3\13\36") - buf.write("\3\37\3\37\3\37\3\37\3\37\5\37\u02da\n\37\3 \3 \3!\3!") - buf.write("\3!\3!\3!\3!\7!\u02e4\n!\f!\16!\u02e7\13!\3\"\3\"\5\"") - buf.write("\u02eb\n\"\3#\5#\u02ee\n#\3#\7#\u02f1\n#\f#\16#\u02f4") - buf.write("\13#\3#\7#\u02f7\n#\f#\16#\u02fa\13#\3#\3#\3$\7$\u02ff") - buf.write("\n$\f$\16$\u0302\13$\3$\3$\3%\7%\u0307\n%\f%\16%\u030a") - buf.write("\13%\3%\3%\3%\3%\3&\3&\3\'\3\'\3\'\3\'\5\'\u0316\n\'\3") - buf.write("(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3+\3") - buf.write("+\3+\3+\3+\3+\3+\3,\3,\3,\5,\u0333\n,\3-\7-\u0336\n-\f") - buf.write("-\16-\u0339\13-\3-\5-\u033c\n-\3-\3-\3-\3-\7-\u0342\n") - buf.write("-\f-\16-\u0345\13-\3-\3-\3.\3.\7.\u034b\n.\f.\16.\u034e") - buf.write("\13.\3.\3.\3.\3.\3.\3.\3.\3.\3.\7.\u0359\n.\f.\16.\u035c") - buf.write("\13.\5.\u035e\n.\3.\3.\3.\3.\3.\3.\3.\3.\7.\u0368\n.\f") - buf.write(".\16.\u036b\13.\5.\u036d\n.\3.\3.\3.\3.\3.\3.\3.\3.\3") - buf.write(".\3.\3.\3.\7.\u037b\n.\f.\16.\u037e\13.\3.\3.\5.\u0382") - buf.write("\n.\3/\3/\3\60\3\60\5\60\u0388\n\60\3\61\7\61\u038b\n") - buf.write("\61\f\61\16\61\u038e\13\61\3\61\3\61\3\61\5\61\u0393\n") - buf.write("\61\3\61\5\61\u0396\n\61\3\61\5\61\u0399\n\61\3\61\3\61") - buf.write("\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\5\62\u03a5\n") - buf.write("\62\3\63\3\63\3\63\3\63\3\64\3\64\3\64\7\64\u03ae\n\64") - buf.write("\f\64\16\64\u03b1\13\64\3\65\3\65\3\65\3\66\3\66\3\66") - buf.write("\3\67\3\67\3\67\7\67\u03bc\n\67\f\67\16\67\u03bf\13\67") - buf.write("\38\38\78\u03c3\n8\f8\168\u03c6\138\38\38\39\39\39\39") - buf.write("\59\u03ce\n9\3:\3:\3:\3:\3:\5:\u03d5\n:\3;\7;\u03d8\n") - buf.write(";\f;\16;\u03db\13;\3;\3;\3;\3;\3<\3<\3<\3<\3<\3<\3<\3") - buf.write("<\5<\u03e9\n<\3=\3=\3=\7=\u03ee\n=\f=\16=\u03f1\13=\3") - buf.write(">\3>\3>\5>\u03f6\n>\3?\3?\5?\u03fa\n?\3@\3@\5@\u03fe\n") - buf.write("@\3A\3A\5A\u0402\nA\3B\3B\5B\u0406\nB\3C\3C\3C\5C\u040b") - buf.write("\nC\3D\3D\5D\u040f\nD\3D\3D\7D\u0413\nD\fD\16D\u0416\13") - buf.write("D\3E\3E\5E\u041a\nE\3E\3E\3E\7E\u041f\nE\fE\16E\u0422") - buf.write("\13E\3E\3E\5E\u0426\nE\5E\u0428\nE\3F\3F\7F\u042c\nF\f") - buf.write("F\16F\u042f\13F\3F\3F\5F\u0433\nF\3G\3G\5G\u0437\nG\3") - buf.write("H\3H\3I\3I\3J\3J\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3L\5L\u044a") - buf.write("\nL\3M\7M\u044d\nM\fM\16M\u0450\13M\3M\3M\3M\3N\3N\3N") - buf.write("\3N\3N\3N\3N\3N\3N\3N\5N\u045f\nN\3O\3O\3O\5O\u0464\n") - buf.write("O\3O\3O\7O\u0468\nO\fO\16O\u046b\13O\3O\3O\3O\5O\u0470") - buf.write("\nO\5O\u0472\nO\3P\3P\5P\u0476\nP\3Q\3Q\3Q\5Q\u047b\n") - buf.write("Q\3Q\3Q\5Q\u047f\nQ\3R\3R\3R\3R\3R\3R\5R\u0487\nR\3S\3") - buf.write("S\3S\7S\u048c\nS\fS\16S\u048f\13S\3S\3S\3S\7S\u0494\n") - buf.write("S\fS\16S\u0497\13S\5S\u0499\nS\3T\7T\u049c\nT\fT\16T\u049f") - buf.write("\13T\3T\3T\3T\3U\3U\5U\u04a6\nU\3V\7V\u04a9\nV\fV\16V") - buf.write("\u04ac\13V\3V\3V\7V\u04b0\nV\fV\16V\u04b3\13V\3V\3V\3") - buf.write("V\3V\5V\u04b9\nV\3W\7W\u04bc\nW\fW\16W\u04bf\13W\3W\3") - buf.write("W\3W\3W\5W\u04c5\nW\3W\3W\3X\3X\3X\3Y\3Y\3Y\7Y\u04cf\n") - buf.write("Y\fY\16Y\u04d2\13Y\3Z\3Z\5Z\u04d6\nZ\3[\3[\5[\u04da\n") - buf.write("[\3\\\3\\\3]\3]\3]\3^\7^\u04e2\n^\f^\16^\u04e5\13^\3^") - buf.write("\3^\5^\u04e9\n^\3^\3^\3_\3_\3_\3_\5_\u04f1\n_\3`\5`\u04f4") - buf.write("\n`\3`\3`\3`\5`\u04f9\n`\3`\3`\3a\3a\3b\3b\5b\u0501\n") - buf.write("b\3b\5b\u0504\nb\3b\3b\3c\5c\u0509\nc\3c\3c\3c\5c\u050e") - buf.write("\nc\3c\3c\3c\5c\u0513\nc\3c\3c\3c\5c\u0518\nc\3c\3c\3") - buf.write("c\3c\3c\5c\u051f\nc\3c\3c\3c\5c\u0524\nc\3c\3c\3c\3c\3") - buf.write("c\3c\5c\u052c\nc\3c\3c\3c\5c\u0531\nc\3c\3c\3c\5c\u0536") - buf.write("\nc\3d\7d\u0539\nd\fd\16d\u053c\13d\3d\3d\3d\5d\u0541") - buf.write("\nd\3d\3d\3e\3e\5e\u0547\ne\3e\5e\u054a\ne\3e\5e\u054d") - buf.write("\ne\3e\3e\3f\3f\3f\7f\u0554\nf\ff\16f\u0557\13f\3g\7g") - buf.write("\u055a\ng\fg\16g\u055d\13g\3g\3g\3g\5g\u0562\ng\3g\5g") - buf.write("\u0565\ng\3g\5g\u0568\ng\3h\3h\3i\3i\7i\u056e\ni\fi\16") - buf.write("i\u0571\13i\3j\3j\5j\u0575\nj\3k\7k\u0578\nk\fk\16k\u057b") - buf.write("\13k\3k\3k\3k\5k\u0580\nk\3k\5k\u0583\nk\3k\3k\3l\3l\3") - buf.write("l\3l\3l\3l\3l\5l\u058e\nl\3m\3m\3m\3n\3n\7n\u0595\nn\f") - buf.write("n\16n\u0598\13n\3n\3n\3o\3o\3o\3o\3o\5o\u05a1\no\3p\7") - buf.write("p\u05a4\np\fp\16p\u05a7\13p\3p\3p\3p\3p\3q\3q\3q\3q\5") - buf.write("q\u05b1\nq\3r\7r\u05b4\nr\fr\16r\u05b7\13r\3r\3r\3r\3") - buf.write("s\3s\3s\3s\3s\3s\3s\5s\u05c3\ns\3t\7t\u05c6\nt\ft\16t") - buf.write("\u05c9\13t\3t\3t\3t\3t\3t\3u\3u\7u\u05d2\nu\fu\16u\u05d5") - buf.write("\13u\3u\3u\3v\3v\3v\3v\3v\5v\u05de\nv\3w\7w\u05e1\nw\f") - buf.write("w\16w\u05e4\13w\3w\3w\3w\3w\3w\5w\u05eb\nw\3w\5w\u05ee") - buf.write("\nw\3w\3w\3x\3x\3x\5x\u05f5\nx\3y\3y\3y\3z\3z\3z\5z\u05fd") - buf.write("\nz\3{\3{\3{\3{\5{\u0603\n{\3{\3{\3|\3|\3|\7|\u060a\n") - buf.write("|\f|\16|\u060d\13|\3}\3}\3}\3}\3~\3~\3~\5~\u0616\n~\3") - buf.write("\177\3\177\5\177\u061a\n\177\3\177\5\177\u061d\n\177\3") - buf.write("\177\3\177\3\u0080\3\u0080\3\u0080\7\u0080\u0624\n\u0080") - buf.write("\f\u0080\16\u0080\u0627\13\u0080\3\u0081\3\u0081\3\u0081") - buf.write("\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0082\3\u0083") - buf.write("\3\u0083\5\u0083\u0634\n\u0083\3\u0083\5\u0083\u0637\n") - buf.write("\u0083\3\u0083\3\u0083\3\u0084\3\u0084\3\u0084\7\u0084") - buf.write("\u063e\n\u0084\f\u0084\16\u0084\u0641\13\u0084\3\u0085") - buf.write("\3\u0085\5\u0085\u0645\n\u0085\3\u0085\3\u0085\3\u0086") - buf.write("\6\u0086\u064a\n\u0086\r\u0086\16\u0086\u064b\3\u0087") - buf.write("\3\u0087\3\u0087\5\u0087\u0651\n\u0087\3\u0088\3\u0088") - buf.write("\3\u0088\3\u0089\7\u0089\u0657\n\u0089\f\u0089\16\u0089") - buf.write("\u065a\13\u0089\3\u0089\3\u0089\3\u0089\3\u008a\3\u008a") - buf.write("\3\u008a\3\u008a\3\u008a\3\u008a\5\u008a\u0665\n\u008a") - buf.write("\3\u008b\3\u008b\3\u008b\3\u008b\3\u008b\5\u008b\u066c") - buf.write("\n\u008b\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c") - buf.write("\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\3\u008c\5\u008c") - buf.write("\u067a\n\u008c\3\u008d\3\u008d\3\u008e\3\u008e\3\u008e") - buf.write("\3\u008e\3\u008f\3\u008f\3\u008f\3\u008f\3\u0090\3\u0090") - buf.write("\3\u0090\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091\3\u0091") - buf.write("\3\u0091\5\u0091\u0690\n\u0091\3\u0092\3\u0092\3\u0092") - buf.write("\3\u0092\3\u0092\3\u0092\3\u0093\3\u0093\3\u0093\3\u0093") - buf.write("\3\u0093\3\u0093\3\u0093\3\u0093\3\u0094\3\u0094\3\u0094") - buf.write("\3\u0094\3\u0094\3\u0094\3\u0094\3\u0094\3\u0095\3\u0095") - buf.write("\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095\3\u0095") - buf.write("\3\u0095\5\u0095\u06b2\n\u0095\3\u0096\3\u0096\3\u0096") - buf.write("\3\u0096\3\u0096\3\u0096\3\u0097\3\u0097\7\u0097\u06bc") - buf.write("\n\u0097\f\u0097\16\u0097\u06bf\13\u0097\3\u0097\7\u0097") - buf.write("\u06c2\n\u0097\f\u0097\16\u0097\u06c5\13\u0097\3\u0097") - buf.write("\3\u0097\3\u0098\3\u0098\3\u0098\3\u0099\6\u0099\u06cd") - buf.write("\n\u0099\r\u0099\16\u0099\u06ce\3\u009a\3\u009a\3\u009a") - buf.write("\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a\3\u009a") - buf.write("\5\u009a\u06db\n\u009a\3\u009b\3\u009b\3\u009c\3\u009c") - buf.write("\3\u009c\3\u009c\3\u009c\3\u009c\3\u009d\3\u009d\3\u009d") - buf.write("\3\u009d\3\u009d\3\u009d\3\u009e\3\u009e\3\u009e\3\u009e") - buf.write("\3\u009e\3\u009e\3\u009e\3\u009e\3\u009f\3\u009f\5\u009f") - buf.write("\u06f5\n\u009f\3\u00a0\3\u00a0\5\u00a0\u06f9\n\u00a0\3") - buf.write("\u00a1\3\u00a1\3\u00a1\5\u00a1\u06fe\n\u00a1\3\u00a1\3") - buf.write("\u00a1\5\u00a1\u0702\n\u00a1\3\u00a1\3\u00a1\5\u00a1\u0706") - buf.write("\n\u00a1\3\u00a1\3\u00a1\3\u00a1\3\u00a2\3\u00a2\3\u00a2") - buf.write("\5\u00a2\u070e\n\u00a2\3\u00a2\3\u00a2\5\u00a2\u0712\n") - buf.write("\u00a2\3\u00a2\3\u00a2\5\u00a2\u0716\n\u00a2\3\u00a2\3") - buf.write("\u00a2\3\u00a2\3\u00a3\3\u00a3\5\u00a3\u071d\n\u00a3\3") - buf.write("\u00a4\3\u00a4\3\u00a5\3\u00a5\3\u00a5\7\u00a5\u0724\n") - buf.write("\u00a5\f\u00a5\16\u00a5\u0727\13\u00a5\3\u00a6\3\u00a6") - buf.write("\3\u00a6\7\u00a6\u072c\n\u00a6\f\u00a6\16\u00a6\u072f") - buf.write("\13\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6\3\u00a6") - buf.write("\3\u00a6\3\u00a7\3\u00a7\3\u00a7\7\u00a7\u073b\n\u00a7") - buf.write("\f\u00a7\16\u00a7\u073e\13\u00a7\3\u00a7\3\u00a7\3\u00a7") - buf.write("\3\u00a7\3\u00a7\3\u00a7\3\u00a7\3\u00a8\3\u00a8\5\u00a8") - buf.write("\u0749\n\u00a8\3\u00a8\3\u00a8\3\u00a9\3\u00a9\5\u00a9") - buf.write("\u074f\n\u00a9\3\u00a9\3\u00a9\3\u00aa\3\u00aa\5\u00aa") - buf.write("\u0755\n\u00aa\3\u00aa\3\u00aa\3\u00ab\3\u00ab\3\u00ab") - buf.write("\3\u00ab\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac\3\u00ac") - buf.write("\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad\3\u00ad") - buf.write("\5\u00ad\u076a\n\u00ad\3\u00ad\3\u00ad\3\u00ad\5\u00ad") - buf.write("\u076f\n\u00ad\3\u00ae\6\u00ae\u0772\n\u00ae\r\u00ae\16") - buf.write("\u00ae\u0773\3\u00af\3\u00af\3\u00af\3\u00af\3\u00af\3") - buf.write("\u00af\3\u00b0\7\u00b0\u077d\n\u00b0\f\u00b0\16\u00b0") - buf.write("\u0780\13\u00b0\3\u00b0\3\u00b0\3\u00b0\3\u00b1\3\u00b1") - buf.write("\3\u00b1\7\u00b1\u0788\n\u00b1\f\u00b1\16\u00b1\u078b") - buf.write("\13\u00b1\3\u00b2\3\u00b2\3\u00b2\3\u00b3\3\u00b3\3\u00b3") - buf.write("\3\u00b3\5\u00b3\u0794\n\u00b3\3\u00b3\5\u00b3\u0797\n") - buf.write("\u00b3\3\u00b4\3\u00b4\3\u00b4\5\u00b4\u079c\n\u00b4\3") - buf.write("\u00b4\3\u00b4\3\u00b5\3\u00b5\3\u00b5\7\u00b5\u07a3\n") - buf.write("\u00b5\f\u00b5\16\u00b5\u07a6\13\u00b5\3\u00b6\7\u00b6") - buf.write("\u07a9\n\u00b6\f\u00b6\16\u00b6\u07ac\13\u00b6\3\u00b6") - buf.write("\3\u00b6\3\u00b6\3\u00b6\3\u00b6\3\u00b6\5\u00b6\u07b4") - buf.write("\n\u00b6\3\u00b7\3\u00b7\5\u00b7\u07b8\n\u00b7\3\u00b8") - buf.write("\3\u00b8\5\u00b8\u07bc\n\u00b8\3\u00b8\7\u00b8\u07bf\n") - buf.write("\u00b8\f\u00b8\16\u00b8\u07c2\13\u00b8\3\u00b9\3\u00b9") - buf.write("\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9") - buf.write("\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9\3\u00b9") - buf.write("\5\u00b9\u07d4\n\u00b9\3\u00ba\3\u00ba\3\u00bb\3\u00bb") - buf.write("\3\u00bb\3\u00bb\7\u00bb\u07dc\n\u00bb\f\u00bb\16\u00bb") - buf.write("\u07df\13\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") - buf.write("\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") - buf.write("\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb\3\u00bb") - buf.write("\5\u00bb\u07f4\n\u00bb\3\u00bc\3\u00bc\3\u00bc\3\u00bc") - buf.write("\3\u00bc\5\u00bc\u07fb\n\u00bc\3\u00bd\3\u00bd\3\u00be") - buf.write("\3\u00be\3\u00be\3\u00be\5\u00be\u0803\n\u00be\3\u00bf") - buf.write("\3\u00bf\3\u00bf\3\u00bf\7\u00bf\u0809\n\u00bf\f\u00bf") - buf.write("\16\u00bf\u080c\13\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") - buf.write("\3\u00bf\3\u00bf\7\u00bf\u0814\n\u00bf\f\u00bf\16\u00bf") - buf.write("\u0817\13\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") - buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") - buf.write("\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf\3\u00bf") - buf.write("\3\u00bf\5\u00bf\u082d\n\u00bf\3\u00c0\3\u00c0\3\u00c1") - buf.write("\3\u00c1\3\u00c1\3\u00c1\7\u00c1\u0835\n\u00c1\f\u00c1") - buf.write("\16\u00c1\u0838\13\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") - buf.write("\3\u00c1\3\u00c1\7\u00c1\u0840\n\u00c1\f\u00c1\16\u00c1") - buf.write("\u0843\13\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") - buf.write("\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") - buf.write("\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1\3\u00c1") - buf.write("\5\u00c1\u0858\n\u00c1\3\u00c2\3\u00c2\3\u00c2\5\u00c2") - buf.write("\u085d\n\u00c2\3\u00c2\3\u00c2\7\u00c2\u0861\n\u00c2\f") - buf.write("\u00c2\16\u00c2\u0864\13\u00c2\3\u00c2\3\u00c2\3\u00c2") - buf.write("\3\u00c2\3\u00c2\5\u00c2\u086b\n\u00c2\3\u00c3\3\u00c3") - buf.write("\5\u00c3\u086f\n\u00c3\3\u00c3\7\u00c3\u0872\n\u00c3\f") - buf.write("\u00c3\16\u00c3\u0875\13\u00c3\3\u00c3\3\u00c3\3\u00c3") - buf.write("\7\u00c3\u087a\n\u00c3\f\u00c3\16\u00c3\u087d\13\u00c3") - buf.write("\3\u00c3\7\u00c3\u0880\n\u00c3\f\u00c3\16\u00c3\u0883") - buf.write("\13\u00c3\3\u00c3\5\u00c3\u0886\n\u00c3\3\u00c3\3\u00c3") - buf.write("\5\u00c3\u088a\n\u00c3\3\u00c3\3\u00c3\5\u00c3\u088e\n") - buf.write("\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3\5\u00c3\u0894\n") - buf.write("\u00c3\3\u00c3\7\u00c3\u0897\n\u00c3\f\u00c3\16\u00c3") - buf.write("\u089a\13\u00c3\3\u00c3\3\u00c3\5\u00c3\u089e\n\u00c3") - buf.write("\3\u00c3\3\u00c3\5\u00c3\u08a2\n\u00c3\3\u00c3\3\u00c3") - buf.write("\5\u00c3\u08a6\n\u00c3\3\u00c3\3\u00c3\3\u00c3\3\u00c3") - buf.write("\5\u00c3\u08ac\n\u00c3\3\u00c3\7\u00c3\u08af\n\u00c3\f") - buf.write("\u00c3\16\u00c3\u08b2\13\u00c3\3\u00c3\3\u00c3\5\u00c3") - buf.write("\u08b6\n\u00c3\3\u00c3\3\u00c3\5\u00c3\u08ba\n\u00c3\3") - buf.write("\u00c3\3\u00c3\5\u00c3\u08be\n\u00c3\5\u00c3\u08c0\n\u00c3") - buf.write("\3\u00c4\3\u00c4\3\u00c4\5\u00c4\u08c5\n\u00c4\3\u00c4") - buf.write("\7\u00c4\u08c8\n\u00c4\f\u00c4\16\u00c4\u08cb\13\u00c4") - buf.write("\3\u00c4\3\u00c4\5\u00c4\u08cf\n\u00c4\3\u00c4\3\u00c4") - buf.write("\5\u00c4\u08d3\n\u00c4\3\u00c4\3\u00c4\5\u00c4\u08d7\n") - buf.write("\u00c4\3\u00c5\3\u00c5\5\u00c5\u08db\n\u00c5\3\u00c5\7") - buf.write("\u00c5\u08de\n\u00c5\f\u00c5\16\u00c5\u08e1\13\u00c5\3") - buf.write("\u00c5\3\u00c5\3\u00c5\7\u00c5\u08e6\n\u00c5\f\u00c5\16") - buf.write("\u00c5\u08e9\13\u00c5\3\u00c5\7\u00c5\u08ec\n\u00c5\f") - buf.write("\u00c5\16\u00c5\u08ef\13\u00c5\3\u00c5\5\u00c5\u08f2\n") - buf.write("\u00c5\3\u00c5\3\u00c5\5\u00c5\u08f6\n\u00c5\3\u00c5\3") - buf.write("\u00c5\5\u00c5\u08fa\n\u00c5\3\u00c5\3\u00c5\3\u00c5\3") - buf.write("\u00c5\5\u00c5\u0900\n\u00c5\3\u00c5\7\u00c5\u0903\n\u00c5") - buf.write("\f\u00c5\16\u00c5\u0906\13\u00c5\3\u00c5\3\u00c5\5\u00c5") - buf.write("\u090a\n\u00c5\3\u00c5\3\u00c5\5\u00c5\u090e\n\u00c5\3") - buf.write("\u00c5\3\u00c5\5\u00c5\u0912\n\u00c5\5\u00c5\u0914\n\u00c5") - buf.write("\3\u00c6\3\u00c6\3\u00c6\5\u00c6\u0919\n\u00c6\3\u00c7") - buf.write("\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7") - buf.write("\3\u00c7\3\u00c7\3\u00c7\3\u00c7\3\u00c7\5\u00c7\u0928") - buf.write("\n\u00c7\3\u00c8\3\u00c8\3\u00c8\3\u00c9\3\u00c9\3\u00c9") - buf.write("\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\3\u00c9\5\u00c9") - buf.write("\u0936\n\u00c9\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca") - buf.write("\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\5\u00ca\u0942") - buf.write("\n\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\3\u00ca\7\u00ca") - buf.write("\u0949\n\u00ca\f\u00ca\16\u00ca\u094c\13\u00ca\3\u00cb") - buf.write("\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb\3\u00cb") - buf.write("\3\u00cb\3\u00cb\7\u00cb\u0958\n\u00cb\f\u00cb\16\u00cb") - buf.write("\u095b\13\u00cb\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc") - buf.write("\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\5\u00cc\u0967") - buf.write("\n\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\3\u00cc\7\u00cc") - buf.write("\u096e\n\u00cc\f\u00cc\16\u00cc\u0971\13\u00cc\3\u00cd") - buf.write("\3\u00cd\3\u00cd\5\u00cd\u0976\n\u00cd\3\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u097d\n\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\5\u00cd\u0982\n\u00cd\3\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u0989\n\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\5\u00cd\u098e\n\u00cd\3\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u0995\n\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\5\u00cd\u099a\n\u00cd\3\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09a1\n\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\5\u00cd\u09a6\n\u00cd\3\u00cd\3\u00cd") - buf.write("\3\u00cd\3\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09af") - buf.write("\n\u00cd\3\u00cd\3\u00cd\3\u00cd\5\u00cd\u09b4\n\u00cd") - buf.write("\3\u00cd\3\u00cd\5\u00cd\u09b8\n\u00cd\3\u00ce\3\u00ce") - buf.write("\5\u00ce\u09bc\n\u00ce\3\u00ce\3\u00ce\3\u00ce\5\u00ce") - buf.write("\u09c1\n\u00ce\3\u00ce\3\u00ce\3\u00cf\3\u00cf\3\u00cf") - buf.write("\5\u00cf\u09c8\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") - buf.write("\3\u00cf\5\u00cf\u09cf\n\u00cf\3\u00cf\3\u00cf\3\u00cf") - buf.write("\5\u00cf\u09d4\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") - buf.write("\3\u00cf\5\u00cf\u09db\n\u00cf\3\u00cf\3\u00cf\3\u00cf") - buf.write("\5\u00cf\u09e0\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") - buf.write("\3\u00cf\5\u00cf\u09e7\n\u00cf\3\u00cf\3\u00cf\3\u00cf") - buf.write("\5\u00cf\u09ec\n\u00cf\3\u00cf\3\u00cf\3\u00cf\3\u00cf") - buf.write("\3\u00cf\3\u00cf\3\u00cf\5\u00cf\u09f5\n\u00cf\3\u00cf") - buf.write("\3\u00cf\3\u00cf\5\u00cf\u09fa\n\u00cf\3\u00cf\3\u00cf") - buf.write("\5\u00cf\u09fe\n\u00cf\3\u00d0\3\u00d0\3\u00d0\7\u00d0") - buf.write("\u0a03\n\u00d0\f\u00d0\16\u00d0\u0a06\13\u00d0\3\u00d1") - buf.write("\3\u00d1\3\u00d1\5\u00d1\u0a0b\n\u00d1\3\u00d1\3\u00d1") - buf.write("\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a12\n\u00d1\3\u00d1") - buf.write("\3\u00d1\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a19\n\u00d1") - buf.write("\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a20") - buf.write("\n\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1") - buf.write("\5\u00d1\u0a28\n\u00d1\3\u00d1\3\u00d1\3\u00d1\3\u00d1") - buf.write("\3\u00d1\5\u00d1\u0a2f\n\u00d1\3\u00d1\3\u00d1\3\u00d1") - buf.write("\3\u00d1\3\u00d1\3\u00d1\5\u00d1\u0a37\n\u00d1\3\u00d2") - buf.write("\3\u00d2\5\u00d2\u0a3b\n\u00d2\3\u00d2\3\u00d2\3\u00d3") - buf.write("\3\u00d3\3\u00d3\5\u00d3\u0a42\n\u00d3\3\u00d3\3\u00d3") - buf.write("\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u0a49\n\u00d3\3\u00d3") - buf.write("\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3\u0a50\n\u00d3") - buf.write("\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\5\u00d3") - buf.write("\u0a58\n\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3") - buf.write("\5\u00d3\u0a5f\n\u00d3\3\u00d3\3\u00d3\3\u00d3\3\u00d3") - buf.write("\3\u00d3\3\u00d3\5\u00d3\u0a67\n\u00d3\3\u00d4\3\u00d4") - buf.write("\3\u00d4\3\u00d4\5\u00d4\u0a6d\n\u00d4\3\u00d4\3\u00d4") - buf.write("\3\u00d4\3\u00d4\5\u00d4\u0a73\n\u00d4\3\u00d4\3\u00d4") - buf.write("\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4\3\u00d4") - buf.write("\3\u00d4\5\u00d4\u0a7f\n\u00d4\3\u00d5\6\u00d5\u0a82\n") - buf.write("\u00d5\r\u00d5\16\u00d5\u0a83\3\u00d6\7\u00d6\u0a87\n") - buf.write("\u00d6\f\u00d6\16\u00d6\u0a8a\13\u00d6\3\u00d6\3\u00d6") - buf.write("\3\u00d6\3\u00d6\3\u00d7\3\u00d7\3\u00d8\3\u00d8\5\u00d8") - buf.write("\u0a94\n\u00d8\3\u00d9\3\u00d9\3\u00d9\3\u00d9\3\u00da") - buf.write("\3\u00da\3\u00da\5\u00da\u0a9d\n\u00da\3\u00da\3\u00da") - buf.write("\3\u00da\3\u00da\3\u00da\5\u00da\u0aa4\n\u00da\3\u00db") - buf.write("\3\u00db\3\u00db\7\u00db\u0aa9\n\u00db\f\u00db\16\u00db") - buf.write("\u0aac\13\u00db\3\u00dc\3\u00dc\5\u00dc\u0ab0\n\u00dc") - buf.write("\3\u00dd\3\u00dd\5\u00dd\u0ab4\n\u00dd\3\u00de\3\u00de") - buf.write("\3\u00de\3\u00de\3\u00df\3\u00df\3\u00df\5\u00df\u0abd") - buf.write("\n\u00df\3\u00e0\3\u00e0\3\u00e1\3\u00e1\3\u00e1\3\u00e1") - buf.write("\3\u00e1\3\u00e1\3\u00e1\5\u00e1\u0ac8\n\u00e1\5\u00e1") - buf.write("\u0aca\n\u00e1\3\u00e2\3\u00e2\3\u00e2\3\u00e2\3\u00e2") - buf.write("\3\u00e2\7\u00e2\u0ad2\n\u00e2\f\u00e2\16\u00e2\u0ad5") - buf.write("\13\u00e2\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3\3\u00e3") - buf.write("\7\u00e3\u0add\n\u00e3\f\u00e3\16\u00e3\u0ae0\13\u00e3") - buf.write("\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\3\u00e4\7\u00e4") - buf.write("\u0ae8\n\u00e4\f\u00e4\16\u00e4\u0aeb\13\u00e4\3\u00e5") - buf.write("\3\u00e5\3\u00e5\3\u00e5\3\u00e5\3\u00e5\7\u00e5\u0af3") - buf.write("\n\u00e5\f\u00e5\16\u00e5\u0af6\13\u00e5\3\u00e6\3\u00e6") - buf.write("\3\u00e6\3\u00e6\3\u00e6\3\u00e6\7\u00e6\u0afe\n\u00e6") - buf.write("\f\u00e6\16\u00e6\u0b01\13\u00e6\3\u00e7\3\u00e7\3\u00e7") - buf.write("\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\3\u00e7\7\u00e7") - buf.write("\u0b0c\n\u00e7\f\u00e7\16\u00e7\u0b0f\13\u00e7\3\u00e8") - buf.write("\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8") - buf.write("\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8\3\u00e8") - buf.write("\3\u00e8\3\u00e8\3\u00e8\7\u00e8\u0b23\n\u00e8\f\u00e8") - buf.write("\16\u00e8\u0b26\13\u00e8\3\u00e9\3\u00e9\3\u00e9\3\u00e9") - buf.write("\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9") - buf.write("\3\u00e9\3\u00e9\3\u00e9\3\u00e9\3\u00e9\7\u00e9\u0b38") - buf.write("\n\u00e9\f\u00e9\16\u00e9\u0b3b\13\u00e9\3\u00ea\3\u00ea") - buf.write("\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea\3\u00ea") - buf.write("\7\u00ea\u0b46\n\u00ea\f\u00ea\16\u00ea\u0b49\13\u00ea") - buf.write("\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb") - buf.write("\3\u00eb\3\u00eb\3\u00eb\3\u00eb\3\u00eb\7\u00eb\u0b57") - buf.write("\n\u00eb\f\u00eb\16\u00eb\u0b5a\13\u00eb\3\u00ec\3\u00ec") - buf.write("\3\u00ec\3\u00ec\3\u00ec\3\u00ec\3\u00ec\5\u00ec\u0b63") - buf.write("\n\u00ec\3\u00ed\3\u00ed\3\u00ed\3\u00ee\3\u00ee\3\u00ee") - buf.write("\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\3\u00ef\5\u00ef") - buf.write("\u0b71\n\u00ef\3\u00f0\3\u00f0\5\u00f0\u0b75\n\u00f0\3") - buf.write("\u00f0\3\u00f0\7\u00f0\u0b79\n\u00f0\f\u00f0\16\u00f0") - buf.write("\u0b7c\13\u00f0\3\u00f1\3\u00f1\3\u00f1\3\u00f2\3\u00f2") - buf.write("\3\u00f3\3\u00f3\3\u00f3\3\u00f4\3\u00f4\3\u00f5\3\u00f5") - buf.write("\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\7\u00f5") - buf.write("\u0b90\n\u00f5\f\u00f5\16\u00f5\u0b93\13\u00f5\3\u00f5") - buf.write("\3\u00f5\3\u00f5\3\u00f5\3\u00f5\3\u00f5\7\u00f5\u0b9b") - buf.write("\n\u00f5\f\u00f5\16\u00f5\u0b9e\13\u00f5\3\u00f5\3\u00f5") - buf.write("\3\u00f5\5\u00f5\u0ba3\n\u00f5\3\u00f6\3\u00f6\3\u00f6") - buf.write("\2\20\64\66:@\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce") - buf.write("\u01d0\u01d2\u01d4\u00f7\2\4\6\b\n\f\16\20\22\24\26\30") - buf.write("\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`b") - buf.write("dfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c") - buf.write("\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e") - buf.write("\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0") - buf.write("\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2") - buf.write("\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4") - buf.write("\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6") - buf.write("\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8") - buf.write("\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a") - buf.write("\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c") - buf.write("\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e") - buf.write("\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140") - buf.write("\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152") - buf.write("\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164") - buf.write("\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176") - buf.write("\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188") - buf.write("\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a") - buf.write("\u019c\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac") - buf.write("\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be") - buf.write("\u01c0\u01c2\u01c4\u01c6\u01c8\u01ca\u01cc\u01ce\u01d0") - buf.write("\u01d2\u01d4\u01d6\u01d8\u01da\u01dc\u01de\u01e0\u01e2") - buf.write("\u01e4\u01e6\u01e8\u01ea\2\b\3\2@E\7\2\7\7\n\n\36\36 ") - buf.write(" --\4\2\20\20\27\27\4\2..88\4\2RRjt\13\2\23\23!!$%))+") - buf.write("+\66\66::>>uu\2\u0ca5\2\u01ec\3\2\2\2\4\u01fc\3\2\2\2") - buf.write("\6\u0200\3\2\2\2\b\u0202\3\2\2\2\n\u0204\3\2\2\2\f\u0209") - buf.write("\3\2\2\2\16\u020d\3\2\2\2\20\u022c\3\2\2\2\22\u022e\3") - buf.write("\2\2\2\24\u023c\3\2\2\2\26\u0243\3\2\2\2\30\u0245\3\2") - buf.write("\2\2\32\u0247\3\2\2\2\34\u024c\3\2\2\2\36\u025a\3\2\2") - buf.write("\2 \u025f\3\2\2\2\"\u0274\3\2\2\2$\u027b\3\2\2\2&\u0287") - buf.write("\3\2\2\2(\u0289\3\2\2\2*\u028c\3\2\2\2,\u0290\3\2\2\2") - buf.write(".\u029a\3\2\2\2\60\u029f\3\2\2\2\62\u02aa\3\2\2\2\64\u02ac") - buf.write("\3\2\2\2\66\u02b7\3\2\2\28\u02c7\3\2\2\2:\u02c9\3\2\2") - buf.write("\2<\u02d9\3\2\2\2>\u02db\3\2\2\2@\u02dd\3\2\2\2B\u02ea") - buf.write("\3\2\2\2D\u02ed\3\2\2\2F\u0300\3\2\2\2H\u0308\3\2\2\2") - buf.write("J\u030f\3\2\2\2L\u0315\3\2\2\2N\u0317\3\2\2\2P\u031b\3") - buf.write("\2\2\2R\u0321\3\2\2\2T\u0328\3\2\2\2V\u0332\3\2\2\2X\u0337") - buf.write("\3\2\2\2Z\u0381\3\2\2\2\\\u0383\3\2\2\2^\u0387\3\2\2\2") - buf.write("`\u038c\3\2\2\2b\u03a4\3\2\2\2d\u03a6\3\2\2\2f\u03aa\3") - buf.write("\2\2\2h\u03b2\3\2\2\2j\u03b5\3\2\2\2l\u03b8\3\2\2\2n\u03c0") - buf.write("\3\2\2\2p\u03cd\3\2\2\2r\u03d4\3\2\2\2t\u03d9\3\2\2\2") - buf.write("v\u03e8\3\2\2\2x\u03ea\3\2\2\2z\u03f2\3\2\2\2|\u03f7\3") - buf.write("\2\2\2~\u03fd\3\2\2\2\u0080\u0401\3\2\2\2\u0082\u0405") - buf.write("\3\2\2\2\u0084\u040a\3\2\2\2\u0086\u040e\3\2\2\2\u0088") - buf.write("\u0427\3\2\2\2\u008a\u0429\3\2\2\2\u008c\u0434\3\2\2\2") - buf.write("\u008e\u0438\3\2\2\2\u0090\u043a\3\2\2\2\u0092\u043c\3") - buf.write("\2\2\2\u0094\u043e\3\2\2\2\u0096\u0449\3\2\2\2\u0098\u044e") - buf.write("\3\2\2\2\u009a\u045e\3\2\2\2\u009c\u0471\3\2\2\2\u009e") - buf.write("\u0475\3\2\2\2\u00a0\u0477\3\2\2\2\u00a2\u0486\3\2\2\2") - buf.write("\u00a4\u0498\3\2\2\2\u00a6\u049d\3\2\2\2\u00a8\u04a5\3") - buf.write("\2\2\2\u00aa\u04b8\3\2\2\2\u00ac\u04bd\3\2\2\2\u00ae\u04c8") - buf.write("\3\2\2\2\u00b0\u04cb\3\2\2\2\u00b2\u04d5\3\2\2\2\u00b4") - buf.write("\u04d9\3\2\2\2\u00b6\u04db\3\2\2\2\u00b8\u04dd\3\2\2\2") - buf.write("\u00ba\u04e3\3\2\2\2\u00bc\u04f0\3\2\2\2\u00be\u04f3\3") - buf.write("\2\2\2\u00c0\u04fc\3\2\2\2\u00c2\u04fe\3\2\2\2\u00c4\u0535") - buf.write("\3\2\2\2\u00c6\u053a\3\2\2\2\u00c8\u0544\3\2\2\2\u00ca") - buf.write("\u0550\3\2\2\2\u00cc\u055b\3\2\2\2\u00ce\u0569\3\2\2\2") - buf.write("\u00d0\u056b\3\2\2\2\u00d2\u0574\3\2\2\2\u00d4\u0579\3") - buf.write("\2\2\2\u00d6\u058d\3\2\2\2\u00d8\u058f\3\2\2\2\u00da\u0592") - buf.write("\3\2\2\2\u00dc\u05a0\3\2\2\2\u00de\u05a5\3\2\2\2\u00e0") - buf.write("\u05b0\3\2\2\2\u00e2\u05b5\3\2\2\2\u00e4\u05c2\3\2\2\2") - buf.write("\u00e6\u05c7\3\2\2\2\u00e8\u05cf\3\2\2\2\u00ea\u05dd\3") - buf.write("\2\2\2\u00ec\u05e2\3\2\2\2\u00ee\u05f4\3\2\2\2\u00f0\u05f6") - buf.write("\3\2\2\2\u00f2\u05fc\3\2\2\2\u00f4\u05fe\3\2\2\2\u00f6") - buf.write("\u0606\3\2\2\2\u00f8\u060e\3\2\2\2\u00fa\u0615\3\2\2\2") - buf.write("\u00fc\u0617\3\2\2\2\u00fe\u0620\3\2\2\2\u0100\u0628\3") - buf.write("\2\2\2\u0102\u062b\3\2\2\2\u0104\u0631\3\2\2\2\u0106\u063a") - buf.write("\3\2\2\2\u0108\u0642\3\2\2\2\u010a\u0649\3\2\2\2\u010c") - buf.write("\u0650\3\2\2\2\u010e\u0652\3\2\2\2\u0110\u0658\3\2\2\2") - buf.write("\u0112\u0664\3\2\2\2\u0114\u066b\3\2\2\2\u0116\u0679\3") - buf.write("\2\2\2\u0118\u067b\3\2\2\2\u011a\u067d\3\2\2\2\u011c\u0681") - buf.write("\3\2\2\2\u011e\u0685\3\2\2\2\u0120\u068f\3\2\2\2\u0122") - buf.write("\u0691\3\2\2\2\u0124\u0697\3\2\2\2\u0126\u069f\3\2\2\2") - buf.write("\u0128\u06b1\3\2\2\2\u012a\u06b3\3\2\2\2\u012c\u06b9\3") - buf.write("\2\2\2\u012e\u06c8\3\2\2\2\u0130\u06cc\3\2\2\2\u0132\u06da") - buf.write("\3\2\2\2\u0134\u06dc\3\2\2\2\u0136\u06de\3\2\2\2\u0138") - buf.write("\u06e4\3\2\2\2\u013a\u06ea\3\2\2\2\u013c\u06f4\3\2\2\2") - buf.write("\u013e\u06f8\3\2\2\2\u0140\u06fa\3\2\2\2\u0142\u070a\3") - buf.write("\2\2\2\u0144\u071c\3\2\2\2\u0146\u071e\3\2\2\2\u0148\u0720") - buf.write("\3\2\2\2\u014a\u0728\3\2\2\2\u014c\u0737\3\2\2\2\u014e") - buf.write("\u0746\3\2\2\2\u0150\u074c\3\2\2\2\u0152\u0752\3\2\2\2") - buf.write("\u0154\u0758\3\2\2\2\u0156\u075c\3\2\2\2\u0158\u076e\3") - buf.write("\2\2\2\u015a\u0771\3\2\2\2\u015c\u0775\3\2\2\2\u015e\u077e") - buf.write("\3\2\2\2\u0160\u0784\3\2\2\2\u0162\u078c\3\2\2\2\u0164") - buf.write("\u078f\3\2\2\2\u0166\u0798\3\2\2\2\u0168\u079f\3\2\2\2") - buf.write("\u016a\u07b3\3\2\2\2\u016c\u07b7\3\2\2\2\u016e\u07bb\3") - buf.write("\2\2\2\u0170\u07d3\3\2\2\2\u0172\u07d5\3\2\2\2\u0174\u07f3") - buf.write("\3\2\2\2\u0176\u07fa\3\2\2\2\u0178\u07fc\3\2\2\2\u017a") - buf.write("\u0802\3\2\2\2\u017c\u082c\3\2\2\2\u017e\u082e\3\2\2\2") - buf.write("\u0180\u0857\3\2\2\2\u0182\u086a\3\2\2\2\u0184\u08bf\3") - buf.write("\2\2\2\u0186\u08c1\3\2\2\2\u0188\u0913\3\2\2\2\u018a\u0918") - buf.write("\3\2\2\2\u018c\u0927\3\2\2\2\u018e\u0929\3\2\2\2\u0190") - buf.write("\u0935\3\2\2\2\u0192\u0941\3\2\2\2\u0194\u094d\3\2\2\2") - buf.write("\u0196\u0966\3\2\2\2\u0198\u09b7\3\2\2\2\u019a\u09b9\3") - buf.write("\2\2\2\u019c\u09fd\3\2\2\2\u019e\u09ff\3\2\2\2\u01a0\u0a36") - buf.write("\3\2\2\2\u01a2\u0a38\3\2\2\2\u01a4\u0a66\3\2\2\2\u01a6") - buf.write("\u0a7e\3\2\2\2\u01a8\u0a81\3\2\2\2\u01aa\u0a88\3\2\2\2") - buf.write("\u01ac\u0a8f\3\2\2\2\u01ae\u0a93\3\2\2\2\u01b0\u0a95\3") - buf.write("\2\2\2\u01b2\u0aa3\3\2\2\2\u01b4\u0aa5\3\2\2\2\u01b6\u0aaf") - buf.write("\3\2\2\2\u01b8\u0ab3\3\2\2\2\u01ba\u0ab5\3\2\2\2\u01bc") - buf.write("\u0abc\3\2\2\2\u01be\u0abe\3\2\2\2\u01c0\u0ac9\3\2\2\2") - buf.write("\u01c2\u0acb\3\2\2\2\u01c4\u0ad6\3\2\2\2\u01c6\u0ae1\3") - buf.write("\2\2\2\u01c8\u0aec\3\2\2\2\u01ca\u0af7\3\2\2\2\u01cc\u0b02") - buf.write("\3\2\2\2\u01ce\u0b10\3\2\2\2\u01d0\u0b27\3\2\2\2\u01d2") - buf.write("\u0b3c\3\2\2\2\u01d4\u0b4a\3\2\2\2\u01d6\u0b62\3\2\2\2") - buf.write("\u01d8\u0b64\3\2\2\2\u01da\u0b67\3\2\2\2\u01dc\u0b70\3") - buf.write("\2\2\2\u01de\u0b74\3\2\2\2\u01e0\u0b7d\3\2\2\2\u01e2\u0b80") - buf.write("\3\2\2\2\u01e4\u0b82\3\2\2\2\u01e6\u0b85\3\2\2\2\u01e8") - buf.write("\u0ba2\3\2\2\2\u01ea\u0ba4\3\2\2\2\u01ec\u01ed\t\2\2\2") - buf.write("\u01ed\3\3\2\2\2\u01ee\u01f0\5\u00f2z\2\u01ef\u01ee\3") - buf.write("\2\2\2\u01f0\u01f3\3\2\2\2\u01f1\u01ef\3\2\2\2\u01f1\u01f2") - buf.write("\3\2\2\2\u01f2\u01f4\3\2\2\2\u01f3\u01f1\3\2\2\2\u01f4") - buf.write("\u01fd\5\6\4\2\u01f5\u01f7\5\u00f2z\2\u01f6\u01f5\3\2") - buf.write("\2\2\u01f7\u01fa\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f8\u01f9") - buf.write("\3\2\2\2\u01f9\u01fb\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fb") - buf.write("\u01fd\7\5\2\2\u01fc\u01f1\3\2\2\2\u01fc\u01f8\3\2\2\2") - buf.write("\u01fd\5\3\2\2\2\u01fe\u0201\5\b\5\2\u01ff\u0201\5\n\6") - buf.write("\2\u0200\u01fe\3\2\2\2\u0200\u01ff\3\2\2\2\u0201\7\3\2") - buf.write("\2\2\u0202\u0203\t\3\2\2\u0203\t\3\2\2\2\u0204\u0205\t") - buf.write("\4\2\2\u0205\13\3\2\2\2\u0206\u020a\5\16\b\2\u0207\u020a") - buf.write("\5\34\17\2\u0208\u020a\5\36\20\2\u0209\u0206\3\2\2\2\u0209") - buf.write("\u0207\3\2\2\2\u0209\u0208\3\2\2\2\u020a\r\3\2\2\2\u020b") - buf.write("\u020e\5\24\13\2\u020c\u020e\5\32\16\2\u020d\u020b\3\2") - buf.write("\2\2\u020d\u020c\3\2\2\2\u020e\u0213\3\2\2\2\u020f\u0212") - buf.write("\5\22\n\2\u0210\u0212\5\30\r\2\u0211\u020f\3\2\2\2\u0211") - buf.write("\u0210\3\2\2\2\u0212\u0215\3\2\2\2\u0213\u0211\3\2\2\2") - buf.write("\u0213\u0214\3\2\2\2\u0214\17\3\2\2\2\u0215\u0213\3\2") - buf.write("\2\2\u0216\u0218\5\u00f2z\2\u0217\u0216\3\2\2\2\u0218") - buf.write("\u021b\3\2\2\2\u0219\u0217\3\2\2\2\u0219\u021a\3\2\2\2") - buf.write("\u021a\u021c\3\2\2\2\u021b\u0219\3\2\2\2\u021c\u021e\5") - buf.write("\u01ea\u00f6\2\u021d\u021f\5*\26\2\u021e\u021d\3\2\2\2") - buf.write("\u021e\u021f\3\2\2\2\u021f\u022d\3\2\2\2\u0220\u0221\5") - buf.write("\16\b\2\u0221\u0225\7N\2\2\u0222\u0224\5\u00f2z\2\u0223") - buf.write("\u0222\3\2\2\2\u0224\u0227\3\2\2\2\u0225\u0223\3\2\2\2") - buf.write("\u0225\u0226\3\2\2\2\u0226\u0228\3\2\2\2\u0227\u0225\3") - buf.write("\2\2\2\u0228\u022a\5\u01ea\u00f6\2\u0229\u022b\5*\26\2") - buf.write("\u022a\u0229\3\2\2\2\u022a\u022b\3\2\2\2\u022b\u022d\3") - buf.write("\2\2\2\u022c\u0219\3\2\2\2\u022c\u0220\3\2\2\2\u022d\21") - buf.write("\3\2\2\2\u022e\u0232\7N\2\2\u022f\u0231\5\u00f2z\2\u0230") - buf.write("\u022f\3\2\2\2\u0231\u0234\3\2\2\2\u0232\u0230\3\2\2\2") - buf.write("\u0232\u0233\3\2\2\2\u0233\u0235\3\2\2\2\u0234\u0232\3") - buf.write("\2\2\2\u0235\u0237\5\u01ea\u00f6\2\u0236\u0238\5*\26\2") - buf.write("\u0237\u0236\3\2\2\2\u0237\u0238\3\2\2\2\u0238\23\3\2") - buf.write("\2\2\u0239\u023b\5\u00f2z\2\u023a\u0239\3\2\2\2\u023b") - buf.write("\u023e\3\2\2\2\u023c\u023a\3\2\2\2\u023c\u023d\3\2\2\2") - buf.write("\u023d\u023f\3\2\2\2\u023e\u023c\3\2\2\2\u023f\u0241\5") - buf.write("\u01ea\u00f6\2\u0240\u0242\5*\26\2\u0241\u0240\3\2\2\2") - buf.write("\u0241\u0242\3\2\2\2\u0242\25\3\2\2\2\u0243\u0244\5\20") - buf.write("\t\2\u0244\27\3\2\2\2\u0245\u0246\5\22\n\2\u0246\31\3") - buf.write("\2\2\2\u0247\u0248\5\24\13\2\u0248\33\3\2\2\2\u0249\u024b") - buf.write("\5\u00f2z\2\u024a\u0249\3\2\2\2\u024b\u024e\3\2\2\2\u024c") - buf.write("\u024a\3\2\2\2\u024c\u024d\3\2\2\2\u024d\u024f\3\2\2\2") - buf.write("\u024e\u024c\3\2\2\2\u024f\u0250\5\u01ea\u00f6\2\u0250") - buf.write("\35\3\2\2\2\u0251\u0252\5\4\3\2\u0252\u0253\5 \21\2\u0253") - buf.write("\u025b\3\2\2\2\u0254\u0255\5\16\b\2\u0255\u0256\5 \21") - buf.write("\2\u0256\u025b\3\2\2\2\u0257\u0258\5\34\17\2\u0258\u0259") - buf.write("\5 \21\2\u0259\u025b\3\2\2\2\u025a\u0251\3\2\2\2\u025a") - buf.write("\u0254\3\2\2\2\u025a\u0257\3\2\2\2\u025b\37\3\2\2\2\u025c") - buf.write("\u025e\5\u00f2z\2\u025d\u025c\3\2\2\2\u025e\u0261\3\2") - buf.write("\2\2\u025f\u025d\3\2\2\2\u025f\u0260\3\2\2\2\u0260\u0262") - buf.write("\3\2\2\2\u0261\u025f\3\2\2\2\u0262\u0263\7J\2\2\u0263") - buf.write("\u026e\7K\2\2\u0264\u0266\5\u00f2z\2\u0265\u0264\3\2\2") - buf.write("\2\u0266\u0269\3\2\2\2\u0267\u0265\3\2\2\2\u0267\u0268") - buf.write("\3\2\2\2\u0268\u026a\3\2\2\2\u0269\u0267\3\2\2\2\u026a") - buf.write("\u026b\7J\2\2\u026b\u026d\7K\2\2\u026c\u0267\3\2\2\2\u026d") - buf.write("\u0270\3\2\2\2\u026e\u026c\3\2\2\2\u026e\u026f\3\2\2\2") - buf.write("\u026f!\3\2\2\2\u0270\u026e\3\2\2\2\u0271\u0273\5$\23") - buf.write("\2\u0272\u0271\3\2\2\2\u0273\u0276\3\2\2\2\u0274\u0272") - buf.write("\3\2\2\2\u0274\u0275\3\2\2\2\u0275\u0277\3\2\2\2\u0276") - buf.write("\u0274\3\2\2\2\u0277\u0279\5\u01ea\u00f6\2\u0278\u027a") - buf.write("\5&\24\2\u0279\u0278\3\2\2\2\u0279\u027a\3\2\2\2\u027a") - buf.write("#\3\2\2\2\u027b\u027c\5\u00f2z\2\u027c%\3\2\2\2\u027d") - buf.write("\u027e\7\24\2\2\u027e\u0288\5\34\17\2\u027f\u0280\7\24") - buf.write("\2\2\u0280\u0284\5\16\b\2\u0281\u0283\5(\25\2\u0282\u0281") - buf.write("\3\2\2\2\u0283\u0286\3\2\2\2\u0284\u0282\3\2\2\2\u0284") - buf.write("\u0285\3\2\2\2\u0285\u0288\3\2\2\2\u0286\u0284\3\2\2\2") - buf.write("\u0287\u027d\3\2\2\2\u0287\u027f\3\2\2\2\u0288\'\3\2\2") - buf.write("\2\u0289\u028a\7f\2\2\u028a\u028b\5\26\f\2\u028b)\3\2") - buf.write("\2\2\u028c\u028d\7T\2\2\u028d\u028e\5,\27\2\u028e\u028f") - buf.write("\7S\2\2\u028f+\3\2\2\2\u0290\u0295\5.\30\2\u0291\u0292") - buf.write("\7M\2\2\u0292\u0294\5.\30\2\u0293\u0291\3\2\2\2\u0294") - buf.write("\u0297\3\2\2\2\u0295\u0293\3\2\2\2\u0295\u0296\3\2\2\2") - buf.write("\u0296-\3\2\2\2\u0297\u0295\3\2\2\2\u0298\u029b\5\f\7") - buf.write("\2\u0299\u029b\5\60\31\2\u029a\u0298\3\2\2\2\u029a\u0299") - buf.write("\3\2\2\2\u029b/\3\2\2\2\u029c\u029e\5\u00f2z\2\u029d\u029c") - buf.write("\3\2\2\2\u029e\u02a1\3\2\2\2\u029f\u029d\3\2\2\2\u029f") - buf.write("\u02a0\3\2\2\2\u02a0\u02a2\3\2\2\2\u02a1\u029f\3\2\2\2") - buf.write("\u02a2\u02a4\7W\2\2\u02a3\u02a5\5\62\32\2\u02a4\u02a3") - buf.write("\3\2\2\2\u02a4\u02a5\3\2\2\2\u02a5\61\3\2\2\2\u02a6\u02a7") - buf.write("\7\24\2\2\u02a7\u02ab\5\f\7\2\u02a8\u02a9\7\60\2\2\u02a9") - buf.write("\u02ab\5\f\7\2\u02aa\u02a6\3\2\2\2\u02aa\u02a8\3\2\2\2") - buf.write("\u02ab\63\3\2\2\2\u02ac\u02ad\b\33\1\2\u02ad\u02ae\5\u01ea") - buf.write("\u00f6\2\u02ae\u02b4\3\2\2\2\u02af\u02b0\f\3\2\2\u02b0") - buf.write("\u02b1\7N\2\2\u02b1\u02b3\5\u01ea\u00f6\2\u02b2\u02af") - buf.write("\3\2\2\2\u02b3\u02b6\3\2\2\2\u02b4\u02b2\3\2\2\2\u02b4") - buf.write("\u02b5\3\2\2\2\u02b5\65\3\2\2\2\u02b6\u02b4\3\2\2\2\u02b7") - buf.write("\u02b8\b\34\1\2\u02b8\u02b9\5\u01ea\u00f6\2\u02b9\u02bf") - buf.write("\3\2\2\2\u02ba\u02bb\f\3\2\2\u02bb\u02bc\7N\2\2\u02bc") - buf.write("\u02be\5\u01ea\u00f6\2\u02bd\u02ba\3\2\2\2\u02be\u02c1") - buf.write("\3\2\2\2\u02bf\u02bd\3\2\2\2\u02bf\u02c0\3\2\2\2\u02c0") - buf.write("\67\3\2\2\2\u02c1\u02bf\3\2\2\2\u02c2\u02c8\5\u01ea\u00f6") - buf.write("\2\u02c3\u02c4\5:\36\2\u02c4\u02c5\7N\2\2\u02c5\u02c6") - buf.write("\5\u01ea\u00f6\2\u02c6\u02c8\3\2\2\2\u02c7\u02c2\3\2\2") - buf.write("\2\u02c7\u02c3\3\2\2\2\u02c89\3\2\2\2\u02c9\u02ca\b\36") - buf.write("\1\2\u02ca\u02cb\5\u01ea\u00f6\2\u02cb\u02d1\3\2\2\2\u02cc") - buf.write("\u02cd\f\3\2\2\u02cd\u02ce\7N\2\2\u02ce\u02d0\5\u01ea") - buf.write("\u00f6\2\u02cf\u02cc\3\2\2\2\u02d0\u02d3\3\2\2\2\u02d1") - buf.write("\u02cf\3\2\2\2\u02d1\u02d2\3\2\2\2\u02d2;\3\2\2\2\u02d3") - buf.write("\u02d1\3\2\2\2\u02d4\u02da\5\u01ea\u00f6\2\u02d5\u02d6") - buf.write("\5@!\2\u02d6\u02d7\7N\2\2\u02d7\u02d8\5\u01ea\u00f6\2") - buf.write("\u02d8\u02da\3\2\2\2\u02d9\u02d4\3\2\2\2\u02d9\u02d5\3") - buf.write("\2\2\2\u02da=\3\2\2\2\u02db\u02dc\5\u01ea\u00f6\2\u02dc") - buf.write("?\3\2\2\2\u02dd\u02de\b!\1\2\u02de\u02df\5\u01ea\u00f6") - buf.write("\2\u02df\u02e5\3\2\2\2\u02e0\u02e1\f\3\2\2\u02e1\u02e2") - buf.write("\7N\2\2\u02e2\u02e4\5\u01ea\u00f6\2\u02e3\u02e0\3\2\2") - buf.write("\2\u02e4\u02e7\3\2\2\2\u02e5\u02e3\3\2\2\2\u02e5\u02e6") - buf.write("\3\2\2\2\u02e6A\3\2\2\2\u02e7\u02e5\3\2\2\2\u02e8\u02eb") - buf.write("\5D#\2\u02e9\u02eb\5F$\2\u02ea\u02e8\3\2\2\2\u02ea\u02e9") - buf.write("\3\2\2\2\u02ebC\3\2\2\2\u02ec\u02ee\5H%\2\u02ed\u02ec") - buf.write("\3\2\2\2\u02ed\u02ee\3\2\2\2\u02ee\u02f2\3\2\2\2\u02ef") - buf.write("\u02f1\5L\'\2\u02f0\u02ef\3\2\2\2\u02f1\u02f4\3\2\2\2") - buf.write("\u02f2\u02f0\3\2\2\2\u02f2\u02f3\3\2\2\2\u02f3\u02f8\3") - buf.write("\2\2\2\u02f4\u02f2\3\2\2\2\u02f5\u02f7\5V,\2\u02f6\u02f5") - buf.write("\3\2\2\2\u02f7\u02fa\3\2\2\2\u02f8\u02f6\3\2\2\2\u02f8") - buf.write("\u02f9\3\2\2\2\u02f9\u02fb\3\2\2\2\u02fa\u02f8\3\2\2\2") - buf.write("\u02fb\u02fc\7\2\2\3\u02fcE\3\2\2\2\u02fd\u02ff\5L\'\2") - buf.write("\u02fe\u02fd\3\2\2\2\u02ff\u0302\3\2\2\2\u0300\u02fe\3") - buf.write("\2\2\2\u0300\u0301\3\2\2\2\u0301\u0303\3\2\2\2\u0302\u0300") - buf.write("\3\2\2\2\u0303\u0304\5X-\2\u0304G\3\2\2\2\u0305\u0307") - buf.write("\5J&\2\u0306\u0305\3\2\2\2\u0307\u030a\3\2\2\2\u0308\u0306") - buf.write("\3\2\2\2\u0308\u0309\3\2\2\2\u0309\u030b\3\2\2\2\u030a") - buf.write("\u0308\3\2\2\2\u030b\u030c\7&\2\2\u030c\u030d\5\66\34") - buf.write("\2\u030d\u030e\7L\2\2\u030eI\3\2\2\2\u030f\u0310\5\u00f2") - buf.write("z\2\u0310K\3\2\2\2\u0311\u0316\5N(\2\u0312\u0316\5P)\2") - buf.write("\u0313\u0316\5R*\2\u0314\u0316\5T+\2\u0315\u0311\3\2\2") - buf.write("\2\u0315\u0312\3\2\2\2\u0315\u0313\3\2\2\2\u0315\u0314") - buf.write("\3\2\2\2\u0316M\3\2\2\2\u0317\u0318\7\34\2\2\u0318\u0319") - buf.write("\58\35\2\u0319\u031a\7L\2\2\u031aO\3\2\2\2\u031b\u031c") - buf.write("\7\34\2\2\u031c\u031d\5:\36\2\u031d\u031e\7N\2\2\u031e") - buf.write("\u031f\7d\2\2\u031f\u0320\7L\2\2\u0320Q\3\2\2\2\u0321") - buf.write("\u0322\7\34\2\2\u0322\u0323\7.\2\2\u0323\u0324\58\35\2") - buf.write("\u0324\u0325\7N\2\2\u0325\u0326\5\u01ea\u00f6\2\u0326") - buf.write("\u0327\7L\2\2\u0327S\3\2\2\2\u0328\u0329\7\34\2\2\u0329") - buf.write("\u032a\7.\2\2\u032a\u032b\58\35\2\u032b\u032c\7N\2\2\u032c") - buf.write("\u032d\7d\2\2\u032d\u032e\7L\2\2\u032eU\3\2\2\2\u032f") - buf.write("\u0333\5^\60\2\u0330\u0333\5\u00d2j\2\u0331\u0333\7L\2") - buf.write("\2\u0332\u032f\3\2\2\2\u0332\u0330\3\2\2\2\u0332\u0331") - buf.write("\3\2\2\2\u0333W\3\2\2\2\u0334\u0336\5\u00f2z\2\u0335\u0334") - buf.write("\3\2\2\2\u0336\u0339\3\2\2\2\u0337\u0335\3\2\2\2\u0337") - buf.write("\u0338\3\2\2\2\u0338\u033b\3\2\2\2\u0339\u0337\3\2\2\2") - buf.write("\u033a\u033c\7$\2\2\u033b\u033a\3\2\2\2\u033b\u033c\3") - buf.write("\2\2\2\u033c\u033d\3\2\2\2\u033d\u033e\7!\2\2\u033e\u033f") - buf.write("\5\64\33\2\u033f\u0343\7H\2\2\u0340\u0342\5Z.\2\u0341") - buf.write("\u0340\3\2\2\2\u0342\u0345\3\2\2\2\u0343\u0341\3\2\2\2") - buf.write("\u0343\u0344\3\2\2\2\u0344\u0346\3\2\2\2\u0345\u0343\3") - buf.write("\2\2\2\u0346\u0347\7I\2\2\u0347Y\3\2\2\2\u0348\u034c\7") - buf.write("+\2\2\u0349\u034b\5\\/\2\u034a\u0349\3\2\2\2\u034b\u034e") - buf.write("\3\2\2\2\u034c\u034a\3\2\2\2\u034c\u034d\3\2\2\2\u034d") - buf.write("\u034f\3\2\2\2\u034e\u034c\3\2\2\2\u034f\u0350\5\64\33") - buf.write("\2\u0350\u0351\7L\2\2\u0351\u0382\3\2\2\2\u0352\u0353") - buf.write("\7\23\2\2\u0353\u035d\5\66\34\2\u0354\u0355\7\66\2\2\u0355") - buf.write("\u035a\5\64\33\2\u0356\u0357\7M\2\2\u0357\u0359\5\64\33") - buf.write("\2\u0358\u0356\3\2\2\2\u0359\u035c\3\2\2\2\u035a\u0358") - buf.write("\3\2\2\2\u035a\u035b\3\2\2\2\u035b\u035e\3\2\2\2\u035c") - buf.write("\u035a\3\2\2\2\u035d\u0354\3\2\2\2\u035d\u035e\3\2\2\2") - buf.write("\u035e\u035f\3\2\2\2\u035f\u0360\7L\2\2\u0360\u0382\3") - buf.write("\2\2\2\u0361\u0362\7%\2\2\u0362\u036c\5\66\34\2\u0363") - buf.write("\u0364\7\66\2\2\u0364\u0369\5\64\33\2\u0365\u0366\7M\2") - buf.write("\2\u0366\u0368\5\64\33\2\u0367\u0365\3\2\2\2\u0368\u036b") - buf.write("\3\2\2\2\u0369\u0367\3\2\2\2\u0369\u036a\3\2\2\2\u036a") - buf.write("\u036d\3\2\2\2\u036b\u0369\3\2\2\2\u036c\u0363\3\2\2\2") - buf.write("\u036c\u036d\3\2\2\2\u036d\u036e\3\2\2\2\u036e\u036f\7") - buf.write("L\2\2\u036f\u0382\3\2\2\2\u0370\u0371\7:\2\2\u0371\u0372") - buf.write("\58\35\2\u0372\u0373\7L\2\2\u0373\u0382\3\2\2\2\u0374") - buf.write("\u0375\7)\2\2\u0375\u0376\58\35\2\u0376\u0377\7>\2\2\u0377") - buf.write("\u037c\58\35\2\u0378\u0379\7M\2\2\u0379\u037b\58\35\2") - buf.write("\u037a\u0378\3\2\2\2\u037b\u037e\3\2\2\2\u037c\u037a\3") - buf.write("\2\2\2\u037c\u037d\3\2\2\2\u037d\u037f\3\2\2\2\u037e\u037c") - buf.write("\3\2\2\2\u037f\u0380\7L\2\2\u0380\u0382\3\2\2\2\u0381") - buf.write("\u0348\3\2\2\2\u0381\u0352\3\2\2\2\u0381\u0361\3\2\2\2") - buf.write("\u0381\u0370\3\2\2\2\u0381\u0374\3\2\2\2\u0382[\3\2\2") - buf.write("\2\u0383\u0384\t\5\2\2\u0384]\3\2\2\2\u0385\u0388\5`\61") - buf.write("\2\u0386\u0388\5\u00c6d\2\u0387\u0385\3\2\2\2\u0387\u0386") - buf.write("\3\2\2\2\u0388_\3\2\2\2\u0389\u038b\5b\62\2\u038a\u0389") - buf.write("\3\2\2\2\u038b\u038e\3\2\2\2\u038c\u038a\3\2\2\2\u038c") - buf.write("\u038d\3\2\2\2\u038d\u038f\3\2\2\2\u038e\u038c\3\2\2\2") - buf.write("\u038f\u0390\7\13\2\2\u0390\u0392\5\u01ea\u00f6\2\u0391") - buf.write("\u0393\5d\63\2\u0392\u0391\3\2\2\2\u0392\u0393\3\2\2\2") - buf.write("\u0393\u0395\3\2\2\2\u0394\u0396\5h\65\2\u0395\u0394\3") - buf.write("\2\2\2\u0395\u0396\3\2\2\2\u0396\u0398\3\2\2\2\u0397\u0399") - buf.write("\5j\66\2\u0398\u0397\3\2\2\2\u0398\u0399\3\2\2\2\u0399") - buf.write("\u039a\3\2\2\2\u039a\u039b\5n8\2\u039ba\3\2\2\2\u039c") - buf.write("\u03a5\5\u00f2z\2\u039d\u03a5\7*\2\2\u039e\u03a5\7(\2") - buf.write("\2\u039f\u03a5\7\'\2\2\u03a0\u03a5\7\3\2\2\u03a1\u03a5") - buf.write("\7.\2\2\u03a2\u03a5\7\25\2\2\u03a3\u03a5\7/\2\2\u03a4") - buf.write("\u039c\3\2\2\2\u03a4\u039d\3\2\2\2\u03a4\u039e\3\2\2\2") - buf.write("\u03a4\u039f\3\2\2\2\u03a4\u03a0\3\2\2\2\u03a4\u03a1\3") - buf.write("\2\2\2\u03a4\u03a2\3\2\2\2\u03a4\u03a3\3\2\2\2\u03a5c") - buf.write("\3\2\2\2\u03a6\u03a7\7T\2\2\u03a7\u03a8\5f\64\2\u03a8") - buf.write("\u03a9\7S\2\2\u03a9e\3\2\2\2\u03aa\u03af\5\"\22\2\u03ab") - buf.write("\u03ac\7M\2\2\u03ac\u03ae\5\"\22\2\u03ad\u03ab\3\2\2\2") - buf.write("\u03ae\u03b1\3\2\2\2\u03af\u03ad\3\2\2\2\u03af\u03b0\3") - buf.write("\2\2\2\u03b0g\3\2\2\2\u03b1\u03af\3\2\2\2\u03b2\u03b3") - buf.write("\7\24\2\2\u03b3\u03b4\5\20\t\2\u03b4i\3\2\2\2\u03b5\u03b6") - buf.write("\7\33\2\2\u03b6\u03b7\5l\67\2\u03b7k\3\2\2\2\u03b8\u03bd") - buf.write("\5\26\f\2\u03b9\u03ba\7M\2\2\u03ba\u03bc\5\26\f\2\u03bb") - buf.write("\u03b9\3\2\2\2\u03bc\u03bf\3\2\2\2\u03bd\u03bb\3\2\2\2") - buf.write("\u03bd\u03be\3\2\2\2\u03bem\3\2\2\2\u03bf\u03bd\3\2\2") - buf.write("\2\u03c0\u03c4\7H\2\2\u03c1\u03c3\5p9\2\u03c2\u03c1\3") - buf.write("\2\2\2\u03c3\u03c6\3\2\2\2\u03c4\u03c2\3\2\2\2\u03c4\u03c5") - buf.write("\3\2\2\2\u03c5\u03c7\3\2\2\2\u03c6\u03c4\3\2\2\2\u03c7") - buf.write("\u03c8\7I\2\2\u03c8o\3\2\2\2\u03c9\u03ce\5r:\2\u03ca\u03ce") - buf.write("\5\u00b6\\\2\u03cb\u03ce\5\u00b8]\2\u03cc\u03ce\5\u00ba") - buf.write("^\2\u03cd\u03c9\3\2\2\2\u03cd\u03ca\3\2\2\2\u03cd\u03cb") - buf.write("\3\2\2\2\u03cd\u03cc\3\2\2\2\u03ceq\3\2\2\2\u03cf\u03d5") - buf.write("\5t;\2\u03d0\u03d5\5\u0098M\2\u03d1\u03d5\5^\60\2\u03d2") - buf.write("\u03d5\5\u00d2j\2\u03d3\u03d5\7L\2\2\u03d4\u03cf\3\2\2") - buf.write("\2\u03d4\u03d0\3\2\2\2\u03d4\u03d1\3\2\2\2\u03d4\u03d2") - buf.write("\3\2\2\2\u03d4\u03d3\3\2\2\2\u03d5s\3\2\2\2\u03d6\u03d8") - buf.write("\5v<\2\u03d7\u03d6\3\2\2\2\u03d8\u03db\3\2\2\2\u03d9\u03d7") - buf.write("\3\2\2\2\u03d9\u03da\3\2\2\2\u03da\u03dc\3\2\2\2\u03db") - buf.write("\u03d9\3\2\2\2\u03dc\u03dd\5\u0080A\2\u03dd\u03de\5x=") - buf.write("\2\u03de\u03df\7L\2\2\u03dfu\3\2\2\2\u03e0\u03e9\5\u00f2") - buf.write("z\2\u03e1\u03e9\7*\2\2\u03e2\u03e9\7(\2\2\u03e3\u03e9") - buf.write("\7\'\2\2\u03e4\u03e9\7.\2\2\u03e5\u03e9\7\25\2\2\u03e6") - buf.write("\u03e9\7\67\2\2\u03e7\u03e9\7<\2\2\u03e8\u03e0\3\2\2\2") - buf.write("\u03e8\u03e1\3\2\2\2\u03e8\u03e2\3\2\2\2\u03e8\u03e3\3") - buf.write("\2\2\2\u03e8\u03e4\3\2\2\2\u03e8\u03e5\3\2\2\2\u03e8\u03e6") - buf.write("\3\2\2\2\u03e8\u03e7\3\2\2\2\u03e9w\3\2\2\2\u03ea\u03ef") - buf.write("\5z>\2\u03eb\u03ec\7M\2\2\u03ec\u03ee\5z>\2\u03ed\u03eb") - buf.write("\3\2\2\2\u03ee\u03f1\3\2\2\2\u03ef\u03ed\3\2\2\2\u03ef") - buf.write("\u03f0\3\2\2\2\u03f0y\3\2\2\2\u03f1\u03ef\3\2\2\2\u03f2") - buf.write("\u03f5\5|?\2\u03f3\u03f4\7R\2\2\u03f4\u03f6\5~@\2\u03f5") - buf.write("\u03f3\3\2\2\2\u03f5\u03f6\3\2\2\2\u03f6{\3\2\2\2\u03f7") - buf.write("\u03f9\5\u01ea\u00f6\2\u03f8\u03fa\5 \21\2\u03f9\u03f8") - buf.write("\3\2\2\2\u03f9\u03fa\3\2\2\2\u03fa}\3\2\2\2\u03fb\u03fe") - buf.write("\5\u01ae\u00d8\2\u03fc\u03fe\5\u0104\u0083\2\u03fd\u03fb") - buf.write("\3\2\2\2\u03fd\u03fc\3\2\2\2\u03fe\177\3\2\2\2\u03ff\u0402") - buf.write("\5\u0082B\2\u0400\u0402\5\u0084C\2\u0401\u03ff\3\2\2\2") - buf.write("\u0401\u0400\3\2\2\2\u0402\u0081\3\2\2\2\u0403\u0406\5") - buf.write("\6\4\2\u0404\u0406\7\5\2\2\u0405\u0403\3\2\2\2\u0405\u0404") - buf.write("\3\2\2\2\u0406\u0083\3\2\2\2\u0407\u040b\5\u0086D\2\u0408") - buf.write("\u040b\5\u0094K\2\u0409\u040b\5\u0096L\2\u040a\u0407\3") - buf.write("\2\2\2\u040a\u0408\3\2\2\2\u040a\u0409\3\2\2\2\u040b\u0085") - buf.write("\3\2\2\2\u040c\u040f\5\u008cG\2\u040d\u040f\5\u0092J\2") - buf.write("\u040e\u040c\3\2\2\2\u040e\u040d\3\2\2\2\u040f\u0414\3") - buf.write("\2\2\2\u0410\u0413\5\u008aF\2\u0411\u0413\5\u0090I\2\u0412") - buf.write("\u0410\3\2\2\2\u0412\u0411\3\2\2\2\u0413\u0416\3\2\2\2") - buf.write("\u0414\u0412\3\2\2\2\u0414\u0415\3\2\2\2\u0415\u0087\3") - buf.write("\2\2\2\u0416\u0414\3\2\2\2\u0417\u0419\5\u01ea\u00f6\2") - buf.write("\u0418\u041a\5*\26\2\u0419\u0418\3\2\2\2\u0419\u041a\3") - buf.write("\2\2\2\u041a\u0428\3\2\2\2\u041b\u041c\5\u0086D\2\u041c") - buf.write("\u0420\7N\2\2\u041d\u041f\5\u00f2z\2\u041e\u041d\3\2\2") - buf.write("\2\u041f\u0422\3\2\2\2\u0420\u041e\3\2\2\2\u0420\u0421") - buf.write("\3\2\2\2\u0421\u0423\3\2\2\2\u0422\u0420\3\2\2\2\u0423") - buf.write("\u0425\5\u01ea\u00f6\2\u0424\u0426\5*\26\2\u0425\u0424") - buf.write("\3\2\2\2\u0425\u0426\3\2\2\2\u0426\u0428\3\2\2\2\u0427") - buf.write("\u0417\3\2\2\2\u0427\u041b\3\2\2\2\u0428\u0089\3\2\2\2") - buf.write("\u0429\u042d\7N\2\2\u042a\u042c\5\u00f2z\2\u042b\u042a") - buf.write("\3\2\2\2\u042c\u042f\3\2\2\2\u042d\u042b\3\2\2\2\u042d") - buf.write("\u042e\3\2\2\2\u042e\u0430\3\2\2\2\u042f\u042d\3\2\2\2") - buf.write("\u0430\u0432\5\u01ea\u00f6\2\u0431\u0433\5*\26\2\u0432") - buf.write("\u0431\3\2\2\2\u0432\u0433\3\2\2\2\u0433\u008b\3\2\2\2") - buf.write("\u0434\u0436\5\u01ea\u00f6\2\u0435\u0437\5*\26\2\u0436") - buf.write("\u0435\3\2\2\2\u0436\u0437\3\2\2\2\u0437\u008d\3\2\2\2") - buf.write("\u0438\u0439\5\u0088E\2\u0439\u008f\3\2\2\2\u043a\u043b") - buf.write("\5\u008aF\2\u043b\u0091\3\2\2\2\u043c\u043d\5\u008cG\2") - buf.write("\u043d\u0093\3\2\2\2\u043e\u043f\5\u01ea\u00f6\2\u043f") - buf.write("\u0095\3\2\2\2\u0440\u0441\5\u0082B\2\u0441\u0442\5 \21") - buf.write("\2\u0442\u044a\3\2\2\2\u0443\u0444\5\u0086D\2\u0444\u0445") - buf.write("\5 \21\2\u0445\u044a\3\2\2\2\u0446\u0447\5\u0094K\2\u0447") - buf.write("\u0448\5 \21\2\u0448\u044a\3\2\2\2\u0449\u0440\3\2\2\2") - buf.write("\u0449\u0443\3\2\2\2\u0449\u0446\3\2\2\2\u044a\u0097\3") - buf.write("\2\2\2\u044b\u044d\5\u009aN\2\u044c\u044b\3\2\2\2\u044d") - buf.write("\u0450\3\2\2\2\u044e\u044c\3\2\2\2\u044e\u044f\3\2\2\2") - buf.write("\u044f\u0451\3\2\2\2\u0450\u044e\3\2\2\2\u0451\u0452\5") - buf.write("\u009cO\2\u0452\u0453\5\u00b4[\2\u0453\u0099\3\2\2\2\u0454") - buf.write("\u045f\5\u00f2z\2\u0455\u045f\7*\2\2\u0456\u045f\7(\2") - buf.write("\2\u0457\u045f\7\'\2\2\u0458\u045f\7\3\2\2\u0459\u045f") - buf.write("\7.\2\2\u045a\u045f\7\25\2\2\u045b\u045f\7\62\2\2\u045c") - buf.write("\u045f\7\"\2\2\u045d\u045f\7/\2\2\u045e\u0454\3\2\2\2") - buf.write("\u045e\u0455\3\2\2\2\u045e\u0456\3\2\2\2\u045e\u0457\3") - buf.write("\2\2\2\u045e\u0458\3\2\2\2\u045e\u0459\3\2\2\2\u045e\u045a") - buf.write("\3\2\2\2\u045e\u045b\3\2\2\2\u045e\u045c\3\2\2\2\u045e") - buf.write("\u045d\3\2\2\2\u045f\u009b\3\2\2\2\u0460\u0461\5\u009e") - buf.write("P\2\u0461\u0463\5\u00a0Q\2\u0462\u0464\5\u00aeX\2\u0463") - buf.write("\u0462\3\2\2\2\u0463\u0464\3\2\2\2\u0464\u0472\3\2\2\2") - buf.write("\u0465\u0469\5d\63\2\u0466\u0468\5\u00f2z\2\u0467\u0466") - buf.write("\3\2\2\2\u0468\u046b\3\2\2\2\u0469\u0467\3\2\2\2\u0469") - buf.write("\u046a\3\2\2\2\u046a\u046c\3\2\2\2\u046b\u0469\3\2\2\2") - buf.write("\u046c\u046d\5\u009eP\2\u046d\u046f\5\u00a0Q\2\u046e\u0470") - buf.write("\5\u00aeX\2\u046f\u046e\3\2\2\2\u046f\u0470\3\2\2\2\u0470") - buf.write("\u0472\3\2\2\2\u0471\u0460\3\2\2\2\u0471\u0465\3\2\2\2") - buf.write("\u0472\u009d\3\2\2\2\u0473\u0476\5\u0080A\2\u0474\u0476") - buf.write("\7;\2\2\u0475\u0473\3\2\2\2\u0475\u0474\3\2\2\2\u0476") - buf.write("\u009f\3\2\2\2\u0477\u0478\5\u01ea\u00f6\2\u0478\u047a") - buf.write("\7F\2\2\u0479\u047b\5\u00a2R\2\u047a\u0479\3\2\2\2\u047a") - buf.write("\u047b\3\2\2\2\u047b\u047c\3\2\2\2\u047c\u047e\7G\2\2") - buf.write("\u047d\u047f\5 \21\2\u047e\u047d\3\2\2\2\u047e\u047f\3") - buf.write("\2\2\2\u047f\u00a1\3\2\2\2\u0480\u0481\5\u00a4S\2\u0481") - buf.write("\u0482\7M\2\2\u0482\u0483\5\u00aaV\2\u0483\u0487\3\2\2") - buf.write("\2\u0484\u0487\5\u00aaV\2\u0485\u0487\5\u00acW\2\u0486") - buf.write("\u0480\3\2\2\2\u0486\u0484\3\2\2\2\u0486\u0485\3\2\2\2") - buf.write("\u0487\u00a3\3\2\2\2\u0488\u048d\5\u00a6T\2\u0489\u048a") - buf.write("\7M\2\2\u048a\u048c\5\u00a6T\2\u048b\u0489\3\2\2\2\u048c") - buf.write("\u048f\3\2\2\2\u048d\u048b\3\2\2\2\u048d\u048e\3\2\2\2") - buf.write("\u048e\u0499\3\2\2\2\u048f\u048d\3\2\2\2\u0490\u0495\5") - buf.write("\u00acW\2\u0491\u0492\7M\2\2\u0492\u0494\5\u00a6T\2\u0493") - buf.write("\u0491\3\2\2\2\u0494\u0497\3\2\2\2\u0495\u0493\3\2\2\2") - buf.write("\u0495\u0496\3\2\2\2\u0496\u0499\3\2\2\2\u0497\u0495\3") - buf.write("\2\2\2\u0498\u0488\3\2\2\2\u0498\u0490\3\2\2\2\u0499\u00a5") - buf.write("\3\2\2\2\u049a\u049c\5\u00a8U\2\u049b\u049a\3\2\2\2\u049c") - buf.write("\u049f\3\2\2\2\u049d\u049b\3\2\2\2\u049d\u049e\3\2\2\2") - buf.write("\u049e\u04a0\3\2\2\2\u049f\u049d\3\2\2\2\u04a0\u04a1\5") - buf.write("\u0080A\2\u04a1\u04a2\5|?\2\u04a2\u00a7\3\2\2\2\u04a3") - buf.write("\u04a6\5\u00f2z\2\u04a4\u04a6\7\25\2\2\u04a5\u04a3\3\2") - buf.write("\2\2\u04a5\u04a4\3\2\2\2\u04a6\u00a9\3\2\2\2\u04a7\u04a9") - buf.write("\5\u00a8U\2\u04a8\u04a7\3\2\2\2\u04a9\u04ac\3\2\2\2\u04aa") - buf.write("\u04a8\3\2\2\2\u04aa\u04ab\3\2\2\2\u04ab\u04ad\3\2\2\2") - buf.write("\u04ac\u04aa\3\2\2\2\u04ad\u04b1\5\u0080A\2\u04ae\u04b0") - buf.write("\5\u00f2z\2\u04af\u04ae\3\2\2\2\u04b0\u04b3\3\2\2\2\u04b1") - buf.write("\u04af\3\2\2\2\u04b1\u04b2\3\2\2\2\u04b2\u04b4\3\2\2\2") - buf.write("\u04b3\u04b1\3\2\2\2\u04b4\u04b5\7O\2\2\u04b5\u04b6\5") - buf.write("|?\2\u04b6\u04b9\3\2\2\2\u04b7\u04b9\5\u00a6T\2\u04b8") - buf.write("\u04aa\3\2\2\2\u04b8\u04b7\3\2\2\2\u04b9\u00ab\3\2\2\2") - buf.write("\u04ba\u04bc\5\u00f2z\2\u04bb\u04ba\3\2\2\2\u04bc\u04bf") - buf.write("\3\2\2\2\u04bd\u04bb\3\2\2\2\u04bd\u04be\3\2\2\2\u04be") - buf.write("\u04c0\3\2\2\2\u04bf\u04bd\3\2\2\2\u04c0\u04c4\5\u0080") - buf.write("A\2\u04c1\u04c2\5\u01ea\u00f6\2\u04c2\u04c3\7N\2\2\u04c3") - buf.write("\u04c5\3\2\2\2\u04c4\u04c1\3\2\2\2\u04c4\u04c5\3\2\2\2") - buf.write("\u04c5\u04c6\3\2\2\2\u04c6\u04c7\7\63\2\2\u04c7\u00ad") - buf.write("\3\2\2\2\u04c8\u04c9\7\65\2\2\u04c9\u04ca\5\u00b0Y\2\u04ca") - buf.write("\u00af\3\2\2\2\u04cb\u04d0\5\u00b2Z\2\u04cc\u04cd\7M\2") - buf.write("\2\u04cd\u04cf\5\u00b2Z\2\u04ce\u04cc\3\2\2\2\u04cf\u04d2") - buf.write("\3\2\2\2\u04d0\u04ce\3\2\2\2\u04d0\u04d1\3\2\2\2\u04d1") - buf.write("\u00b1\3\2\2\2\u04d2\u04d0\3\2\2\2\u04d3\u04d6\5\20\t") - buf.write("\2\u04d4\u04d6\5\34\17\2\u04d5\u04d3\3\2\2\2\u04d5\u04d4") - buf.write("\3\2\2\2\u04d6\u00b3\3\2\2\2\u04d7\u04da\5\u0108\u0085") - buf.write("\2\u04d8\u04da\7L\2\2\u04d9\u04d7\3\2\2\2\u04d9\u04d8") - buf.write("\3\2\2\2\u04da\u00b5\3\2\2\2\u04db\u04dc\5\u0108\u0085") - buf.write("\2\u04dc\u00b7\3\2\2\2\u04dd\u04de\7.\2\2\u04de\u04df") - buf.write("\5\u0108\u0085\2\u04df\u00b9\3\2\2\2\u04e0\u04e2\5\u00bc") - buf.write("_\2\u04e1\u04e0\3\2\2\2\u04e2\u04e5\3\2\2\2\u04e3\u04e1") - buf.write("\3\2\2\2\u04e3\u04e4\3\2\2\2\u04e4\u04e6\3\2\2\2\u04e5") - buf.write("\u04e3\3\2\2\2\u04e6\u04e8\5\u00be`\2\u04e7\u04e9\5\u00ae") - buf.write("X\2\u04e8\u04e7\3\2\2\2\u04e8\u04e9\3\2\2\2\u04e9\u04ea") - buf.write("\3\2\2\2\u04ea\u04eb\5\u00c2b\2\u04eb\u00bb\3\2\2\2\u04ec") - buf.write("\u04f1\5\u00f2z\2\u04ed\u04f1\7*\2\2\u04ee\u04f1\7(\2") - buf.write("\2\u04ef\u04f1\7\'\2\2\u04f0\u04ec\3\2\2\2\u04f0\u04ed") - buf.write("\3\2\2\2\u04f0\u04ee\3\2\2\2\u04f0\u04ef\3\2\2\2\u04f1") - buf.write("\u00bd\3\2\2\2\u04f2\u04f4\5d\63\2\u04f3\u04f2\3\2\2\2") - buf.write("\u04f3\u04f4\3\2\2\2\u04f4\u04f5\3\2\2\2\u04f5\u04f6\5") - buf.write("\u00c0a\2\u04f6\u04f8\7F\2\2\u04f7\u04f9\5\u00a2R\2\u04f8") - buf.write("\u04f7\3\2\2\2\u04f8\u04f9\3\2\2\2\u04f9\u04fa\3\2\2\2") - buf.write("\u04fa\u04fb\7G\2\2\u04fb\u00bf\3\2\2\2\u04fc\u04fd\5") - buf.write("\u01ea\u00f6\2\u04fd\u00c1\3\2\2\2\u04fe\u0500\7H\2\2") - buf.write("\u04ff\u0501\5\u00c4c\2\u0500\u04ff\3\2\2\2\u0500\u0501") - buf.write("\3\2\2\2\u0501\u0503\3\2\2\2\u0502\u0504\5\u010a\u0086") - buf.write("\2\u0503\u0502\3\2\2\2\u0503\u0504\3\2\2\2\u0504\u0505") - buf.write("\3\2\2\2\u0505\u0506\7I\2\2\u0506\u00c3\3\2\2\2\u0507") - buf.write("\u0509\5*\26\2\u0508\u0507\3\2\2\2\u0508\u0509\3\2\2\2") - buf.write("\u0509\u050a\3\2\2\2\u050a\u050b\7\63\2\2\u050b\u050d") - buf.write("\7F\2\2\u050c\u050e\5\u019e\u00d0\2\u050d\u050c\3\2\2") - buf.write("\2\u050d\u050e\3\2\2\2\u050e\u050f\3\2\2\2\u050f\u0510") - buf.write("\7G\2\2\u0510\u0536\7L\2\2\u0511\u0513\5*\26\2\u0512\u0511") - buf.write("\3\2\2\2\u0512\u0513\3\2\2\2\u0513\u0514\3\2\2\2\u0514") - buf.write("\u0515\7\60\2\2\u0515\u0517\7F\2\2\u0516\u0518\5\u019e") - buf.write("\u00d0\2\u0517\u0516\3\2\2\2\u0517\u0518\3\2\2\2\u0518") - buf.write("\u0519\3\2\2\2\u0519\u051a\7G\2\2\u051a\u0536\7L\2\2\u051b") - buf.write("\u051c\5<\37\2\u051c\u051e\7N\2\2\u051d\u051f\5*\26\2") - buf.write("\u051e\u051d\3\2\2\2\u051e\u051f\3\2\2\2\u051f\u0520\3") - buf.write("\2\2\2\u0520\u0521\7\60\2\2\u0521\u0523\7F\2\2\u0522\u0524") - buf.write("\5\u019e\u00d0\2\u0523\u0522\3\2\2\2\u0523\u0524\3\2\2") - buf.write("\2\u0524\u0525\3\2\2\2\u0525\u0526\7G\2\2\u0526\u0527") - buf.write("\7L\2\2\u0527\u0536\3\2\2\2\u0528\u0529\5\u016e\u00b8") - buf.write("\2\u0529\u052b\7N\2\2\u052a\u052c\5*\26\2\u052b\u052a") - buf.write("\3\2\2\2\u052b\u052c\3\2\2\2\u052c\u052d\3\2\2\2\u052d") - buf.write("\u052e\7\60\2\2\u052e\u0530\7F\2\2\u052f\u0531\5\u019e") - buf.write("\u00d0\2\u0530\u052f\3\2\2\2\u0530\u0531\3\2\2\2\u0531") - buf.write("\u0532\3\2\2\2\u0532\u0533\7G\2\2\u0533\u0534\7L\2\2\u0534") - buf.write("\u0536\3\2\2\2\u0535\u0508\3\2\2\2\u0535\u0512\3\2\2\2") - buf.write("\u0535\u051b\3\2\2\2\u0535\u0528\3\2\2\2\u0536\u00c5\3") - buf.write("\2\2\2\u0537\u0539\5b\62\2\u0538\u0537\3\2\2\2\u0539\u053c") - buf.write("\3\2\2\2\u053a\u0538\3\2\2\2\u053a\u053b\3\2\2\2\u053b") - buf.write("\u053d\3\2\2\2\u053c\u053a\3\2\2\2\u053d\u053e\7\22\2") - buf.write("\2\u053e\u0540\5\u01ea\u00f6\2\u053f\u0541\5j\66\2\u0540") - buf.write("\u053f\3\2\2\2\u0540\u0541\3\2\2\2\u0541\u0542\3\2\2\2") - buf.write("\u0542\u0543\5\u00c8e\2\u0543\u00c7\3\2\2\2\u0544\u0546") - buf.write("\7H\2\2\u0545\u0547\5\u00caf\2\u0546\u0545\3\2\2\2\u0546") - buf.write("\u0547\3\2\2\2\u0547\u0549\3\2\2\2\u0548\u054a\7M\2\2") - buf.write("\u0549\u0548\3\2\2\2\u0549\u054a\3\2\2\2\u054a\u054c\3") - buf.write("\2\2\2\u054b\u054d\5\u00d0i\2\u054c\u054b\3\2\2\2\u054c") - buf.write("\u054d\3\2\2\2\u054d\u054e\3\2\2\2\u054e\u054f\7I\2\2") - buf.write("\u054f\u00c9\3\2\2\2\u0550\u0555\5\u00ccg\2\u0551\u0552") - buf.write("\7M\2\2\u0552\u0554\5\u00ccg\2\u0553\u0551\3\2\2\2\u0554") - buf.write("\u0557\3\2\2\2\u0555\u0553\3\2\2\2\u0555\u0556\3\2\2\2") - buf.write("\u0556\u00cb\3\2\2\2\u0557\u0555\3\2\2\2\u0558\u055a\5") - buf.write("\u00ceh\2\u0559\u0558\3\2\2\2\u055a\u055d\3\2\2\2\u055b") - buf.write("\u0559\3\2\2\2\u055b\u055c\3\2\2\2\u055c\u055e\3\2\2\2") - buf.write("\u055d\u055b\3\2\2\2\u055e\u0564\5\u01ea\u00f6\2\u055f") - buf.write("\u0561\7F\2\2\u0560\u0562\5\u019e\u00d0\2\u0561\u0560") - buf.write("\3\2\2\2\u0561\u0562\3\2\2\2\u0562\u0563\3\2\2\2\u0563") - buf.write("\u0565\7G\2\2\u0564\u055f\3\2\2\2\u0564\u0565\3\2\2\2") - buf.write("\u0565\u0567\3\2\2\2\u0566\u0568\5n8\2\u0567\u0566\3\2") - buf.write("\2\2\u0567\u0568\3\2\2\2\u0568\u00cd\3\2\2\2\u0569\u056a") - buf.write("\5\u00f2z\2\u056a\u00cf\3\2\2\2\u056b\u056f\7L\2\2\u056c") - buf.write("\u056e\5p9\2\u056d\u056c\3\2\2\2\u056e\u0571\3\2\2\2\u056f") - buf.write("\u056d\3\2\2\2\u056f\u0570\3\2\2\2\u0570\u00d1\3\2\2\2") - buf.write("\u0571\u056f\3\2\2\2\u0572\u0575\5\u00d4k\2\u0573\u0575") - buf.write("\5\u00e6t\2\u0574\u0572\3\2\2\2\u0574\u0573\3\2\2\2\u0575") - buf.write("\u00d3\3\2\2\2\u0576\u0578\5\u00d6l\2\u0577\u0576\3\2") - buf.write("\2\2\u0578\u057b\3\2\2\2\u0579\u0577\3\2\2\2\u0579\u057a") - buf.write("\3\2\2\2\u057a\u057c\3\2\2\2\u057b\u0579\3\2\2\2\u057c") - buf.write("\u057d\7\37\2\2\u057d\u057f\5\u01ea\u00f6\2\u057e\u0580") - buf.write("\5d\63\2\u057f\u057e\3\2\2\2\u057f\u0580\3\2\2\2\u0580") - buf.write("\u0582\3\2\2\2\u0581\u0583\5\u00d8m\2\u0582\u0581\3\2") - buf.write("\2\2\u0582\u0583\3\2\2\2\u0583\u0584\3\2\2\2\u0584\u0585") - buf.write("\5\u00dan\2\u0585\u00d5\3\2\2\2\u0586\u058e\5\u00f2z\2") - buf.write("\u0587\u058e\7*\2\2\u0588\u058e\7(\2\2\u0589\u058e\7\'") - buf.write("\2\2\u058a\u058e\7\3\2\2\u058b\u058e\7.\2\2\u058c\u058e") - buf.write("\7/\2\2\u058d\u0586\3\2\2\2\u058d\u0587\3\2\2\2\u058d") - buf.write("\u0588\3\2\2\2\u058d\u0589\3\2\2\2\u058d\u058a\3\2\2\2") - buf.write("\u058d\u058b\3\2\2\2\u058d\u058c\3\2\2\2\u058e\u00d7\3") - buf.write("\2\2\2\u058f\u0590\7\24\2\2\u0590\u0591\5l\67\2\u0591") - buf.write("\u00d9\3\2\2\2\u0592\u0596\7H\2\2\u0593\u0595\5\u00dc") - buf.write("o\2\u0594\u0593\3\2\2\2\u0595\u0598\3\2\2\2\u0596\u0594") - buf.write("\3\2\2\2\u0596\u0597\3\2\2\2\u0597\u0599\3\2\2\2\u0598") - buf.write("\u0596\3\2\2\2\u0599\u059a\7I\2\2\u059a\u00db\3\2\2\2") - buf.write("\u059b\u05a1\5\u00dep\2\u059c\u05a1\5\u00e2r\2\u059d\u05a1") - buf.write("\5^\60\2\u059e\u05a1\5\u00d2j\2\u059f\u05a1\7L\2\2\u05a0") - buf.write("\u059b\3\2\2\2\u05a0\u059c\3\2\2\2\u05a0\u059d\3\2\2\2") - buf.write("\u05a0\u059e\3\2\2\2\u05a0\u059f\3\2\2\2\u05a1\u00dd\3") - buf.write("\2\2\2\u05a2\u05a4\5\u00e0q\2\u05a3\u05a2\3\2\2\2\u05a4") - buf.write("\u05a7\3\2\2\2\u05a5\u05a3\3\2\2\2\u05a5\u05a6\3\2\2\2") - buf.write("\u05a6\u05a8\3\2\2\2\u05a7\u05a5\3\2\2\2\u05a8\u05a9\5") - buf.write("\u0080A\2\u05a9\u05aa\5x=\2\u05aa\u05ab\7L\2\2\u05ab\u00df") - buf.write("\3\2\2\2\u05ac\u05b1\5\u00f2z\2\u05ad\u05b1\7*\2\2\u05ae") - buf.write("\u05b1\7.\2\2\u05af\u05b1\7\25\2\2\u05b0\u05ac\3\2\2\2") - buf.write("\u05b0\u05ad\3\2\2\2\u05b0\u05ae\3\2\2\2\u05b0\u05af\3") - buf.write("\2\2\2\u05b1\u00e1\3\2\2\2\u05b2\u05b4\5\u00e4s\2\u05b3") - buf.write("\u05b2\3\2\2\2\u05b4\u05b7\3\2\2\2\u05b5\u05b3\3\2\2\2") - buf.write("\u05b5\u05b6\3\2\2\2\u05b6\u05b8\3\2\2\2\u05b7\u05b5\3") - buf.write("\2\2\2\u05b8\u05b9\5\u009cO\2\u05b9\u05ba\5\u00b4[\2\u05ba") - buf.write("\u00e3\3\2\2\2\u05bb\u05c3\5\u00f2z\2\u05bc\u05c3\7*\2") - buf.write("\2\u05bd\u05c3\7\'\2\2\u05be\u05c3\7\3\2\2\u05bf\u05c3") - buf.write("\7\16\2\2\u05c0\u05c3\7.\2\2\u05c1\u05c3\7/\2\2\u05c2") - buf.write("\u05bb\3\2\2\2\u05c2\u05bc\3\2\2\2\u05c2\u05bd\3\2\2\2") - buf.write("\u05c2\u05be\3\2\2\2\u05c2\u05bf\3\2\2\2\u05c2\u05c0\3") - buf.write("\2\2\2\u05c2\u05c1\3\2\2\2\u05c3\u00e5\3\2\2\2\u05c4\u05c6") - buf.write("\5\u00d6l\2\u05c5\u05c4\3\2\2\2\u05c6\u05c9\3\2\2\2\u05c7") - buf.write("\u05c5\3\2\2\2\u05c7\u05c8\3\2\2\2\u05c8\u05ca\3\2\2\2") - buf.write("\u05c9\u05c7\3\2\2\2\u05ca\u05cb\7P\2\2\u05cb\u05cc\7") - buf.write("\37\2\2\u05cc\u05cd\5\u01ea\u00f6\2\u05cd\u05ce\5\u00e8") - buf.write("u\2\u05ce\u00e7\3\2\2\2\u05cf\u05d3\7H\2\2\u05d0\u05d2") - buf.write("\5\u00eav\2\u05d1\u05d0\3\2\2\2\u05d2\u05d5\3\2\2\2\u05d3") - buf.write("\u05d1\3\2\2\2\u05d3\u05d4\3\2\2\2\u05d4\u05d6\3\2\2\2") - buf.write("\u05d5\u05d3\3\2\2\2\u05d6\u05d7\7I\2\2\u05d7\u00e9\3") - buf.write("\2\2\2\u05d8\u05de\5\u00ecw\2\u05d9\u05de\5\u00dep\2\u05da") - buf.write("\u05de\5^\60\2\u05db\u05de\5\u00d2j\2\u05dc\u05de\7L\2") - buf.write("\2\u05dd\u05d8\3\2\2\2\u05dd\u05d9\3\2\2\2\u05dd\u05da") - buf.write("\3\2\2\2\u05dd\u05db\3\2\2\2\u05dd\u05dc\3\2\2\2\u05de") - buf.write("\u00eb\3\2\2\2\u05df\u05e1\5\u00eex\2\u05e0\u05df\3\2") - buf.write("\2\2\u05e1\u05e4\3\2\2\2\u05e2\u05e0\3\2\2\2\u05e2\u05e3") - buf.write("\3\2\2\2\u05e3\u05e5\3\2\2\2\u05e4\u05e2\3\2\2\2\u05e5") - buf.write("\u05e6\5\u0080A\2\u05e6\u05e7\5\u01ea\u00f6\2\u05e7\u05e8") - buf.write("\7F\2\2\u05e8\u05ea\7G\2\2\u05e9\u05eb\5 \21\2\u05ea\u05e9") - buf.write("\3\2\2\2\u05ea\u05eb\3\2\2\2\u05eb\u05ed\3\2\2\2\u05ec") - buf.write("\u05ee\5\u00f0y\2\u05ed\u05ec\3\2\2\2\u05ed\u05ee\3\2") - buf.write("\2\2\u05ee\u05ef\3\2\2\2\u05ef\u05f0\7L\2\2\u05f0\u00ed") - buf.write("\3\2\2\2\u05f1\u05f5\5\u00f2z\2\u05f2\u05f5\7*\2\2\u05f3") - buf.write("\u05f5\7\3\2\2\u05f4\u05f1\3\2\2\2\u05f4\u05f2\3\2\2\2") - buf.write("\u05f4\u05f3\3\2\2\2\u05f5\u00ef\3\2\2\2\u05f6\u05f7\7") - buf.write("\16\2\2\u05f7\u05f8\5\u00fa~\2\u05f8\u00f1\3\2\2\2\u05f9") - buf.write("\u05fd\5\u00f4{\2\u05fa\u05fd\5\u0100\u0081\2\u05fb\u05fd") - buf.write("\5\u0102\u0082\2\u05fc\u05f9\3\2\2\2\u05fc\u05fa\3\2\2") - buf.write("\2\u05fc\u05fb\3\2\2\2\u05fd\u00f3\3\2\2\2\u05fe\u05ff") - buf.write("\7P\2\2\u05ff\u0600\58\35\2\u0600\u0602\7F\2\2\u0601\u0603") - buf.write("\5\u00f6|\2\u0602\u0601\3\2\2\2\u0602\u0603\3\2\2\2\u0603") - buf.write("\u0604\3\2\2\2\u0604\u0605\7G\2\2\u0605\u00f5\3\2\2\2") - buf.write("\u0606\u060b\5\u00f8}\2\u0607\u0608\7M\2\2\u0608\u060a") - buf.write("\5\u00f8}\2\u0609\u0607\3\2\2\2\u060a\u060d\3\2\2\2\u060b") - buf.write("\u0609\3\2\2\2\u060b\u060c\3\2\2\2\u060c\u00f7\3\2\2\2") - buf.write("\u060d\u060b\3\2\2\2\u060e\u060f\5\u01ea\u00f6\2\u060f") - buf.write("\u0610\7R\2\2\u0610\u0611\5\u00fa~\2\u0611\u00f9\3\2\2") - buf.write("\2\u0612\u0616\5\u01c0\u00e1\2\u0613\u0616\5\u00fc\177") - buf.write("\2\u0614\u0616\5\u00f2z\2\u0615\u0612\3\2\2\2\u0615\u0613") - buf.write("\3\2\2\2\u0615\u0614\3\2\2\2\u0616\u00fb\3\2\2\2\u0617") - buf.write("\u0619\7H\2\2\u0618\u061a\5\u00fe\u0080\2\u0619\u0618") - buf.write("\3\2\2\2\u0619\u061a\3\2\2\2\u061a\u061c\3\2\2\2\u061b") - buf.write("\u061d\7M\2\2\u061c\u061b\3\2\2\2\u061c\u061d\3\2\2\2") - buf.write("\u061d\u061e\3\2\2\2\u061e\u061f\7I\2\2\u061f\u00fd\3") - buf.write("\2\2\2\u0620\u0625\5\u00fa~\2\u0621\u0622\7M\2\2\u0622") - buf.write("\u0624\5\u00fa~\2\u0623\u0621\3\2\2\2\u0624\u0627\3\2") - buf.write("\2\2\u0625\u0623\3\2\2\2\u0625\u0626\3\2\2\2\u0626\u00ff") - buf.write("\3\2\2\2\u0627\u0625\3\2\2\2\u0628\u0629\7P\2\2\u0629") - buf.write("\u062a\58\35\2\u062a\u0101\3\2\2\2\u062b\u062c\7P\2\2") - buf.write("\u062c\u062d\58\35\2\u062d\u062e\7F\2\2\u062e\u062f\5") - buf.write("\u00fa~\2\u062f\u0630\7G\2\2\u0630\u0103\3\2\2\2\u0631") - buf.write("\u0633\7H\2\2\u0632\u0634\5\u0106\u0084\2\u0633\u0632") - buf.write("\3\2\2\2\u0633\u0634\3\2\2\2\u0634\u0636\3\2\2\2\u0635") - buf.write("\u0637\7M\2\2\u0636\u0635\3\2\2\2\u0636\u0637\3\2\2\2") - buf.write("\u0637\u0638\3\2\2\2\u0638\u0639\7I\2\2\u0639\u0105\3") - buf.write("\2\2\2\u063a\u063f\5~@\2\u063b\u063c\7M\2\2\u063c\u063e") - buf.write("\5~@\2\u063d\u063b\3\2\2\2\u063e\u0641\3\2\2\2\u063f\u063d") - buf.write("\3\2\2\2\u063f\u0640\3\2\2\2\u0640\u0107\3\2\2\2\u0641") - buf.write("\u063f\3\2\2\2\u0642\u0644\7H\2\2\u0643\u0645\5\u010a") - buf.write("\u0086\2\u0644\u0643\3\2\2\2\u0644\u0645\3\2\2\2\u0645") - buf.write("\u0646\3\2\2\2\u0646\u0647\7I\2\2\u0647\u0109\3\2\2\2") - buf.write("\u0648\u064a\5\u010c\u0087\2\u0649\u0648\3\2\2\2\u064a") - buf.write("\u064b\3\2\2\2\u064b\u0649\3\2\2\2\u064b\u064c\3\2\2\2") - buf.write("\u064c\u010b\3\2\2\2\u064d\u0651\5\u010e\u0088\2\u064e") - buf.write("\u0651\5^\60\2\u064f\u0651\5\u0112\u008a\2\u0650\u064d") - buf.write("\3\2\2\2\u0650\u064e\3\2\2\2\u0650\u064f\3\2\2\2\u0651") - buf.write("\u010d\3\2\2\2\u0652\u0653\5\u0110\u0089\2\u0653\u0654") - buf.write("\7L\2\2\u0654\u010f\3\2\2\2\u0655\u0657\5\u00a8U\2\u0656") - buf.write("\u0655\3\2\2\2\u0657\u065a\3\2\2\2\u0658\u0656\3\2\2\2") - buf.write("\u0658\u0659\3\2\2\2\u0659\u065b\3\2\2\2\u065a\u0658\3") - buf.write("\2\2\2\u065b\u065c\5\u0080A\2\u065c\u065d\5x=\2\u065d") - buf.write("\u0111\3\2\2\2\u065e\u0665\5\u0116\u008c\2\u065f\u0665") - buf.write("\5\u011a\u008e\2\u0660\u0665\5\u0122\u0092\2\u0661\u0665") - buf.write("\5\u0124\u0093\2\u0662\u0665\5\u0136\u009c\2\u0663\u0665") - buf.write("\5\u013c\u009f\2\u0664\u065e\3\2\2\2\u0664\u065f\3\2\2") - buf.write("\2\u0664\u0660\3\2\2\2\u0664\u0661\3\2\2\2\u0664\u0662") - buf.write("\3\2\2\2\u0664\u0663\3\2\2\2\u0665\u0113\3\2\2\2\u0666") - buf.write("\u066c\5\u0116\u008c\2\u0667\u066c\5\u011c\u008f\2\u0668") - buf.write("\u066c\5\u0126\u0094\2\u0669\u066c\5\u0138\u009d\2\u066a") - buf.write("\u066c\5\u013e\u00a0\2\u066b\u0666\3\2\2\2\u066b\u0667") - buf.write("\3\2\2\2\u066b\u0668\3\2\2\2\u066b\u0669\3\2\2\2\u066b") - buf.write("\u066a\3\2\2\2\u066c\u0115\3\2\2\2\u066d\u067a\5\u0108") - buf.write("\u0085\2\u066e\u067a\5\u0118\u008d\2\u066f\u067a\5\u011e") - buf.write("\u0090\2\u0670\u067a\5\u0128\u0095\2\u0671\u067a\5\u012a") - buf.write("\u0096\2\u0672\u067a\5\u013a\u009e\2\u0673\u067a\5\u014e") - buf.write("\u00a8\2\u0674\u067a\5\u0150\u00a9\2\u0675\u067a\5\u0152") - buf.write("\u00aa\2\u0676\u067a\5\u0156\u00ac\2\u0677\u067a\5\u0154") - buf.write("\u00ab\2\u0678\u067a\5\u0158\u00ad\2\u0679\u066d\3\2\2") - buf.write("\2\u0679\u066e\3\2\2\2\u0679\u066f\3\2\2\2\u0679\u0670") - buf.write("\3\2\2\2\u0679\u0671\3\2\2\2\u0679\u0672\3\2\2\2\u0679") - buf.write("\u0673\3\2\2\2\u0679\u0674\3\2\2\2\u0679\u0675\3\2\2\2") - buf.write("\u0679\u0676\3\2\2\2\u0679\u0677\3\2\2\2\u0679\u0678\3") - buf.write("\2\2\2\u067a\u0117\3\2\2\2\u067b\u067c\7L\2\2\u067c\u0119") - buf.write("\3\2\2\2\u067d\u067e\5\u01ea\u00f6\2\u067e\u067f\7X\2") - buf.write("\2\u067f\u0680\5\u0112\u008a\2\u0680\u011b\3\2\2\2\u0681") - buf.write("\u0682\5\u01ea\u00f6\2\u0682\u0683\7X\2\2\u0683\u0684") - buf.write("\5\u0114\u008b\2\u0684\u011d\3\2\2\2\u0685\u0686\5\u0120") - buf.write("\u0091\2\u0686\u0687\7L\2\2\u0687\u011f\3\2\2\2\u0688") - buf.write("\u0690\5\u01ba\u00de\2\u0689\u0690\5\u01d8\u00ed\2\u068a") - buf.write("\u0690\5\u01da\u00ee\2\u068b\u0690\5\u01e0\u00f1\2\u068c") - buf.write("\u0690\5\u01e4\u00f3\2\u068d\u0690\5\u0198\u00cd\2\u068e") - buf.write("\u0690\5\u0184\u00c3\2\u068f\u0688\3\2\2\2\u068f\u0689") - buf.write("\3\2\2\2\u068f\u068a\3\2\2\2\u068f\u068b\3\2\2\2\u068f") - buf.write("\u068c\3\2\2\2\u068f\u068d\3\2\2\2\u068f\u068e\3\2\2\2") - buf.write("\u0690\u0121\3\2\2\2\u0691\u0692\7\31\2\2\u0692\u0693") - buf.write("\7F\2\2\u0693\u0694\5\u01ae\u00d8\2\u0694\u0695\7G\2\2") - buf.write("\u0695\u0696\5\u0112\u008a\2\u0696\u0123\3\2\2\2\u0697") - buf.write("\u0698\7\31\2\2\u0698\u0699\7F\2\2\u0699\u069a\5\u01ae") - buf.write("\u00d8\2\u069a\u069b\7G\2\2\u069b\u069c\5\u0114\u008b") - buf.write("\2\u069c\u069d\7\21\2\2\u069d\u069e\5\u0112\u008a\2\u069e") - buf.write("\u0125\3\2\2\2\u069f\u06a0\7\31\2\2\u06a0\u06a1\7F\2\2") - buf.write("\u06a1\u06a2\5\u01ae\u00d8\2\u06a2\u06a3\7G\2\2\u06a3") - buf.write("\u06a4\5\u0114\u008b\2\u06a4\u06a5\7\21\2\2\u06a5\u06a6") - buf.write("\5\u0114\u008b\2\u06a6\u0127\3\2\2\2\u06a7\u06a8\7\4\2") - buf.write("\2\u06a8\u06a9\5\u01ae\u00d8\2\u06a9\u06aa\7L\2\2\u06aa") - buf.write("\u06b2\3\2\2\2\u06ab\u06ac\7\4\2\2\u06ac\u06ad\5\u01ae") - buf.write("\u00d8\2\u06ad\u06ae\7X\2\2\u06ae\u06af\5\u01ae\u00d8") - buf.write("\2\u06af\u06b0\7L\2\2\u06b0\u06b2\3\2\2\2\u06b1\u06a7") - buf.write("\3\2\2\2\u06b1\u06ab\3\2\2\2\u06b2\u0129\3\2\2\2\u06b3") - buf.write("\u06b4\7\61\2\2\u06b4\u06b5\7F\2\2\u06b5\u06b6\5\u01ae") - buf.write("\u00d8\2\u06b6\u06b7\7G\2\2\u06b7\u06b8\5\u012c\u0097") - buf.write("\2\u06b8\u012b\3\2\2\2\u06b9\u06bd\7H\2\2\u06ba\u06bc") - buf.write("\5\u012e\u0098\2\u06bb\u06ba\3\2\2\2\u06bc\u06bf\3\2\2") - buf.write("\2\u06bd\u06bb\3\2\2\2\u06bd\u06be\3\2\2\2\u06be\u06c3") - buf.write("\3\2\2\2\u06bf\u06bd\3\2\2\2\u06c0\u06c2\5\u0132\u009a") - buf.write("\2\u06c1\u06c0\3\2\2\2\u06c2\u06c5\3\2\2\2\u06c3\u06c1") - buf.write("\3\2\2\2\u06c3\u06c4\3\2\2\2\u06c4\u06c6\3\2\2\2\u06c5") - buf.write("\u06c3\3\2\2\2\u06c6\u06c7\7I\2\2\u06c7\u012d\3\2\2\2") - buf.write("\u06c8\u06c9\5\u0130\u0099\2\u06c9\u06ca\5\u010a\u0086") - buf.write("\2\u06ca\u012f\3\2\2\2\u06cb\u06cd\5\u0132\u009a\2\u06cc") - buf.write("\u06cb\3\2\2\2\u06cd\u06ce\3\2\2\2\u06ce\u06cc\3\2\2\2") - buf.write("\u06ce\u06cf\3\2\2\2\u06cf\u0131\3\2\2\2\u06d0\u06d1\7") - buf.write("\b\2\2\u06d1\u06d2\5\u01ac\u00d7\2\u06d2\u06d3\7X\2\2") - buf.write("\u06d3\u06db\3\2\2\2\u06d4\u06d5\7\b\2\2\u06d5\u06d6\5") - buf.write("\u0134\u009b\2\u06d6\u06d7\7X\2\2\u06d7\u06db\3\2\2\2") - buf.write("\u06d8\u06d9\7\16\2\2\u06d9\u06db\7X\2\2\u06da\u06d0\3") - buf.write("\2\2\2\u06da\u06d4\3\2\2\2\u06da\u06d8\3\2\2\2\u06db\u0133") - buf.write("\3\2\2\2\u06dc\u06dd\5\u01ea\u00f6\2\u06dd\u0135\3\2\2") - buf.write("\2\u06de\u06df\7=\2\2\u06df\u06e0\7F\2\2\u06e0\u06e1\5") - buf.write("\u01ae\u00d8\2\u06e1\u06e2\7G\2\2\u06e2\u06e3\5\u0112") - buf.write("\u008a\2\u06e3\u0137\3\2\2\2\u06e4\u06e5\7=\2\2\u06e5") - buf.write("\u06e6\7F\2\2\u06e6\u06e7\5\u01ae\u00d8\2\u06e7\u06e8") - buf.write("\7G\2\2\u06e8\u06e9\5\u0114\u008b\2\u06e9\u0139\3\2\2") - buf.write("\2\u06ea\u06eb\7\17\2\2\u06eb\u06ec\5\u0112\u008a\2\u06ec") - buf.write("\u06ed\7=\2\2\u06ed\u06ee\7F\2\2\u06ee\u06ef\5\u01ae\u00d8") - buf.write("\2\u06ef\u06f0\7G\2\2\u06f0\u06f1\7L\2\2\u06f1\u013b\3") - buf.write("\2\2\2\u06f2\u06f5\5\u0140\u00a1\2\u06f3\u06f5\5\u014a") - buf.write("\u00a6\2\u06f4\u06f2\3\2\2\2\u06f4\u06f3\3\2\2\2\u06f5") - buf.write("\u013d\3\2\2\2\u06f6\u06f9\5\u0142\u00a2\2\u06f7\u06f9") - buf.write("\5\u014c\u00a7\2\u06f8\u06f6\3\2\2\2\u06f8\u06f7\3\2\2") - buf.write("\2\u06f9\u013f\3\2\2\2\u06fa\u06fb\7\30\2\2\u06fb\u06fd") - buf.write("\7F\2\2\u06fc\u06fe\5\u0144\u00a3\2\u06fd\u06fc\3\2\2") - buf.write("\2\u06fd\u06fe\3\2\2\2\u06fe\u06ff\3\2\2\2\u06ff\u0701") - buf.write("\7L\2\2\u0700\u0702\5\u01ae\u00d8\2\u0701\u0700\3\2\2") - buf.write("\2\u0701\u0702\3\2\2\2\u0702\u0703\3\2\2\2\u0703\u0705") - buf.write("\7L\2\2\u0704\u0706\5\u0146\u00a4\2\u0705\u0704\3\2\2") - buf.write("\2\u0705\u0706\3\2\2\2\u0706\u0707\3\2\2\2\u0707\u0708") - buf.write("\7G\2\2\u0708\u0709\5\u0112\u008a\2\u0709\u0141\3\2\2") - buf.write("\2\u070a\u070b\7\30\2\2\u070b\u070d\7F\2\2\u070c\u070e") - buf.write("\5\u0144\u00a3\2\u070d\u070c\3\2\2\2\u070d\u070e\3\2\2") - buf.write("\2\u070e\u070f\3\2\2\2\u070f\u0711\7L\2\2\u0710\u0712") - buf.write("\5\u01ae\u00d8\2\u0711\u0710\3\2\2\2\u0711\u0712\3\2\2") - buf.write("\2\u0712\u0713\3\2\2\2\u0713\u0715\7L\2\2\u0714\u0716") - buf.write("\5\u0146\u00a4\2\u0715\u0714\3\2\2\2\u0715\u0716\3\2\2") - buf.write("\2\u0716\u0717\3\2\2\2\u0717\u0718\7G\2\2\u0718\u0719") - buf.write("\5\u0114\u008b\2\u0719\u0143\3\2\2\2\u071a\u071d\5\u0148") - buf.write("\u00a5\2\u071b\u071d\5\u0110\u0089\2\u071c\u071a\3\2\2") - buf.write("\2\u071c\u071b\3\2\2\2\u071d\u0145\3\2\2\2\u071e\u071f") - buf.write("\5\u0148\u00a5\2\u071f\u0147\3\2\2\2\u0720\u0725\5\u0120") - buf.write("\u0091\2\u0721\u0722\7M\2\2\u0722\u0724\5\u0120\u0091") - buf.write("\2\u0723\u0721\3\2\2\2\u0724\u0727\3\2\2\2\u0725\u0723") - buf.write("\3\2\2\2\u0725\u0726\3\2\2\2\u0726\u0149\3\2\2\2\u0727") - buf.write("\u0725\3\2\2\2\u0728\u0729\7\30\2\2\u0729\u072d\7F\2\2") - buf.write("\u072a\u072c\5\u00a8U\2\u072b\u072a\3\2\2\2\u072c\u072f") - buf.write("\3\2\2\2\u072d\u072b\3\2\2\2\u072d\u072e\3\2\2\2\u072e") - buf.write("\u0730\3\2\2\2\u072f\u072d\3\2\2\2\u0730\u0731\5\u0080") - buf.write("A\2\u0731\u0732\5|?\2\u0732\u0733\7X\2\2\u0733\u0734\5") - buf.write("\u01ae\u00d8\2\u0734\u0735\7G\2\2\u0735\u0736\5\u0112") - buf.write("\u008a\2\u0736\u014b\3\2\2\2\u0737\u0738\7\30\2\2\u0738") - buf.write("\u073c\7F\2\2\u0739\u073b\5\u00a8U\2\u073a\u0739\3\2\2") - buf.write("\2\u073b\u073e\3\2\2\2\u073c\u073a\3\2\2\2\u073c\u073d") - buf.write("\3\2\2\2\u073d\u073f\3\2\2\2\u073e\u073c\3\2\2\2\u073f") - buf.write("\u0740\5\u0080A\2\u0740\u0741\5|?\2\u0741\u0742\7X\2\2") - buf.write("\u0742\u0743\5\u01ae\u00d8\2\u0743\u0744\7G\2\2\u0744") - buf.write("\u0745\5\u0114\u008b\2\u0745\u014d\3\2\2\2\u0746\u0748") - buf.write("\7\6\2\2\u0747\u0749\5\u01ea\u00f6\2\u0748\u0747\3\2\2") - buf.write("\2\u0748\u0749\3\2\2\2\u0749\u074a\3\2\2\2\u074a\u074b") - buf.write("\7L\2\2\u074b\u014f\3\2\2\2\u074c\u074e\7\r\2\2\u074d") - buf.write("\u074f\5\u01ea\u00f6\2\u074e\u074d\3\2\2\2\u074e\u074f") - buf.write("\3\2\2\2\u074f\u0750\3\2\2\2\u0750\u0751\7L\2\2\u0751") - buf.write("\u0151\3\2\2\2\u0752\u0754\7,\2\2\u0753\u0755\5\u01ae") - buf.write("\u00d8\2\u0754\u0753\3\2\2\2\u0754\u0755\3\2\2\2\u0755") - buf.write("\u0756\3\2\2\2\u0756\u0757\7L\2\2\u0757\u0153\3\2\2\2") - buf.write("\u0758\u0759\7\64\2\2\u0759\u075a\5\u01ae\u00d8\2\u075a") - buf.write("\u075b\7L\2\2\u075b\u0155\3\2\2\2\u075c\u075d\7\62\2\2") - buf.write("\u075d\u075e\7F\2\2\u075e\u075f\5\u01ae\u00d8\2\u075f") - buf.write("\u0760\7G\2\2\u0760\u0761\5\u0108\u0085\2\u0761\u0157") - buf.write("\3\2\2\2\u0762\u0763\79\2\2\u0763\u0764\5\u0108\u0085") - buf.write("\2\u0764\u0765\5\u015a\u00ae\2\u0765\u076f\3\2\2\2\u0766") - buf.write("\u0767\79\2\2\u0767\u0769\5\u0108\u0085\2\u0768\u076a") - buf.write("\5\u015a\u00ae\2\u0769\u0768\3\2\2\2\u0769\u076a\3\2\2") - buf.write("\2\u076a\u076b\3\2\2\2\u076b\u076c\5\u0162\u00b2\2\u076c") - buf.write("\u076f\3\2\2\2\u076d\u076f\5\u0164\u00b3\2\u076e\u0762") - buf.write("\3\2\2\2\u076e\u0766\3\2\2\2\u076e\u076d\3\2\2\2\u076f") - buf.write("\u0159\3\2\2\2\u0770\u0772\5\u015c\u00af\2\u0771\u0770") - buf.write("\3\2\2\2\u0772\u0773\3\2\2\2\u0773\u0771\3\2\2\2\u0773") - buf.write("\u0774\3\2\2\2\u0774\u015b\3\2\2\2\u0775\u0776\7\t\2\2") - buf.write("\u0776\u0777\7F\2\2\u0777\u0778\5\u015e\u00b0\2\u0778") - buf.write("\u0779\7G\2\2\u0779\u077a\5\u0108\u0085\2\u077a\u015d") - buf.write("\3\2\2\2\u077b\u077d\5\u00a8U\2\u077c\u077b\3\2\2\2\u077d") - buf.write("\u0780\3\2\2\2\u077e\u077c\3\2\2\2\u077e\u077f\3\2\2\2") - buf.write("\u077f\u0781\3\2\2\2\u0780\u077e\3\2\2\2\u0781\u0782\5") - buf.write("\u0160\u00b1\2\u0782\u0783\5|?\2\u0783\u015f\3\2\2\2\u0784") - buf.write("\u0789\5\u0088E\2\u0785\u0786\7g\2\2\u0786\u0788\5\20") - buf.write("\t\2\u0787\u0785\3\2\2\2\u0788\u078b\3\2\2\2\u0789\u0787") - buf.write("\3\2\2\2\u0789\u078a\3\2\2\2\u078a\u0161\3\2\2\2\u078b") - buf.write("\u0789\3\2\2\2\u078c\u078d\7\26\2\2\u078d\u078e\5\u0108") - buf.write("\u0085\2\u078e\u0163\3\2\2\2\u078f\u0790\79\2\2\u0790") - buf.write("\u0791\5\u0166\u00b4\2\u0791\u0793\5\u0108\u0085\2\u0792") - buf.write("\u0794\5\u015a\u00ae\2\u0793\u0792\3\2\2\2\u0793\u0794") - buf.write("\3\2\2\2\u0794\u0796\3\2\2\2\u0795\u0797\5\u0162\u00b2") - buf.write("\2\u0796\u0795\3\2\2\2\u0796\u0797\3\2\2\2\u0797\u0165") - buf.write("\3\2\2\2\u0798\u0799\7F\2\2\u0799\u079b\5\u0168\u00b5") - buf.write("\2\u079a\u079c\7L\2\2\u079b\u079a\3\2\2\2\u079b\u079c") - buf.write("\3\2\2\2\u079c\u079d\3\2\2\2\u079d\u079e\7G\2\2\u079e") - buf.write("\u0167\3\2\2\2\u079f\u07a4\5\u016a\u00b6\2\u07a0\u07a1") - buf.write("\7L\2\2\u07a1\u07a3\5\u016a\u00b6\2\u07a2\u07a0\3\2\2") - buf.write("\2\u07a3\u07a6\3\2\2\2\u07a4\u07a2\3\2\2\2\u07a4\u07a5") - buf.write("\3\2\2\2\u07a5\u0169\3\2\2\2\u07a6\u07a4\3\2\2\2\u07a7") - buf.write("\u07a9\5\u00a8U\2\u07a8\u07a7\3\2\2\2\u07a9\u07ac\3\2") - buf.write("\2\2\u07aa\u07a8\3\2\2\2\u07aa\u07ab\3\2\2\2\u07ab\u07ad") - buf.write("\3\2\2\2\u07ac\u07aa\3\2\2\2\u07ad\u07ae\5\u0080A\2\u07ae") - buf.write("\u07af\5|?\2\u07af\u07b0\7R\2\2\u07b0\u07b1\5\u01ae\u00d8") - buf.write("\2\u07b1\u07b4\3\2\2\2\u07b2\u07b4\5\u016c\u00b7\2\u07b3") - buf.write("\u07aa\3\2\2\2\u07b3\u07b2\3\2\2\2\u07b4\u016b\3\2\2\2") - buf.write("\u07b5\u07b8\5<\37\2\u07b6\u07b8\5\u018c\u00c7\2\u07b7") - buf.write("\u07b5\3\2\2\2\u07b7\u07b6\3\2\2\2\u07b8\u016d\3\2\2\2") - buf.write("\u07b9\u07bc\5\u017c\u00bf\2\u07ba\u07bc\5\u01a6\u00d4") - buf.write("\2\u07bb\u07b9\3\2\2\2\u07bb\u07ba\3\2\2\2\u07bc\u07c0") - buf.write("\3\2\2\2\u07bd\u07bf\5\u0176\u00bc\2\u07be\u07bd\3\2\2") - buf.write("\2\u07bf\u07c2\3\2\2\2\u07c0\u07be\3\2\2\2\u07c0\u07c1") - buf.write("\3\2\2\2\u07c1\u016f\3\2\2\2\u07c2\u07c0\3\2\2\2\u07c3") - buf.write("\u07d4\5\2\2\2\u07c4\u07d4\5\u0182\u00c2\2\u07c5\u07d4") - buf.write("\7\63\2\2\u07c6\u07c7\58\35\2\u07c7\u07c8\7N\2\2\u07c8") - buf.write("\u07c9\7\63\2\2\u07c9\u07d4\3\2\2\2\u07ca\u07cb\7F\2\2") - buf.write("\u07cb\u07cc\5\u01ae\u00d8\2\u07cc\u07cd\7G\2\2\u07cd") - buf.write("\u07d4\3\2\2\2\u07ce\u07d4\5\u0184\u00c3\2\u07cf\u07d4") - buf.write("\5\u018c\u00c7\2\u07d0\u07d4\5\u0192\u00ca\2\u07d1\u07d4") - buf.write("\5\u0198\u00cd\2\u07d2\u07d4\5\u01a0\u00d1\2\u07d3\u07c3") - buf.write("\3\2\2\2\u07d3\u07c4\3\2\2\2\u07d3\u07c5\3\2\2\2\u07d3") - buf.write("\u07c6\3\2\2\2\u07d3\u07ca\3\2\2\2\u07d3\u07ce\3\2\2\2") - buf.write("\u07d3\u07cf\3\2\2\2\u07d3\u07d0\3\2\2\2\u07d3\u07d1\3") - buf.write("\2\2\2\u07d3\u07d2\3\2\2\2\u07d4\u0171\3\2\2\2\u07d5\u07d6") - buf.write("\3\2\2\2\u07d6\u0173\3\2\2\2\u07d7\u07f4\5\2\2\2\u07d8") - buf.write("\u07dd\58\35\2\u07d9\u07da\7J\2\2\u07da\u07dc\7K\2\2\u07db") - buf.write("\u07d9\3\2\2\2\u07dc\u07df\3\2\2\2\u07dd\u07db\3\2\2\2") - buf.write("\u07dd\u07de\3\2\2\2\u07de\u07e0\3\2\2\2\u07df\u07dd\3") - buf.write("\2\2\2\u07e0\u07e1\7N\2\2\u07e1\u07e2\7\13\2\2\u07e2\u07f4") - buf.write("\3\2\2\2\u07e3\u07e4\7;\2\2\u07e4\u07e5\7N\2\2\u07e5\u07f4") - buf.write("\7\13\2\2\u07e6\u07f4\7\63\2\2\u07e7\u07e8\58\35\2\u07e8") - buf.write("\u07e9\7N\2\2\u07e9\u07ea\7\63\2\2\u07ea\u07f4\3\2\2\2") - buf.write("\u07eb\u07ec\7F\2\2\u07ec\u07ed\5\u01ae\u00d8\2\u07ed") - buf.write("\u07ee\7G\2\2\u07ee\u07f4\3\2\2\2\u07ef\u07f4\5\u0184") - buf.write("\u00c3\2\u07f0\u07f4\5\u018c\u00c7\2\u07f1\u07f4\5\u0198") - buf.write("\u00cd\2\u07f2\u07f4\5\u01a0\u00d1\2\u07f3\u07d7\3\2\2") - buf.write("\2\u07f3\u07d8\3\2\2\2\u07f3\u07e3\3\2\2\2\u07f3\u07e6") - buf.write("\3\2\2\2\u07f3\u07e7\3\2\2\2\u07f3\u07eb\3\2\2\2\u07f3") - buf.write("\u07ef\3\2\2\2\u07f3\u07f0\3\2\2\2\u07f3\u07f1\3\2\2\2") - buf.write("\u07f3\u07f2\3\2\2\2\u07f4\u0175\3\2\2\2\u07f5\u07fb\5") - buf.write("\u0186\u00c4\2\u07f6\u07fb\5\u018e\u00c8\2\u07f7\u07fb") - buf.write("\5\u0194\u00cb\2\u07f8\u07fb\5\u019a\u00ce\2\u07f9\u07fb") - buf.write("\5\u01a2\u00d2\2\u07fa\u07f5\3\2\2\2\u07fa\u07f6\3\2\2") - buf.write("\2\u07fa\u07f7\3\2\2\2\u07fa\u07f8\3\2\2\2\u07fa\u07f9") - buf.write("\3\2\2\2\u07fb\u0177\3\2\2\2\u07fc\u07fd\3\2\2\2\u07fd") - buf.write("\u0179\3\2\2\2\u07fe\u0803\5\u0186\u00c4\2\u07ff\u0803") - buf.write("\5\u018e\u00c8\2\u0800\u0803\5\u019a\u00ce\2\u0801\u0803") - buf.write("\5\u01a2\u00d2\2\u0802\u07fe\3\2\2\2\u0802\u07ff\3\2\2") - buf.write("\2\u0802\u0800\3\2\2\2\u0802\u0801\3\2\2\2\u0803\u017b") - buf.write("\3\2\2\2\u0804\u082d\5\2\2\2\u0805\u080a\58\35\2\u0806") - buf.write("\u0807\7J\2\2\u0807\u0809\7K\2\2\u0808\u0806\3\2\2\2\u0809") - buf.write("\u080c\3\2\2\2\u080a\u0808\3\2\2\2\u080a\u080b\3\2\2\2") - buf.write("\u080b\u080d\3\2\2\2\u080c\u080a\3\2\2\2\u080d\u080e\7") - buf.write("N\2\2\u080e\u080f\7\13\2\2\u080f\u082d\3\2\2\2\u0810\u0815") - buf.write("\5\u0082B\2\u0811\u0812\7J\2\2\u0812\u0814\7K\2\2\u0813") - buf.write("\u0811\3\2\2\2\u0814\u0817\3\2\2\2\u0815\u0813\3\2\2\2") - buf.write("\u0815\u0816\3\2\2\2\u0816\u0818\3\2\2\2\u0817\u0815\3") - buf.write("\2\2\2\u0818\u0819\7N\2\2\u0819\u081a\7\13\2\2\u081a\u082d") - buf.write("\3\2\2\2\u081b\u081c\7;\2\2\u081c\u081d\7N\2\2\u081d\u082d") - buf.write("\7\13\2\2\u081e\u082d\7\63\2\2\u081f\u0820\58\35\2\u0820") - buf.write("\u0821\7N\2\2\u0821\u0822\7\63\2\2\u0822\u082d\3\2\2\2") - buf.write("\u0823\u0824\7F\2\2\u0824\u0825\5\u01ae\u00d8\2\u0825") - buf.write("\u0826\7G\2\2\u0826\u082d\3\2\2\2\u0827\u082d\5\u0188") - buf.write("\u00c5\2\u0828\u082d\5\u0190\u00c9\2\u0829\u082d\5\u0196") - buf.write("\u00cc\2\u082a\u082d\5\u019c\u00cf\2\u082b\u082d\5\u01a4") - buf.write("\u00d3\2\u082c\u0804\3\2\2\2\u082c\u0805\3\2\2\2\u082c") - buf.write("\u0810\3\2\2\2\u082c\u081b\3\2\2\2\u082c\u081e\3\2\2\2") - buf.write("\u082c\u081f\3\2\2\2\u082c\u0823\3\2\2\2\u082c\u0827\3") - buf.write("\2\2\2\u082c\u0828\3\2\2\2\u082c\u0829\3\2\2\2\u082c\u082a") - buf.write("\3\2\2\2\u082c\u082b\3\2\2\2\u082d\u017d\3\2\2\2\u082e") - buf.write("\u082f\3\2\2\2\u082f\u017f\3\2\2\2\u0830\u0858\5\2\2\2") - buf.write("\u0831\u0836\58\35\2\u0832\u0833\7J\2\2\u0833\u0835\7") - buf.write("K\2\2\u0834\u0832\3\2\2\2\u0835\u0838\3\2\2\2\u0836\u0834") - buf.write("\3\2\2\2\u0836\u0837\3\2\2\2\u0837\u0839\3\2\2\2\u0838") - buf.write("\u0836\3\2\2\2\u0839\u083a\7N\2\2\u083a\u083b\7\13\2\2") - buf.write("\u083b\u0858\3\2\2\2\u083c\u0841\5\u0082B\2\u083d\u083e") - buf.write("\7J\2\2\u083e\u0840\7K\2\2\u083f\u083d\3\2\2\2\u0840\u0843") - buf.write("\3\2\2\2\u0841\u083f\3\2\2\2\u0841\u0842\3\2\2\2\u0842") - buf.write("\u0844\3\2\2\2\u0843\u0841\3\2\2\2\u0844\u0845\7N\2\2") - buf.write("\u0845\u0846\7\13\2\2\u0846\u0858\3\2\2\2\u0847\u0848") - buf.write("\7;\2\2\u0848\u0849\7N\2\2\u0849\u0858\7\13\2\2\u084a") - buf.write("\u0858\7\63\2\2\u084b\u084c\58\35\2\u084c\u084d\7N\2\2") - buf.write("\u084d\u084e\7\63\2\2\u084e\u0858\3\2\2\2\u084f\u0850") - buf.write("\7F\2\2\u0850\u0851\5\u01ae\u00d8\2\u0851\u0852\7G\2\2") - buf.write("\u0852\u0858\3\2\2\2\u0853\u0858\5\u0188\u00c5\2\u0854") - buf.write("\u0858\5\u0190\u00c9\2\u0855\u0858\5\u019c\u00cf\2\u0856") - buf.write("\u0858\5\u01a4\u00d3\2\u0857\u0830\3\2\2\2\u0857\u0831") - buf.write("\3\2\2\2\u0857\u083c\3\2\2\2\u0857\u0847\3\2\2\2\u0857") - buf.write("\u084a\3\2\2\2\u0857\u084b\3\2\2\2\u0857\u084f\3\2\2\2") - buf.write("\u0857\u0853\3\2\2\2\u0857\u0854\3\2\2\2\u0857\u0855\3") - buf.write("\2\2\2\u0857\u0856\3\2\2\2\u0858\u0181\3\2\2\2\u0859\u085d") - buf.write("\58\35\2\u085a\u085d\5\6\4\2\u085b\u085d\7\5\2\2\u085c") - buf.write("\u0859\3\2\2\2\u085c\u085a\3\2\2\2\u085c\u085b\3\2\2\2") - buf.write("\u085d\u0862\3\2\2\2\u085e\u085f\7J\2\2\u085f\u0861\7") - buf.write("K\2\2\u0860\u085e\3\2\2\2\u0861\u0864\3\2\2\2\u0862\u0860") - buf.write("\3\2\2\2\u0862\u0863\3\2\2\2\u0863\u0865\3\2\2\2\u0864") - buf.write("\u0862\3\2\2\2\u0865\u0866\7N\2\2\u0866\u086b\7\13\2\2") - buf.write("\u0867\u0868\7;\2\2\u0868\u0869\7N\2\2\u0869\u086b\7\13") - buf.write("\2\2\u086a\u085c\3\2\2\2\u086a\u0867\3\2\2\2\u086b\u0183") - buf.write("\3\2\2\2\u086c\u086e\7#\2\2\u086d\u086f\5*\26\2\u086e") - buf.write("\u086d\3\2\2\2\u086e\u086f\3\2\2\2\u086f\u0873\3\2\2\2") - buf.write("\u0870\u0872\5\u00f2z\2\u0871\u0870\3\2\2\2\u0872\u0875") - buf.write("\3\2\2\2\u0873\u0871\3\2\2\2\u0873\u0874\3\2\2\2\u0874") - buf.write("\u0876\3\2\2\2\u0875\u0873\3\2\2\2\u0876\u0881\5\u01ea") - buf.write("\u00f6\2\u0877\u087b\7N\2\2\u0878\u087a\5\u00f2z\2\u0879") - buf.write("\u0878\3\2\2\2\u087a\u087d\3\2\2\2\u087b\u0879\3\2\2\2") - buf.write("\u087b\u087c\3\2\2\2\u087c\u087e\3\2\2\2\u087d\u087b\3") - buf.write("\2\2\2\u087e\u0880\5\u01ea\u00f6\2\u087f\u0877\3\2\2\2") - buf.write("\u0880\u0883\3\2\2\2\u0881\u087f\3\2\2\2\u0881\u0882\3") - buf.write("\2\2\2\u0882\u0885\3\2\2\2\u0883\u0881\3\2\2\2\u0884\u0886") - buf.write("\5\u018a\u00c6\2\u0885\u0884\3\2\2\2\u0885\u0886\3\2\2") - buf.write("\2\u0886\u0887\3\2\2\2\u0887\u0889\7F\2\2\u0888\u088a") - buf.write("\5\u019e\u00d0\2\u0889\u0888\3\2\2\2\u0889\u088a\3\2\2") - buf.write("\2\u088a\u088b\3\2\2\2\u088b\u088d\7G\2\2\u088c\u088e") - buf.write("\5n8\2\u088d\u088c\3\2\2\2\u088d\u088e\3\2\2\2\u088e\u08c0") - buf.write("\3\2\2\2\u088f\u0890\5<\37\2\u0890\u0891\7N\2\2\u0891") - buf.write("\u0893\7#\2\2\u0892\u0894\5*\26\2\u0893\u0892\3\2\2\2") - buf.write("\u0893\u0894\3\2\2\2\u0894\u0898\3\2\2\2\u0895\u0897\5") - buf.write("\u00f2z\2\u0896\u0895\3\2\2\2\u0897\u089a\3\2\2\2\u0898") - buf.write("\u0896\3\2\2\2\u0898\u0899\3\2\2\2\u0899\u089b\3\2\2\2") - buf.write("\u089a\u0898\3\2\2\2\u089b\u089d\5\u01ea\u00f6\2\u089c") - buf.write("\u089e\5\u018a\u00c6\2\u089d\u089c\3\2\2\2\u089d\u089e") - buf.write("\3\2\2\2\u089e\u089f\3\2\2\2\u089f\u08a1\7F\2\2\u08a0") - buf.write("\u08a2\5\u019e\u00d0\2\u08a1\u08a0\3\2\2\2\u08a1\u08a2") - buf.write("\3\2\2\2\u08a2\u08a3\3\2\2\2\u08a3\u08a5\7G\2\2\u08a4") - buf.write("\u08a6\5n8\2\u08a5\u08a4\3\2\2\2\u08a5\u08a6\3\2\2\2\u08a6") - buf.write("\u08c0\3\2\2\2\u08a7\u08a8\5\u016e\u00b8\2\u08a8\u08a9") - buf.write("\7N\2\2\u08a9\u08ab\7#\2\2\u08aa\u08ac\5*\26\2\u08ab\u08aa") - buf.write("\3\2\2\2\u08ab\u08ac\3\2\2\2\u08ac\u08b0\3\2\2\2\u08ad") - buf.write("\u08af\5\u00f2z\2\u08ae\u08ad\3\2\2\2\u08af\u08b2\3\2") - buf.write("\2\2\u08b0\u08ae\3\2\2\2\u08b0\u08b1\3\2\2\2\u08b1\u08b3") - buf.write("\3\2\2\2\u08b2\u08b0\3\2\2\2\u08b3\u08b5\5\u01ea\u00f6") - buf.write("\2\u08b4\u08b6\5\u018a\u00c6\2\u08b5\u08b4\3\2\2\2\u08b5") - buf.write("\u08b6\3\2\2\2\u08b6\u08b7\3\2\2\2\u08b7\u08b9\7F\2\2") - buf.write("\u08b8\u08ba\5\u019e\u00d0\2\u08b9\u08b8\3\2\2\2\u08b9") - buf.write("\u08ba\3\2\2\2\u08ba\u08bb\3\2\2\2\u08bb\u08bd\7G\2\2") - buf.write("\u08bc\u08be\5n8\2\u08bd\u08bc\3\2\2\2\u08bd\u08be\3\2") - buf.write("\2\2\u08be\u08c0\3\2\2\2\u08bf\u086c\3\2\2\2\u08bf\u088f") - buf.write("\3\2\2\2\u08bf\u08a7\3\2\2\2\u08c0\u0185\3\2\2\2\u08c1") - buf.write("\u08c2\7N\2\2\u08c2\u08c4\7#\2\2\u08c3\u08c5\5*\26\2\u08c4") - buf.write("\u08c3\3\2\2\2\u08c4\u08c5\3\2\2\2\u08c5\u08c9\3\2\2\2") - buf.write("\u08c6\u08c8\5\u00f2z\2\u08c7\u08c6\3\2\2\2\u08c8\u08cb") - buf.write("\3\2\2\2\u08c9\u08c7\3\2\2\2\u08c9\u08ca\3\2\2\2\u08ca") - buf.write("\u08cc\3\2\2\2\u08cb\u08c9\3\2\2\2\u08cc\u08ce\5\u01ea") - buf.write("\u00f6\2\u08cd\u08cf\5\u018a\u00c6\2\u08ce\u08cd\3\2\2") - buf.write("\2\u08ce\u08cf\3\2\2\2\u08cf\u08d0\3\2\2\2\u08d0\u08d2") - buf.write("\7F\2\2\u08d1\u08d3\5\u019e\u00d0\2\u08d2\u08d1\3\2\2") - buf.write("\2\u08d2\u08d3\3\2\2\2\u08d3\u08d4\3\2\2\2\u08d4\u08d6") - buf.write("\7G\2\2\u08d5\u08d7\5n8\2\u08d6\u08d5\3\2\2\2\u08d6\u08d7") - buf.write("\3\2\2\2\u08d7\u0187\3\2\2\2\u08d8\u08da\7#\2\2\u08d9") - buf.write("\u08db\5*\26\2\u08da\u08d9\3\2\2\2\u08da\u08db\3\2\2\2") - buf.write("\u08db\u08df\3\2\2\2\u08dc\u08de\5\u00f2z\2\u08dd\u08dc") - buf.write("\3\2\2\2\u08de\u08e1\3\2\2\2\u08df\u08dd\3\2\2\2\u08df") - buf.write("\u08e0\3\2\2\2\u08e0\u08e2\3\2\2\2\u08e1\u08df\3\2\2\2") - buf.write("\u08e2\u08ed\5\u01ea\u00f6\2\u08e3\u08e7\7N\2\2\u08e4") - buf.write("\u08e6\5\u00f2z\2\u08e5\u08e4\3\2\2\2\u08e6\u08e9\3\2") - buf.write("\2\2\u08e7\u08e5\3\2\2\2\u08e7\u08e8\3\2\2\2\u08e8\u08ea") - buf.write("\3\2\2\2\u08e9\u08e7\3\2\2\2\u08ea\u08ec\5\u01ea\u00f6") - buf.write("\2\u08eb\u08e3\3\2\2\2\u08ec\u08ef\3\2\2\2\u08ed\u08eb") - buf.write("\3\2\2\2\u08ed\u08ee\3\2\2\2\u08ee\u08f1\3\2\2\2\u08ef") - buf.write("\u08ed\3\2\2\2\u08f0\u08f2\5\u018a\u00c6\2\u08f1\u08f0") - buf.write("\3\2\2\2\u08f1\u08f2\3\2\2\2\u08f2\u08f3\3\2\2\2\u08f3") - buf.write("\u08f5\7F\2\2\u08f4\u08f6\5\u019e\u00d0\2\u08f5\u08f4") - buf.write("\3\2\2\2\u08f5\u08f6\3\2\2\2\u08f6\u08f7\3\2\2\2\u08f7") - buf.write("\u08f9\7G\2\2\u08f8\u08fa\5n8\2\u08f9\u08f8\3\2\2\2\u08f9") - buf.write("\u08fa\3\2\2\2\u08fa\u0914\3\2\2\2\u08fb\u08fc\5<\37\2") - buf.write("\u08fc\u08fd\7N\2\2\u08fd\u08ff\7#\2\2\u08fe\u0900\5*") - buf.write("\26\2\u08ff\u08fe\3\2\2\2\u08ff\u0900\3\2\2\2\u0900\u0904") - buf.write("\3\2\2\2\u0901\u0903\5\u00f2z\2\u0902\u0901\3\2\2\2\u0903") - buf.write("\u0906\3\2\2\2\u0904\u0902\3\2\2\2\u0904\u0905\3\2\2\2") - buf.write("\u0905\u0907\3\2\2\2\u0906\u0904\3\2\2\2\u0907\u0909\5") - buf.write("\u01ea\u00f6\2\u0908\u090a\5\u018a\u00c6\2\u0909\u0908") - buf.write("\3\2\2\2\u0909\u090a\3\2\2\2\u090a\u090b\3\2\2\2\u090b") - buf.write("\u090d\7F\2\2\u090c\u090e\5\u019e\u00d0\2\u090d\u090c") - buf.write("\3\2\2\2\u090d\u090e\3\2\2\2\u090e\u090f\3\2\2\2\u090f") - buf.write("\u0911\7G\2\2\u0910\u0912\5n8\2\u0911\u0910\3\2\2\2\u0911") - buf.write("\u0912\3\2\2\2\u0912\u0914\3\2\2\2\u0913\u08d8\3\2\2\2") - buf.write("\u0913\u08fb\3\2\2\2\u0914\u0189\3\2\2\2\u0915\u0919\5") - buf.write("*\26\2\u0916\u0917\7T\2\2\u0917\u0919\7S\2\2\u0918\u0915") - buf.write("\3\2\2\2\u0918\u0916\3\2\2\2\u0919\u018b\3\2\2\2\u091a") - buf.write("\u091b\5\u016e\u00b8\2\u091b\u091c\7N\2\2\u091c\u091d") - buf.write("\5\u01ea\u00f6\2\u091d\u0928\3\2\2\2\u091e\u091f\7\60") - buf.write("\2\2\u091f\u0920\7N\2\2\u0920\u0928\5\u01ea\u00f6\2\u0921") - buf.write("\u0922\58\35\2\u0922\u0923\7N\2\2\u0923\u0924\7\60\2\2") - buf.write("\u0924\u0925\7N\2\2\u0925\u0926\5\u01ea\u00f6\2\u0926") - buf.write("\u0928\3\2\2\2\u0927\u091a\3\2\2\2\u0927\u091e\3\2\2\2") - buf.write("\u0927\u0921\3\2\2\2\u0928\u018d\3\2\2\2\u0929\u092a\7") - buf.write("N\2\2\u092a\u092b\5\u01ea\u00f6\2\u092b\u018f\3\2\2\2") - buf.write("\u092c\u092d\7\60\2\2\u092d\u092e\7N\2\2\u092e\u0936\5") - buf.write("\u01ea\u00f6\2\u092f\u0930\58\35\2\u0930\u0931\7N\2\2") - buf.write("\u0931\u0932\7\60\2\2\u0932\u0933\7N\2\2\u0933\u0934\5") - buf.write("\u01ea\u00f6\2\u0934\u0936\3\2\2\2\u0935\u092c\3\2\2\2") - buf.write("\u0935\u092f\3\2\2\2\u0936\u0191\3\2\2\2\u0937\u0938\5") - buf.write("<\37\2\u0938\u0939\7J\2\2\u0939\u093a\5\u01ae\u00d8\2") - buf.write("\u093a\u093b\7K\2\2\u093b\u0942\3\2\2\2\u093c\u093d\5") - buf.write("\u0174\u00bb\2\u093d\u093e\7J\2\2\u093e\u093f\5\u01ae") - buf.write("\u00d8\2\u093f\u0940\7K\2\2\u0940\u0942\3\2\2\2\u0941") - buf.write("\u0937\3\2\2\2\u0941\u093c\3\2\2\2\u0942\u094a\3\2\2\2") - buf.write("\u0943\u0944\5\u0172\u00ba\2\u0944\u0945\7J\2\2\u0945") - buf.write("\u0946\5\u01ae\u00d8\2\u0946\u0947\7K\2\2\u0947\u0949") - buf.write("\3\2\2\2\u0948\u0943\3\2\2\2\u0949\u094c\3\2\2\2\u094a") - buf.write("\u0948\3\2\2\2\u094a\u094b\3\2\2\2\u094b\u0193\3\2\2\2") - buf.write("\u094c\u094a\3\2\2\2\u094d\u094e\5\u017a\u00be\2\u094e") - buf.write("\u094f\7J\2\2\u094f\u0950\5\u01ae\u00d8\2\u0950\u0951") - buf.write("\7K\2\2\u0951\u0959\3\2\2\2\u0952\u0953\5\u0178\u00bd") - buf.write("\2\u0953\u0954\7J\2\2\u0954\u0955\5\u01ae\u00d8\2\u0955") - buf.write("\u0956\7K\2\2\u0956\u0958\3\2\2\2\u0957\u0952\3\2\2\2") - buf.write("\u0958\u095b\3\2\2\2\u0959\u0957\3\2\2\2\u0959\u095a\3") - buf.write("\2\2\2\u095a\u0195\3\2\2\2\u095b\u0959\3\2\2\2\u095c\u095d") - buf.write("\5<\37\2\u095d\u095e\7J\2\2\u095e\u095f\5\u01ae\u00d8") - buf.write("\2\u095f\u0960\7K\2\2\u0960\u0967\3\2\2\2\u0961\u0962") - buf.write("\5\u0180\u00c1\2\u0962\u0963\7J\2\2\u0963\u0964\5\u01ae") - buf.write("\u00d8\2\u0964\u0965\7K\2\2\u0965\u0967\3\2\2\2\u0966") - buf.write("\u095c\3\2\2\2\u0966\u0961\3\2\2\2\u0967\u096f\3\2\2\2") - buf.write("\u0968\u0969\5\u017e\u00c0\2\u0969\u096a\7J\2\2\u096a") - buf.write("\u096b\5\u01ae\u00d8\2\u096b\u096c\7K\2\2\u096c\u096e") - buf.write("\3\2\2\2\u096d\u0968\3\2\2\2\u096e\u0971\3\2\2\2\u096f") - buf.write("\u096d\3\2\2\2\u096f\u0970\3\2\2\2\u0970\u0197\3\2\2\2") - buf.write("\u0971\u096f\3\2\2\2\u0972\u0973\5> \2\u0973\u0975\7F") - buf.write("\2\2\u0974\u0976\5\u019e\u00d0\2\u0975\u0974\3\2\2\2\u0975") - buf.write("\u0976\3\2\2\2\u0976\u0977\3\2\2\2\u0977\u0978\7G\2\2") - buf.write("\u0978\u09b8\3\2\2\2\u0979\u097a\58\35\2\u097a\u097c\7") - buf.write("N\2\2\u097b\u097d\5*\26\2\u097c\u097b\3\2\2\2\u097c\u097d") - buf.write("\3\2\2\2\u097d\u097e\3\2\2\2\u097e\u097f\5\u01ea\u00f6") - buf.write("\2\u097f\u0981\7F\2\2\u0980\u0982\5\u019e\u00d0\2\u0981") - buf.write("\u0980\3\2\2\2\u0981\u0982\3\2\2\2\u0982\u0983\3\2\2\2") - buf.write("\u0983\u0984\7G\2\2\u0984\u09b8\3\2\2\2\u0985\u0986\5") - buf.write("<\37\2\u0986\u0988\7N\2\2\u0987\u0989\5*\26\2\u0988\u0987") - buf.write("\3\2\2\2\u0988\u0989\3\2\2\2\u0989\u098a\3\2\2\2\u098a") - buf.write("\u098b\5\u01ea\u00f6\2\u098b\u098d\7F\2\2\u098c\u098e") - buf.write("\5\u019e\u00d0\2\u098d\u098c\3\2\2\2\u098d\u098e\3\2\2") - buf.write("\2\u098e\u098f\3\2\2\2\u098f\u0990\7G\2\2\u0990\u09b8") - buf.write("\3\2\2\2\u0991\u0992\5\u016e\u00b8\2\u0992\u0994\7N\2") - buf.write("\2\u0993\u0995\5*\26\2\u0994\u0993\3\2\2\2\u0994\u0995") - buf.write("\3\2\2\2\u0995\u0996\3\2\2\2\u0996\u0997\5\u01ea\u00f6") - buf.write("\2\u0997\u0999\7F\2\2\u0998\u099a\5\u019e\u00d0\2\u0999") - buf.write("\u0998\3\2\2\2\u0999\u099a\3\2\2\2\u099a\u099b\3\2\2\2") - buf.write("\u099b\u099c\7G\2\2\u099c\u09b8\3\2\2\2\u099d\u099e\7") - buf.write("\60\2\2\u099e\u09a0\7N\2\2\u099f\u09a1\5*\26\2\u09a0\u099f") - buf.write("\3\2\2\2\u09a0\u09a1\3\2\2\2\u09a1\u09a2\3\2\2\2\u09a2") - buf.write("\u09a3\5\u01ea\u00f6\2\u09a3\u09a5\7F\2\2\u09a4\u09a6") - buf.write("\5\u019e\u00d0\2\u09a5\u09a4\3\2\2\2\u09a5\u09a6\3\2\2") - buf.write("\2\u09a6\u09a7\3\2\2\2\u09a7\u09a8\7G\2\2\u09a8\u09b8") - buf.write("\3\2\2\2\u09a9\u09aa\58\35\2\u09aa\u09ab\7N\2\2\u09ab") - buf.write("\u09ac\7\60\2\2\u09ac\u09ae\7N\2\2\u09ad\u09af\5*\26\2") - buf.write("\u09ae\u09ad\3\2\2\2\u09ae\u09af\3\2\2\2\u09af\u09b0\3") - buf.write("\2\2\2\u09b0\u09b1\5\u01ea\u00f6\2\u09b1\u09b3\7F\2\2") - buf.write("\u09b2\u09b4\5\u019e\u00d0\2\u09b3\u09b2\3\2\2\2\u09b3") - buf.write("\u09b4\3\2\2\2\u09b4\u09b5\3\2\2\2\u09b5\u09b6\7G\2\2") - buf.write("\u09b6\u09b8\3\2\2\2\u09b7\u0972\3\2\2\2\u09b7\u0979\3") - buf.write("\2\2\2\u09b7\u0985\3\2\2\2\u09b7\u0991\3\2\2\2\u09b7\u099d") - buf.write("\3\2\2\2\u09b7\u09a9\3\2\2\2\u09b8\u0199\3\2\2\2\u09b9") - buf.write("\u09bb\7N\2\2\u09ba\u09bc\5*\26\2\u09bb\u09ba\3\2\2\2") - buf.write("\u09bb\u09bc\3\2\2\2\u09bc\u09bd\3\2\2\2\u09bd\u09be\5") - buf.write("\u01ea\u00f6\2\u09be\u09c0\7F\2\2\u09bf\u09c1\5\u019e") - buf.write("\u00d0\2\u09c0\u09bf\3\2\2\2\u09c0\u09c1\3\2\2\2\u09c1") - buf.write("\u09c2\3\2\2\2\u09c2\u09c3\7G\2\2\u09c3\u019b\3\2\2\2") - buf.write("\u09c4\u09c5\5> \2\u09c5\u09c7\7F\2\2\u09c6\u09c8\5\u019e") - buf.write("\u00d0\2\u09c7\u09c6\3\2\2\2\u09c7\u09c8\3\2\2\2\u09c8") - buf.write("\u09c9\3\2\2\2\u09c9\u09ca\7G\2\2\u09ca\u09fe\3\2\2\2") - buf.write("\u09cb\u09cc\58\35\2\u09cc\u09ce\7N\2\2\u09cd\u09cf\5") - buf.write("*\26\2\u09ce\u09cd\3\2\2\2\u09ce\u09cf\3\2\2\2\u09cf\u09d0") - buf.write("\3\2\2\2\u09d0\u09d1\5\u01ea\u00f6\2\u09d1\u09d3\7F\2") - buf.write("\2\u09d2\u09d4\5\u019e\u00d0\2\u09d3\u09d2\3\2\2\2\u09d3") - buf.write("\u09d4\3\2\2\2\u09d4\u09d5\3\2\2\2\u09d5\u09d6\7G\2\2") - buf.write("\u09d6\u09fe\3\2\2\2\u09d7\u09d8\5<\37\2\u09d8\u09da\7") - buf.write("N\2\2\u09d9\u09db\5*\26\2\u09da\u09d9\3\2\2\2\u09da\u09db") - buf.write("\3\2\2\2\u09db\u09dc\3\2\2\2\u09dc\u09dd\5\u01ea\u00f6") - buf.write("\2\u09dd\u09df\7F\2\2\u09de\u09e0\5\u019e\u00d0\2\u09df") - buf.write("\u09de\3\2\2\2\u09df\u09e0\3\2\2\2\u09e0\u09e1\3\2\2\2") - buf.write("\u09e1\u09e2\7G\2\2\u09e2\u09fe\3\2\2\2\u09e3\u09e4\7") - buf.write("\60\2\2\u09e4\u09e6\7N\2\2\u09e5\u09e7\5*\26\2\u09e6\u09e5") - buf.write("\3\2\2\2\u09e6\u09e7\3\2\2\2\u09e7\u09e8\3\2\2\2\u09e8") - buf.write("\u09e9\5\u01ea\u00f6\2\u09e9\u09eb\7F\2\2\u09ea\u09ec") - buf.write("\5\u019e\u00d0\2\u09eb\u09ea\3\2\2\2\u09eb\u09ec\3\2\2") - buf.write("\2\u09ec\u09ed\3\2\2\2\u09ed\u09ee\7G\2\2\u09ee\u09fe") - buf.write("\3\2\2\2\u09ef\u09f0\58\35\2\u09f0\u09f1\7N\2\2\u09f1") - buf.write("\u09f2\7\60\2\2\u09f2\u09f4\7N\2\2\u09f3\u09f5\5*\26\2") - buf.write("\u09f4\u09f3\3\2\2\2\u09f4\u09f5\3\2\2\2\u09f5\u09f6\3") - buf.write("\2\2\2\u09f6\u09f7\5\u01ea\u00f6\2\u09f7\u09f9\7F\2\2") - buf.write("\u09f8\u09fa\5\u019e\u00d0\2\u09f9\u09f8\3\2\2\2\u09f9") - buf.write("\u09fa\3\2\2\2\u09fa\u09fb\3\2\2\2\u09fb\u09fc\7G\2\2") - buf.write("\u09fc\u09fe\3\2\2\2\u09fd\u09c4\3\2\2\2\u09fd\u09cb\3") - buf.write("\2\2\2\u09fd\u09d7\3\2\2\2\u09fd\u09e3\3\2\2\2\u09fd\u09ef") - buf.write("\3\2\2\2\u09fe\u019d\3\2\2\2\u09ff\u0a04\5\u01ae\u00d8") - buf.write("\2\u0a00\u0a01\7M\2\2\u0a01\u0a03\5\u01ae\u00d8\2\u0a02") - buf.write("\u0a00\3\2\2\2\u0a03\u0a06\3\2\2\2\u0a04\u0a02\3\2\2\2") - buf.write("\u0a04\u0a05\3\2\2\2\u0a05\u019f\3\2\2\2\u0a06\u0a04\3") - buf.write("\2\2\2\u0a07\u0a08\5<\37\2\u0a08\u0a0a\7Q\2\2\u0a09\u0a0b") - buf.write("\5*\26\2\u0a0a\u0a09\3\2\2\2\u0a0a\u0a0b\3\2\2\2\u0a0b") - buf.write("\u0a0c\3\2\2\2\u0a0c\u0a0d\5\u01ea\u00f6\2\u0a0d\u0a37") - buf.write("\3\2\2\2\u0a0e\u0a0f\5\f\7\2\u0a0f\u0a11\7Q\2\2\u0a10") - buf.write("\u0a12\5*\26\2\u0a11\u0a10\3\2\2\2\u0a11\u0a12\3\2\2\2") - buf.write("\u0a12\u0a13\3\2\2\2\u0a13\u0a14\5\u01ea\u00f6\2\u0a14") - buf.write("\u0a37\3\2\2\2\u0a15\u0a16\5\u016e\u00b8\2\u0a16\u0a18") - buf.write("\7Q\2\2\u0a17\u0a19\5*\26\2\u0a18\u0a17\3\2\2\2\u0a18") - buf.write("\u0a19\3\2\2\2\u0a19\u0a1a\3\2\2\2\u0a1a\u0a1b\5\u01ea") - buf.write("\u00f6\2\u0a1b\u0a37\3\2\2\2\u0a1c\u0a1d\7\60\2\2\u0a1d") - buf.write("\u0a1f\7Q\2\2\u0a1e\u0a20\5*\26\2\u0a1f\u0a1e\3\2\2\2") - buf.write("\u0a1f\u0a20\3\2\2\2\u0a20\u0a21\3\2\2\2\u0a21\u0a37\5") - buf.write("\u01ea\u00f6\2\u0a22\u0a23\58\35\2\u0a23\u0a24\7N\2\2") - buf.write("\u0a24\u0a25\7\60\2\2\u0a25\u0a27\7Q\2\2\u0a26\u0a28\5") - buf.write("*\26\2\u0a27\u0a26\3\2\2\2\u0a27\u0a28\3\2\2\2\u0a28\u0a29") - buf.write("\3\2\2\2\u0a29\u0a2a\5\u01ea\u00f6\2\u0a2a\u0a37\3\2\2") - buf.write("\2\u0a2b\u0a2c\5\20\t\2\u0a2c\u0a2e\7Q\2\2\u0a2d\u0a2f") - buf.write("\5*\26\2\u0a2e\u0a2d\3\2\2\2\u0a2e\u0a2f\3\2\2\2\u0a2f") - buf.write("\u0a30\3\2\2\2\u0a30\u0a31\7#\2\2\u0a31\u0a37\3\2\2\2") - buf.write("\u0a32\u0a33\5\36\20\2\u0a33\u0a34\7Q\2\2\u0a34\u0a35") - buf.write("\7#\2\2\u0a35\u0a37\3\2\2\2\u0a36\u0a07\3\2\2\2\u0a36") - buf.write("\u0a0e\3\2\2\2\u0a36\u0a15\3\2\2\2\u0a36\u0a1c\3\2\2\2") - buf.write("\u0a36\u0a22\3\2\2\2\u0a36\u0a2b\3\2\2\2\u0a36\u0a32\3") - buf.write("\2\2\2\u0a37\u01a1\3\2\2\2\u0a38\u0a3a\7Q\2\2\u0a39\u0a3b") - buf.write("\5*\26\2\u0a3a\u0a39\3\2\2\2\u0a3a\u0a3b\3\2\2\2\u0a3b") - buf.write("\u0a3c\3\2\2\2\u0a3c\u0a3d\5\u01ea\u00f6\2\u0a3d\u01a3") - buf.write("\3\2\2\2\u0a3e\u0a3f\5<\37\2\u0a3f\u0a41\7Q\2\2\u0a40") - buf.write("\u0a42\5*\26\2\u0a41\u0a40\3\2\2\2\u0a41\u0a42\3\2\2\2") - buf.write("\u0a42\u0a43\3\2\2\2\u0a43\u0a44\5\u01ea\u00f6\2\u0a44") - buf.write("\u0a67\3\2\2\2\u0a45\u0a46\5\f\7\2\u0a46\u0a48\7Q\2\2") - buf.write("\u0a47\u0a49\5*\26\2\u0a48\u0a47\3\2\2\2\u0a48\u0a49\3") - buf.write("\2\2\2\u0a49\u0a4a\3\2\2\2\u0a4a\u0a4b\5\u01ea\u00f6\2") - buf.write("\u0a4b\u0a67\3\2\2\2\u0a4c\u0a4d\7\60\2\2\u0a4d\u0a4f") - buf.write("\7Q\2\2\u0a4e\u0a50\5*\26\2\u0a4f\u0a4e\3\2\2\2\u0a4f") - buf.write("\u0a50\3\2\2\2\u0a50\u0a51\3\2\2\2\u0a51\u0a67\5\u01ea") - buf.write("\u00f6\2\u0a52\u0a53\58\35\2\u0a53\u0a54\7N\2\2\u0a54") - buf.write("\u0a55\7\60\2\2\u0a55\u0a57\7Q\2\2\u0a56\u0a58\5*\26\2") - buf.write("\u0a57\u0a56\3\2\2\2\u0a57\u0a58\3\2\2\2\u0a58\u0a59\3") - buf.write("\2\2\2\u0a59\u0a5a\5\u01ea\u00f6\2\u0a5a\u0a67\3\2\2\2") - buf.write("\u0a5b\u0a5c\5\20\t\2\u0a5c\u0a5e\7Q\2\2\u0a5d\u0a5f\5") - buf.write("*\26\2\u0a5e\u0a5d\3\2\2\2\u0a5e\u0a5f\3\2\2\2\u0a5f\u0a60") - buf.write("\3\2\2\2\u0a60\u0a61\7#\2\2\u0a61\u0a67\3\2\2\2\u0a62") - buf.write("\u0a63\5\36\20\2\u0a63\u0a64\7Q\2\2\u0a64\u0a65\7#\2\2") - buf.write("\u0a65\u0a67\3\2\2\2\u0a66\u0a3e\3\2\2\2\u0a66\u0a45\3") - buf.write("\2\2\2\u0a66\u0a4c\3\2\2\2\u0a66\u0a52\3\2\2\2\u0a66\u0a5b") - buf.write("\3\2\2\2\u0a66\u0a62\3\2\2\2\u0a67\u01a5\3\2\2\2\u0a68") - buf.write("\u0a69\7#\2\2\u0a69\u0a6a\5\4\3\2\u0a6a\u0a6c\5\u01a8") - buf.write("\u00d5\2\u0a6b\u0a6d\5 \21\2\u0a6c\u0a6b\3\2\2\2\u0a6c") - buf.write("\u0a6d\3\2\2\2\u0a6d\u0a7f\3\2\2\2\u0a6e\u0a6f\7#\2\2") - buf.write("\u0a6f\u0a70\5\16\b\2\u0a70\u0a72\5\u01a8\u00d5\2\u0a71") - buf.write("\u0a73\5 \21\2\u0a72\u0a71\3\2\2\2\u0a72\u0a73\3\2\2\2") - buf.write("\u0a73\u0a7f\3\2\2\2\u0a74\u0a75\7#\2\2\u0a75\u0a76\5") - buf.write("\4\3\2\u0a76\u0a77\5 \21\2\u0a77\u0a78\5\u0104\u0083\2") - buf.write("\u0a78\u0a7f\3\2\2\2\u0a79\u0a7a\7#\2\2\u0a7a\u0a7b\5") - buf.write("\16\b\2\u0a7b\u0a7c\5 \21\2\u0a7c\u0a7d\5\u0104\u0083") - buf.write("\2\u0a7d\u0a7f\3\2\2\2\u0a7e\u0a68\3\2\2\2\u0a7e\u0a6e") - buf.write("\3\2\2\2\u0a7e\u0a74\3\2\2\2\u0a7e\u0a79\3\2\2\2\u0a7f") - buf.write("\u01a7\3\2\2\2\u0a80\u0a82\5\u01aa\u00d6\2\u0a81\u0a80") - buf.write("\3\2\2\2\u0a82\u0a83\3\2\2\2\u0a83\u0a81\3\2\2\2\u0a83") - buf.write("\u0a84\3\2\2\2\u0a84\u01a9\3\2\2\2\u0a85\u0a87\5\u00f2") - buf.write("z\2\u0a86\u0a85\3\2\2\2\u0a87\u0a8a\3\2\2\2\u0a88\u0a86") - buf.write("\3\2\2\2\u0a88\u0a89\3\2\2\2\u0a89\u0a8b\3\2\2\2\u0a8a") - buf.write("\u0a88\3\2\2\2\u0a8b\u0a8c\7J\2\2\u0a8c\u0a8d\5\u01ae") - buf.write("\u00d8\2\u0a8d\u0a8e\7K\2\2\u0a8e\u01ab\3\2\2\2\u0a8f") - buf.write("\u0a90\5\u01ae\u00d8\2\u0a90\u01ad\3\2\2\2\u0a91\u0a94") - buf.write("\5\u01b0\u00d9\2\u0a92\u0a94\5\u01b8\u00dd\2\u0a93\u0a91") - buf.write("\3\2\2\2\u0a93\u0a92\3\2\2\2\u0a94\u01af\3\2\2\2\u0a95") - buf.write("\u0a96\5\u01b2\u00da\2\u0a96\u0a97\7Y\2\2\u0a97\u0a98") - buf.write("\5\u01b6\u00dc\2\u0a98\u01b1\3\2\2\2\u0a99\u0aa4\5\u01ea") - buf.write("\u00f6\2\u0a9a\u0a9c\7F\2\2\u0a9b\u0a9d\5\u00a2R\2\u0a9c") - buf.write("\u0a9b\3\2\2\2\u0a9c\u0a9d\3\2\2\2\u0a9d\u0a9e\3\2\2\2") - buf.write("\u0a9e\u0aa4\7G\2\2\u0a9f\u0aa0\7F\2\2\u0aa0\u0aa1\5\u01b4") - buf.write("\u00db\2\u0aa1\u0aa2\7G\2\2\u0aa2\u0aa4\3\2\2\2\u0aa3") - buf.write("\u0a99\3\2\2\2\u0aa3\u0a9a\3\2\2\2\u0aa3\u0a9f\3\2\2\2") - buf.write("\u0aa4\u01b3\3\2\2\2\u0aa5\u0aaa\5\u01ea\u00f6\2\u0aa6") - buf.write("\u0aa7\7M\2\2\u0aa7\u0aa9\5\u01ea\u00f6\2\u0aa8\u0aa6") - buf.write("\3\2\2\2\u0aa9\u0aac\3\2\2\2\u0aaa\u0aa8\3\2\2\2\u0aaa") - buf.write("\u0aab\3\2\2\2\u0aab\u01b5\3\2\2\2\u0aac\u0aaa\3\2\2\2") - buf.write("\u0aad\u0ab0\5\u01ae\u00d8\2\u0aae\u0ab0\5\u0108\u0085") - buf.write("\2\u0aaf\u0aad\3\2\2\2\u0aaf\u0aae\3\2\2\2\u0ab0\u01b7") - buf.write("\3\2\2\2\u0ab1\u0ab4\5\u01c0\u00e1\2\u0ab2\u0ab4\5\u01ba") - buf.write("\u00de\2\u0ab3\u0ab1\3\2\2\2\u0ab3\u0ab2\3\2\2\2\u0ab4") - buf.write("\u01b9\3\2\2\2\u0ab5\u0ab6\5\u01bc\u00df\2\u0ab6\u0ab7") - buf.write("\5\u01be\u00e0\2\u0ab7\u0ab8\5\u01ae\u00d8\2\u0ab8\u01bb") - buf.write("\3\2\2\2\u0ab9\u0abd\5<\37\2\u0aba\u0abd\5\u018c\u00c7") - buf.write("\2\u0abb\u0abd\5\u0192\u00ca\2\u0abc\u0ab9\3\2\2\2\u0abc") - buf.write("\u0aba\3\2\2\2\u0abc\u0abb\3\2\2\2\u0abd\u01bd\3\2\2\2") - buf.write("\u0abe\u0abf\t\6\2\2\u0abf\u01bf\3\2\2\2\u0ac0\u0aca\5") - buf.write("\u01c2\u00e2\2\u0ac1\u0ac2\5\u01c2\u00e2\2\u0ac2\u0ac3") - buf.write("\7W\2\2\u0ac3\u0ac4\5\u01ae\u00d8\2\u0ac4\u0ac7\7X\2\2") - buf.write("\u0ac5\u0ac8\5\u01c0\u00e1\2\u0ac6\u0ac8\5\u01b0\u00d9") - buf.write("\2\u0ac7\u0ac5\3\2\2\2\u0ac7\u0ac6\3\2\2\2\u0ac8\u0aca") - buf.write("\3\2\2\2\u0ac9\u0ac0\3\2\2\2\u0ac9\u0ac1\3\2\2\2\u0aca") - buf.write("\u01c1\3\2\2\2\u0acb\u0acc\b\u00e2\1\2\u0acc\u0acd\5\u01c4") - buf.write("\u00e3\2\u0acd\u0ad3\3\2\2\2\u0ace\u0acf\f\3\2\2\u0acf") - buf.write("\u0ad0\7_\2\2\u0ad0\u0ad2\5\u01c4\u00e3\2\u0ad1\u0ace") - buf.write("\3\2\2\2\u0ad2\u0ad5\3\2\2\2\u0ad3\u0ad1\3\2\2\2\u0ad3") - buf.write("\u0ad4\3\2\2\2\u0ad4\u01c3\3\2\2\2\u0ad5\u0ad3\3\2\2\2") - buf.write("\u0ad6\u0ad7\b\u00e3\1\2\u0ad7\u0ad8\5\u01c6\u00e4\2\u0ad8") - buf.write("\u0ade\3\2\2\2\u0ad9\u0ada\f\3\2\2\u0ada\u0adb\7^\2\2") - buf.write("\u0adb\u0add\5\u01c6\u00e4\2\u0adc\u0ad9\3\2\2\2\u0add") - buf.write("\u0ae0\3\2\2\2\u0ade\u0adc\3\2\2\2\u0ade\u0adf\3\2\2\2") - buf.write("\u0adf\u01c5\3\2\2\2\u0ae0\u0ade\3\2\2\2\u0ae1\u0ae2\b") - buf.write("\u00e4\1\2\u0ae2\u0ae3\5\u01c8\u00e5\2\u0ae3\u0ae9\3\2") - buf.write("\2\2\u0ae4\u0ae5\f\3\2\2\u0ae5\u0ae6\7g\2\2\u0ae6\u0ae8") - buf.write("\5\u01c8\u00e5\2\u0ae7\u0ae4\3\2\2\2\u0ae8\u0aeb\3\2\2") - buf.write("\2\u0ae9\u0ae7\3\2\2\2\u0ae9\u0aea\3\2\2\2\u0aea\u01c7") - buf.write("\3\2\2\2\u0aeb\u0ae9\3\2\2\2\u0aec\u0aed\b\u00e5\1\2\u0aed") - buf.write("\u0aee\5\u01ca\u00e6\2\u0aee\u0af4\3\2\2\2\u0aef\u0af0") - buf.write("\f\3\2\2\u0af0\u0af1\7h\2\2\u0af1\u0af3\5\u01ca\u00e6") - buf.write("\2\u0af2\u0aef\3\2\2\2\u0af3\u0af6\3\2\2\2\u0af4\u0af2") - buf.write("\3\2\2\2\u0af4\u0af5\3\2\2\2\u0af5\u01c9\3\2\2\2\u0af6") - buf.write("\u0af4\3\2\2\2\u0af7\u0af8\b\u00e6\1\2\u0af8\u0af9\5\u01cc") - buf.write("\u00e7\2\u0af9\u0aff\3\2\2\2\u0afa\u0afb\f\3\2\2\u0afb") - buf.write("\u0afc\7f\2\2\u0afc\u0afe\5\u01cc\u00e7\2\u0afd\u0afa") - buf.write("\3\2\2\2\u0afe\u0b01\3\2\2\2\u0aff\u0afd\3\2\2\2\u0aff") - buf.write("\u0b00\3\2\2\2\u0b00\u01cb\3\2\2\2\u0b01\u0aff\3\2\2\2") - buf.write("\u0b02\u0b03\b\u00e7\1\2\u0b03\u0b04\5\u01ce\u00e8\2\u0b04") - buf.write("\u0b0d\3\2\2\2\u0b05\u0b06\f\4\2\2\u0b06\u0b07\7Z\2\2") - buf.write("\u0b07\u0b0c\5\u01ce\u00e8\2\u0b08\u0b09\f\3\2\2\u0b09") - buf.write("\u0b0a\7]\2\2\u0b0a\u0b0c\5\u01ce\u00e8\2\u0b0b\u0b05") - buf.write("\3\2\2\2\u0b0b\u0b08\3\2\2\2\u0b0c\u0b0f\3\2\2\2\u0b0d") - buf.write("\u0b0b\3\2\2\2\u0b0d\u0b0e\3\2\2\2\u0b0e\u01cd\3\2\2\2") - buf.write("\u0b0f\u0b0d\3\2\2\2\u0b10\u0b11\b\u00e8\1\2\u0b11\u0b12") - buf.write("\5\u01d0\u00e9\2\u0b12\u0b24\3\2\2\2\u0b13\u0b14\f\7\2") - buf.write("\2\u0b14\u0b15\7T\2\2\u0b15\u0b23\5\u01d0\u00e9\2\u0b16") - buf.write("\u0b17\f\6\2\2\u0b17\u0b18\7S\2\2\u0b18\u0b23\5\u01d0") - buf.write("\u00e9\2\u0b19\u0b1a\f\5\2\2\u0b1a\u0b1b\7[\2\2\u0b1b") - buf.write("\u0b23\5\u01d0\u00e9\2\u0b1c\u0b1d\f\4\2\2\u0b1d\u0b1e") - buf.write("\7\\\2\2\u0b1e\u0b23\5\u01d0\u00e9\2\u0b1f\u0b20\f\3\2") - buf.write("\2\u0b20\u0b21\7\35\2\2\u0b21\u0b23\5\f\7\2\u0b22\u0b13") - buf.write("\3\2\2\2\u0b22\u0b16\3\2\2\2\u0b22\u0b19\3\2\2\2\u0b22") - buf.write("\u0b1c\3\2\2\2\u0b22\u0b1f\3\2\2\2\u0b23\u0b26\3\2\2\2") - buf.write("\u0b24\u0b22\3\2\2\2\u0b24\u0b25\3\2\2\2\u0b25\u01cf\3") - buf.write("\2\2\2\u0b26\u0b24\3\2\2\2\u0b27\u0b28\b\u00e9\1\2\u0b28") - buf.write("\u0b29\5\u01d2\u00ea\2\u0b29\u0b39\3\2\2\2\u0b2a\u0b2b") - buf.write("\f\5\2\2\u0b2b\u0b2c\7T\2\2\u0b2c\u0b2d\7T\2\2\u0b2d\u0b38") - buf.write("\5\u01d2\u00ea\2\u0b2e\u0b2f\f\4\2\2\u0b2f\u0b30\7S\2") - buf.write("\2\u0b30\u0b31\7S\2\2\u0b31\u0b38\5\u01d2\u00ea\2\u0b32") - buf.write("\u0b33\f\3\2\2\u0b33\u0b34\7S\2\2\u0b34\u0b35\7S\2\2\u0b35") - buf.write("\u0b36\7S\2\2\u0b36\u0b38\5\u01d2\u00ea\2\u0b37\u0b2a") - buf.write("\3\2\2\2\u0b37\u0b2e\3\2\2\2\u0b37\u0b32\3\2\2\2\u0b38") - buf.write("\u0b3b\3\2\2\2\u0b39\u0b37\3\2\2\2\u0b39\u0b3a\3\2\2\2") - buf.write("\u0b3a\u01d1\3\2\2\2\u0b3b\u0b39\3\2\2\2\u0b3c\u0b3d\b") - buf.write("\u00ea\1\2\u0b3d\u0b3e\5\u01d4\u00eb\2\u0b3e\u0b47\3\2") - buf.write("\2\2\u0b3f\u0b40\f\4\2\2\u0b40\u0b41\7b\2\2\u0b41\u0b46") - buf.write("\5\u01d4\u00eb\2\u0b42\u0b43\f\3\2\2\u0b43\u0b44\7c\2") - buf.write("\2\u0b44\u0b46\5\u01d4\u00eb\2\u0b45\u0b3f\3\2\2\2\u0b45") - buf.write("\u0b42\3\2\2\2\u0b46\u0b49\3\2\2\2\u0b47\u0b45\3\2\2\2") - buf.write("\u0b47\u0b48\3\2\2\2\u0b48\u01d3\3\2\2\2\u0b49\u0b47\3") - buf.write("\2\2\2\u0b4a\u0b4b\b\u00eb\1\2\u0b4b\u0b4c\5\u01d6\u00ec") - buf.write("\2\u0b4c\u0b58\3\2\2\2\u0b4d\u0b4e\f\5\2\2\u0b4e\u0b4f") - buf.write("\7d\2\2\u0b4f\u0b57\5\u01d6\u00ec\2\u0b50\u0b51\f\4\2") - buf.write("\2\u0b51\u0b52\7e\2\2\u0b52\u0b57\5\u01d6\u00ec\2\u0b53") - buf.write("\u0b54\f\3\2\2\u0b54\u0b55\7i\2\2\u0b55\u0b57\5\u01d6") - buf.write("\u00ec\2\u0b56\u0b4d\3\2\2\2\u0b56\u0b50\3\2\2\2\u0b56") - buf.write("\u0b53\3\2\2\2\u0b57\u0b5a\3\2\2\2\u0b58\u0b56\3\2\2\2") - buf.write("\u0b58\u0b59\3\2\2\2\u0b59\u01d5\3\2\2\2\u0b5a\u0b58\3") - buf.write("\2\2\2\u0b5b\u0b63\5\u01d8\u00ed\2\u0b5c\u0b63\5\u01da") - buf.write("\u00ee\2\u0b5d\u0b5e\7b\2\2\u0b5e\u0b63\5\u01d6\u00ec") - buf.write("\2\u0b5f\u0b60\7c\2\2\u0b60\u0b63\5\u01d6\u00ec\2\u0b61") - buf.write("\u0b63\5\u01dc\u00ef\2\u0b62\u0b5b\3\2\2\2\u0b62\u0b5c") - buf.write("\3\2\2\2\u0b62\u0b5d\3\2\2\2\u0b62\u0b5f\3\2\2\2\u0b62") - buf.write("\u0b61\3\2\2\2\u0b63\u01d7\3\2\2\2\u0b64\u0b65\7`\2\2") - buf.write("\u0b65\u0b66\5\u01d6\u00ec\2\u0b66\u01d9\3\2\2\2\u0b67") - buf.write("\u0b68\7a\2\2\u0b68\u0b69\5\u01d6\u00ec\2\u0b69\u01db") - buf.write("\3\2\2\2\u0b6a\u0b71\5\u01de\u00f0\2\u0b6b\u0b6c\7V\2") - buf.write("\2\u0b6c\u0b71\5\u01d6\u00ec\2\u0b6d\u0b6e\7U\2\2\u0b6e") - buf.write("\u0b71\5\u01d6\u00ec\2\u0b6f\u0b71\5\u01e8\u00f5\2\u0b70") - buf.write("\u0b6a\3\2\2\2\u0b70\u0b6b\3\2\2\2\u0b70\u0b6d\3\2\2\2") - buf.write("\u0b70\u0b6f\3\2\2\2\u0b71\u01dd\3\2\2\2\u0b72\u0b75\5") - buf.write("\u016e\u00b8\2\u0b73\u0b75\5<\37\2\u0b74\u0b72\3\2\2\2") - buf.write("\u0b74\u0b73\3\2\2\2\u0b75\u0b7a\3\2\2\2\u0b76\u0b79\5") - buf.write("\u01e2\u00f2\2\u0b77\u0b79\5\u01e6\u00f4\2\u0b78\u0b76") - buf.write("\3\2\2\2\u0b78\u0b77\3\2\2\2\u0b79\u0b7c\3\2\2\2\u0b7a") - buf.write("\u0b78\3\2\2\2\u0b7a\u0b7b\3\2\2\2\u0b7b\u01df\3\2\2\2") - buf.write("\u0b7c\u0b7a\3\2\2\2\u0b7d\u0b7e\5\u01de\u00f0\2\u0b7e") - buf.write("\u0b7f\7`\2\2\u0b7f\u01e1\3\2\2\2\u0b80\u0b81\7`\2\2\u0b81") - buf.write("\u01e3\3\2\2\2\u0b82\u0b83\5\u01de\u00f0\2\u0b83\u0b84") - buf.write("\7a\2\2\u0b84\u01e5\3\2\2\2\u0b85\u0b86\7a\2\2\u0b86\u01e7") - buf.write("\3\2\2\2\u0b87\u0b88\7F\2\2\u0b88\u0b89\5\4\3\2\u0b89") - buf.write("\u0b8a\7G\2\2\u0b8a\u0b8b\5\u01d6\u00ec\2\u0b8b\u0ba3") - buf.write("\3\2\2\2\u0b8c\u0b8d\7F\2\2\u0b8d\u0b91\5\f\7\2\u0b8e") - buf.write("\u0b90\5(\25\2\u0b8f\u0b8e\3\2\2\2\u0b90\u0b93\3\2\2\2") - buf.write("\u0b91\u0b8f\3\2\2\2\u0b91\u0b92\3\2\2\2\u0b92\u0b94\3") - buf.write("\2\2\2\u0b93\u0b91\3\2\2\2\u0b94\u0b95\7G\2\2\u0b95\u0b96") - buf.write("\5\u01dc\u00ef\2\u0b96\u0ba3\3\2\2\2\u0b97\u0b98\7F\2") - buf.write("\2\u0b98\u0b9c\5\f\7\2\u0b99\u0b9b\5(\25\2\u0b9a\u0b99") - buf.write("\3\2\2\2\u0b9b\u0b9e\3\2\2\2\u0b9c\u0b9a\3\2\2\2\u0b9c") - buf.write("\u0b9d\3\2\2\2\u0b9d\u0b9f\3\2\2\2\u0b9e\u0b9c\3\2\2\2") - buf.write("\u0b9f\u0ba0\7G\2\2\u0ba0\u0ba1\5\u01b0\u00d9\2\u0ba1") - buf.write("\u0ba3\3\2\2\2\u0ba2\u0b87\3\2\2\2\u0ba2\u0b8c\3\2\2\2") - buf.write("\u0ba2\u0b97\3\2\2\2\u0ba3\u01e9\3\2\2\2\u0ba4\u0ba5\t") - buf.write("\7\2\2\u0ba5\u01eb\3\2\2\2\u0156\u01f1\u01f8\u01fc\u0200") - buf.write("\u0209\u020d\u0211\u0213\u0219\u021e\u0225\u022a\u022c") - buf.write("\u0232\u0237\u023c\u0241\u024c\u025a\u025f\u0267\u026e") - buf.write("\u0274\u0279\u0284\u0287\u0295\u029a\u029f\u02a4\u02aa") - buf.write("\u02b4\u02bf\u02c7\u02d1\u02d9\u02e5\u02ea\u02ed\u02f2") - buf.write("\u02f8\u0300\u0308\u0315\u0332\u0337\u033b\u0343\u034c") - buf.write("\u035a\u035d\u0369\u036c\u037c\u0381\u0387\u038c\u0392") - buf.write("\u0395\u0398\u03a4\u03af\u03bd\u03c4\u03cd\u03d4\u03d9") - buf.write("\u03e8\u03ef\u03f5\u03f9\u03fd\u0401\u0405\u040a\u040e") - buf.write("\u0412\u0414\u0419\u0420\u0425\u0427\u042d\u0432\u0436") - buf.write("\u0449\u044e\u045e\u0463\u0469\u046f\u0471\u0475\u047a") - buf.write("\u047e\u0486\u048d\u0495\u0498\u049d\u04a5\u04aa\u04b1") - buf.write("\u04b8\u04bd\u04c4\u04d0\u04d5\u04d9\u04e3\u04e8\u04f0") - buf.write("\u04f3\u04f8\u0500\u0503\u0508\u050d\u0512\u0517\u051e") - buf.write("\u0523\u052b\u0530\u0535\u053a\u0540\u0546\u0549\u054c") - buf.write("\u0555\u055b\u0561\u0564\u0567\u056f\u0574\u0579\u057f") - buf.write("\u0582\u058d\u0596\u05a0\u05a5\u05b0\u05b5\u05c2\u05c7") - buf.write("\u05d3\u05dd\u05e2\u05ea\u05ed\u05f4\u05fc\u0602\u060b") - buf.write("\u0615\u0619\u061c\u0625\u0633\u0636\u063f\u0644\u064b") - buf.write("\u0650\u0658\u0664\u066b\u0679\u068f\u06b1\u06bd\u06c3") - buf.write("\u06ce\u06da\u06f4\u06f8\u06fd\u0701\u0705\u070d\u0711") - buf.write("\u0715\u071c\u0725\u072d\u073c\u0748\u074e\u0754\u0769") - buf.write("\u076e\u0773\u077e\u0789\u0793\u0796\u079b\u07a4\u07aa") - buf.write("\u07b3\u07b7\u07bb\u07c0\u07d3\u07dd\u07f3\u07fa\u0802") - buf.write("\u080a\u0815\u082c\u0836\u0841\u0857\u085c\u0862\u086a") - buf.write("\u086e\u0873\u087b\u0881\u0885\u0889\u088d\u0893\u0898") - buf.write("\u089d\u08a1\u08a5\u08ab\u08b0\u08b5\u08b9\u08bd\u08bf") - buf.write("\u08c4\u08c9\u08ce\u08d2\u08d6\u08da\u08df\u08e7\u08ed") - buf.write("\u08f1\u08f5\u08f9\u08ff\u0904\u0909\u090d\u0911\u0913") - buf.write("\u0918\u0927\u0935\u0941\u094a\u0959\u0966\u096f\u0975") - buf.write("\u097c\u0981\u0988\u098d\u0994\u0999\u09a0\u09a5\u09ae") - buf.write("\u09b3\u09b7\u09bb\u09c0\u09c7\u09ce\u09d3\u09da\u09df") - buf.write("\u09e6\u09eb\u09f4\u09f9\u09fd\u0a04\u0a0a\u0a11\u0a18") - buf.write("\u0a1f\u0a27\u0a2e\u0a36\u0a3a\u0a41\u0a48\u0a4f\u0a57") - buf.write("\u0a5e\u0a66\u0a6c\u0a72\u0a7e\u0a83\u0a88\u0a93\u0a9c") - buf.write("\u0aa3\u0aaa\u0aaf\u0ab3\u0abc\u0ac7\u0ac9\u0ad3\u0ade") - buf.write("\u0ae9\u0af4\u0aff\u0b0b\u0b0d\u0b22\u0b24\u0b37\u0b39") - buf.write("\u0b45\u0b47\u0b56\u0b58\u0b62\u0b70\u0b74\u0b78\u0b7a") - buf.write("\u0b91\u0b9c\u0ba2") - return buf.getvalue() - - -class Java9Parser ( Parser ): - - grammarFileName = "Java9Parser.g4" - - atn = ATNDeserializer().deserialize(serializedATN()) - - decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] - - sharedContextCache = PredictionContextCache() - - literalNames = [ "", "'abstract'", "'assert'", "'boolean'", - "'break'", "'byte'", "'case'", "'catch'", "'char'", - "'class'", "'const'", "'continue'", "'default'", "'do'", - "'double'", "'else'", "'enum'", "'exports'", "'extends'", - "'final'", "'finally'", "'float'", "'for'", "'if'", - "'goto'", "'implements'", "'import'", "'instanceof'", - "'int'", "'interface'", "'long'", "'module'", "'native'", - "'new'", "'open'", "'opens'", "'package'", "'private'", - "'protected'", "'provides'", "'public'", "'requires'", - "'return'", "'short'", "'static'", "'strictfp'", "'super'", - "'switch'", "'synchronized'", "'this'", "'throw'", - "'throws'", "'to'", "'transient'", "'transitive'", - "'try'", "'uses'", "'void'", "'volatile'", "'while'", - "'with'", "'_'", "", "", "", - "", "", "'null'", "'('", "')'", "'{'", - "'}'", "'['", "']'", "';'", "','", "'.'", "'...'", - "'@'", "'::'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", - "':'", "'->'", "'=='", "'<='", "'>='", "'!='", "'&&'", - "'||'", "'++'", "'--'", "'+'", "'-'", "'*'", "'/'", - "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", - "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", - "'>>>='" ] - - symbolicNames = [ "", "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", - "BYTE", "CASE", "CATCH", "CHAR", "CLASS", "CONST", - "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", - "EXPORTS", "EXTENDS", "FINAL", "FINALLY", "FLOAT", - "FOR", "IF", "GOTO", "IMPLEMENTS", "IMPORT", "INSTANCEOF", - "INT", "INTERFACE", "LONG", "MODULE", "NATIVE", "NEW", - "OPEN", "OPERNS", "PACKAGE", "PRIVATE", "PROTECTED", - "PROVIDES", "PUBLIC", "REQUIRES", "RETURN", "SHORT", - "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", - "THIS", "THROW", "THROWS", "TO", "TRANSIENT", "TRANSITIVE", - "TRY", "USES", "VOID", "VOLATILE", "WHILE", "WITH", - "UNDER_SCORE", "IntegerLiteral", "FloatingPointLiteral", - "BooleanLiteral", "CharacterLiteral", "StringLiteral", - "NullLiteral", "LPAREN", "RPAREN", "LBRACE", "RBRACE", - "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", "ELLIPSIS", - "AT", "COLONCOLON", "ASSIGN", "GT", "LT", "BANG", - "TILDE", "QUESTION", "COLON", "ARROW", "EQUAL", "LE", - "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", - "SUB", "MUL", "DIV", "BITAND", "BITOR", "CARET", "MOD", - "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", - "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", - "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", - "Identifier", "WS", "COMMENT", "LINE_COMMENT" ] - - 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_moduleName = 25 - RULE_packageName = 26 - RULE_typeName = 27 - RULE_packageOrTypeName = 28 - RULE_expressionName = 29 - RULE_methodName = 30 - RULE_ambiguousName = 31 - RULE_compilationUnit = 32 - RULE_ordinaryCompilation = 33 - RULE_modularCompilation = 34 - RULE_packageDeclaration = 35 - RULE_packageModifier = 36 - RULE_importDeclaration = 37 - RULE_singleTypeImportDeclaration = 38 - RULE_typeImportOnDemandDeclaration = 39 - RULE_singleStaticImportDeclaration = 40 - RULE_staticImportOnDemandDeclaration = 41 - RULE_typeDeclaration = 42 - RULE_moduleDeclaration = 43 - RULE_moduleDirective = 44 - RULE_requiresModifier = 45 - RULE_classDeclaration = 46 - RULE_normalClassDeclaration = 47 - RULE_classModifier = 48 - RULE_typeParameters = 49 - RULE_typeParameterList = 50 - RULE_superclass = 51 - RULE_superinterfaces = 52 - RULE_interfaceTypeList = 53 - RULE_classBody = 54 - RULE_classBodyDeclaration = 55 - RULE_classMemberDeclaration = 56 - RULE_fieldDeclaration = 57 - RULE_fieldModifier = 58 - RULE_variableDeclaratorList = 59 - RULE_variableDeclarator = 60 - RULE_variableDeclaratorId = 61 - RULE_variableInitializer = 62 - RULE_unannType = 63 - RULE_unannPrimitiveType = 64 - RULE_unannReferenceType = 65 - RULE_unannClassOrInterfaceType = 66 - RULE_unannClassType = 67 - RULE_unannClassType_lf_unannClassOrInterfaceType = 68 - RULE_unannClassType_lfno_unannClassOrInterfaceType = 69 - RULE_unannInterfaceType = 70 - RULE_unannInterfaceType_lf_unannClassOrInterfaceType = 71 - RULE_unannInterfaceType_lfno_unannClassOrInterfaceType = 72 - RULE_unannTypeVariable = 73 - RULE_unannArrayType = 74 - RULE_methodDeclaration = 75 - RULE_methodModifier = 76 - RULE_methodHeader = 77 - RULE_result = 78 - RULE_methodDeclarator = 79 - RULE_formalParameterList = 80 - RULE_formalParameters = 81 - RULE_formalParameter = 82 - RULE_variableModifier = 83 - RULE_lastFormalParameter = 84 - RULE_receiverParameter = 85 - RULE_throws_ = 86 - RULE_exceptionTypeList = 87 - RULE_exceptionType = 88 - RULE_methodBody = 89 - RULE_instanceInitializer = 90 - RULE_staticInitializer = 91 - RULE_constructorDeclaration = 92 - RULE_constructorModifier = 93 - RULE_constructorDeclarator = 94 - RULE_simpleTypeName = 95 - RULE_constructorBody = 96 - RULE_explicitConstructorInvocation = 97 - RULE_enumDeclaration = 98 - RULE_enumBody = 99 - RULE_enumConstantList = 100 - RULE_enumConstant = 101 - RULE_enumConstantModifier = 102 - RULE_enumBodyDeclarations = 103 - RULE_interfaceDeclaration = 104 - RULE_normalInterfaceDeclaration = 105 - RULE_interfaceModifier = 106 - RULE_extendsInterfaces = 107 - RULE_interfaceBody = 108 - RULE_interfaceMemberDeclaration = 109 - RULE_constantDeclaration = 110 - RULE_constantModifier = 111 - RULE_interfaceMethodDeclaration = 112 - RULE_interfaceMethodModifier = 113 - RULE_annotationTypeDeclaration = 114 - RULE_annotationTypeBody = 115 - RULE_annotationTypeMemberDeclaration = 116 - RULE_annotationTypeElementDeclaration = 117 - RULE_annotationTypeElementModifier = 118 - RULE_defaultValue = 119 - RULE_annotation = 120 - RULE_normalAnnotation = 121 - RULE_elementValuePairList = 122 - RULE_elementValuePair = 123 - RULE_elementValue = 124 - RULE_elementValueArrayInitializer = 125 - RULE_elementValueList = 126 - RULE_markerAnnotation = 127 - RULE_singleElementAnnotation = 128 - RULE_arrayInitializer = 129 - RULE_variableInitializerList = 130 - RULE_block = 131 - RULE_blockStatements = 132 - RULE_blockStatement = 133 - RULE_localVariableDeclarationStatement = 134 - RULE_localVariableDeclaration = 135 - RULE_statement = 136 - RULE_statementNoShortIf = 137 - RULE_statementWithoutTrailingSubstatement = 138 - RULE_emptyStatement = 139 - RULE_labeledStatement = 140 - RULE_labeledStatementNoShortIf = 141 - RULE_expressionStatement = 142 - RULE_statementExpression = 143 - RULE_ifThenStatement = 144 - RULE_ifThenElseStatement = 145 - RULE_ifThenElseStatementNoShortIf = 146 - RULE_assertStatement = 147 - RULE_switchStatement = 148 - RULE_switchBlock = 149 - RULE_switchBlockStatementGroup = 150 - RULE_switchLabels = 151 - RULE_switchLabel = 152 - RULE_enumConstantName = 153 - RULE_whileStatement = 154 - RULE_whileStatementNoShortIf = 155 - RULE_doStatement = 156 - RULE_forStatement = 157 - RULE_forStatementNoShortIf = 158 - RULE_basicForStatement = 159 - RULE_basicForStatementNoShortIf = 160 - RULE_forInit = 161 - RULE_forUpdate = 162 - RULE_statementExpressionList = 163 - RULE_enhancedForStatement = 164 - RULE_enhancedForStatementNoShortIf = 165 - RULE_breakStatement = 166 - RULE_continueStatement = 167 - RULE_returnStatement = 168 - RULE_throwStatement = 169 - RULE_synchronizedStatement = 170 - RULE_tryStatement = 171 - RULE_catches = 172 - RULE_catchClause = 173 - RULE_catchFormalParameter = 174 - RULE_catchType = 175 - RULE_finally_ = 176 - RULE_tryWithResourcesStatement = 177 - RULE_resourceSpecification = 178 - RULE_resourceList = 179 - RULE_resource = 180 - RULE_variableAccess = 181 - RULE_primary = 182 - RULE_primaryNoNewArray = 183 - RULE_primaryNoNewArray_lf_arrayAccess = 184 - RULE_primaryNoNewArray_lfno_arrayAccess = 185 - RULE_primaryNoNewArray_lf_primary = 186 - RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary = 187 - RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary = 188 - RULE_primaryNoNewArray_lfno_primary = 189 - RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary = 190 - RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary = 191 - RULE_classLiteral = 192 - RULE_classInstanceCreationExpression = 193 - RULE_classInstanceCreationExpression_lf_primary = 194 - RULE_classInstanceCreationExpression_lfno_primary = 195 - RULE_typeArgumentsOrDiamond = 196 - RULE_fieldAccess = 197 - RULE_fieldAccess_lf_primary = 198 - RULE_fieldAccess_lfno_primary = 199 - RULE_arrayAccess = 200 - RULE_arrayAccess_lf_primary = 201 - RULE_arrayAccess_lfno_primary = 202 - RULE_methodInvocation = 203 - RULE_methodInvocation_lf_primary = 204 - RULE_methodInvocation_lfno_primary = 205 - RULE_argumentList = 206 - RULE_methodReference = 207 - RULE_methodReference_lf_primary = 208 - RULE_methodReference_lfno_primary = 209 - RULE_arrayCreationExpression = 210 - RULE_dimExprs = 211 - RULE_dimExpr = 212 - RULE_constantExpression = 213 - RULE_expression = 214 - RULE_lambdaExpression = 215 - RULE_lambdaParameters = 216 - RULE_inferredFormalParameterList = 217 - RULE_lambdaBody = 218 - RULE_assignmentExpression = 219 - RULE_assignment = 220 - RULE_leftHandSide = 221 - RULE_assignmentOperator = 222 - RULE_conditionalExpression = 223 - RULE_conditionalOrExpression = 224 - RULE_conditionalAndExpression = 225 - RULE_inclusiveOrExpression = 226 - RULE_exclusiveOrExpression = 227 - RULE_andExpression = 228 - RULE_equalityExpression = 229 - RULE_relationalExpression = 230 - RULE_shiftExpression = 231 - RULE_additiveExpression = 232 - RULE_multiplicativeExpression = 233 - RULE_unaryExpression = 234 - RULE_preIncrementExpression = 235 - RULE_preDecrementExpression = 236 - RULE_unaryExpressionNotPlusMinus = 237 - RULE_postfixExpression = 238 - RULE_postIncrementExpression = 239 - RULE_postIncrementExpression_lf_postfixExpression = 240 - RULE_postDecrementExpression = 241 - RULE_postDecrementExpression_lf_postfixExpression = 242 - RULE_castExpression = 243 - RULE_identifier = 244 - - ruleNames = [ "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", "moduleName", - "packageName", "typeName", "packageOrTypeName", "expressionName", - "methodName", "ambiguousName", "compilationUnit", "ordinaryCompilation", - "modularCompilation", "packageDeclaration", "packageModifier", - "importDeclaration", "singleTypeImportDeclaration", "typeImportOnDemandDeclaration", - "singleStaticImportDeclaration", "staticImportOnDemandDeclaration", - "typeDeclaration", "moduleDeclaration", "moduleDirective", - "requiresModifier", "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", - "variableAccess", "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", - "classLiteral", "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", "identifier" ] - - EOF = Token.EOF - 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 - EXPORTS=17 - EXTENDS=18 - FINAL=19 - FINALLY=20 - FLOAT=21 - FOR=22 - IF=23 - GOTO=24 - IMPLEMENTS=25 - IMPORT=26 - INSTANCEOF=27 - INT=28 - INTERFACE=29 - LONG=30 - MODULE=31 - NATIVE=32 - NEW=33 - OPEN=34 - OPERNS=35 - PACKAGE=36 - PRIVATE=37 - PROTECTED=38 - PROVIDES=39 - PUBLIC=40 - REQUIRES=41 - RETURN=42 - SHORT=43 - STATIC=44 - STRICTFP=45 - SUPER=46 - SWITCH=47 - SYNCHRONIZED=48 - THIS=49 - THROW=50 - THROWS=51 - TO=52 - TRANSIENT=53 - TRANSITIVE=54 - TRY=55 - USES=56 - VOID=57 - VOLATILE=58 - WHILE=59 - WITH=60 - UNDER_SCORE=61 - IntegerLiteral=62 - FloatingPointLiteral=63 - BooleanLiteral=64 - CharacterLiteral=65 - StringLiteral=66 - NullLiteral=67 - LPAREN=68 - RPAREN=69 - LBRACE=70 - RBRACE=71 - LBRACK=72 - RBRACK=73 - SEMI=74 - COMMA=75 - DOT=76 - ELLIPSIS=77 - AT=78 - COLONCOLON=79 - ASSIGN=80 - GT=81 - LT=82 - BANG=83 - TILDE=84 - QUESTION=85 - COLON=86 - ARROW=87 - EQUAL=88 - LE=89 - GE=90 - NOTEQUAL=91 - AND=92 - OR=93 - INC=94 - DEC=95 - ADD=96 - SUB=97 - MUL=98 - DIV=99 - BITAND=100 - BITOR=101 - CARET=102 - MOD=103 - ADD_ASSIGN=104 - SUB_ASSIGN=105 - MUL_ASSIGN=106 - DIV_ASSIGN=107 - AND_ASSIGN=108 - OR_ASSIGN=109 - XOR_ASSIGN=110 - MOD_ASSIGN=111 - LSHIFT_ASSIGN=112 - RSHIFT_ASSIGN=113 - URSHIFT_ASSIGN=114 - Identifier=115 - WS=116 - COMMENT=117 - LINE_COMMENT=118 - - def __init__(self, input:TokenStream, output:TextIO = sys.stdout): - super().__init__(input, output) - self.checkVersion("4.7.2") - self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) - self._predicates = None - - - - class LiteralContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IntegerLiteral(self): - return self.getToken(Java9Parser.IntegerLiteral, 0) - - def FloatingPointLiteral(self): - return self.getToken(Java9Parser.FloatingPointLiteral, 0) - - def BooleanLiteral(self): - return self.getToken(Java9Parser.BooleanLiteral, 0) - - def CharacterLiteral(self): - return self.getToken(Java9Parser.CharacterLiteral, 0) - - def StringLiteral(self): - return self.getToken(Java9Parser.StringLiteral, 0) - - def NullLiteral(self): - return self.getToken(Java9Parser.NullLiteral, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_literal - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLiteral" ): - listener.enterLiteral(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLiteral" ): - listener.exitLiteral(self) - - - - - def literal(self): - - localctx = Java9Parser.LiteralContext(self, self._ctx, self.state) - self.enterRule(localctx, 0, self.RULE_literal) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 490 - _la = self._input.LA(1) - if not(((((_la - 62)) & ~0x3f) == 0 and ((1 << (_la - 62)) & ((1 << (Java9Parser.IntegerLiteral - 62)) | (1 << (Java9Parser.FloatingPointLiteral - 62)) | (1 << (Java9Parser.BooleanLiteral - 62)) | (1 << (Java9Parser.CharacterLiteral - 62)) | (1 << (Java9Parser.StringLiteral - 62)) | (1 << (Java9Parser.NullLiteral - 62)))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimitiveTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def numericType(self): - return self.getTypedRuleContext(Java9Parser.NumericTypeContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def BOOLEAN(self): - return self.getToken(Java9Parser.BOOLEAN, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_primitiveType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimitiveType" ): - listener.enterPrimitiveType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimitiveType" ): - listener.exitPrimitiveType(self) - - - - - def primitiveType(self): - - localctx = Java9Parser.PrimitiveTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 2, self.RULE_primitiveType) - self._la = 0 # Token type - try: - self.state = 506 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,2,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 495 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 492 - self.annotation() - self.state = 497 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 498 - self.numericType() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 502 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 499 - self.annotation() - self.state = 504 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 505 - self.match(Java9Parser.BOOLEAN) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class NumericTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def integralType(self): - return self.getTypedRuleContext(Java9Parser.IntegralTypeContext,0) - - - def floatingPointType(self): - return self.getTypedRuleContext(Java9Parser.FloatingPointTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_numericType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterNumericType" ): - listener.enterNumericType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitNumericType" ): - listener.exitNumericType(self) - - - - - def numericType(self): - - localctx = Java9Parser.NumericTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 4, self.RULE_numericType) - try: - self.state = 510 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.INT, Java9Parser.LONG, Java9Parser.SHORT]: - self.enterOuterAlt(localctx, 1) - self.state = 508 - self.integralType() - pass - elif token in [Java9Parser.DOUBLE, Java9Parser.FLOAT]: - self.enterOuterAlt(localctx, 2) - self.state = 509 - self.floatingPointType() - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class IntegralTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def BYTE(self): - return self.getToken(Java9Parser.BYTE, 0) - - def SHORT(self): - return self.getToken(Java9Parser.SHORT, 0) - - def INT(self): - return self.getToken(Java9Parser.INT, 0) - - def LONG(self): - return self.getToken(Java9Parser.LONG, 0) - - def CHAR(self): - return self.getToken(Java9Parser.CHAR, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_integralType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIntegralType" ): - listener.enterIntegralType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIntegralType" ): - listener.exitIntegralType(self) - - - - - def integralType(self): - - localctx = Java9Parser.IntegralTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 6, self.RULE_integralType) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 512 - _la = self._input.LA(1) - if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.SHORT))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FloatingPointTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def FLOAT(self): - return self.getToken(Java9Parser.FLOAT, 0) - - def DOUBLE(self): - return self.getToken(Java9Parser.DOUBLE, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_floatingPointType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFloatingPointType" ): - listener.enterFloatingPointType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFloatingPointType" ): - listener.exitFloatingPointType(self) - - - - - def floatingPointType(self): - - localctx = Java9Parser.FloatingPointTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 8, self.RULE_floatingPointType) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 514 - _la = self._input.LA(1) - if not(_la==Java9Parser.DOUBLE or _la==Java9Parser.FLOAT): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ReferenceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) - - - def typeVariable(self): - return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) - - - def arrayType(self): - return self.getTypedRuleContext(Java9Parser.ArrayTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_referenceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterReferenceType" ): - listener.enterReferenceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitReferenceType" ): - listener.exitReferenceType(self) - - - - - def referenceType(self): - - localctx = Java9Parser.ReferenceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 10, self.RULE_referenceType) - try: - self.state = 519 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,4,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 516 - self.classOrInterfaceType() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 517 - self.typeVariable() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 518 - self.arrayType() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classType_lfno_classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassType_lfno_classOrInterfaceTypeContext,0) - - - def interfaceType_lfno_classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext,0) - - - def classType_lf_classOrInterfaceType(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ClassType_lf_classOrInterfaceTypeContext) - else: - return self.getTypedRuleContext(Java9Parser.ClassType_lf_classOrInterfaceTypeContext,i) - - - def interfaceType_lf_classOrInterfaceType(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext) - else: - return self.getTypedRuleContext(Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_classOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassOrInterfaceType" ): - listener.enterClassOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassOrInterfaceType" ): - listener.exitClassOrInterfaceType(self) - - - - - def classOrInterfaceType(self): - - localctx = Java9Parser.ClassOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 12, self.RULE_classOrInterfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 523 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,5,self._ctx) - if la_ == 1: - self.state = 521 - self.classType_lfno_classOrInterfaceType() - pass - - elif la_ == 2: - self.state = 522 - self.interfaceType_lfno_classOrInterfaceType() - pass - - - self.state = 529 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,7,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 527 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,6,self._ctx) - if la_ == 1: - self.state = 525 - self.classType_lf_classOrInterfaceType() - pass - - elif la_ == 2: - self.state = 526 - self.interfaceType_lf_classOrInterfaceType() - pass - - - self.state = 531 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,7,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_classType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassType" ): - listener.enterClassType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassType" ): - listener.exitClassType(self) - - - - - def classType(self): - - localctx = Java9Parser.ClassTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 14, self.RULE_classType) - self._la = 0 # Token type - try: - self.state = 554 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,12,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 535 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 532 - self.annotation() - self.state = 537 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 538 - self.identifier() - self.state = 540 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 539 - self.typeArguments() - - - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 542 - self.classOrInterfaceType() - self.state = 543 - self.match(Java9Parser.DOT) - self.state = 547 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 544 - self.annotation() - self.state = 549 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 550 - self.identifier() - self.state = 552 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 551 - self.typeArguments() - - - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassType_lf_classOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_classType_lf_classOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassType_lf_classOrInterfaceType" ): - listener.enterClassType_lf_classOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassType_lf_classOrInterfaceType" ): - listener.exitClassType_lf_classOrInterfaceType(self) - - - - - def classType_lf_classOrInterfaceType(self): - - localctx = Java9Parser.ClassType_lf_classOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 16, self.RULE_classType_lf_classOrInterfaceType) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 556 - self.match(Java9Parser.DOT) - self.state = 560 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 557 - self.annotation() - self.state = 562 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 563 - self.identifier() - self.state = 565 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,14,self._ctx) - if la_ == 1: - self.state = 564 - self.typeArguments() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassType_lfno_classOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_classType_lfno_classOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassType_lfno_classOrInterfaceType" ): - listener.enterClassType_lfno_classOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassType_lfno_classOrInterfaceType" ): - listener.exitClassType_lfno_classOrInterfaceType(self) - - - - - def classType_lfno_classOrInterfaceType(self): - - localctx = Java9Parser.ClassType_lfno_classOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 18, self.RULE_classType_lfno_classOrInterfaceType) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 570 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 567 - self.annotation() - self.state = 572 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 573 - self.identifier() - self.state = 575 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,16,self._ctx) - if la_ == 1: - self.state = 574 - self.typeArguments() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classType(self): - return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceType" ): - listener.enterInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceType" ): - listener.exitInterfaceType(self) - - - - - def interfaceType(self): - - localctx = Java9Parser.InterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 20, self.RULE_interfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 577 - self.classType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceType_lf_classOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classType_lf_classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassType_lf_classOrInterfaceTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceType_lf_classOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceType_lf_classOrInterfaceType" ): - listener.enterInterfaceType_lf_classOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceType_lf_classOrInterfaceType" ): - listener.exitInterfaceType_lf_classOrInterfaceType(self) - - - - - def interfaceType_lf_classOrInterfaceType(self): - - localctx = Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 22, self.RULE_interfaceType_lf_classOrInterfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 579 - self.classType_lf_classOrInterfaceType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceType_lfno_classOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classType_lfno_classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassType_lfno_classOrInterfaceTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceType_lfno_classOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceType_lfno_classOrInterfaceType" ): - listener.enterInterfaceType_lfno_classOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceType_lfno_classOrInterfaceType" ): - listener.exitInterfaceType_lfno_classOrInterfaceType(self) - - - - - def interfaceType_lfno_classOrInterfaceType(self): - - localctx = Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 24, self.RULE_interfaceType_lfno_classOrInterfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 581 - self.classType_lfno_classOrInterfaceType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeVariableContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_typeVariable - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeVariable" ): - listener.enterTypeVariable(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeVariable" ): - listener.exitTypeVariable(self) - - - - - def typeVariable(self): - - localctx = Java9Parser.TypeVariableContext(self, self._ctx, self.state) - self.enterRule(localctx, 26, self.RULE_typeVariable) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 586 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 583 - self.annotation() - self.state = 588 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 589 - self.identifier() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ArrayTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def primitiveType(self): - return self.getTypedRuleContext(Java9Parser.PrimitiveTypeContext,0) - - - def dims(self): - return self.getTypedRuleContext(Java9Parser.DimsContext,0) - - - def classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) - - - def typeVariable(self): - return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_arrayType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArrayType" ): - listener.enterArrayType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArrayType" ): - listener.exitArrayType(self) - - - - - def arrayType(self): - - localctx = Java9Parser.ArrayTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 28, self.RULE_arrayType) - try: - self.state = 600 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,18,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 591 - self.primitiveType() - self.state = 592 - self.dims() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 594 - self.classOrInterfaceType() - self.state = 595 - self.dims() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 597 - self.typeVariable() - self.state = 598 - self.dims() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class DimsContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_dims - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDims" ): - listener.enterDims(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDims" ): - listener.exitDims(self) - - - - - def dims(self): - - localctx = Java9Parser.DimsContext(self, self._ctx, self.state) - self.enterRule(localctx, 30, self.RULE_dims) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 605 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 602 - self.annotation() - self.state = 607 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 608 - self.match(Java9Parser.LBRACK) - self.state = 609 - self.match(Java9Parser.RBRACK) - self.state = 620 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,21,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 613 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 610 - self.annotation() - self.state = 615 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 616 - self.match(Java9Parser.LBRACK) - self.state = 617 - self.match(Java9Parser.RBRACK) - self.state = 622 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,21,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeParameterContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeParameterModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.TypeParameterModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.TypeParameterModifierContext,i) - - - def typeBound(self): - return self.getTypedRuleContext(Java9Parser.TypeBoundContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_typeParameter - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeParameter" ): - listener.enterTypeParameter(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeParameter" ): - listener.exitTypeParameter(self) - - - - - def typeParameter(self): - - localctx = Java9Parser.TypeParameterContext(self, self._ctx, self.state) - self.enterRule(localctx, 32, self.RULE_typeParameter) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 626 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 623 - self.typeParameterModifier() - self.state = 628 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 629 - self.identifier() - self.state = 631 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.EXTENDS: - self.state = 630 - self.typeBound() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeParameterModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_typeParameterModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeParameterModifier" ): - listener.enterTypeParameterModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeParameterModifier" ): - listener.exitTypeParameterModifier(self) - - - - - def typeParameterModifier(self): - - localctx = Java9Parser.TypeParameterModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 34, self.RULE_typeParameterModifier) - try: - self.enterOuterAlt(localctx, 1) - self.state = 633 - self.annotation() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeBoundContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def EXTENDS(self): - return self.getToken(Java9Parser.EXTENDS, 0) - - def typeVariable(self): - return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) - - - def classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) - - - def additionalBound(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AdditionalBoundContext) - else: - return self.getTypedRuleContext(Java9Parser.AdditionalBoundContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_typeBound - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeBound" ): - listener.enterTypeBound(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeBound" ): - listener.exitTypeBound(self) - - - - - def typeBound(self): - - localctx = Java9Parser.TypeBoundContext(self, self._ctx, self.state) - self.enterRule(localctx, 36, self.RULE_typeBound) - self._la = 0 # Token type - try: - self.state = 645 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,25,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 635 - self.match(Java9Parser.EXTENDS) - self.state = 636 - self.typeVariable() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 637 - self.match(Java9Parser.EXTENDS) - self.state = 638 - self.classOrInterfaceType() - self.state = 642 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.BITAND: - self.state = 639 - self.additionalBound() - self.state = 644 - self._errHandler.sync(self) - _la = self._input.LA(1) - - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AdditionalBoundContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def BITAND(self): - return self.getToken(Java9Parser.BITAND, 0) - - def interfaceType(self): - return self.getTypedRuleContext(Java9Parser.InterfaceTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_additionalBound - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAdditionalBound" ): - listener.enterAdditionalBound(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAdditionalBound" ): - listener.exitAdditionalBound(self) - - - - - def additionalBound(self): - - localctx = Java9Parser.AdditionalBoundContext(self, self._ctx, self.state) - self.enterRule(localctx, 38, self.RULE_additionalBound) - try: - self.enterOuterAlt(localctx, 1) - self.state = 647 - self.match(Java9Parser.BITAND) - self.state = 648 - self.interfaceType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeArgumentsContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LT(self): - return self.getToken(Java9Parser.LT, 0) - - def typeArgumentList(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentListContext,0) - - - def GT(self): - return self.getToken(Java9Parser.GT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_typeArguments - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeArguments" ): - listener.enterTypeArguments(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeArguments" ): - listener.exitTypeArguments(self) - - - - - def typeArguments(self): - - localctx = Java9Parser.TypeArgumentsContext(self, self._ctx, self.state) - self.enterRule(localctx, 40, self.RULE_typeArguments) - try: - self.enterOuterAlt(localctx, 1) - self.state = 650 - self.match(Java9Parser.LT) - self.state = 651 - self.typeArgumentList() - self.state = 652 - self.match(Java9Parser.GT) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeArgumentListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def typeArgument(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.TypeArgumentContext) - else: - return self.getTypedRuleContext(Java9Parser.TypeArgumentContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_typeArgumentList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeArgumentList" ): - listener.enterTypeArgumentList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeArgumentList" ): - listener.exitTypeArgumentList(self) - - - - - def typeArgumentList(self): - - localctx = Java9Parser.TypeArgumentListContext(self, self._ctx, self.state) - self.enterRule(localctx, 42, self.RULE_typeArgumentList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 654 - self.typeArgument() - self.state = 659 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 655 - self.match(Java9Parser.COMMA) - self.state = 656 - self.typeArgument() - self.state = 661 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeArgumentContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def referenceType(self): - return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) - - - def wildcard(self): - return self.getTypedRuleContext(Java9Parser.WildcardContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_typeArgument - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeArgument" ): - listener.enterTypeArgument(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeArgument" ): - listener.exitTypeArgument(self) - - - - - def typeArgument(self): - - localctx = Java9Parser.TypeArgumentContext(self, self._ctx, self.state) - self.enterRule(localctx, 44, self.RULE_typeArgument) - try: - self.state = 664 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,27,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 662 - self.referenceType() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 663 - self.wildcard() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class WildcardContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def QUESTION(self): - return self.getToken(Java9Parser.QUESTION, 0) - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def wildcardBounds(self): - return self.getTypedRuleContext(Java9Parser.WildcardBoundsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_wildcard - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterWildcard" ): - listener.enterWildcard(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitWildcard" ): - listener.exitWildcard(self) - - - - - def wildcard(self): - - localctx = Java9Parser.WildcardContext(self, self._ctx, self.state) - self.enterRule(localctx, 46, self.RULE_wildcard) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 669 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 666 - self.annotation() - self.state = 671 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 672 - self.match(Java9Parser.QUESTION) - self.state = 674 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.EXTENDS or _la==Java9Parser.SUPER: - self.state = 673 - self.wildcardBounds() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class WildcardBoundsContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def EXTENDS(self): - return self.getToken(Java9Parser.EXTENDS, 0) - - def referenceType(self): - return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) - - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_wildcardBounds - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterWildcardBounds" ): - listener.enterWildcardBounds(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitWildcardBounds" ): - listener.exitWildcardBounds(self) - - - - - def wildcardBounds(self): - - localctx = Java9Parser.WildcardBoundsContext(self, self._ctx, self.state) - self.enterRule(localctx, 48, self.RULE_wildcardBounds) - try: - self.state = 680 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.EXTENDS]: - self.enterOuterAlt(localctx, 1) - self.state = 676 - self.match(Java9Parser.EXTENDS) - self.state = 677 - self.referenceType() - pass - elif token in [Java9Parser.SUPER]: - self.enterOuterAlt(localctx, 2) - self.state = 678 - self.match(Java9Parser.SUPER) - self.state = 679 - self.referenceType() - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ModuleNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def moduleName(self): - return self.getTypedRuleContext(Java9Parser.ModuleNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_moduleName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterModuleName" ): - listener.enterModuleName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitModuleName" ): - listener.exitModuleName(self) - - - - def moduleName(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.ModuleNameContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 50 - self.enterRecursionRule(localctx, 50, self.RULE_moduleName, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 683 - self.identifier() - self._ctx.stop = self._input.LT(-1) - self.state = 690 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,31,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.ModuleNameContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_moduleName) - self.state = 685 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 686 - self.match(Java9Parser.DOT) - self.state = 687 - self.identifier() - self.state = 692 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,31,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class PackageNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def packageName(self): - return self.getTypedRuleContext(Java9Parser.PackageNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_packageName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPackageName" ): - listener.enterPackageName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPackageName" ): - listener.exitPackageName(self) - - - - def packageName(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.PackageNameContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 52 - self.enterRecursionRule(localctx, 52, self.RULE_packageName, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 694 - self.identifier() - self._ctx.stop = self._input.LT(-1) - self.state = 701 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,32,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.PackageNameContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_packageName) - self.state = 696 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 697 - self.match(Java9Parser.DOT) - self.state = 698 - self.identifier() - self.state = 703 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,32,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class TypeNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def packageOrTypeName(self): - return self.getTypedRuleContext(Java9Parser.PackageOrTypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_typeName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeName" ): - listener.enterTypeName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeName" ): - listener.exitTypeName(self) - - - - - def typeName(self): - - localctx = Java9Parser.TypeNameContext(self, self._ctx, self.state) - self.enterRule(localctx, 54, self.RULE_typeName) - try: - self.state = 709 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,33,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 704 - self.identifier() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 705 - self.packageOrTypeName(0) - self.state = 706 - self.match(Java9Parser.DOT) - self.state = 707 - self.identifier() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PackageOrTypeNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def packageOrTypeName(self): - return self.getTypedRuleContext(Java9Parser.PackageOrTypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_packageOrTypeName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPackageOrTypeName" ): - listener.enterPackageOrTypeName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPackageOrTypeName" ): - listener.exitPackageOrTypeName(self) - - - - def packageOrTypeName(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.PackageOrTypeNameContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 56 - self.enterRecursionRule(localctx, 56, self.RULE_packageOrTypeName, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 712 - self.identifier() - self._ctx.stop = self._input.LT(-1) - self.state = 719 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,34,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.PackageOrTypeNameContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_packageOrTypeName) - self.state = 714 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 715 - self.match(Java9Parser.DOT) - self.state = 716 - self.identifier() - self.state = 721 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,34,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class ExpressionNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def ambiguousName(self): - return self.getTypedRuleContext(Java9Parser.AmbiguousNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_expressionName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExpressionName" ): - listener.enterExpressionName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExpressionName" ): - listener.exitExpressionName(self) - - - - - def expressionName(self): - - localctx = Java9Parser.ExpressionNameContext(self, self._ctx, self.state) - self.enterRule(localctx, 58, self.RULE_expressionName) - try: - self.state = 727 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,35,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 722 - self.identifier() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 723 - self.ambiguousName(0) - self.state = 724 - self.match(Java9Parser.DOT) - self.state = 725 - self.identifier() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodName" ): - listener.enterMethodName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodName" ): - listener.exitMethodName(self) - - - - - def methodName(self): - - localctx = Java9Parser.MethodNameContext(self, self._ctx, self.state) - self.enterRule(localctx, 60, self.RULE_methodName) - try: - self.enterOuterAlt(localctx, 1) - self.state = 729 - self.identifier() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AmbiguousNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def ambiguousName(self): - return self.getTypedRuleContext(Java9Parser.AmbiguousNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_ambiguousName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAmbiguousName" ): - listener.enterAmbiguousName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAmbiguousName" ): - listener.exitAmbiguousName(self) - - - - def ambiguousName(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.AmbiguousNameContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 62 - self.enterRecursionRule(localctx, 62, self.RULE_ambiguousName, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 732 - self.identifier() - self._ctx.stop = self._input.LT(-1) - self.state = 739 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,36,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.AmbiguousNameContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_ambiguousName) - self.state = 734 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 735 - self.match(Java9Parser.DOT) - self.state = 736 - self.identifier() - self.state = 741 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,36,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class CompilationUnitContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def ordinaryCompilation(self): - return self.getTypedRuleContext(Java9Parser.OrdinaryCompilationContext,0) - - - def modularCompilation(self): - return self.getTypedRuleContext(Java9Parser.ModularCompilationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_compilationUnit - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCompilationUnit" ): - listener.enterCompilationUnit(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCompilationUnit" ): - listener.exitCompilationUnit(self) - - - - - def compilationUnit(self): - - localctx = Java9Parser.CompilationUnitContext(self, self._ctx, self.state) - self.enterRule(localctx, 64, self.RULE_compilationUnit) - try: - self.state = 744 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,37,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 742 - self.ordinaryCompilation() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 743 - self.modularCompilation() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class OrdinaryCompilationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def EOF(self): - return self.getToken(Java9Parser.EOF, 0) - - def packageDeclaration(self): - return self.getTypedRuleContext(Java9Parser.PackageDeclarationContext,0) - - - def importDeclaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ImportDeclarationContext) - else: - return self.getTypedRuleContext(Java9Parser.ImportDeclarationContext,i) - - - def typeDeclaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.TypeDeclarationContext) - else: - return self.getTypedRuleContext(Java9Parser.TypeDeclarationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_ordinaryCompilation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterOrdinaryCompilation" ): - listener.enterOrdinaryCompilation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitOrdinaryCompilation" ): - listener.exitOrdinaryCompilation(self) - - - - - def ordinaryCompilation(self): - - localctx = Java9Parser.OrdinaryCompilationContext(self, self._ctx, self.state) - self.enterRule(localctx, 66, self.RULE_ordinaryCompilation) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 747 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,38,self._ctx) - if la_ == 1: - self.state = 746 - self.packageDeclaration() - - - self.state = 752 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.IMPORT: - self.state = 749 - self.importDeclaration() - self.state = 754 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 758 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.SEMI or _la==Java9Parser.AT: - self.state = 755 - self.typeDeclaration() - self.state = 760 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 761 - self.match(Java9Parser.EOF) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ModularCompilationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def moduleDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ModuleDeclarationContext,0) - - - def importDeclaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ImportDeclarationContext) - else: - return self.getTypedRuleContext(Java9Parser.ImportDeclarationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_modularCompilation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterModularCompilation" ): - listener.enterModularCompilation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitModularCompilation" ): - listener.exitModularCompilation(self) - - - - - def modularCompilation(self): - - localctx = Java9Parser.ModularCompilationContext(self, self._ctx, self.state) - self.enterRule(localctx, 68, self.RULE_modularCompilation) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 766 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.IMPORT: - self.state = 763 - self.importDeclaration() - self.state = 768 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 769 - self.moduleDeclaration() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PackageDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def PACKAGE(self): - return self.getToken(Java9Parser.PACKAGE, 0) - - def packageName(self): - return self.getTypedRuleContext(Java9Parser.PackageNameContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def packageModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.PackageModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.PackageModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_packageDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPackageDeclaration" ): - listener.enterPackageDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPackageDeclaration" ): - listener.exitPackageDeclaration(self) - - - - - def packageDeclaration(self): - - localctx = Java9Parser.PackageDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 70, self.RULE_packageDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 774 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 771 - self.packageModifier() - self.state = 776 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 777 - self.match(Java9Parser.PACKAGE) - self.state = 778 - self.packageName(0) - self.state = 779 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PackageModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_packageModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPackageModifier" ): - listener.enterPackageModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPackageModifier" ): - listener.exitPackageModifier(self) - - - - - def packageModifier(self): - - localctx = Java9Parser.PackageModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 72, self.RULE_packageModifier) - try: - self.enterOuterAlt(localctx, 1) - self.state = 781 - self.annotation() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ImportDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def singleTypeImportDeclaration(self): - return self.getTypedRuleContext(Java9Parser.SingleTypeImportDeclarationContext,0) - - - def typeImportOnDemandDeclaration(self): - return self.getTypedRuleContext(Java9Parser.TypeImportOnDemandDeclarationContext,0) - - - def singleStaticImportDeclaration(self): - return self.getTypedRuleContext(Java9Parser.SingleStaticImportDeclarationContext,0) - - - def staticImportOnDemandDeclaration(self): - return self.getTypedRuleContext(Java9Parser.StaticImportOnDemandDeclarationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_importDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterImportDeclaration" ): - listener.enterImportDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitImportDeclaration" ): - listener.exitImportDeclaration(self) - - - - - def importDeclaration(self): - - localctx = Java9Parser.ImportDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 74, self.RULE_importDeclaration) - try: - self.state = 787 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,43,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 783 - self.singleTypeImportDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 784 - self.typeImportOnDemandDeclaration() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 785 - self.singleStaticImportDeclaration() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 786 - self.staticImportOnDemandDeclaration() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SingleTypeImportDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IMPORT(self): - return self.getToken(Java9Parser.IMPORT, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_singleTypeImportDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSingleTypeImportDeclaration" ): - listener.enterSingleTypeImportDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSingleTypeImportDeclaration" ): - listener.exitSingleTypeImportDeclaration(self) - - - - - def singleTypeImportDeclaration(self): - - localctx = Java9Parser.SingleTypeImportDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 76, self.RULE_singleTypeImportDeclaration) - try: - self.enterOuterAlt(localctx, 1) - self.state = 789 - self.match(Java9Parser.IMPORT) - self.state = 790 - self.typeName() - self.state = 791 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeImportOnDemandDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IMPORT(self): - return self.getToken(Java9Parser.IMPORT, 0) - - def packageOrTypeName(self): - return self.getTypedRuleContext(Java9Parser.PackageOrTypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def MUL(self): - return self.getToken(Java9Parser.MUL, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_typeImportOnDemandDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeImportOnDemandDeclaration" ): - listener.enterTypeImportOnDemandDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeImportOnDemandDeclaration" ): - listener.exitTypeImportOnDemandDeclaration(self) - - - - - def typeImportOnDemandDeclaration(self): - - localctx = Java9Parser.TypeImportOnDemandDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 78, self.RULE_typeImportOnDemandDeclaration) - try: - self.enterOuterAlt(localctx, 1) - self.state = 793 - self.match(Java9Parser.IMPORT) - self.state = 794 - self.packageOrTypeName(0) - self.state = 795 - self.match(Java9Parser.DOT) - self.state = 796 - self.match(Java9Parser.MUL) - self.state = 797 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SingleStaticImportDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IMPORT(self): - return self.getToken(Java9Parser.IMPORT, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_singleStaticImportDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSingleStaticImportDeclaration" ): - listener.enterSingleStaticImportDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSingleStaticImportDeclaration" ): - listener.exitSingleStaticImportDeclaration(self) - - - - - def singleStaticImportDeclaration(self): - - localctx = Java9Parser.SingleStaticImportDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 80, self.RULE_singleStaticImportDeclaration) - try: - self.enterOuterAlt(localctx, 1) - self.state = 799 - self.match(Java9Parser.IMPORT) - self.state = 800 - self.match(Java9Parser.STATIC) - self.state = 801 - self.typeName() - self.state = 802 - self.match(Java9Parser.DOT) - self.state = 803 - self.identifier() - self.state = 804 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class StaticImportOnDemandDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IMPORT(self): - return self.getToken(Java9Parser.IMPORT, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def MUL(self): - return self.getToken(Java9Parser.MUL, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_staticImportOnDemandDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStaticImportOnDemandDeclaration" ): - listener.enterStaticImportOnDemandDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStaticImportOnDemandDeclaration" ): - listener.exitStaticImportOnDemandDeclaration(self) - - - - - def staticImportOnDemandDeclaration(self): - - localctx = Java9Parser.StaticImportOnDemandDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 82, self.RULE_staticImportOnDemandDeclaration) - try: - self.enterOuterAlt(localctx, 1) - self.state = 806 - self.match(Java9Parser.IMPORT) - self.state = 807 - self.match(Java9Parser.STATIC) - self.state = 808 - self.typeName() - self.state = 809 - self.match(Java9Parser.DOT) - self.state = 810 - self.match(Java9Parser.MUL) - self.state = 811 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) - - - def interfaceDeclaration(self): - return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_typeDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeDeclaration" ): - listener.enterTypeDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeDeclaration" ): - listener.exitTypeDeclaration(self) - - - - - def typeDeclaration(self): - - localctx = Java9Parser.TypeDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 84, self.RULE_typeDeclaration) - try: - self.state = 816 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,44,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 813 - self.classDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 814 - self.interfaceDeclaration() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 815 - self.match(Java9Parser.SEMI) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ModuleDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def MODULE(self): - return self.getToken(Java9Parser.MODULE, 0) - - def moduleName(self): - return self.getTypedRuleContext(Java9Parser.ModuleNameContext,0) - - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def OPEN(self): - return self.getToken(Java9Parser.OPEN, 0) - - def moduleDirective(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ModuleDirectiveContext) - else: - return self.getTypedRuleContext(Java9Parser.ModuleDirectiveContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_moduleDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterModuleDeclaration" ): - listener.enterModuleDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitModuleDeclaration" ): - listener.exitModuleDeclaration(self) - - - - - def moduleDeclaration(self): - - localctx = Java9Parser.ModuleDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 86, self.RULE_moduleDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 821 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 818 - self.annotation() - self.state = 823 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 825 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.OPEN: - self.state = 824 - self.match(Java9Parser.OPEN) - - - self.state = 827 - self.match(Java9Parser.MODULE) - self.state = 828 - self.moduleName(0) - self.state = 829 - self.match(Java9Parser.LBRACE) - self.state = 833 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.USES))) != 0): - self.state = 830 - self.moduleDirective() - self.state = 835 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 836 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ModuleDirectiveContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def REQUIRES(self): - return self.getToken(Java9Parser.REQUIRES, 0) - - def moduleName(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ModuleNameContext) - else: - return self.getTypedRuleContext(Java9Parser.ModuleNameContext,i) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def requiresModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.RequiresModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.RequiresModifierContext,i) - - - def EXPORTS(self): - return self.getToken(Java9Parser.EXPORTS, 0) - - def packageName(self): - return self.getTypedRuleContext(Java9Parser.PackageNameContext,0) - - - def TO(self): - return self.getToken(Java9Parser.TO, 0) - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def OPERNS(self): - return self.getToken(Java9Parser.OPERNS, 0) - - def USES(self): - return self.getToken(Java9Parser.USES, 0) - - def typeName(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.TypeNameContext) - else: - return self.getTypedRuleContext(Java9Parser.TypeNameContext,i) - - - def PROVIDES(self): - return self.getToken(Java9Parser.PROVIDES, 0) - - def WITH(self): - return self.getToken(Java9Parser.WITH, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_moduleDirective - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterModuleDirective" ): - listener.enterModuleDirective(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitModuleDirective" ): - listener.exitModuleDirective(self) - - - - - def moduleDirective(self): - - localctx = Java9Parser.ModuleDirectiveContext(self, self._ctx, self.state) - self.enterRule(localctx, 88, self.RULE_moduleDirective) - self._la = 0 # Token type - try: - self.state = 895 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.REQUIRES]: - self.enterOuterAlt(localctx, 1) - self.state = 838 - self.match(Java9Parser.REQUIRES) - self.state = 842 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.STATIC or _la==Java9Parser.TRANSITIVE: - self.state = 839 - self.requiresModifier() - self.state = 844 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 845 - self.moduleName(0) - self.state = 846 - self.match(Java9Parser.SEMI) - pass - elif token in [Java9Parser.EXPORTS]: - self.enterOuterAlt(localctx, 2) - self.state = 848 - self.match(Java9Parser.EXPORTS) - self.state = 849 - self.packageName(0) - self.state = 859 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.TO: - self.state = 850 - self.match(Java9Parser.TO) - self.state = 851 - self.moduleName(0) - self.state = 856 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 852 - self.match(Java9Parser.COMMA) - self.state = 853 - self.moduleName(0) - self.state = 858 - self._errHandler.sync(self) - _la = self._input.LA(1) - - - - self.state = 861 - self.match(Java9Parser.SEMI) - pass - elif token in [Java9Parser.OPERNS]: - self.enterOuterAlt(localctx, 3) - self.state = 863 - self.match(Java9Parser.OPERNS) - self.state = 864 - self.packageName(0) - self.state = 874 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.TO: - self.state = 865 - self.match(Java9Parser.TO) - self.state = 866 - self.moduleName(0) - self.state = 871 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 867 - self.match(Java9Parser.COMMA) - self.state = 868 - self.moduleName(0) - self.state = 873 - self._errHandler.sync(self) - _la = self._input.LA(1) - - - - self.state = 876 - self.match(Java9Parser.SEMI) - pass - elif token in [Java9Parser.USES]: - self.enterOuterAlt(localctx, 4) - self.state = 878 - self.match(Java9Parser.USES) - self.state = 879 - self.typeName() - self.state = 880 - self.match(Java9Parser.SEMI) - pass - elif token in [Java9Parser.PROVIDES]: - self.enterOuterAlt(localctx, 5) - self.state = 882 - self.match(Java9Parser.PROVIDES) - self.state = 883 - self.typeName() - self.state = 884 - self.match(Java9Parser.WITH) - self.state = 885 - self.typeName() - self.state = 890 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 886 - self.match(Java9Parser.COMMA) - self.state = 887 - self.typeName() - self.state = 892 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 893 - self.match(Java9Parser.SEMI) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class RequiresModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def TRANSITIVE(self): - return self.getToken(Java9Parser.TRANSITIVE, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_requiresModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterRequiresModifier" ): - listener.enterRequiresModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitRequiresModifier" ): - listener.exitRequiresModifier(self) - - - - - def requiresModifier(self): - - localctx = Java9Parser.RequiresModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 90, self.RULE_requiresModifier) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 897 - _la = self._input.LA(1) - if not(_la==Java9Parser.STATIC or _la==Java9Parser.TRANSITIVE): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def normalClassDeclaration(self): - return self.getTypedRuleContext(Java9Parser.NormalClassDeclarationContext,0) - - - def enumDeclaration(self): - return self.getTypedRuleContext(Java9Parser.EnumDeclarationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_classDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassDeclaration" ): - listener.enterClassDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassDeclaration" ): - listener.exitClassDeclaration(self) - - - - - def classDeclaration(self): - - localctx = Java9Parser.ClassDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 92, self.RULE_classDeclaration) - try: - self.state = 901 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,55,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 899 - self.normalClassDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 900 - self.enumDeclaration() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class NormalClassDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def CLASS(self): - return self.getToken(Java9Parser.CLASS, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def classBody(self): - return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) - - - def classModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ClassModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.ClassModifierContext,i) - - - def typeParameters(self): - return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) - - - def superclass(self): - return self.getTypedRuleContext(Java9Parser.SuperclassContext,0) - - - def superinterfaces(self): - return self.getTypedRuleContext(Java9Parser.SuperinterfacesContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_normalClassDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterNormalClassDeclaration" ): - listener.enterNormalClassDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitNormalClassDeclaration" ): - listener.exitNormalClassDeclaration(self) - - - - - def normalClassDeclaration(self): - - localctx = Java9Parser.NormalClassDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 94, self.RULE_normalClassDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 906 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: - self.state = 903 - self.classModifier() - self.state = 908 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 909 - self.match(Java9Parser.CLASS) - self.state = 910 - self.identifier() - self.state = 912 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 911 - self.typeParameters() - - - self.state = 915 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.EXTENDS: - self.state = 914 - self.superclass() - - - self.state = 918 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.IMPLEMENTS: - self.state = 917 - self.superinterfaces() - - - self.state = 920 - self.classBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def PROTECTED(self): - return self.getToken(Java9Parser.PROTECTED, 0) - - def PRIVATE(self): - return self.getToken(Java9Parser.PRIVATE, 0) - - def ABSTRACT(self): - return self.getToken(Java9Parser.ABSTRACT, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def FINAL(self): - return self.getToken(Java9Parser.FINAL, 0) - - def STRICTFP(self): - return self.getToken(Java9Parser.STRICTFP, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_classModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassModifier" ): - listener.enterClassModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassModifier" ): - listener.exitClassModifier(self) - - - - - def classModifier(self): - - localctx = Java9Parser.ClassModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 96, self.RULE_classModifier) - try: - self.state = 930 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 922 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 923 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.PROTECTED]: - self.enterOuterAlt(localctx, 3) - self.state = 924 - self.match(Java9Parser.PROTECTED) - pass - elif token in [Java9Parser.PRIVATE]: - self.enterOuterAlt(localctx, 4) - self.state = 925 - self.match(Java9Parser.PRIVATE) - pass - elif token in [Java9Parser.ABSTRACT]: - self.enterOuterAlt(localctx, 5) - self.state = 926 - self.match(Java9Parser.ABSTRACT) - pass - elif token in [Java9Parser.STATIC]: - self.enterOuterAlt(localctx, 6) - self.state = 927 - self.match(Java9Parser.STATIC) - pass - elif token in [Java9Parser.FINAL]: - self.enterOuterAlt(localctx, 7) - self.state = 928 - self.match(Java9Parser.FINAL) - pass - elif token in [Java9Parser.STRICTFP]: - self.enterOuterAlt(localctx, 8) - self.state = 929 - self.match(Java9Parser.STRICTFP) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeParametersContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LT(self): - return self.getToken(Java9Parser.LT, 0) - - def typeParameterList(self): - return self.getTypedRuleContext(Java9Parser.TypeParameterListContext,0) - - - def GT(self): - return self.getToken(Java9Parser.GT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_typeParameters - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeParameters" ): - listener.enterTypeParameters(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeParameters" ): - listener.exitTypeParameters(self) - - - - - def typeParameters(self): - - localctx = Java9Parser.TypeParametersContext(self, self._ctx, self.state) - self.enterRule(localctx, 98, self.RULE_typeParameters) - try: - self.enterOuterAlt(localctx, 1) - self.state = 932 - self.match(Java9Parser.LT) - self.state = 933 - self.typeParameterList() - self.state = 934 - self.match(Java9Parser.GT) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeParameterListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def typeParameter(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.TypeParameterContext) - else: - return self.getTypedRuleContext(Java9Parser.TypeParameterContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_typeParameterList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeParameterList" ): - listener.enterTypeParameterList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeParameterList" ): - listener.exitTypeParameterList(self) - - - - - def typeParameterList(self): - - localctx = Java9Parser.TypeParameterListContext(self, self._ctx, self.state) - self.enterRule(localctx, 100, self.RULE_typeParameterList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 936 - self.typeParameter() - self.state = 941 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 937 - self.match(Java9Parser.COMMA) - self.state = 938 - self.typeParameter() - self.state = 943 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SuperclassContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def EXTENDS(self): - return self.getToken(Java9Parser.EXTENDS, 0) - - def classType(self): - return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_superclass - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSuperclass" ): - listener.enterSuperclass(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSuperclass" ): - listener.exitSuperclass(self) - - - - - def superclass(self): - - localctx = Java9Parser.SuperclassContext(self, self._ctx, self.state) - self.enterRule(localctx, 102, self.RULE_superclass) - try: - self.enterOuterAlt(localctx, 1) - self.state = 944 - self.match(Java9Parser.EXTENDS) - self.state = 945 - self.classType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SuperinterfacesContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IMPLEMENTS(self): - return self.getToken(Java9Parser.IMPLEMENTS, 0) - - def interfaceTypeList(self): - return self.getTypedRuleContext(Java9Parser.InterfaceTypeListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_superinterfaces - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSuperinterfaces" ): - listener.enterSuperinterfaces(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSuperinterfaces" ): - listener.exitSuperinterfaces(self) - - - - - def superinterfaces(self): - - localctx = Java9Parser.SuperinterfacesContext(self, self._ctx, self.state) - self.enterRule(localctx, 104, self.RULE_superinterfaces) - try: - self.enterOuterAlt(localctx, 1) - self.state = 947 - self.match(Java9Parser.IMPLEMENTS) - self.state = 948 - self.interfaceTypeList() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceTypeListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def interfaceType(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.InterfaceTypeContext) - else: - return self.getTypedRuleContext(Java9Parser.InterfaceTypeContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceTypeList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceTypeList" ): - listener.enterInterfaceTypeList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceTypeList" ): - listener.exitInterfaceTypeList(self) - - - - - def interfaceTypeList(self): - - localctx = Java9Parser.InterfaceTypeListContext(self, self._ctx, self.state) - self.enterRule(localctx, 106, self.RULE_interfaceTypeList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 950 - self.interfaceType() - self.state = 955 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 951 - self.match(Java9Parser.COMMA) - self.state = 952 - self.interfaceType() - self.state = 957 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassBodyContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def classBodyDeclaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ClassBodyDeclarationContext) - else: - return self.getTypedRuleContext(Java9Parser.ClassBodyDeclarationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_classBody - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassBody" ): - listener.enterClassBody(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassBody" ): - listener.exitClassBody(self) - - - - - def classBody(self): - - localctx = Java9Parser.ClassBodyContext(self, self._ctx, self.state) - self.enterRule(localctx, 108, self.RULE_classBody) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 958 - self.match(Java9Parser.LBRACE) - self.state = 962 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NATIVE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRANSIENT) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.VOLATILE) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 70)) & ~0x3f) == 0 and ((1 << (_la - 70)) & ((1 << (Java9Parser.LBRACE - 70)) | (1 << (Java9Parser.SEMI - 70)) | (1 << (Java9Parser.AT - 70)) | (1 << (Java9Parser.LT - 70)) | (1 << (Java9Parser.Identifier - 70)))) != 0): - self.state = 959 - self.classBodyDeclaration() - self.state = 964 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 965 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassBodyDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classMemberDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ClassMemberDeclarationContext,0) - - - def instanceInitializer(self): - return self.getTypedRuleContext(Java9Parser.InstanceInitializerContext,0) - - - def staticInitializer(self): - return self.getTypedRuleContext(Java9Parser.StaticInitializerContext,0) - - - def constructorDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ConstructorDeclarationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_classBodyDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassBodyDeclaration" ): - listener.enterClassBodyDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassBodyDeclaration" ): - listener.exitClassBodyDeclaration(self) - - - - - def classBodyDeclaration(self): - - localctx = Java9Parser.ClassBodyDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 110, self.RULE_classBodyDeclaration) - try: - self.state = 971 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,64,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 967 - self.classMemberDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 968 - self.instanceInitializer() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 969 - self.staticInitializer() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 970 - self.constructorDeclaration() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassMemberDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def fieldDeclaration(self): - return self.getTypedRuleContext(Java9Parser.FieldDeclarationContext,0) - - - def methodDeclaration(self): - return self.getTypedRuleContext(Java9Parser.MethodDeclarationContext,0) - - - def classDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) - - - def interfaceDeclaration(self): - return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_classMemberDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassMemberDeclaration" ): - listener.enterClassMemberDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassMemberDeclaration" ): - listener.exitClassMemberDeclaration(self) - - - - - def classMemberDeclaration(self): - - localctx = Java9Parser.ClassMemberDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 112, self.RULE_classMemberDeclaration) - try: - self.state = 978 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,65,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 973 - self.fieldDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 974 - self.methodDeclaration() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 975 - self.classDeclaration() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 976 - self.interfaceDeclaration() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 977 - self.match(Java9Parser.SEMI) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FieldDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def variableDeclaratorList(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorListContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def fieldModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.FieldModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.FieldModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_fieldDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFieldDeclaration" ): - listener.enterFieldDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFieldDeclaration" ): - listener.exitFieldDeclaration(self) - - - - - def fieldDeclaration(self): - - localctx = Java9Parser.FieldDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 114, self.RULE_fieldDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 983 - self._errHandler.sync(self) - _la = self._input.LA(1) - while ((((_la - 19)) & ~0x3f) == 0 and ((1 << (_la - 19)) & ((1 << (Java9Parser.FINAL - 19)) | (1 << (Java9Parser.PRIVATE - 19)) | (1 << (Java9Parser.PROTECTED - 19)) | (1 << (Java9Parser.PUBLIC - 19)) | (1 << (Java9Parser.STATIC - 19)) | (1 << (Java9Parser.TRANSIENT - 19)) | (1 << (Java9Parser.VOLATILE - 19)) | (1 << (Java9Parser.AT - 19)))) != 0): - self.state = 980 - self.fieldModifier() - self.state = 985 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 986 - self.unannType() - self.state = 987 - self.variableDeclaratorList() - self.state = 988 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FieldModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def PROTECTED(self): - return self.getToken(Java9Parser.PROTECTED, 0) - - def PRIVATE(self): - return self.getToken(Java9Parser.PRIVATE, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def FINAL(self): - return self.getToken(Java9Parser.FINAL, 0) - - def TRANSIENT(self): - return self.getToken(Java9Parser.TRANSIENT, 0) - - def VOLATILE(self): - return self.getToken(Java9Parser.VOLATILE, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_fieldModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFieldModifier" ): - listener.enterFieldModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFieldModifier" ): - listener.exitFieldModifier(self) - - - - - def fieldModifier(self): - - localctx = Java9Parser.FieldModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 116, self.RULE_fieldModifier) - try: - self.state = 998 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 990 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 991 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.PROTECTED]: - self.enterOuterAlt(localctx, 3) - self.state = 992 - self.match(Java9Parser.PROTECTED) - pass - elif token in [Java9Parser.PRIVATE]: - self.enterOuterAlt(localctx, 4) - self.state = 993 - self.match(Java9Parser.PRIVATE) - pass - elif token in [Java9Parser.STATIC]: - self.enterOuterAlt(localctx, 5) - self.state = 994 - self.match(Java9Parser.STATIC) - pass - elif token in [Java9Parser.FINAL]: - self.enterOuterAlt(localctx, 6) - self.state = 995 - self.match(Java9Parser.FINAL) - pass - elif token in [Java9Parser.TRANSIENT]: - self.enterOuterAlt(localctx, 7) - self.state = 996 - self.match(Java9Parser.TRANSIENT) - pass - elif token in [Java9Parser.VOLATILE]: - self.enterOuterAlt(localctx, 8) - self.state = 997 - self.match(Java9Parser.VOLATILE) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class VariableDeclaratorListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def variableDeclarator(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableDeclaratorContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_variableDeclaratorList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVariableDeclaratorList" ): - listener.enterVariableDeclaratorList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVariableDeclaratorList" ): - listener.exitVariableDeclaratorList(self) - - - - - def variableDeclaratorList(self): - - localctx = Java9Parser.VariableDeclaratorListContext(self, self._ctx, self.state) - self.enterRule(localctx, 118, self.RULE_variableDeclaratorList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1000 - self.variableDeclarator() - self.state = 1005 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 1001 - self.match(Java9Parser.COMMA) - self.state = 1002 - self.variableDeclarator() - self.state = 1007 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class VariableDeclaratorContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def variableDeclaratorId(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) - - - def ASSIGN(self): - return self.getToken(Java9Parser.ASSIGN, 0) - - def variableInitializer(self): - return self.getTypedRuleContext(Java9Parser.VariableInitializerContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_variableDeclarator - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVariableDeclarator" ): - listener.enterVariableDeclarator(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVariableDeclarator" ): - listener.exitVariableDeclarator(self) - - - - - def variableDeclarator(self): - - localctx = Java9Parser.VariableDeclaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 120, self.RULE_variableDeclarator) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1008 - self.variableDeclaratorId() - self.state = 1011 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.ASSIGN: - self.state = 1009 - self.match(Java9Parser.ASSIGN) - self.state = 1010 - self.variableInitializer() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class VariableDeclaratorIdContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def dims(self): - return self.getTypedRuleContext(Java9Parser.DimsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_variableDeclaratorId - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVariableDeclaratorId" ): - listener.enterVariableDeclaratorId(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVariableDeclaratorId" ): - listener.exitVariableDeclaratorId(self) - - - - - def variableDeclaratorId(self): - - localctx = Java9Parser.VariableDeclaratorIdContext(self, self._ctx, self.state) - self.enterRule(localctx, 122, self.RULE_variableDeclaratorId) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1013 - self.identifier() - self.state = 1015 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LBRACK or _la==Java9Parser.AT: - self.state = 1014 - self.dims() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class VariableInitializerContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def arrayInitializer(self): - return self.getTypedRuleContext(Java9Parser.ArrayInitializerContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_variableInitializer - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVariableInitializer" ): - listener.enterVariableInitializer(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVariableInitializer" ): - listener.exitVariableInitializer(self) - - - - - def variableInitializer(self): - - localctx = Java9Parser.VariableInitializerContext(self, self._ctx, self.state) - self.enterRule(localctx, 124, self.RULE_variableInitializer) - try: - self.state = 1019 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.BANG, Java9Parser.TILDE, Java9Parser.INC, Java9Parser.DEC, Java9Parser.ADD, Java9Parser.SUB, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 1) - self.state = 1017 - self.expression() - pass - elif token in [Java9Parser.LBRACE]: - self.enterOuterAlt(localctx, 2) - self.state = 1018 - self.arrayInitializer() - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannPrimitiveType(self): - return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) - - - def unannReferenceType(self): - return self.getTypedRuleContext(Java9Parser.UnannReferenceTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannType" ): - listener.enterUnannType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannType" ): - listener.exitUnannType(self) - - - - - def unannType(self): - - localctx = Java9Parser.UnannTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 126, self.RULE_unannType) - try: - self.state = 1023 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,72,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1021 - self.unannPrimitiveType() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1022 - self.unannReferenceType() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannPrimitiveTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def numericType(self): - return self.getTypedRuleContext(Java9Parser.NumericTypeContext,0) - - - def BOOLEAN(self): - return self.getToken(Java9Parser.BOOLEAN, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_unannPrimitiveType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannPrimitiveType" ): - listener.enterUnannPrimitiveType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannPrimitiveType" ): - listener.exitUnannPrimitiveType(self) - - - - - def unannPrimitiveType(self): - - localctx = Java9Parser.UnannPrimitiveTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 128, self.RULE_unannPrimitiveType) - try: - self.state = 1027 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.SHORT]: - self.enterOuterAlt(localctx, 1) - self.state = 1025 - self.numericType() - pass - elif token in [Java9Parser.BOOLEAN]: - self.enterOuterAlt(localctx, 2) - self.state = 1026 - self.match(Java9Parser.BOOLEAN) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannReferenceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannClassOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassOrInterfaceTypeContext,0) - - - def unannTypeVariable(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeVariableContext,0) - - - def unannArrayType(self): - return self.getTypedRuleContext(Java9Parser.UnannArrayTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannReferenceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannReferenceType" ): - listener.enterUnannReferenceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannReferenceType" ): - listener.exitUnannReferenceType(self) - - - - - def unannReferenceType(self): - - localctx = Java9Parser.UnannReferenceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 130, self.RULE_unannReferenceType) - try: - self.state = 1032 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,74,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1029 - self.unannClassOrInterfaceType() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1030 - self.unannTypeVariable() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1031 - self.unannArrayType() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannClassOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannClassType_lfno_unannClassOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext,0) - - - def unannInterfaceType_lfno_unannClassOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext,0) - - - def unannClassType_lf_unannClassOrInterfaceType(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext) - else: - return self.getTypedRuleContext(Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext,i) - - - def unannInterfaceType_lf_unannClassOrInterfaceType(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext) - else: - return self.getTypedRuleContext(Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannClassOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannClassOrInterfaceType" ): - listener.enterUnannClassOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannClassOrInterfaceType" ): - listener.exitUnannClassOrInterfaceType(self) - - - - - def unannClassOrInterfaceType(self): - - localctx = Java9Parser.UnannClassOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 132, self.RULE_unannClassOrInterfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1036 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,75,self._ctx) - if la_ == 1: - self.state = 1034 - self.unannClassType_lfno_unannClassOrInterfaceType() - pass - - elif la_ == 2: - self.state = 1035 - self.unannInterfaceType_lfno_unannClassOrInterfaceType() - pass - - - self.state = 1042 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,77,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1040 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,76,self._ctx) - if la_ == 1: - self.state = 1038 - self.unannClassType_lf_unannClassOrInterfaceType() - pass - - elif la_ == 2: - self.state = 1039 - self.unannInterfaceType_lf_unannClassOrInterfaceType() - pass - - - self.state = 1044 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,77,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannClassTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def unannClassOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassOrInterfaceTypeContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannClassType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannClassType" ): - listener.enterUnannClassType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannClassType" ): - listener.exitUnannClassType(self) - - - - - def unannClassType(self): - - localctx = Java9Parser.UnannClassTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 134, self.RULE_unannClassType) - self._la = 0 # Token type - try: - self.state = 1061 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,81,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1045 - self.identifier() - self.state = 1047 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1046 - self.typeArguments() - - - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1049 - self.unannClassOrInterfaceType() - self.state = 1050 - self.match(Java9Parser.DOT) - self.state = 1054 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 1051 - self.annotation() - self.state = 1056 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1057 - self.identifier() - self.state = 1059 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1058 - self.typeArguments() - - - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannClassType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannClassType_lf_unannClassOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannClassType_lf_unannClassOrInterfaceType" ): - listener.enterUnannClassType_lf_unannClassOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannClassType_lf_unannClassOrInterfaceType" ): - listener.exitUnannClassType_lf_unannClassOrInterfaceType(self) - - - - - def unannClassType_lf_unannClassOrInterfaceType(self): - - localctx = Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 136, self.RULE_unannClassType_lf_unannClassOrInterfaceType) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1063 - self.match(Java9Parser.DOT) - self.state = 1067 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 1064 - self.annotation() - self.state = 1069 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1070 - self.identifier() - self.state = 1072 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1071 - self.typeArguments() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannClassType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannClassType_lfno_unannClassOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannClassType_lfno_unannClassOrInterfaceType" ): - listener.enterUnannClassType_lfno_unannClassOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannClassType_lfno_unannClassOrInterfaceType" ): - listener.exitUnannClassType_lfno_unannClassOrInterfaceType(self) - - - - - def unannClassType_lfno_unannClassOrInterfaceType(self): - - localctx = Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 138, self.RULE_unannClassType_lfno_unannClassOrInterfaceType) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1074 - self.identifier() - self.state = 1076 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1075 - self.typeArguments() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannClassType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannInterfaceType" ): - listener.enterUnannInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannInterfaceType" ): - listener.exitUnannInterfaceType(self) - - - - - def unannInterfaceType(self): - - localctx = Java9Parser.UnannInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 140, self.RULE_unannInterfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1078 - self.unannClassType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannClassType_lf_unannClassOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannInterfaceType_lf_unannClassOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannInterfaceType_lf_unannClassOrInterfaceType" ): - listener.enterUnannInterfaceType_lf_unannClassOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannInterfaceType_lf_unannClassOrInterfaceType" ): - listener.exitUnannInterfaceType_lf_unannClassOrInterfaceType(self) - - - - - def unannInterfaceType_lf_unannClassOrInterfaceType(self): - - localctx = Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 142, self.RULE_unannInterfaceType_lf_unannClassOrInterfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1080 - self.unannClassType_lf_unannClassOrInterfaceType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannClassType_lfno_unannClassOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannInterfaceType_lfno_unannClassOrInterfaceType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannInterfaceType_lfno_unannClassOrInterfaceType" ): - listener.enterUnannInterfaceType_lfno_unannClassOrInterfaceType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannInterfaceType_lfno_unannClassOrInterfaceType" ): - listener.exitUnannInterfaceType_lfno_unannClassOrInterfaceType(self) - - - - - def unannInterfaceType_lfno_unannClassOrInterfaceType(self): - - localctx = Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 144, self.RULE_unannInterfaceType_lfno_unannClassOrInterfaceType) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1082 - self.unannClassType_lfno_unannClassOrInterfaceType() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannTypeVariableContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannTypeVariable - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannTypeVariable" ): - listener.enterUnannTypeVariable(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannTypeVariable" ): - listener.exitUnannTypeVariable(self) - - - - - def unannTypeVariable(self): - - localctx = Java9Parser.UnannTypeVariableContext(self, self._ctx, self.state) - self.enterRule(localctx, 146, self.RULE_unannTypeVariable) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1084 - self.identifier() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnannArrayTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannPrimitiveType(self): - return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) - - - def dims(self): - return self.getTypedRuleContext(Java9Parser.DimsContext,0) - - - def unannClassOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassOrInterfaceTypeContext,0) - - - def unannTypeVariable(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeVariableContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unannArrayType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnannArrayType" ): - listener.enterUnannArrayType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnannArrayType" ): - listener.exitUnannArrayType(self) - - - - - def unannArrayType(self): - - localctx = Java9Parser.UnannArrayTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 148, self.RULE_unannArrayType) - try: - self.state = 1095 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,85,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1086 - self.unannPrimitiveType() - self.state = 1087 - self.dims() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1089 - self.unannClassOrInterfaceType() - self.state = 1090 - self.dims() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1092 - self.unannTypeVariable() - self.state = 1093 - self.dims() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def methodHeader(self): - return self.getTypedRuleContext(Java9Parser.MethodHeaderContext,0) - - - def methodBody(self): - return self.getTypedRuleContext(Java9Parser.MethodBodyContext,0) - - - def methodModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.MethodModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.MethodModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodDeclaration" ): - listener.enterMethodDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodDeclaration" ): - listener.exitMethodDeclaration(self) - - - - - def methodDeclaration(self): - - localctx = Java9Parser.MethodDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 150, self.RULE_methodDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1100 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.NATIVE) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SYNCHRONIZED))) != 0) or _la==Java9Parser.AT: - self.state = 1097 - self.methodModifier() - self.state = 1102 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1103 - self.methodHeader() - self.state = 1104 - self.methodBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def PROTECTED(self): - return self.getToken(Java9Parser.PROTECTED, 0) - - def PRIVATE(self): - return self.getToken(Java9Parser.PRIVATE, 0) - - def ABSTRACT(self): - return self.getToken(Java9Parser.ABSTRACT, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def FINAL(self): - return self.getToken(Java9Parser.FINAL, 0) - - def SYNCHRONIZED(self): - return self.getToken(Java9Parser.SYNCHRONIZED, 0) - - def NATIVE(self): - return self.getToken(Java9Parser.NATIVE, 0) - - def STRICTFP(self): - return self.getToken(Java9Parser.STRICTFP, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_methodModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodModifier" ): - listener.enterMethodModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodModifier" ): - listener.exitMethodModifier(self) - - - - - def methodModifier(self): - - localctx = Java9Parser.MethodModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 152, self.RULE_methodModifier) - try: - self.state = 1116 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 1106 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 1107 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.PROTECTED]: - self.enterOuterAlt(localctx, 3) - self.state = 1108 - self.match(Java9Parser.PROTECTED) - pass - elif token in [Java9Parser.PRIVATE]: - self.enterOuterAlt(localctx, 4) - self.state = 1109 - self.match(Java9Parser.PRIVATE) - pass - elif token in [Java9Parser.ABSTRACT]: - self.enterOuterAlt(localctx, 5) - self.state = 1110 - self.match(Java9Parser.ABSTRACT) - pass - elif token in [Java9Parser.STATIC]: - self.enterOuterAlt(localctx, 6) - self.state = 1111 - self.match(Java9Parser.STATIC) - pass - elif token in [Java9Parser.FINAL]: - self.enterOuterAlt(localctx, 7) - self.state = 1112 - self.match(Java9Parser.FINAL) - pass - elif token in [Java9Parser.SYNCHRONIZED]: - self.enterOuterAlt(localctx, 8) - self.state = 1113 - self.match(Java9Parser.SYNCHRONIZED) - pass - elif token in [Java9Parser.NATIVE]: - self.enterOuterAlt(localctx, 9) - self.state = 1114 - self.match(Java9Parser.NATIVE) - pass - elif token in [Java9Parser.STRICTFP]: - self.enterOuterAlt(localctx, 10) - self.state = 1115 - self.match(Java9Parser.STRICTFP) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodHeaderContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def result(self): - return self.getTypedRuleContext(Java9Parser.ResultContext,0) - - - def methodDeclarator(self): - return self.getTypedRuleContext(Java9Parser.MethodDeclaratorContext,0) - - - def throws_(self): - return self.getTypedRuleContext(Java9Parser.Throws_Context,0) - - - def typeParameters(self): - return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodHeader - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodHeader" ): - listener.enterMethodHeader(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodHeader" ): - listener.exitMethodHeader(self) - - - - - def methodHeader(self): - - localctx = Java9Parser.MethodHeaderContext(self, self._ctx, self.state) - self.enterRule(localctx, 154, self.RULE_methodHeader) - self._la = 0 # Token type - try: - self.state = 1135 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 1) - self.state = 1118 - self.result() - self.state = 1119 - self.methodDeclarator() - self.state = 1121 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.THROWS: - self.state = 1120 - self.throws_() - - - pass - elif token in [Java9Parser.LT]: - self.enterOuterAlt(localctx, 2) - self.state = 1123 - self.typeParameters() - self.state = 1127 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 1124 - self.annotation() - self.state = 1129 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1130 - self.result() - self.state = 1131 - self.methodDeclarator() - self.state = 1133 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.THROWS: - self.state = 1132 - self.throws_() - - - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ResultContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def VOID(self): - return self.getToken(Java9Parser.VOID, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_result - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterResult" ): - listener.enterResult(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitResult" ): - listener.exitResult(self) - - - - - def result(self): - - localctx = Java9Parser.ResultContext(self, self._ctx, self.state) - self.enterRule(localctx, 156, self.RULE_result) - try: - self.state = 1139 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 1) - self.state = 1137 - self.unannType() - pass - elif token in [Java9Parser.VOID]: - self.enterOuterAlt(localctx, 2) - self.state = 1138 - self.match(Java9Parser.VOID) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodDeclaratorContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def formalParameterList(self): - return self.getTypedRuleContext(Java9Parser.FormalParameterListContext,0) - - - def dims(self): - return self.getTypedRuleContext(Java9Parser.DimsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodDeclarator - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodDeclarator" ): - listener.enterMethodDeclarator(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodDeclarator" ): - listener.exitMethodDeclarator(self) - - - - - def methodDeclarator(self): - - localctx = Java9Parser.MethodDeclaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 158, self.RULE_methodDeclarator) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1141 - self.identifier() - self.state = 1142 - self.match(Java9Parser.LPAREN) - self.state = 1144 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: - self.state = 1143 - self.formalParameterList() - - - self.state = 1146 - self.match(Java9Parser.RPAREN) - self.state = 1148 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LBRACK or _la==Java9Parser.AT: - self.state = 1147 - self.dims() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FormalParameterListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def formalParameters(self): - return self.getTypedRuleContext(Java9Parser.FormalParametersContext,0) - - - def COMMA(self): - return self.getToken(Java9Parser.COMMA, 0) - - def lastFormalParameter(self): - return self.getTypedRuleContext(Java9Parser.LastFormalParameterContext,0) - - - def receiverParameter(self): - return self.getTypedRuleContext(Java9Parser.ReceiverParameterContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_formalParameterList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFormalParameterList" ): - listener.enterFormalParameterList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFormalParameterList" ): - listener.exitFormalParameterList(self) - - - - - def formalParameterList(self): - - localctx = Java9Parser.FormalParameterListContext(self, self._ctx, self.state) - self.enterRule(localctx, 160, self.RULE_formalParameterList) - try: - self.state = 1156 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,95,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1150 - self.formalParameters() - self.state = 1151 - self.match(Java9Parser.COMMA) - self.state = 1152 - self.lastFormalParameter() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1154 - self.lastFormalParameter() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1155 - self.receiverParameter() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FormalParametersContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def formalParameter(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.FormalParameterContext) - else: - return self.getTypedRuleContext(Java9Parser.FormalParameterContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def receiverParameter(self): - return self.getTypedRuleContext(Java9Parser.ReceiverParameterContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_formalParameters - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFormalParameters" ): - listener.enterFormalParameters(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFormalParameters" ): - listener.exitFormalParameters(self) - - - - - def formalParameters(self): - - localctx = Java9Parser.FormalParametersContext(self, self._ctx, self.state) - self.enterRule(localctx, 162, self.RULE_formalParameters) - try: - self.state = 1174 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,98,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1158 - self.formalParameter() - self.state = 1163 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,96,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1159 - self.match(Java9Parser.COMMA) - self.state = 1160 - self.formalParameter() - self.state = 1165 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,96,self._ctx) - - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1166 - self.receiverParameter() - self.state = 1171 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,97,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1167 - self.match(Java9Parser.COMMA) - self.state = 1168 - self.formalParameter() - self.state = 1173 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,97,self._ctx) - - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FormalParameterContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def variableDeclaratorId(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) - - - def variableModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_formalParameter - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFormalParameter" ): - listener.enterFormalParameter(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFormalParameter" ): - listener.exitFormalParameter(self) - - - - - def formalParameter(self): - - localctx = Java9Parser.FormalParameterContext(self, self._ctx, self.state) - self.enterRule(localctx, 164, self.RULE_formalParameter) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1179 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.FINAL or _la==Java9Parser.AT: - self.state = 1176 - self.variableModifier() - self.state = 1181 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1182 - self.unannType() - self.state = 1183 - self.variableDeclaratorId() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class VariableModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def FINAL(self): - return self.getToken(Java9Parser.FINAL, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_variableModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVariableModifier" ): - listener.enterVariableModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVariableModifier" ): - listener.exitVariableModifier(self) - - - - - def variableModifier(self): - - localctx = Java9Parser.VariableModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 166, self.RULE_variableModifier) - try: - self.state = 1187 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 1185 - self.annotation() - pass - elif token in [Java9Parser.FINAL]: - self.enterOuterAlt(localctx, 2) - self.state = 1186 - self.match(Java9Parser.FINAL) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LastFormalParameterContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def ELLIPSIS(self): - return self.getToken(Java9Parser.ELLIPSIS, 0) - - def variableDeclaratorId(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) - - - def variableModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def formalParameter(self): - return self.getTypedRuleContext(Java9Parser.FormalParameterContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_lastFormalParameter - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLastFormalParameter" ): - listener.enterLastFormalParameter(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLastFormalParameter" ): - listener.exitLastFormalParameter(self) - - - - - def lastFormalParameter(self): - - localctx = Java9Parser.LastFormalParameterContext(self, self._ctx, self.state) - self.enterRule(localctx, 168, self.RULE_lastFormalParameter) - self._la = 0 # Token type - try: - self.state = 1206 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,103,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1192 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.FINAL or _la==Java9Parser.AT: - self.state = 1189 - self.variableModifier() - self.state = 1194 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1195 - self.unannType() - self.state = 1199 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 1196 - self.annotation() - self.state = 1201 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1202 - self.match(Java9Parser.ELLIPSIS) - self.state = 1203 - self.variableDeclaratorId() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1205 - self.formalParameter() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ReceiverParameterContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def THIS(self): - return self.getToken(Java9Parser.THIS, 0) - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_receiverParameter - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterReceiverParameter" ): - listener.enterReceiverParameter(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitReceiverParameter" ): - listener.exitReceiverParameter(self) - - - - - def receiverParameter(self): - - localctx = Java9Parser.ReceiverParameterContext(self, self._ctx, self.state) - self.enterRule(localctx, 170, self.RULE_receiverParameter) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1211 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 1208 - self.annotation() - self.state = 1213 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1214 - self.unannType() - self.state = 1218 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: - self.state = 1215 - self.identifier() - self.state = 1216 - self.match(Java9Parser.DOT) - - - self.state = 1220 - self.match(Java9Parser.THIS) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class Throws_Context(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def THROWS(self): - return self.getToken(Java9Parser.THROWS, 0) - - def exceptionTypeList(self): - return self.getTypedRuleContext(Java9Parser.ExceptionTypeListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_throws_ - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterThrows_" ): - listener.enterThrows_(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitThrows_" ): - listener.exitThrows_(self) - - - - - def throws_(self): - - localctx = Java9Parser.Throws_Context(self, self._ctx, self.state) - self.enterRule(localctx, 172, self.RULE_throws_) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1222 - self.match(Java9Parser.THROWS) - self.state = 1223 - self.exceptionTypeList() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ExceptionTypeListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def exceptionType(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ExceptionTypeContext) - else: - return self.getTypedRuleContext(Java9Parser.ExceptionTypeContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_exceptionTypeList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExceptionTypeList" ): - listener.enterExceptionTypeList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExceptionTypeList" ): - listener.exitExceptionTypeList(self) - - - - - def exceptionTypeList(self): - - localctx = Java9Parser.ExceptionTypeListContext(self, self._ctx, self.state) - self.enterRule(localctx, 174, self.RULE_exceptionTypeList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1225 - self.exceptionType() - self.state = 1230 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 1226 - self.match(Java9Parser.COMMA) - self.state = 1227 - self.exceptionType() - self.state = 1232 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ExceptionTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classType(self): - return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) - - - def typeVariable(self): - return self.getTypedRuleContext(Java9Parser.TypeVariableContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_exceptionType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExceptionType" ): - listener.enterExceptionType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExceptionType" ): - listener.exitExceptionType(self) - - - - - def exceptionType(self): - - localctx = Java9Parser.ExceptionTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 176, self.RULE_exceptionType) - try: - self.state = 1235 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,107,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1233 - self.classType() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1234 - self.typeVariable() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodBodyContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_methodBody - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodBody" ): - listener.enterMethodBody(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodBody" ): - listener.exitMethodBody(self) - - - - - def methodBody(self): - - localctx = Java9Parser.MethodBodyContext(self, self._ctx, self.state) - self.enterRule(localctx, 178, self.RULE_methodBody) - try: - self.state = 1239 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.LBRACE]: - self.enterOuterAlt(localctx, 1) - self.state = 1237 - self.block() - pass - elif token in [Java9Parser.SEMI]: - self.enterOuterAlt(localctx, 2) - self.state = 1238 - self.match(Java9Parser.SEMI) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InstanceInitializerContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_instanceInitializer - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInstanceInitializer" ): - listener.enterInstanceInitializer(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInstanceInitializer" ): - listener.exitInstanceInitializer(self) - - - - - def instanceInitializer(self): - - localctx = Java9Parser.InstanceInitializerContext(self, self._ctx, self.state) - self.enterRule(localctx, 180, self.RULE_instanceInitializer) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1241 - self.block() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class StaticInitializerContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_staticInitializer - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStaticInitializer" ): - listener.enterStaticInitializer(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStaticInitializer" ): - listener.exitStaticInitializer(self) - - - - - def staticInitializer(self): - - localctx = Java9Parser.StaticInitializerContext(self, self._ctx, self.state) - self.enterRule(localctx, 182, self.RULE_staticInitializer) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1243 - self.match(Java9Parser.STATIC) - self.state = 1244 - self.block() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConstructorDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def constructorDeclarator(self): - return self.getTypedRuleContext(Java9Parser.ConstructorDeclaratorContext,0) - - - def constructorBody(self): - return self.getTypedRuleContext(Java9Parser.ConstructorBodyContext,0) - - - def constructorModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ConstructorModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.ConstructorModifierContext,i) - - - def throws_(self): - return self.getTypedRuleContext(Java9Parser.Throws_Context,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_constructorDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstructorDeclaration" ): - listener.enterConstructorDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstructorDeclaration" ): - listener.exitConstructorDeclaration(self) - - - - - def constructorDeclaration(self): - - localctx = Java9Parser.ConstructorDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 184, self.RULE_constructorDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1249 - self._errHandler.sync(self) - _la = self._input.LA(1) - while ((((_la - 37)) & ~0x3f) == 0 and ((1 << (_la - 37)) & ((1 << (Java9Parser.PRIVATE - 37)) | (1 << (Java9Parser.PROTECTED - 37)) | (1 << (Java9Parser.PUBLIC - 37)) | (1 << (Java9Parser.AT - 37)))) != 0): - self.state = 1246 - self.constructorModifier() - self.state = 1251 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1252 - self.constructorDeclarator() - self.state = 1254 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.THROWS: - self.state = 1253 - self.throws_() - - - self.state = 1256 - self.constructorBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConstructorModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def PROTECTED(self): - return self.getToken(Java9Parser.PROTECTED, 0) - - def PRIVATE(self): - return self.getToken(Java9Parser.PRIVATE, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_constructorModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstructorModifier" ): - listener.enterConstructorModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstructorModifier" ): - listener.exitConstructorModifier(self) - - - - - def constructorModifier(self): - - localctx = Java9Parser.ConstructorModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 186, self.RULE_constructorModifier) - try: - self.state = 1262 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 1258 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 1259 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.PROTECTED]: - self.enterOuterAlt(localctx, 3) - self.state = 1260 - self.match(Java9Parser.PROTECTED) - pass - elif token in [Java9Parser.PRIVATE]: - self.enterOuterAlt(localctx, 4) - self.state = 1261 - self.match(Java9Parser.PRIVATE) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConstructorDeclaratorContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def simpleTypeName(self): - return self.getTypedRuleContext(Java9Parser.SimpleTypeNameContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def typeParameters(self): - return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) - - - def formalParameterList(self): - return self.getTypedRuleContext(Java9Parser.FormalParameterListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_constructorDeclarator - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstructorDeclarator" ): - listener.enterConstructorDeclarator(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstructorDeclarator" ): - listener.exitConstructorDeclarator(self) - - - - - def constructorDeclarator(self): - - localctx = Java9Parser.ConstructorDeclaratorContext(self, self._ctx, self.state) - self.enterRule(localctx, 188, self.RULE_constructorDeclarator) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1265 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1264 - self.typeParameters() - - - self.state = 1267 - self.simpleTypeName() - self.state = 1268 - self.match(Java9Parser.LPAREN) - self.state = 1270 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: - self.state = 1269 - self.formalParameterList() - - - self.state = 1272 - self.match(Java9Parser.RPAREN) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SimpleTypeNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_simpleTypeName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSimpleTypeName" ): - listener.enterSimpleTypeName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSimpleTypeName" ): - listener.exitSimpleTypeName(self) - - - - - def simpleTypeName(self): - - localctx = Java9Parser.SimpleTypeNameContext(self, self._ctx, self.state) - self.enterRule(localctx, 190, self.RULE_simpleTypeName) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1274 - self.identifier() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConstructorBodyContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def explicitConstructorInvocation(self): - return self.getTypedRuleContext(Java9Parser.ExplicitConstructorInvocationContext,0) - - - def blockStatements(self): - return self.getTypedRuleContext(Java9Parser.BlockStatementsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_constructorBody - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstructorBody" ): - listener.enterConstructorBody(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstructorBody" ): - listener.exitConstructorBody(self) - - - - - def constructorBody(self): - - localctx = Java9Parser.ConstructorBodyContext(self, self._ctx, self.state) - self.enterRule(localctx, 192, self.RULE_constructorBody) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1276 - self.match(Java9Parser.LBRACE) - self.state = 1278 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,114,self._ctx) - if la_ == 1: - self.state = 1277 - self.explicitConstructorInvocation() - - - self.state = 1281 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.ASSERT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BREAK) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.CONTINUE) | (1 << Java9Parser.DO) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.FOR) | (1 << Java9Parser.IF) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.RETURN) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.SWITCH) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.THIS) | (1 << Java9Parser.THROW) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRY) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WHILE) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.SEMI - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1280 - self.blockStatements() - - - self.state = 1283 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ExplicitConstructorInvocationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def THIS(self): - return self.getToken(Java9Parser.THIS, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_explicitConstructorInvocation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExplicitConstructorInvocation" ): - listener.enterExplicitConstructorInvocation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExplicitConstructorInvocation" ): - listener.exitExplicitConstructorInvocation(self) - - - - - def explicitConstructorInvocation(self): - - localctx = Java9Parser.ExplicitConstructorInvocationContext(self, self._ctx, self.state) - self.enterRule(localctx, 194, self.RULE_explicitConstructorInvocation) - self._la = 0 # Token type - try: - self.state = 1331 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,124,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1286 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1285 - self.typeArguments() - - - self.state = 1288 - self.match(Java9Parser.THIS) - self.state = 1289 - self.match(Java9Parser.LPAREN) - self.state = 1291 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1290 - self.argumentList() - - - self.state = 1293 - self.match(Java9Parser.RPAREN) - self.state = 1294 - self.match(Java9Parser.SEMI) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1296 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1295 - self.typeArguments() - - - self.state = 1298 - self.match(Java9Parser.SUPER) - self.state = 1299 - self.match(Java9Parser.LPAREN) - self.state = 1301 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1300 - self.argumentList() - - - self.state = 1303 - self.match(Java9Parser.RPAREN) - self.state = 1304 - self.match(Java9Parser.SEMI) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1305 - self.expressionName() - self.state = 1306 - self.match(Java9Parser.DOT) - self.state = 1308 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1307 - self.typeArguments() - - - self.state = 1310 - self.match(Java9Parser.SUPER) - self.state = 1311 - self.match(Java9Parser.LPAREN) - self.state = 1313 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1312 - self.argumentList() - - - self.state = 1315 - self.match(Java9Parser.RPAREN) - self.state = 1316 - self.match(Java9Parser.SEMI) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 1318 - self.primary() - self.state = 1319 - self.match(Java9Parser.DOT) - self.state = 1321 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1320 - self.typeArguments() - - - self.state = 1323 - self.match(Java9Parser.SUPER) - self.state = 1324 - self.match(Java9Parser.LPAREN) - self.state = 1326 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1325 - self.argumentList() - - - self.state = 1328 - self.match(Java9Parser.RPAREN) - self.state = 1329 - self.match(Java9Parser.SEMI) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnumDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def ENUM(self): - return self.getToken(Java9Parser.ENUM, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def enumBody(self): - return self.getTypedRuleContext(Java9Parser.EnumBodyContext,0) - - - def classModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ClassModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.ClassModifierContext,i) - - - def superinterfaces(self): - return self.getTypedRuleContext(Java9Parser.SuperinterfacesContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_enumDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumDeclaration" ): - listener.enterEnumDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumDeclaration" ): - listener.exitEnumDeclaration(self) - - - - - def enumDeclaration(self): - - localctx = Java9Parser.EnumDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 196, self.RULE_enumDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1336 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: - self.state = 1333 - self.classModifier() - self.state = 1338 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1339 - self.match(Java9Parser.ENUM) - self.state = 1340 - self.identifier() - self.state = 1342 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.IMPLEMENTS: - self.state = 1341 - self.superinterfaces() - - - self.state = 1344 - self.enumBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnumBodyContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def enumConstantList(self): - return self.getTypedRuleContext(Java9Parser.EnumConstantListContext,0) - - - def COMMA(self): - return self.getToken(Java9Parser.COMMA, 0) - - def enumBodyDeclarations(self): - return self.getTypedRuleContext(Java9Parser.EnumBodyDeclarationsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_enumBody - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumBody" ): - listener.enterEnumBody(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumBody" ): - listener.exitEnumBody(self) - - - - - def enumBody(self): - - localctx = Java9Parser.EnumBodyContext(self, self._ctx, self.state) - self.enterRule(localctx, 198, self.RULE_enumBody) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1346 - self.match(Java9Parser.LBRACE) - self.state = 1348 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: - self.state = 1347 - self.enumConstantList() - - - self.state = 1351 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.COMMA: - self.state = 1350 - self.match(Java9Parser.COMMA) - - - self.state = 1354 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.SEMI: - self.state = 1353 - self.enumBodyDeclarations() - - - self.state = 1356 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnumConstantListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def enumConstant(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.EnumConstantContext) - else: - return self.getTypedRuleContext(Java9Parser.EnumConstantContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_enumConstantList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumConstantList" ): - listener.enterEnumConstantList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumConstantList" ): - listener.exitEnumConstantList(self) - - - - - def enumConstantList(self): - - localctx = Java9Parser.EnumConstantListContext(self, self._ctx, self.state) - self.enterRule(localctx, 200, self.RULE_enumConstantList) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1358 - self.enumConstant() - self.state = 1363 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,130,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1359 - self.match(Java9Parser.COMMA) - self.state = 1360 - self.enumConstant() - self.state = 1365 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,130,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnumConstantContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def enumConstantModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.EnumConstantModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.EnumConstantModifierContext,i) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def classBody(self): - return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) - - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_enumConstant - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumConstant" ): - listener.enterEnumConstant(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumConstant" ): - listener.exitEnumConstant(self) - - - - - def enumConstant(self): - - localctx = Java9Parser.EnumConstantContext(self, self._ctx, self.state) - self.enterRule(localctx, 202, self.RULE_enumConstant) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1369 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 1366 - self.enumConstantModifier() - self.state = 1371 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1372 - self.identifier() - self.state = 1378 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LPAREN: - self.state = 1373 - self.match(Java9Parser.LPAREN) - self.state = 1375 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1374 - self.argumentList() - - - self.state = 1377 - self.match(Java9Parser.RPAREN) - - - self.state = 1381 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LBRACE: - self.state = 1380 - self.classBody() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnumConstantModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_enumConstantModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumConstantModifier" ): - listener.enterEnumConstantModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumConstantModifier" ): - listener.exitEnumConstantModifier(self) - - - - - def enumConstantModifier(self): - - localctx = Java9Parser.EnumConstantModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 204, self.RULE_enumConstantModifier) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1383 - self.annotation() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnumBodyDeclarationsContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def classBodyDeclaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ClassBodyDeclarationContext) - else: - return self.getTypedRuleContext(Java9Parser.ClassBodyDeclarationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_enumBodyDeclarations - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumBodyDeclarations" ): - listener.enterEnumBodyDeclarations(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumBodyDeclarations" ): - listener.exitEnumBodyDeclarations(self) - - - - - def enumBodyDeclarations(self): - - localctx = Java9Parser.EnumBodyDeclarationsContext(self, self._ctx, self.state) - self.enterRule(localctx, 206, self.RULE_enumBodyDeclarations) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1385 - self.match(Java9Parser.SEMI) - self.state = 1389 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NATIVE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRANSIENT) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.VOLATILE) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 70)) & ~0x3f) == 0 and ((1 << (_la - 70)) & ((1 << (Java9Parser.LBRACE - 70)) | (1 << (Java9Parser.SEMI - 70)) | (1 << (Java9Parser.AT - 70)) | (1 << (Java9Parser.LT - 70)) | (1 << (Java9Parser.Identifier - 70)))) != 0): - self.state = 1386 - self.classBodyDeclaration() - self.state = 1391 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def normalInterfaceDeclaration(self): - return self.getTypedRuleContext(Java9Parser.NormalInterfaceDeclarationContext,0) - - - def annotationTypeDeclaration(self): - return self.getTypedRuleContext(Java9Parser.AnnotationTypeDeclarationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceDeclaration" ): - listener.enterInterfaceDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceDeclaration" ): - listener.exitInterfaceDeclaration(self) - - - - - def interfaceDeclaration(self): - - localctx = Java9Parser.InterfaceDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 208, self.RULE_interfaceDeclaration) - try: - self.state = 1394 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,136,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1392 - self.normalInterfaceDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1393 - self.annotationTypeDeclaration() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class NormalInterfaceDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def INTERFACE(self): - return self.getToken(Java9Parser.INTERFACE, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def interfaceBody(self): - return self.getTypedRuleContext(Java9Parser.InterfaceBodyContext,0) - - - def interfaceModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.InterfaceModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.InterfaceModifierContext,i) - - - def typeParameters(self): - return self.getTypedRuleContext(Java9Parser.TypeParametersContext,0) - - - def extendsInterfaces(self): - return self.getTypedRuleContext(Java9Parser.ExtendsInterfacesContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_normalInterfaceDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterNormalInterfaceDeclaration" ): - listener.enterNormalInterfaceDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitNormalInterfaceDeclaration" ): - listener.exitNormalInterfaceDeclaration(self) - - - - - def normalInterfaceDeclaration(self): - - localctx = Java9Parser.NormalInterfaceDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 210, self.RULE_normalInterfaceDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1399 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: - self.state = 1396 - self.interfaceModifier() - self.state = 1401 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1402 - self.match(Java9Parser.INTERFACE) - self.state = 1403 - self.identifier() - self.state = 1405 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 1404 - self.typeParameters() - - - self.state = 1408 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.EXTENDS: - self.state = 1407 - self.extendsInterfaces() - - - self.state = 1410 - self.interfaceBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def PROTECTED(self): - return self.getToken(Java9Parser.PROTECTED, 0) - - def PRIVATE(self): - return self.getToken(Java9Parser.PRIVATE, 0) - - def ABSTRACT(self): - return self.getToken(Java9Parser.ABSTRACT, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def STRICTFP(self): - return self.getToken(Java9Parser.STRICTFP, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceModifier" ): - listener.enterInterfaceModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceModifier" ): - listener.exitInterfaceModifier(self) - - - - - def interfaceModifier(self): - - localctx = Java9Parser.InterfaceModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 212, self.RULE_interfaceModifier) - try: - self.state = 1419 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 1412 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 1413 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.PROTECTED]: - self.enterOuterAlt(localctx, 3) - self.state = 1414 - self.match(Java9Parser.PROTECTED) - pass - elif token in [Java9Parser.PRIVATE]: - self.enterOuterAlt(localctx, 4) - self.state = 1415 - self.match(Java9Parser.PRIVATE) - pass - elif token in [Java9Parser.ABSTRACT]: - self.enterOuterAlt(localctx, 5) - self.state = 1416 - self.match(Java9Parser.ABSTRACT) - pass - elif token in [Java9Parser.STATIC]: - self.enterOuterAlt(localctx, 6) - self.state = 1417 - self.match(Java9Parser.STATIC) - pass - elif token in [Java9Parser.STRICTFP]: - self.enterOuterAlt(localctx, 7) - self.state = 1418 - self.match(Java9Parser.STRICTFP) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ExtendsInterfacesContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def EXTENDS(self): - return self.getToken(Java9Parser.EXTENDS, 0) - - def interfaceTypeList(self): - return self.getTypedRuleContext(Java9Parser.InterfaceTypeListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_extendsInterfaces - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExtendsInterfaces" ): - listener.enterExtendsInterfaces(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExtendsInterfaces" ): - listener.exitExtendsInterfaces(self) - - - - - def extendsInterfaces(self): - - localctx = Java9Parser.ExtendsInterfacesContext(self, self._ctx, self.state) - self.enterRule(localctx, 214, self.RULE_extendsInterfaces) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1421 - self.match(Java9Parser.EXTENDS) - self.state = 1422 - self.interfaceTypeList() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceBodyContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def interfaceMemberDeclaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.InterfaceMemberDeclarationContext) - else: - return self.getTypedRuleContext(Java9Parser.InterfaceMemberDeclarationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceBody - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceBody" ): - listener.enterInterfaceBody(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceBody" ): - listener.exitInterfaceBody(self) - - - - - def interfaceBody(self): - - localctx = Java9Parser.InterfaceBodyContext(self, self._ctx, self.state) - self.enterRule(localctx, 216, self.RULE_interfaceBody) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1424 - self.match(Java9Parser.LBRACE) - self.state = 1428 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DEFAULT) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 74)) & ~0x3f) == 0 and ((1 << (_la - 74)) & ((1 << (Java9Parser.SEMI - 74)) | (1 << (Java9Parser.AT - 74)) | (1 << (Java9Parser.LT - 74)) | (1 << (Java9Parser.Identifier - 74)))) != 0): - self.state = 1425 - self.interfaceMemberDeclaration() - self.state = 1430 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1431 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceMemberDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def constantDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ConstantDeclarationContext,0) - - - def interfaceMethodDeclaration(self): - return self.getTypedRuleContext(Java9Parser.InterfaceMethodDeclarationContext,0) - - - def classDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) - - - def interfaceDeclaration(self): - return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceMemberDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceMemberDeclaration" ): - listener.enterInterfaceMemberDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceMemberDeclaration" ): - listener.exitInterfaceMemberDeclaration(self) - - - - - def interfaceMemberDeclaration(self): - - localctx = Java9Parser.InterfaceMemberDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 218, self.RULE_interfaceMemberDeclaration) - try: - self.state = 1438 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,142,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1433 - self.constantDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1434 - self.interfaceMethodDeclaration() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1435 - self.classDeclaration() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 1436 - self.interfaceDeclaration() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 1437 - self.match(Java9Parser.SEMI) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConstantDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def variableDeclaratorList(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorListContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def constantModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ConstantModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.ConstantModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_constantDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstantDeclaration" ): - listener.enterConstantDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstantDeclaration" ): - listener.exitConstantDeclaration(self) - - - - - def constantDeclaration(self): - - localctx = Java9Parser.ConstantDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 220, self.RULE_constantDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1443 - self._errHandler.sync(self) - _la = self._input.LA(1) - while ((((_la - 19)) & ~0x3f) == 0 and ((1 << (_la - 19)) & ((1 << (Java9Parser.FINAL - 19)) | (1 << (Java9Parser.PUBLIC - 19)) | (1 << (Java9Parser.STATIC - 19)) | (1 << (Java9Parser.AT - 19)))) != 0): - self.state = 1440 - self.constantModifier() - self.state = 1445 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1446 - self.unannType() - self.state = 1447 - self.variableDeclaratorList() - self.state = 1448 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConstantModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def FINAL(self): - return self.getToken(Java9Parser.FINAL, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_constantModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstantModifier" ): - listener.enterConstantModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstantModifier" ): - listener.exitConstantModifier(self) - - - - - def constantModifier(self): - - localctx = Java9Parser.ConstantModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 222, self.RULE_constantModifier) - try: - self.state = 1454 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 1450 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 1451 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.STATIC]: - self.enterOuterAlt(localctx, 3) - self.state = 1452 - self.match(Java9Parser.STATIC) - pass - elif token in [Java9Parser.FINAL]: - self.enterOuterAlt(localctx, 4) - self.state = 1453 - self.match(Java9Parser.FINAL) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceMethodDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def methodHeader(self): - return self.getTypedRuleContext(Java9Parser.MethodHeaderContext,0) - - - def methodBody(self): - return self.getTypedRuleContext(Java9Parser.MethodBodyContext,0) - - - def interfaceMethodModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.InterfaceMethodModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.InterfaceMethodModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceMethodDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceMethodDeclaration" ): - listener.enterInterfaceMethodDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceMethodDeclaration" ): - listener.exitInterfaceMethodDeclaration(self) - - - - - def interfaceMethodDeclaration(self): - - localctx = Java9Parser.InterfaceMethodDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 224, self.RULE_interfaceMethodDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1459 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.DEFAULT) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP))) != 0) or _la==Java9Parser.AT: - self.state = 1456 - self.interfaceMethodModifier() - self.state = 1461 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1462 - self.methodHeader() - self.state = 1463 - self.methodBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InterfaceMethodModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def PRIVATE(self): - return self.getToken(Java9Parser.PRIVATE, 0) - - def ABSTRACT(self): - return self.getToken(Java9Parser.ABSTRACT, 0) - - def DEFAULT(self): - return self.getToken(Java9Parser.DEFAULT, 0) - - def STATIC(self): - return self.getToken(Java9Parser.STATIC, 0) - - def STRICTFP(self): - return self.getToken(Java9Parser.STRICTFP, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_interfaceMethodModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInterfaceMethodModifier" ): - listener.enterInterfaceMethodModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInterfaceMethodModifier" ): - listener.exitInterfaceMethodModifier(self) - - - - - def interfaceMethodModifier(self): - - localctx = Java9Parser.InterfaceMethodModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 226, self.RULE_interfaceMethodModifier) - try: - self.state = 1472 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 1465 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 1466 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.PRIVATE]: - self.enterOuterAlt(localctx, 3) - self.state = 1467 - self.match(Java9Parser.PRIVATE) - pass - elif token in [Java9Parser.ABSTRACT]: - self.enterOuterAlt(localctx, 4) - self.state = 1468 - self.match(Java9Parser.ABSTRACT) - pass - elif token in [Java9Parser.DEFAULT]: - self.enterOuterAlt(localctx, 5) - self.state = 1469 - self.match(Java9Parser.DEFAULT) - pass - elif token in [Java9Parser.STATIC]: - self.enterOuterAlt(localctx, 6) - self.state = 1470 - self.match(Java9Parser.STATIC) - pass - elif token in [Java9Parser.STRICTFP]: - self.enterOuterAlt(localctx, 7) - self.state = 1471 - self.match(Java9Parser.STRICTFP) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AnnotationTypeDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def AT(self): - return self.getToken(Java9Parser.AT, 0) - - def INTERFACE(self): - return self.getToken(Java9Parser.INTERFACE, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def annotationTypeBody(self): - return self.getTypedRuleContext(Java9Parser.AnnotationTypeBodyContext,0) - - - def interfaceModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.InterfaceModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.InterfaceModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_annotationTypeDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAnnotationTypeDeclaration" ): - listener.enterAnnotationTypeDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAnnotationTypeDeclaration" ): - listener.exitAnnotationTypeDeclaration(self) - - - - - def annotationTypeDeclaration(self): - - localctx = Java9Parser.AnnotationTypeDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 228, self.RULE_annotationTypeDeclaration) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1477 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,147,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1474 - self.interfaceModifier() - self.state = 1479 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,147,self._ctx) - - self.state = 1480 - self.match(Java9Parser.AT) - self.state = 1481 - self.match(Java9Parser.INTERFACE) - self.state = 1482 - self.identifier() - self.state = 1483 - self.annotationTypeBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AnnotationTypeBodyContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def annotationTypeMemberDeclaration(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationTypeMemberDeclarationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationTypeMemberDeclarationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_annotationTypeBody - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAnnotationTypeBody" ): - listener.enterAnnotationTypeBody(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAnnotationTypeBody" ): - listener.exitAnnotationTypeBody(self) - - - - - def annotationTypeBody(self): - - localctx = Java9Parser.AnnotationTypeBodyContext(self, self._ctx, self.state) - self.enterRule(localctx, 230, self.RULE_annotationTypeBody) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1485 - self.match(Java9Parser.LBRACE) - self.state = 1489 - self._errHandler.sync(self) - _la = self._input.LA(1) - while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.INTERFACE) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or ((((_la - 74)) & ~0x3f) == 0 and ((1 << (_la - 74)) & ((1 << (Java9Parser.SEMI - 74)) | (1 << (Java9Parser.AT - 74)) | (1 << (Java9Parser.Identifier - 74)))) != 0): - self.state = 1486 - self.annotationTypeMemberDeclaration() - self.state = 1491 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1492 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AnnotationTypeMemberDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotationTypeElementDeclaration(self): - return self.getTypedRuleContext(Java9Parser.AnnotationTypeElementDeclarationContext,0) - - - def constantDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ConstantDeclarationContext,0) - - - def classDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) - - - def interfaceDeclaration(self): - return self.getTypedRuleContext(Java9Parser.InterfaceDeclarationContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_annotationTypeMemberDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAnnotationTypeMemberDeclaration" ): - listener.enterAnnotationTypeMemberDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAnnotationTypeMemberDeclaration" ): - listener.exitAnnotationTypeMemberDeclaration(self) - - - - - def annotationTypeMemberDeclaration(self): - - localctx = Java9Parser.AnnotationTypeMemberDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 232, self.RULE_annotationTypeMemberDeclaration) - try: - self.state = 1499 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,149,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1494 - self.annotationTypeElementDeclaration() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1495 - self.constantDeclaration() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1496 - self.classDeclaration() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 1497 - self.interfaceDeclaration() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 1498 - self.match(Java9Parser.SEMI) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AnnotationTypeElementDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def annotationTypeElementModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationTypeElementModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationTypeElementModifierContext,i) - - - def dims(self): - return self.getTypedRuleContext(Java9Parser.DimsContext,0) - - - def defaultValue(self): - return self.getTypedRuleContext(Java9Parser.DefaultValueContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_annotationTypeElementDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAnnotationTypeElementDeclaration" ): - listener.enterAnnotationTypeElementDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAnnotationTypeElementDeclaration" ): - listener.exitAnnotationTypeElementDeclaration(self) - - - - - def annotationTypeElementDeclaration(self): - - localctx = Java9Parser.AnnotationTypeElementDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 234, self.RULE_annotationTypeElementDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1504 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.ABSTRACT or _la==Java9Parser.PUBLIC or _la==Java9Parser.AT: - self.state = 1501 - self.annotationTypeElementModifier() - self.state = 1506 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1507 - self.unannType() - self.state = 1508 - self.identifier() - self.state = 1509 - self.match(Java9Parser.LPAREN) - self.state = 1510 - self.match(Java9Parser.RPAREN) - self.state = 1512 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LBRACK or _la==Java9Parser.AT: - self.state = 1511 - self.dims() - - - self.state = 1515 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.DEFAULT: - self.state = 1514 - self.defaultValue() - - - self.state = 1517 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AnnotationTypeElementModifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def PUBLIC(self): - return self.getToken(Java9Parser.PUBLIC, 0) - - def ABSTRACT(self): - return self.getToken(Java9Parser.ABSTRACT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_annotationTypeElementModifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAnnotationTypeElementModifier" ): - listener.enterAnnotationTypeElementModifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAnnotationTypeElementModifier" ): - listener.exitAnnotationTypeElementModifier(self) - - - - - def annotationTypeElementModifier(self): - - localctx = Java9Parser.AnnotationTypeElementModifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 236, self.RULE_annotationTypeElementModifier) - try: - self.state = 1522 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.AT]: - self.enterOuterAlt(localctx, 1) - self.state = 1519 - self.annotation() - pass - elif token in [Java9Parser.PUBLIC]: - self.enterOuterAlt(localctx, 2) - self.state = 1520 - self.match(Java9Parser.PUBLIC) - pass - elif token in [Java9Parser.ABSTRACT]: - self.enterOuterAlt(localctx, 3) - self.state = 1521 - self.match(Java9Parser.ABSTRACT) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class DefaultValueContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DEFAULT(self): - return self.getToken(Java9Parser.DEFAULT, 0) - - def elementValue(self): - return self.getTypedRuleContext(Java9Parser.ElementValueContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_defaultValue - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDefaultValue" ): - listener.enterDefaultValue(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDefaultValue" ): - listener.exitDefaultValue(self) - - - - - def defaultValue(self): - - localctx = Java9Parser.DefaultValueContext(self, self._ctx, self.state) - self.enterRule(localctx, 238, self.RULE_defaultValue) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1524 - self.match(Java9Parser.DEFAULT) - self.state = 1525 - self.elementValue() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AnnotationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def normalAnnotation(self): - return self.getTypedRuleContext(Java9Parser.NormalAnnotationContext,0) - - - def markerAnnotation(self): - return self.getTypedRuleContext(Java9Parser.MarkerAnnotationContext,0) - - - def singleElementAnnotation(self): - return self.getTypedRuleContext(Java9Parser.SingleElementAnnotationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_annotation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAnnotation" ): - listener.enterAnnotation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAnnotation" ): - listener.exitAnnotation(self) - - - - - def annotation(self): - - localctx = Java9Parser.AnnotationContext(self, self._ctx, self.state) - self.enterRule(localctx, 240, self.RULE_annotation) - try: - self.state = 1530 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,154,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1527 - self.normalAnnotation() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1528 - self.markerAnnotation() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1529 - self.singleElementAnnotation() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class NormalAnnotationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def AT(self): - return self.getToken(Java9Parser.AT, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def elementValuePairList(self): - return self.getTypedRuleContext(Java9Parser.ElementValuePairListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_normalAnnotation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterNormalAnnotation" ): - listener.enterNormalAnnotation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitNormalAnnotation" ): - listener.exitNormalAnnotation(self) - - - - - def normalAnnotation(self): - - localctx = Java9Parser.NormalAnnotationContext(self, self._ctx, self.state) - self.enterRule(localctx, 242, self.RULE_normalAnnotation) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1532 - self.match(Java9Parser.AT) - self.state = 1533 - self.typeName() - self.state = 1534 - self.match(Java9Parser.LPAREN) - self.state = 1536 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: - self.state = 1535 - self.elementValuePairList() - - - self.state = 1538 - self.match(Java9Parser.RPAREN) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ElementValuePairListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def elementValuePair(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ElementValuePairContext) - else: - return self.getTypedRuleContext(Java9Parser.ElementValuePairContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_elementValuePairList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterElementValuePairList" ): - listener.enterElementValuePairList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitElementValuePairList" ): - listener.exitElementValuePairList(self) - - - - - def elementValuePairList(self): - - localctx = Java9Parser.ElementValuePairListContext(self, self._ctx, self.state) - self.enterRule(localctx, 244, self.RULE_elementValuePairList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1540 - self.elementValuePair() - self.state = 1545 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 1541 - self.match(Java9Parser.COMMA) - self.state = 1542 - self.elementValuePair() - self.state = 1547 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ElementValuePairContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def ASSIGN(self): - return self.getToken(Java9Parser.ASSIGN, 0) - - def elementValue(self): - return self.getTypedRuleContext(Java9Parser.ElementValueContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_elementValuePair - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterElementValuePair" ): - listener.enterElementValuePair(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitElementValuePair" ): - listener.exitElementValuePair(self) - - - - - def elementValuePair(self): - - localctx = Java9Parser.ElementValuePairContext(self, self._ctx, self.state) - self.enterRule(localctx, 246, self.RULE_elementValuePair) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1548 - self.identifier() - self.state = 1549 - self.match(Java9Parser.ASSIGN) - self.state = 1550 - self.elementValue() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ElementValueContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def conditionalExpression(self): - return self.getTypedRuleContext(Java9Parser.ConditionalExpressionContext,0) - - - def elementValueArrayInitializer(self): - return self.getTypedRuleContext(Java9Parser.ElementValueArrayInitializerContext,0) - - - def annotation(self): - return self.getTypedRuleContext(Java9Parser.AnnotationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_elementValue - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterElementValue" ): - listener.enterElementValue(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitElementValue" ): - listener.exitElementValue(self) - - - - - def elementValue(self): - - localctx = Java9Parser.ElementValueContext(self, self._ctx, self.state) - self.enterRule(localctx, 248, self.RULE_elementValue) - try: - self.state = 1555 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,157,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1552 - self.conditionalExpression() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1553 - self.elementValueArrayInitializer() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1554 - self.annotation() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ElementValueArrayInitializerContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def elementValueList(self): - return self.getTypedRuleContext(Java9Parser.ElementValueListContext,0) - - - def COMMA(self): - return self.getToken(Java9Parser.COMMA, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_elementValueArrayInitializer - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterElementValueArrayInitializer" ): - listener.enterElementValueArrayInitializer(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitElementValueArrayInitializer" ): - listener.exitElementValueArrayInitializer(self) - - - - - def elementValueArrayInitializer(self): - - localctx = Java9Parser.ElementValueArrayInitializerContext(self, self._ctx, self.state) - self.enterRule(localctx, 250, self.RULE_elementValueArrayInitializer) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1557 - self.match(Java9Parser.LBRACE) - self.state = 1559 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1558 - self.elementValueList() - - - self.state = 1562 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.COMMA: - self.state = 1561 - self.match(Java9Parser.COMMA) - - - self.state = 1564 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ElementValueListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def elementValue(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ElementValueContext) - else: - return self.getTypedRuleContext(Java9Parser.ElementValueContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_elementValueList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterElementValueList" ): - listener.enterElementValueList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitElementValueList" ): - listener.exitElementValueList(self) - - - - - def elementValueList(self): - - localctx = Java9Parser.ElementValueListContext(self, self._ctx, self.state) - self.enterRule(localctx, 252, self.RULE_elementValueList) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1566 - self.elementValue() - self.state = 1571 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,160,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1567 - self.match(Java9Parser.COMMA) - self.state = 1568 - self.elementValue() - self.state = 1573 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,160,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MarkerAnnotationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def AT(self): - return self.getToken(Java9Parser.AT, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_markerAnnotation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMarkerAnnotation" ): - listener.enterMarkerAnnotation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMarkerAnnotation" ): - listener.exitMarkerAnnotation(self) - - - - - def markerAnnotation(self): - - localctx = Java9Parser.MarkerAnnotationContext(self, self._ctx, self.state) - self.enterRule(localctx, 254, self.RULE_markerAnnotation) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1574 - self.match(Java9Parser.AT) - self.state = 1575 - self.typeName() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SingleElementAnnotationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def AT(self): - return self.getToken(Java9Parser.AT, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def elementValue(self): - return self.getTypedRuleContext(Java9Parser.ElementValueContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_singleElementAnnotation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSingleElementAnnotation" ): - listener.enterSingleElementAnnotation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSingleElementAnnotation" ): - listener.exitSingleElementAnnotation(self) - - - - - def singleElementAnnotation(self): - - localctx = Java9Parser.SingleElementAnnotationContext(self, self._ctx, self.state) - self.enterRule(localctx, 256, self.RULE_singleElementAnnotation) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1577 - self.match(Java9Parser.AT) - self.state = 1578 - self.typeName() - self.state = 1579 - self.match(Java9Parser.LPAREN) - self.state = 1580 - self.elementValue() - self.state = 1581 - self.match(Java9Parser.RPAREN) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ArrayInitializerContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def variableInitializerList(self): - return self.getTypedRuleContext(Java9Parser.VariableInitializerListContext,0) - - - def COMMA(self): - return self.getToken(Java9Parser.COMMA, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_arrayInitializer - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArrayInitializer" ): - listener.enterArrayInitializer(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArrayInitializer" ): - listener.exitArrayInitializer(self) - - - - - def arrayInitializer(self): - - localctx = Java9Parser.ArrayInitializerContext(self, self._ctx, self.state) - self.enterRule(localctx, 258, self.RULE_arrayInitializer) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1583 - self.match(Java9Parser.LBRACE) - self.state = 1585 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1584 - self.variableInitializerList() - - - self.state = 1588 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.COMMA: - self.state = 1587 - self.match(Java9Parser.COMMA) - - - self.state = 1590 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class VariableInitializerListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def variableInitializer(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableInitializerContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableInitializerContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_variableInitializerList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVariableInitializerList" ): - listener.enterVariableInitializerList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVariableInitializerList" ): - listener.exitVariableInitializerList(self) - - - - - def variableInitializerList(self): - - localctx = Java9Parser.VariableInitializerListContext(self, self._ctx, self.state) - self.enterRule(localctx, 260, self.RULE_variableInitializerList) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1592 - self.variableInitializer() - self.state = 1597 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,163,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1593 - self.match(Java9Parser.COMMA) - self.state = 1594 - self.variableInitializer() - self.state = 1599 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,163,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class BlockContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def blockStatements(self): - return self.getTypedRuleContext(Java9Parser.BlockStatementsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_block - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterBlock" ): - listener.enterBlock(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitBlock" ): - listener.exitBlock(self) - - - - - def block(self): - - localctx = Java9Parser.BlockContext(self, self._ctx, self.state) - self.enterRule(localctx, 262, self.RULE_block) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1600 - self.match(Java9Parser.LBRACE) - self.state = 1602 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.ASSERT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BREAK) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.CONTINUE) | (1 << Java9Parser.DO) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.FOR) | (1 << Java9Parser.IF) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.RETURN) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.SWITCH) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.THIS) | (1 << Java9Parser.THROW) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRY) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WHILE) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.SEMI - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1601 - self.blockStatements() - - - self.state = 1604 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class BlockStatementsContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def blockStatement(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.BlockStatementContext) - else: - return self.getTypedRuleContext(Java9Parser.BlockStatementContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_blockStatements - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterBlockStatements" ): - listener.enterBlockStatements(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitBlockStatements" ): - listener.exitBlockStatements(self) - - - - - def blockStatements(self): - - localctx = Java9Parser.BlockStatementsContext(self, self._ctx, self.state) - self.enterRule(localctx, 264, self.RULE_blockStatements) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1607 - self._errHandler.sync(self) - _la = self._input.LA(1) - while True: - self.state = 1606 - self.blockStatement() - self.state = 1609 - self._errHandler.sync(self) - _la = self._input.LA(1) - if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.ABSTRACT) | (1 << Java9Parser.ASSERT) | (1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BREAK) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.CLASS) | (1 << Java9Parser.CONTINUE) | (1 << Java9Parser.DO) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.ENUM) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.FOR) | (1 << Java9Parser.IF) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PRIVATE) | (1 << Java9Parser.PROTECTED) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.PUBLIC) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.RETURN) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.STATIC) | (1 << Java9Parser.STRICTFP) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.SWITCH) | (1 << Java9Parser.SYNCHRONIZED) | (1 << Java9Parser.THIS) | (1 << Java9Parser.THROW) | (1 << Java9Parser.TO) | (1 << Java9Parser.TRY) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WHILE) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.LBRACE - 64)) | (1 << (Java9Parser.SEMI - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0)): - break - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class BlockStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def localVariableDeclarationStatement(self): - return self.getTypedRuleContext(Java9Parser.LocalVariableDeclarationStatementContext,0) - - - def classDeclaration(self): - return self.getTypedRuleContext(Java9Parser.ClassDeclarationContext,0) - - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_blockStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterBlockStatement" ): - listener.enterBlockStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitBlockStatement" ): - listener.exitBlockStatement(self) - - - - - def blockStatement(self): - - localctx = Java9Parser.BlockStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 266, self.RULE_blockStatement) - try: - self.state = 1614 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,166,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1611 - self.localVariableDeclarationStatement() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1612 - self.classDeclaration() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1613 - self.statement() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LocalVariableDeclarationStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def localVariableDeclaration(self): - return self.getTypedRuleContext(Java9Parser.LocalVariableDeclarationContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_localVariableDeclarationStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLocalVariableDeclarationStatement" ): - listener.enterLocalVariableDeclarationStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLocalVariableDeclarationStatement" ): - listener.exitLocalVariableDeclarationStatement(self) - - - - - def localVariableDeclarationStatement(self): - - localctx = Java9Parser.LocalVariableDeclarationStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 268, self.RULE_localVariableDeclarationStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1616 - self.localVariableDeclaration() - self.state = 1617 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LocalVariableDeclarationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def variableDeclaratorList(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorListContext,0) - - - def variableModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_localVariableDeclaration - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLocalVariableDeclaration" ): - listener.enterLocalVariableDeclaration(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLocalVariableDeclaration" ): - listener.exitLocalVariableDeclaration(self) - - - - - def localVariableDeclaration(self): - - localctx = Java9Parser.LocalVariableDeclarationContext(self, self._ctx, self.state) - self.enterRule(localctx, 270, self.RULE_localVariableDeclaration) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1622 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.FINAL or _la==Java9Parser.AT: - self.state = 1619 - self.variableModifier() - self.state = 1624 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1625 - self.unannType() - self.state = 1626 - self.variableDeclaratorList() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class StatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def statementWithoutTrailingSubstatement(self): - return self.getTypedRuleContext(Java9Parser.StatementWithoutTrailingSubstatementContext,0) - - - def labeledStatement(self): - return self.getTypedRuleContext(Java9Parser.LabeledStatementContext,0) - - - def ifThenStatement(self): - return self.getTypedRuleContext(Java9Parser.IfThenStatementContext,0) - - - def ifThenElseStatement(self): - return self.getTypedRuleContext(Java9Parser.IfThenElseStatementContext,0) - - - def whileStatement(self): - return self.getTypedRuleContext(Java9Parser.WhileStatementContext,0) - - - def forStatement(self): - return self.getTypedRuleContext(Java9Parser.ForStatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_statement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStatement" ): - listener.enterStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStatement" ): - listener.exitStatement(self) - - - - - def statement(self): - - localctx = Java9Parser.StatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 272, self.RULE_statement) - try: - self.state = 1634 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,168,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1628 - self.statementWithoutTrailingSubstatement() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1629 - self.labeledStatement() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1630 - self.ifThenStatement() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 1631 - self.ifThenElseStatement() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 1632 - self.whileStatement() - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 1633 - self.forStatement() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class StatementNoShortIfContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def statementWithoutTrailingSubstatement(self): - return self.getTypedRuleContext(Java9Parser.StatementWithoutTrailingSubstatementContext,0) - - - def labeledStatementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.LabeledStatementNoShortIfContext,0) - - - def ifThenElseStatementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.IfThenElseStatementNoShortIfContext,0) - - - def whileStatementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.WhileStatementNoShortIfContext,0) - - - def forStatementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.ForStatementNoShortIfContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_statementNoShortIf - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStatementNoShortIf" ): - listener.enterStatementNoShortIf(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStatementNoShortIf" ): - listener.exitStatementNoShortIf(self) - - - - - def statementNoShortIf(self): - - localctx = Java9Parser.StatementNoShortIfContext(self, self._ctx, self.state) - self.enterRule(localctx, 274, self.RULE_statementNoShortIf) - try: - self.state = 1641 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,169,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1636 - self.statementWithoutTrailingSubstatement() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1637 - self.labeledStatementNoShortIf() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1638 - self.ifThenElseStatementNoShortIf() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 1639 - self.whileStatementNoShortIf() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 1640 - self.forStatementNoShortIf() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class StatementWithoutTrailingSubstatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def emptyStatement(self): - return self.getTypedRuleContext(Java9Parser.EmptyStatementContext,0) - - - def expressionStatement(self): - return self.getTypedRuleContext(Java9Parser.ExpressionStatementContext,0) - - - def assertStatement(self): - return self.getTypedRuleContext(Java9Parser.AssertStatementContext,0) - - - def switchStatement(self): - return self.getTypedRuleContext(Java9Parser.SwitchStatementContext,0) - - - def doStatement(self): - return self.getTypedRuleContext(Java9Parser.DoStatementContext,0) - - - def breakStatement(self): - return self.getTypedRuleContext(Java9Parser.BreakStatementContext,0) - - - def continueStatement(self): - return self.getTypedRuleContext(Java9Parser.ContinueStatementContext,0) - - - def returnStatement(self): - return self.getTypedRuleContext(Java9Parser.ReturnStatementContext,0) - - - def synchronizedStatement(self): - return self.getTypedRuleContext(Java9Parser.SynchronizedStatementContext,0) - - - def throwStatement(self): - return self.getTypedRuleContext(Java9Parser.ThrowStatementContext,0) - - - def tryStatement(self): - return self.getTypedRuleContext(Java9Parser.TryStatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_statementWithoutTrailingSubstatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStatementWithoutTrailingSubstatement" ): - listener.enterStatementWithoutTrailingSubstatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStatementWithoutTrailingSubstatement" ): - listener.exitStatementWithoutTrailingSubstatement(self) - - - - - def statementWithoutTrailingSubstatement(self): - - localctx = Java9Parser.StatementWithoutTrailingSubstatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 276, self.RULE_statementWithoutTrailingSubstatement) - try: - self.state = 1655 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.LBRACE]: - self.enterOuterAlt(localctx, 1) - self.state = 1643 - self.block() - pass - elif token in [Java9Parser.SEMI]: - self.enterOuterAlt(localctx, 2) - self.state = 1644 - self.emptyStatement() - pass - elif token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.INC, Java9Parser.DEC, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 3) - self.state = 1645 - self.expressionStatement() - pass - elif token in [Java9Parser.ASSERT]: - self.enterOuterAlt(localctx, 4) - self.state = 1646 - self.assertStatement() - pass - elif token in [Java9Parser.SWITCH]: - self.enterOuterAlt(localctx, 5) - self.state = 1647 - self.switchStatement() - pass - elif token in [Java9Parser.DO]: - self.enterOuterAlt(localctx, 6) - self.state = 1648 - self.doStatement() - pass - elif token in [Java9Parser.BREAK]: - self.enterOuterAlt(localctx, 7) - self.state = 1649 - self.breakStatement() - pass - elif token in [Java9Parser.CONTINUE]: - self.enterOuterAlt(localctx, 8) - self.state = 1650 - self.continueStatement() - pass - elif token in [Java9Parser.RETURN]: - self.enterOuterAlt(localctx, 9) - self.state = 1651 - self.returnStatement() - pass - elif token in [Java9Parser.SYNCHRONIZED]: - self.enterOuterAlt(localctx, 10) - self.state = 1652 - self.synchronizedStatement() - pass - elif token in [Java9Parser.THROW]: - self.enterOuterAlt(localctx, 11) - self.state = 1653 - self.throwStatement() - pass - elif token in [Java9Parser.TRY]: - self.enterOuterAlt(localctx, 12) - self.state = 1654 - self.tryStatement() - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EmptyStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_emptyStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEmptyStatement" ): - listener.enterEmptyStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEmptyStatement" ): - listener.exitEmptyStatement(self) - - - - - def emptyStatement(self): - - localctx = Java9Parser.EmptyStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 278, self.RULE_emptyStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1657 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LabeledStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def COLON(self): - return self.getToken(Java9Parser.COLON, 0) - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_labeledStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLabeledStatement" ): - listener.enterLabeledStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLabeledStatement" ): - listener.exitLabeledStatement(self) - - - - - def labeledStatement(self): - - localctx = Java9Parser.LabeledStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 280, self.RULE_labeledStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1659 - self.identifier() - self.state = 1660 - self.match(Java9Parser.COLON) - self.state = 1661 - self.statement() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LabeledStatementNoShortIfContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def COLON(self): - return self.getToken(Java9Parser.COLON, 0) - - def statementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_labeledStatementNoShortIf - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLabeledStatementNoShortIf" ): - listener.enterLabeledStatementNoShortIf(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLabeledStatementNoShortIf" ): - listener.exitLabeledStatementNoShortIf(self) - - - - - def labeledStatementNoShortIf(self): - - localctx = Java9Parser.LabeledStatementNoShortIfContext(self, self._ctx, self.state) - self.enterRule(localctx, 282, self.RULE_labeledStatementNoShortIf) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1663 - self.identifier() - self.state = 1664 - self.match(Java9Parser.COLON) - self.state = 1665 - self.statementNoShortIf() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ExpressionStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def statementExpression(self): - return self.getTypedRuleContext(Java9Parser.StatementExpressionContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_expressionStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExpressionStatement" ): - listener.enterExpressionStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExpressionStatement" ): - listener.exitExpressionStatement(self) - - - - - def expressionStatement(self): - - localctx = Java9Parser.ExpressionStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 284, self.RULE_expressionStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1667 - self.statementExpression() - self.state = 1668 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class StatementExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def assignment(self): - return self.getTypedRuleContext(Java9Parser.AssignmentContext,0) - - - def preIncrementExpression(self): - return self.getTypedRuleContext(Java9Parser.PreIncrementExpressionContext,0) - - - def preDecrementExpression(self): - return self.getTypedRuleContext(Java9Parser.PreDecrementExpressionContext,0) - - - def postIncrementExpression(self): - return self.getTypedRuleContext(Java9Parser.PostIncrementExpressionContext,0) - - - def postDecrementExpression(self): - return self.getTypedRuleContext(Java9Parser.PostDecrementExpressionContext,0) - - - def methodInvocation(self): - return self.getTypedRuleContext(Java9Parser.MethodInvocationContext,0) - - - def classInstanceCreationExpression(self): - return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_statementExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStatementExpression" ): - listener.enterStatementExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStatementExpression" ): - listener.exitStatementExpression(self) - - - - - def statementExpression(self): - - localctx = Java9Parser.StatementExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 286, self.RULE_statementExpression) - try: - self.state = 1677 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,171,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1670 - self.assignment() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1671 - self.preIncrementExpression() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1672 - self.preDecrementExpression() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 1673 - self.postIncrementExpression() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 1674 - self.postDecrementExpression() - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 1675 - self.methodInvocation() - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 1676 - self.classInstanceCreationExpression() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class IfThenStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IF(self): - return self.getToken(Java9Parser.IF, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_ifThenStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIfThenStatement" ): - listener.enterIfThenStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIfThenStatement" ): - listener.exitIfThenStatement(self) - - - - - def ifThenStatement(self): - - localctx = Java9Parser.IfThenStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 288, self.RULE_ifThenStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1679 - self.match(Java9Parser.IF) - self.state = 1680 - self.match(Java9Parser.LPAREN) - self.state = 1681 - self.expression() - self.state = 1682 - self.match(Java9Parser.RPAREN) - self.state = 1683 - self.statement() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class IfThenElseStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IF(self): - return self.getToken(Java9Parser.IF, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) - - - def ELSE(self): - return self.getToken(Java9Parser.ELSE, 0) - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_ifThenElseStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIfThenElseStatement" ): - listener.enterIfThenElseStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIfThenElseStatement" ): - listener.exitIfThenElseStatement(self) - - - - - def ifThenElseStatement(self): - - localctx = Java9Parser.IfThenElseStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 290, self.RULE_ifThenElseStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1685 - self.match(Java9Parser.IF) - self.state = 1686 - self.match(Java9Parser.LPAREN) - self.state = 1687 - self.expression() - self.state = 1688 - self.match(Java9Parser.RPAREN) - self.state = 1689 - self.statementNoShortIf() - self.state = 1690 - self.match(Java9Parser.ELSE) - self.state = 1691 - self.statement() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class IfThenElseStatementNoShortIfContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def IF(self): - return self.getToken(Java9Parser.IF, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statementNoShortIf(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.StatementNoShortIfContext) - else: - return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,i) - - - def ELSE(self): - return self.getToken(Java9Parser.ELSE, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_ifThenElseStatementNoShortIf - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIfThenElseStatementNoShortIf" ): - listener.enterIfThenElseStatementNoShortIf(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIfThenElseStatementNoShortIf" ): - listener.exitIfThenElseStatementNoShortIf(self) - - - - - def ifThenElseStatementNoShortIf(self): - - localctx = Java9Parser.IfThenElseStatementNoShortIfContext(self, self._ctx, self.state) - self.enterRule(localctx, 292, self.RULE_ifThenElseStatementNoShortIf) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1693 - self.match(Java9Parser.IF) - self.state = 1694 - self.match(Java9Parser.LPAREN) - self.state = 1695 - self.expression() - self.state = 1696 - self.match(Java9Parser.RPAREN) - self.state = 1697 - self.statementNoShortIf() - self.state = 1698 - self.match(Java9Parser.ELSE) - self.state = 1699 - self.statementNoShortIf() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AssertStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def ASSERT(self): - return self.getToken(Java9Parser.ASSERT, 0) - - def expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def COLON(self): - return self.getToken(Java9Parser.COLON, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_assertStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAssertStatement" ): - listener.enterAssertStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAssertStatement" ): - listener.exitAssertStatement(self) - - - - - def assertStatement(self): - - localctx = Java9Parser.AssertStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 294, self.RULE_assertStatement) - try: - self.state = 1711 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,172,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1701 - self.match(Java9Parser.ASSERT) - self.state = 1702 - self.expression() - self.state = 1703 - self.match(Java9Parser.SEMI) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1705 - self.match(Java9Parser.ASSERT) - self.state = 1706 - self.expression() - self.state = 1707 - self.match(Java9Parser.COLON) - self.state = 1708 - self.expression() - self.state = 1709 - self.match(Java9Parser.SEMI) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SwitchStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def SWITCH(self): - return self.getToken(Java9Parser.SWITCH, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def switchBlock(self): - return self.getTypedRuleContext(Java9Parser.SwitchBlockContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_switchStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSwitchStatement" ): - listener.enterSwitchStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSwitchStatement" ): - listener.exitSwitchStatement(self) - - - - - def switchStatement(self): - - localctx = Java9Parser.SwitchStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 296, self.RULE_switchStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1713 - self.match(Java9Parser.SWITCH) - self.state = 1714 - self.match(Java9Parser.LPAREN) - self.state = 1715 - self.expression() - self.state = 1716 - self.match(Java9Parser.RPAREN) - self.state = 1717 - self.switchBlock() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SwitchBlockContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACE(self): - return self.getToken(Java9Parser.LBRACE, 0) - - def RBRACE(self): - return self.getToken(Java9Parser.RBRACE, 0) - - def switchBlockStatementGroup(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.SwitchBlockStatementGroupContext) - else: - return self.getTypedRuleContext(Java9Parser.SwitchBlockStatementGroupContext,i) - - - def switchLabel(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.SwitchLabelContext) - else: - return self.getTypedRuleContext(Java9Parser.SwitchLabelContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_switchBlock - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSwitchBlock" ): - listener.enterSwitchBlock(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSwitchBlock" ): - listener.exitSwitchBlock(self) - - - - - def switchBlock(self): - - localctx = Java9Parser.SwitchBlockContext(self, self._ctx, self.state) - self.enterRule(localctx, 298, self.RULE_switchBlock) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1719 - self.match(Java9Parser.LBRACE) - self.state = 1723 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,173,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1720 - self.switchBlockStatementGroup() - self.state = 1725 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,173,self._ctx) - - self.state = 1729 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.CASE or _la==Java9Parser.DEFAULT: - self.state = 1726 - self.switchLabel() - self.state = 1731 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1732 - self.match(Java9Parser.RBRACE) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SwitchBlockStatementGroupContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def switchLabels(self): - return self.getTypedRuleContext(Java9Parser.SwitchLabelsContext,0) - - - def blockStatements(self): - return self.getTypedRuleContext(Java9Parser.BlockStatementsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_switchBlockStatementGroup - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSwitchBlockStatementGroup" ): - listener.enterSwitchBlockStatementGroup(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSwitchBlockStatementGroup" ): - listener.exitSwitchBlockStatementGroup(self) - - - - - def switchBlockStatementGroup(self): - - localctx = Java9Parser.SwitchBlockStatementGroupContext(self, self._ctx, self.state) - self.enterRule(localctx, 300, self.RULE_switchBlockStatementGroup) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1734 - self.switchLabels() - self.state = 1735 - self.blockStatements() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SwitchLabelsContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def switchLabel(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.SwitchLabelContext) - else: - return self.getTypedRuleContext(Java9Parser.SwitchLabelContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_switchLabels - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSwitchLabels" ): - listener.enterSwitchLabels(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSwitchLabels" ): - listener.exitSwitchLabels(self) - - - - - def switchLabels(self): - - localctx = Java9Parser.SwitchLabelsContext(self, self._ctx, self.state) - self.enterRule(localctx, 302, self.RULE_switchLabels) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1738 - self._errHandler.sync(self) - _la = self._input.LA(1) - while True: - self.state = 1737 - self.switchLabel() - self.state = 1740 - self._errHandler.sync(self) - _la = self._input.LA(1) - if not (_la==Java9Parser.CASE or _la==Java9Parser.DEFAULT): - break - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SwitchLabelContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def CASE(self): - return self.getToken(Java9Parser.CASE, 0) - - def constantExpression(self): - return self.getTypedRuleContext(Java9Parser.ConstantExpressionContext,0) - - - def COLON(self): - return self.getToken(Java9Parser.COLON, 0) - - def enumConstantName(self): - return self.getTypedRuleContext(Java9Parser.EnumConstantNameContext,0) - - - def DEFAULT(self): - return self.getToken(Java9Parser.DEFAULT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_switchLabel - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSwitchLabel" ): - listener.enterSwitchLabel(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSwitchLabel" ): - listener.exitSwitchLabel(self) - - - - - def switchLabel(self): - - localctx = Java9Parser.SwitchLabelContext(self, self._ctx, self.state) - self.enterRule(localctx, 304, self.RULE_switchLabel) - try: - self.state = 1752 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,176,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1742 - self.match(Java9Parser.CASE) - self.state = 1743 - self.constantExpression() - self.state = 1744 - self.match(Java9Parser.COLON) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1746 - self.match(Java9Parser.CASE) - self.state = 1747 - self.enumConstantName() - self.state = 1748 - self.match(Java9Parser.COLON) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1750 - self.match(Java9Parser.DEFAULT) - self.state = 1751 - self.match(Java9Parser.COLON) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnumConstantNameContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_enumConstantName - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnumConstantName" ): - listener.enterEnumConstantName(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnumConstantName" ): - listener.exitEnumConstantName(self) - - - - - def enumConstantName(self): - - localctx = Java9Parser.EnumConstantNameContext(self, self._ctx, self.state) - self.enterRule(localctx, 306, self.RULE_enumConstantName) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1754 - self.identifier() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class WhileStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def WHILE(self): - return self.getToken(Java9Parser.WHILE, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_whileStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterWhileStatement" ): - listener.enterWhileStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitWhileStatement" ): - listener.exitWhileStatement(self) - - - - - def whileStatement(self): - - localctx = Java9Parser.WhileStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 308, self.RULE_whileStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1756 - self.match(Java9Parser.WHILE) - self.state = 1757 - self.match(Java9Parser.LPAREN) - self.state = 1758 - self.expression() - self.state = 1759 - self.match(Java9Parser.RPAREN) - self.state = 1760 - self.statement() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class WhileStatementNoShortIfContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def WHILE(self): - return self.getToken(Java9Parser.WHILE, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_whileStatementNoShortIf - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterWhileStatementNoShortIf" ): - listener.enterWhileStatementNoShortIf(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitWhileStatementNoShortIf" ): - listener.exitWhileStatementNoShortIf(self) - - - - - def whileStatementNoShortIf(self): - - localctx = Java9Parser.WhileStatementNoShortIfContext(self, self._ctx, self.state) - self.enterRule(localctx, 310, self.RULE_whileStatementNoShortIf) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1762 - self.match(Java9Parser.WHILE) - self.state = 1763 - self.match(Java9Parser.LPAREN) - self.state = 1764 - self.expression() - self.state = 1765 - self.match(Java9Parser.RPAREN) - self.state = 1766 - self.statementNoShortIf() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class DoStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DO(self): - return self.getToken(Java9Parser.DO, 0) - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def WHILE(self): - return self.getToken(Java9Parser.WHILE, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_doStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDoStatement" ): - listener.enterDoStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDoStatement" ): - listener.exitDoStatement(self) - - - - - def doStatement(self): - - localctx = Java9Parser.DoStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 312, self.RULE_doStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1768 - self.match(Java9Parser.DO) - self.state = 1769 - self.statement() - self.state = 1770 - self.match(Java9Parser.WHILE) - self.state = 1771 - self.match(Java9Parser.LPAREN) - self.state = 1772 - self.expression() - self.state = 1773 - self.match(Java9Parser.RPAREN) - self.state = 1774 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ForStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def basicForStatement(self): - return self.getTypedRuleContext(Java9Parser.BasicForStatementContext,0) - - - def enhancedForStatement(self): - return self.getTypedRuleContext(Java9Parser.EnhancedForStatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_forStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterForStatement" ): - listener.enterForStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitForStatement" ): - listener.exitForStatement(self) - - - - - def forStatement(self): - - localctx = Java9Parser.ForStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 314, self.RULE_forStatement) - try: - self.state = 1778 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,177,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1776 - self.basicForStatement() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1777 - self.enhancedForStatement() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ForStatementNoShortIfContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def basicForStatementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.BasicForStatementNoShortIfContext,0) - - - def enhancedForStatementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.EnhancedForStatementNoShortIfContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_forStatementNoShortIf - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterForStatementNoShortIf" ): - listener.enterForStatementNoShortIf(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitForStatementNoShortIf" ): - listener.exitForStatementNoShortIf(self) - - - - - def forStatementNoShortIf(self): - - localctx = Java9Parser.ForStatementNoShortIfContext(self, self._ctx, self.state) - self.enterRule(localctx, 316, self.RULE_forStatementNoShortIf) - try: - self.state = 1782 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,178,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1780 - self.basicForStatementNoShortIf() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1781 - self.enhancedForStatementNoShortIf() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class BasicForStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def FOR(self): - return self.getToken(Java9Parser.FOR, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def SEMI(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.SEMI) - else: - return self.getToken(Java9Parser.SEMI, i) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def forInit(self): - return self.getTypedRuleContext(Java9Parser.ForInitContext,0) - - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def forUpdate(self): - return self.getTypedRuleContext(Java9Parser.ForUpdateContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_basicForStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterBasicForStatement" ): - listener.enterBasicForStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitBasicForStatement" ): - listener.exitBasicForStatement(self) - - - - - def basicForStatement(self): - - localctx = Java9Parser.BasicForStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 318, self.RULE_basicForStatement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1784 - self.match(Java9Parser.FOR) - self.state = 1785 - self.match(Java9Parser.LPAREN) - self.state = 1787 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1786 - self.forInit() - - - self.state = 1789 - self.match(Java9Parser.SEMI) - self.state = 1791 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1790 - self.expression() - - - self.state = 1793 - self.match(Java9Parser.SEMI) - self.state = 1795 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1794 - self.forUpdate() - - - self.state = 1797 - self.match(Java9Parser.RPAREN) - self.state = 1798 - self.statement() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class BasicForStatementNoShortIfContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def FOR(self): - return self.getToken(Java9Parser.FOR, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def SEMI(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.SEMI) - else: - return self.getToken(Java9Parser.SEMI, i) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) - - - def forInit(self): - return self.getTypedRuleContext(Java9Parser.ForInitContext,0) - - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def forUpdate(self): - return self.getTypedRuleContext(Java9Parser.ForUpdateContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_basicForStatementNoShortIf - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterBasicForStatementNoShortIf" ): - listener.enterBasicForStatementNoShortIf(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitBasicForStatementNoShortIf" ): - listener.exitBasicForStatementNoShortIf(self) - - - - - def basicForStatementNoShortIf(self): - - localctx = Java9Parser.BasicForStatementNoShortIfContext(self, self._ctx, self.state) - self.enterRule(localctx, 320, self.RULE_basicForStatementNoShortIf) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1800 - self.match(Java9Parser.FOR) - self.state = 1801 - self.match(Java9Parser.LPAREN) - self.state = 1803 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1802 - self.forInit() - - - self.state = 1805 - self.match(Java9Parser.SEMI) - self.state = 1807 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1806 - self.expression() - - - self.state = 1809 - self.match(Java9Parser.SEMI) - self.state = 1811 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1810 - self.forUpdate() - - - self.state = 1813 - self.match(Java9Parser.RPAREN) - self.state = 1814 - self.statementNoShortIf() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ForInitContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def statementExpressionList(self): - return self.getTypedRuleContext(Java9Parser.StatementExpressionListContext,0) - - - def localVariableDeclaration(self): - return self.getTypedRuleContext(Java9Parser.LocalVariableDeclarationContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_forInit - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterForInit" ): - listener.enterForInit(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitForInit" ): - listener.exitForInit(self) - - - - - def forInit(self): - - localctx = Java9Parser.ForInitContext(self, self._ctx, self.state) - self.enterRule(localctx, 322, self.RULE_forInit) - try: - self.state = 1818 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,185,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1816 - self.statementExpressionList() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1817 - self.localVariableDeclaration() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ForUpdateContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def statementExpressionList(self): - return self.getTypedRuleContext(Java9Parser.StatementExpressionListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_forUpdate - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterForUpdate" ): - listener.enterForUpdate(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitForUpdate" ): - listener.exitForUpdate(self) - - - - - def forUpdate(self): - - localctx = Java9Parser.ForUpdateContext(self, self._ctx, self.state) - self.enterRule(localctx, 324, self.RULE_forUpdate) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1820 - self.statementExpressionList() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class StatementExpressionListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def statementExpression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.StatementExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.StatementExpressionContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_statementExpressionList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterStatementExpressionList" ): - listener.enterStatementExpressionList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitStatementExpressionList" ): - listener.exitStatementExpressionList(self) - - - - - def statementExpressionList(self): - - localctx = Java9Parser.StatementExpressionListContext(self, self._ctx, self.state) - self.enterRule(localctx, 326, self.RULE_statementExpressionList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1822 - self.statementExpression() - self.state = 1827 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 1823 - self.match(Java9Parser.COMMA) - self.state = 1824 - self.statementExpression() - self.state = 1829 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnhancedForStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def FOR(self): - return self.getToken(Java9Parser.FOR, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def variableDeclaratorId(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) - - - def COLON(self): - return self.getToken(Java9Parser.COLON, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statement(self): - return self.getTypedRuleContext(Java9Parser.StatementContext,0) - - - def variableModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_enhancedForStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnhancedForStatement" ): - listener.enterEnhancedForStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnhancedForStatement" ): - listener.exitEnhancedForStatement(self) - - - - - def enhancedForStatement(self): - - localctx = Java9Parser.EnhancedForStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 328, self.RULE_enhancedForStatement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1830 - self.match(Java9Parser.FOR) - self.state = 1831 - self.match(Java9Parser.LPAREN) - self.state = 1835 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.FINAL or _la==Java9Parser.AT: - self.state = 1832 - self.variableModifier() - self.state = 1837 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1838 - self.unannType() - self.state = 1839 - self.variableDeclaratorId() - self.state = 1840 - self.match(Java9Parser.COLON) - self.state = 1841 - self.expression() - self.state = 1842 - self.match(Java9Parser.RPAREN) - self.state = 1843 - self.statement() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class EnhancedForStatementNoShortIfContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def FOR(self): - return self.getToken(Java9Parser.FOR, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def variableDeclaratorId(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) - - - def COLON(self): - return self.getToken(Java9Parser.COLON, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def statementNoShortIf(self): - return self.getTypedRuleContext(Java9Parser.StatementNoShortIfContext,0) - - - def variableModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_enhancedForStatementNoShortIf - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEnhancedForStatementNoShortIf" ): - listener.enterEnhancedForStatementNoShortIf(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEnhancedForStatementNoShortIf" ): - listener.exitEnhancedForStatementNoShortIf(self) - - - - - def enhancedForStatementNoShortIf(self): - - localctx = Java9Parser.EnhancedForStatementNoShortIfContext(self, self._ctx, self.state) - self.enterRule(localctx, 330, self.RULE_enhancedForStatementNoShortIf) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1845 - self.match(Java9Parser.FOR) - self.state = 1846 - self.match(Java9Parser.LPAREN) - self.state = 1850 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.FINAL or _la==Java9Parser.AT: - self.state = 1847 - self.variableModifier() - self.state = 1852 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1853 - self.unannType() - self.state = 1854 - self.variableDeclaratorId() - self.state = 1855 - self.match(Java9Parser.COLON) - self.state = 1856 - self.expression() - self.state = 1857 - self.match(Java9Parser.RPAREN) - self.state = 1858 - self.statementNoShortIf() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class BreakStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def BREAK(self): - return self.getToken(Java9Parser.BREAK, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_breakStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterBreakStatement" ): - listener.enterBreakStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitBreakStatement" ): - listener.exitBreakStatement(self) - - - - - def breakStatement(self): - - localctx = Java9Parser.BreakStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 332, self.RULE_breakStatement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1860 - self.match(Java9Parser.BREAK) - self.state = 1862 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: - self.state = 1861 - self.identifier() - - - self.state = 1864 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ContinueStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def CONTINUE(self): - return self.getToken(Java9Parser.CONTINUE, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_continueStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterContinueStatement" ): - listener.enterContinueStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitContinueStatement" ): - listener.exitContinueStatement(self) - - - - - def continueStatement(self): - - localctx = Java9Parser.ContinueStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 334, self.RULE_continueStatement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1866 - self.match(Java9Parser.CONTINUE) - self.state = 1868 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier: - self.state = 1867 - self.identifier() - - - self.state = 1870 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ReturnStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def RETURN(self): - return self.getToken(Java9Parser.RETURN, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_returnStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterReturnStatement" ): - listener.enterReturnStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitReturnStatement" ): - listener.exitReturnStatement(self) - - - - - def returnStatement(self): - - localctx = Java9Parser.ReturnStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 336, self.RULE_returnStatement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1872 - self.match(Java9Parser.RETURN) - self.state = 1874 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 1873 - self.expression() - - - self.state = 1876 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ThrowStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def THROW(self): - return self.getToken(Java9Parser.THROW, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_throwStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterThrowStatement" ): - listener.enterThrowStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitThrowStatement" ): - listener.exitThrowStatement(self) - - - - - def throwStatement(self): - - localctx = Java9Parser.ThrowStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 338, self.RULE_throwStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1878 - self.match(Java9Parser.THROW) - self.state = 1879 - self.expression() - self.state = 1880 - self.match(Java9Parser.SEMI) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class SynchronizedStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def SYNCHRONIZED(self): - return self.getToken(Java9Parser.SYNCHRONIZED, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_synchronizedStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterSynchronizedStatement" ): - listener.enterSynchronizedStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitSynchronizedStatement" ): - listener.exitSynchronizedStatement(self) - - - - - def synchronizedStatement(self): - - localctx = Java9Parser.SynchronizedStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 340, self.RULE_synchronizedStatement) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1882 - self.match(Java9Parser.SYNCHRONIZED) - self.state = 1883 - self.match(Java9Parser.LPAREN) - self.state = 1884 - self.expression() - self.state = 1885 - self.match(Java9Parser.RPAREN) - self.state = 1886 - self.block() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TryStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def TRY(self): - return self.getToken(Java9Parser.TRY, 0) - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def catches(self): - return self.getTypedRuleContext(Java9Parser.CatchesContext,0) - - - def finally_(self): - return self.getTypedRuleContext(Java9Parser.Finally_Context,0) - - - def tryWithResourcesStatement(self): - return self.getTypedRuleContext(Java9Parser.TryWithResourcesStatementContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_tryStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTryStatement" ): - listener.enterTryStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTryStatement" ): - listener.exitTryStatement(self) - - - - - def tryStatement(self): - - localctx = Java9Parser.TryStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 342, self.RULE_tryStatement) - self._la = 0 # Token type - try: - self.state = 1900 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,193,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1888 - self.match(Java9Parser.TRY) - self.state = 1889 - self.block() - self.state = 1890 - self.catches() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1892 - self.match(Java9Parser.TRY) - self.state = 1893 - self.block() - self.state = 1895 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.CATCH: - self.state = 1894 - self.catches() - - - self.state = 1897 - self.finally_() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1899 - self.tryWithResourcesStatement() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class CatchesContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def catchClause(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.CatchClauseContext) - else: - return self.getTypedRuleContext(Java9Parser.CatchClauseContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_catches - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCatches" ): - listener.enterCatches(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCatches" ): - listener.exitCatches(self) - - - - - def catches(self): - - localctx = Java9Parser.CatchesContext(self, self._ctx, self.state) - self.enterRule(localctx, 344, self.RULE_catches) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1903 - self._errHandler.sync(self) - _la = self._input.LA(1) - while True: - self.state = 1902 - self.catchClause() - self.state = 1905 - self._errHandler.sync(self) - _la = self._input.LA(1) - if not (_la==Java9Parser.CATCH): - break - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class CatchClauseContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def CATCH(self): - return self.getToken(Java9Parser.CATCH, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def catchFormalParameter(self): - return self.getTypedRuleContext(Java9Parser.CatchFormalParameterContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_catchClause - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCatchClause" ): - listener.enterCatchClause(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCatchClause" ): - listener.exitCatchClause(self) - - - - - def catchClause(self): - - localctx = Java9Parser.CatchClauseContext(self, self._ctx, self.state) - self.enterRule(localctx, 346, self.RULE_catchClause) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1907 - self.match(Java9Parser.CATCH) - self.state = 1908 - self.match(Java9Parser.LPAREN) - self.state = 1909 - self.catchFormalParameter() - self.state = 1910 - self.match(Java9Parser.RPAREN) - self.state = 1911 - self.block() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class CatchFormalParameterContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def catchType(self): - return self.getTypedRuleContext(Java9Parser.CatchTypeContext,0) - - - def variableDeclaratorId(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) - - - def variableModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_catchFormalParameter - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCatchFormalParameter" ): - listener.enterCatchFormalParameter(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCatchFormalParameter" ): - listener.exitCatchFormalParameter(self) - - - - - def catchFormalParameter(self): - - localctx = Java9Parser.CatchFormalParameterContext(self, self._ctx, self.state) - self.enterRule(localctx, 348, self.RULE_catchFormalParameter) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1916 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.FINAL or _la==Java9Parser.AT: - self.state = 1913 - self.variableModifier() - self.state = 1918 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1919 - self.catchType() - self.state = 1920 - self.variableDeclaratorId() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class CatchTypeContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannClassType(self): - return self.getTypedRuleContext(Java9Parser.UnannClassTypeContext,0) - - - def BITOR(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.BITOR) - else: - return self.getToken(Java9Parser.BITOR, i) - - def classType(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ClassTypeContext) - else: - return self.getTypedRuleContext(Java9Parser.ClassTypeContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_catchType - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCatchType" ): - listener.enterCatchType(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCatchType" ): - listener.exitCatchType(self) - - - - - def catchType(self): - - localctx = Java9Parser.CatchTypeContext(self, self._ctx, self.state) - self.enterRule(localctx, 350, self.RULE_catchType) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1922 - self.unannClassType() - self.state = 1927 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.BITOR: - self.state = 1923 - self.match(Java9Parser.BITOR) - self.state = 1924 - self.classType() - self.state = 1929 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class Finally_Context(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def FINALLY(self): - return self.getToken(Java9Parser.FINALLY, 0) - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_finally_ - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFinally_" ): - listener.enterFinally_(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFinally_" ): - listener.exitFinally_(self) - - - - - def finally_(self): - - localctx = Java9Parser.Finally_Context(self, self._ctx, self.state) - self.enterRule(localctx, 352, self.RULE_finally_) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1930 - self.match(Java9Parser.FINALLY) - self.state = 1931 - self.block() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TryWithResourcesStatementContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def TRY(self): - return self.getToken(Java9Parser.TRY, 0) - - def resourceSpecification(self): - return self.getTypedRuleContext(Java9Parser.ResourceSpecificationContext,0) - - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def catches(self): - return self.getTypedRuleContext(Java9Parser.CatchesContext,0) - - - def finally_(self): - return self.getTypedRuleContext(Java9Parser.Finally_Context,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_tryWithResourcesStatement - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTryWithResourcesStatement" ): - listener.enterTryWithResourcesStatement(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTryWithResourcesStatement" ): - listener.exitTryWithResourcesStatement(self) - - - - - def tryWithResourcesStatement(self): - - localctx = Java9Parser.TryWithResourcesStatementContext(self, self._ctx, self.state) - self.enterRule(localctx, 354, self.RULE_tryWithResourcesStatement) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1933 - self.match(Java9Parser.TRY) - self.state = 1934 - self.resourceSpecification() - self.state = 1935 - self.block() - self.state = 1937 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.CATCH: - self.state = 1936 - self.catches() - - - self.state = 1940 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.FINALLY: - self.state = 1939 - self.finally_() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ResourceSpecificationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def resourceList(self): - return self.getTypedRuleContext(Java9Parser.ResourceListContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def SEMI(self): - return self.getToken(Java9Parser.SEMI, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_resourceSpecification - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterResourceSpecification" ): - listener.enterResourceSpecification(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitResourceSpecification" ): - listener.exitResourceSpecification(self) - - - - - def resourceSpecification(self): - - localctx = Java9Parser.ResourceSpecificationContext(self, self._ctx, self.state) - self.enterRule(localctx, 356, self.RULE_resourceSpecification) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 1942 - self.match(Java9Parser.LPAREN) - self.state = 1943 - self.resourceList() - self.state = 1945 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.SEMI: - self.state = 1944 - self.match(Java9Parser.SEMI) - - - self.state = 1947 - self.match(Java9Parser.RPAREN) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ResourceListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def resource(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ResourceContext) - else: - return self.getTypedRuleContext(Java9Parser.ResourceContext,i) - - - def SEMI(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.SEMI) - else: - return self.getToken(Java9Parser.SEMI, i) - - def getRuleIndex(self): - return Java9Parser.RULE_resourceList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterResourceList" ): - listener.enterResourceList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitResourceList" ): - listener.exitResourceList(self) - - - - - def resourceList(self): - - localctx = Java9Parser.ResourceListContext(self, self._ctx, self.state) - self.enterRule(localctx, 358, self.RULE_resourceList) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1949 - self.resource() - self.state = 1954 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,200,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1950 - self.match(Java9Parser.SEMI) - self.state = 1951 - self.resource() - self.state = 1956 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,200,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ResourceContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unannType(self): - return self.getTypedRuleContext(Java9Parser.UnannTypeContext,0) - - - def variableDeclaratorId(self): - return self.getTypedRuleContext(Java9Parser.VariableDeclaratorIdContext,0) - - - def ASSIGN(self): - return self.getToken(Java9Parser.ASSIGN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def variableModifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.VariableModifierContext) - else: - return self.getTypedRuleContext(Java9Parser.VariableModifierContext,i) - - - def variableAccess(self): - return self.getTypedRuleContext(Java9Parser.VariableAccessContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_resource - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterResource" ): - listener.enterResource(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitResource" ): - listener.exitResource(self) - - - - - def resource(self): - - localctx = Java9Parser.ResourceContext(self, self._ctx, self.state) - self.enterRule(localctx, 360, self.RULE_resource) - self._la = 0 # Token type - try: - self.state = 1969 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,202,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1960 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.FINAL or _la==Java9Parser.AT: - self.state = 1957 - self.variableModifier() - self.state = 1962 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 1963 - self.unannType() - self.state = 1964 - self.variableDeclaratorId() - self.state = 1965 - self.match(Java9Parser.ASSIGN) - self.state = 1966 - self.expression() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1968 - self.variableAccess() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class VariableAccessContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def fieldAccess(self): - return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_variableAccess - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVariableAccess" ): - listener.enterVariableAccess(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVariableAccess" ): - listener.exitVariableAccess(self) - - - - - def variableAccess(self): - - localctx = Java9Parser.VariableAccessContext(self, self._ctx, self.state) - self.enterRule(localctx, 362, self.RULE_variableAccess) - try: - self.state = 1973 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,203,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1971 - self.expressionName() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1972 - self.fieldAccess() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def primaryNoNewArray_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_primaryContext,0) - - - def arrayCreationExpression(self): - return self.getTypedRuleContext(Java9Parser.ArrayCreationExpressionContext,0) - - - def primaryNoNewArray_lf_primary(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lf_primaryContext) - else: - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_primaryContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimary" ): - listener.enterPrimary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimary" ): - listener.exitPrimary(self) - - - - - def primary(self): - - localctx = Java9Parser.PrimaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 364, self.RULE_primary) - try: - self.enterOuterAlt(localctx, 1) - self.state = 1977 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,204,self._ctx) - if la_ == 1: - self.state = 1975 - self.primaryNoNewArray_lfno_primary() - pass - - elif la_ == 2: - self.state = 1976 - self.arrayCreationExpression() - pass - - - self.state = 1982 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,205,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 1979 - self.primaryNoNewArray_lf_primary() - self.state = 1984 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,205,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArrayContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def literal(self): - return self.getTypedRuleContext(Java9Parser.LiteralContext,0) - - - def classLiteral(self): - return self.getTypedRuleContext(Java9Parser.ClassLiteralContext,0) - - - def THIS(self): - return self.getToken(Java9Parser.THIS, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def classInstanceCreationExpression(self): - return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpressionContext,0) - - - def fieldAccess(self): - return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) - - - def arrayAccess(self): - return self.getTypedRuleContext(Java9Parser.ArrayAccessContext,0) - - - def methodInvocation(self): - return self.getTypedRuleContext(Java9Parser.MethodInvocationContext,0) - - - def methodReference(self): - return self.getTypedRuleContext(Java9Parser.MethodReferenceContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray" ): - listener.enterPrimaryNoNewArray(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray" ): - listener.exitPrimaryNoNewArray(self) - - - - - def primaryNoNewArray(self): - - localctx = Java9Parser.PrimaryNoNewArrayContext(self, self._ctx, self.state) - self.enterRule(localctx, 366, self.RULE_primaryNoNewArray) - try: - self.state = 2001 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,206,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 1985 - self.literal() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 1986 - self.classLiteral() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 1987 - self.match(Java9Parser.THIS) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 1988 - self.typeName() - self.state = 1989 - self.match(Java9Parser.DOT) - self.state = 1990 - self.match(Java9Parser.THIS) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 1992 - self.match(Java9Parser.LPAREN) - self.state = 1993 - self.expression() - self.state = 1994 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 1996 - self.classInstanceCreationExpression() - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 1997 - self.fieldAccess() - pass - - elif la_ == 8: - self.enterOuterAlt(localctx, 8) - self.state = 1998 - self.arrayAccess() - pass - - elif la_ == 9: - self.enterOuterAlt(localctx, 9) - self.state = 1999 - self.methodInvocation() - pass - - elif la_ == 10: - self.enterOuterAlt(localctx, 10) - self.state = 2000 - self.methodReference() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lf_arrayAccessContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lf_arrayAccess - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lf_arrayAccess" ): - listener.enterPrimaryNoNewArray_lf_arrayAccess(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lf_arrayAccess" ): - listener.exitPrimaryNoNewArray_lf_arrayAccess(self) - - - - - def primaryNoNewArray_lf_arrayAccess(self): - - localctx = Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext(self, self._ctx, self.state) - self.enterRule(localctx, 368, self.RULE_primaryNoNewArray_lf_arrayAccess) - try: - self.enterOuterAlt(localctx, 1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lfno_arrayAccessContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def literal(self): - return self.getTypedRuleContext(Java9Parser.LiteralContext,0) - - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def CLASS(self): - return self.getToken(Java9Parser.CLASS, 0) - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def VOID(self): - return self.getToken(Java9Parser.VOID, 0) - - def THIS(self): - return self.getToken(Java9Parser.THIS, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def classInstanceCreationExpression(self): - return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpressionContext,0) - - - def fieldAccess(self): - return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) - - - def methodInvocation(self): - return self.getTypedRuleContext(Java9Parser.MethodInvocationContext,0) - - - def methodReference(self): - return self.getTypedRuleContext(Java9Parser.MethodReferenceContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lfno_arrayAccess - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lfno_arrayAccess" ): - listener.enterPrimaryNoNewArray_lfno_arrayAccess(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lfno_arrayAccess" ): - listener.exitPrimaryNoNewArray_lfno_arrayAccess(self) - - - - - def primaryNoNewArray_lfno_arrayAccess(self): - - localctx = Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext(self, self._ctx, self.state) - self.enterRule(localctx, 370, self.RULE_primaryNoNewArray_lfno_arrayAccess) - self._la = 0 # Token type - try: - self.state = 2033 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,208,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2005 - self.literal() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2006 - self.typeName() - self.state = 2011 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.LBRACK: - self.state = 2007 - self.match(Java9Parser.LBRACK) - self.state = 2008 - self.match(Java9Parser.RBRACK) - self.state = 2013 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2014 - self.match(Java9Parser.DOT) - self.state = 2015 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2017 - self.match(Java9Parser.VOID) - self.state = 2018 - self.match(Java9Parser.DOT) - self.state = 2019 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2020 - self.match(Java9Parser.THIS) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2021 - self.typeName() - self.state = 2022 - self.match(Java9Parser.DOT) - self.state = 2023 - self.match(Java9Parser.THIS) - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 2025 - self.match(Java9Parser.LPAREN) - self.state = 2026 - self.expression() - self.state = 2027 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 2029 - self.classInstanceCreationExpression() - pass - - elif la_ == 8: - self.enterOuterAlt(localctx, 8) - self.state = 2030 - self.fieldAccess() - pass - - elif la_ == 9: - self.enterOuterAlt(localctx, 9) - self.state = 2031 - self.methodInvocation() - pass - - elif la_ == 10: - self.enterOuterAlt(localctx, 10) - self.state = 2032 - self.methodReference() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classInstanceCreationExpression_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lf_primaryContext,0) - - - def fieldAccess_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.FieldAccess_lf_primaryContext,0) - - - def arrayAccess_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.ArrayAccess_lf_primaryContext,0) - - - def methodInvocation_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodInvocation_lf_primaryContext,0) - - - def methodReference_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodReference_lf_primaryContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lf_primary" ): - listener.enterPrimaryNoNewArray_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lf_primary" ): - listener.exitPrimaryNoNewArray_lf_primary(self) - - - - - def primaryNoNewArray_lf_primary(self): - - localctx = Java9Parser.PrimaryNoNewArray_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 372, self.RULE_primaryNoNewArray_lf_primary) - try: - self.state = 2040 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,209,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2035 - self.classInstanceCreationExpression_lf_primary() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2036 - self.fieldAccess_lf_primary() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2037 - self.arrayAccess_lf_primary() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2038 - self.methodInvocation_lf_primary() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2039 - self.methodReference_lf_primary() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary" ): - listener.enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary" ): - listener.exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self) - - - - - def primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self): - - localctx = Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 374, self.RULE_primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary) - try: - self.enterOuterAlt(localctx, 1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def classInstanceCreationExpression_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lf_primaryContext,0) - - - def fieldAccess_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.FieldAccess_lf_primaryContext,0) - - - def methodInvocation_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodInvocation_lf_primaryContext,0) - - - def methodReference_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodReference_lf_primaryContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary" ): - listener.enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary" ): - listener.exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self) - - - - - def primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self): - - localctx = Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 376, self.RULE_primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary) - try: - self.state = 2048 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,210,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2044 - self.classInstanceCreationExpression_lf_primary() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2045 - self.fieldAccess_lf_primary() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2046 - self.methodInvocation_lf_primary() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2047 - self.methodReference_lf_primary() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def literal(self): - return self.getTypedRuleContext(Java9Parser.LiteralContext,0) - - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def CLASS(self): - return self.getToken(Java9Parser.CLASS, 0) - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def unannPrimitiveType(self): - return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) - - - def VOID(self): - return self.getToken(Java9Parser.VOID, 0) - - def THIS(self): - return self.getToken(Java9Parser.THIS, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def classInstanceCreationExpression_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext,0) - - - def fieldAccess_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.FieldAccess_lfno_primaryContext,0) - - - def arrayAccess_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.ArrayAccess_lfno_primaryContext,0) - - - def methodInvocation_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodInvocation_lfno_primaryContext,0) - - - def methodReference_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodReference_lfno_primaryContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lfno_primary" ): - listener.enterPrimaryNoNewArray_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lfno_primary" ): - listener.exitPrimaryNoNewArray_lfno_primary(self) - - - - - def primaryNoNewArray_lfno_primary(self): - - localctx = Java9Parser.PrimaryNoNewArray_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 378, self.RULE_primaryNoNewArray_lfno_primary) - self._la = 0 # Token type - try: - self.state = 2090 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,213,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2050 - self.literal() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2051 - self.typeName() - self.state = 2056 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.LBRACK: - self.state = 2052 - self.match(Java9Parser.LBRACK) - self.state = 2053 - self.match(Java9Parser.RBRACK) - self.state = 2058 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2059 - self.match(Java9Parser.DOT) - self.state = 2060 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2062 - self.unannPrimitiveType() - self.state = 2067 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.LBRACK: - self.state = 2063 - self.match(Java9Parser.LBRACK) - self.state = 2064 - self.match(Java9Parser.RBRACK) - self.state = 2069 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2070 - self.match(Java9Parser.DOT) - self.state = 2071 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2073 - self.match(Java9Parser.VOID) - self.state = 2074 - self.match(Java9Parser.DOT) - self.state = 2075 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2076 - self.match(Java9Parser.THIS) - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 2077 - self.typeName() - self.state = 2078 - self.match(Java9Parser.DOT) - self.state = 2079 - self.match(Java9Parser.THIS) - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 2081 - self.match(Java9Parser.LPAREN) - self.state = 2082 - self.expression() - self.state = 2083 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 8: - self.enterOuterAlt(localctx, 8) - self.state = 2085 - self.classInstanceCreationExpression_lfno_primary() - pass - - elif la_ == 9: - self.enterOuterAlt(localctx, 9) - self.state = 2086 - self.fieldAccess_lfno_primary() - pass - - elif la_ == 10: - self.enterOuterAlt(localctx, 10) - self.state = 2087 - self.arrayAccess_lfno_primary() - pass - - elif la_ == 11: - self.enterOuterAlt(localctx, 11) - self.state = 2088 - self.methodInvocation_lfno_primary() - pass - - elif la_ == 12: - self.enterOuterAlt(localctx, 12) - self.state = 2089 - self.methodReference_lfno_primary() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary" ): - listener.enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary" ): - listener.exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self) - - - - - def primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self): - - localctx = Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 380, self.RULE_primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary) - try: - self.enterOuterAlt(localctx, 1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def literal(self): - return self.getTypedRuleContext(Java9Parser.LiteralContext,0) - - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def CLASS(self): - return self.getToken(Java9Parser.CLASS, 0) - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def unannPrimitiveType(self): - return self.getTypedRuleContext(Java9Parser.UnannPrimitiveTypeContext,0) - - - def VOID(self): - return self.getToken(Java9Parser.VOID, 0) - - def THIS(self): - return self.getToken(Java9Parser.THIS, 0) - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def classInstanceCreationExpression_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext,0) - - - def fieldAccess_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.FieldAccess_lfno_primaryContext,0) - - - def methodInvocation_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodInvocation_lfno_primaryContext,0) - - - def methodReference_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.MethodReference_lfno_primaryContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary" ): - listener.enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary" ): - listener.exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self) - - - - - def primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self): - - localctx = Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 382, self.RULE_primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary) - self._la = 0 # Token type - try: - self.state = 2133 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,216,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2094 - self.literal() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2095 - self.typeName() - self.state = 2100 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.LBRACK: - self.state = 2096 - self.match(Java9Parser.LBRACK) - self.state = 2097 - self.match(Java9Parser.RBRACK) - self.state = 2102 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2103 - self.match(Java9Parser.DOT) - self.state = 2104 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2106 - self.unannPrimitiveType() - self.state = 2111 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.LBRACK: - self.state = 2107 - self.match(Java9Parser.LBRACK) - self.state = 2108 - self.match(Java9Parser.RBRACK) - self.state = 2113 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2114 - self.match(Java9Parser.DOT) - self.state = 2115 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2117 - self.match(Java9Parser.VOID) - self.state = 2118 - self.match(Java9Parser.DOT) - self.state = 2119 - self.match(Java9Parser.CLASS) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2120 - self.match(Java9Parser.THIS) - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 2121 - self.typeName() - self.state = 2122 - self.match(Java9Parser.DOT) - self.state = 2123 - self.match(Java9Parser.THIS) - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 2125 - self.match(Java9Parser.LPAREN) - self.state = 2126 - self.expression() - self.state = 2127 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 8: - self.enterOuterAlt(localctx, 8) - self.state = 2129 - self.classInstanceCreationExpression_lfno_primary() - pass - - elif la_ == 9: - self.enterOuterAlt(localctx, 9) - self.state = 2130 - self.fieldAccess_lfno_primary() - pass - - elif la_ == 10: - self.enterOuterAlt(localctx, 10) - self.state = 2131 - self.methodInvocation_lfno_primary() - pass - - elif la_ == 11: - self.enterOuterAlt(localctx, 11) - self.state = 2132 - self.methodReference_lfno_primary() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassLiteralContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def CLASS(self): - return self.getToken(Java9Parser.CLASS, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def numericType(self): - return self.getTypedRuleContext(Java9Parser.NumericTypeContext,0) - - - def BOOLEAN(self): - return self.getToken(Java9Parser.BOOLEAN, 0) - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def VOID(self): - return self.getToken(Java9Parser.VOID, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_classLiteral - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassLiteral" ): - listener.enterClassLiteral(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassLiteral" ): - listener.exitClassLiteral(self) - - - - - def classLiteral(self): - - localctx = Java9Parser.ClassLiteralContext(self, self._ctx, self.state) - self.enterRule(localctx, 384, self.RULE_classLiteral) - self._la = 0 # Token type - try: - self.state = 2152 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 1) - self.state = 2138 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.EXPORTS, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: - self.state = 2135 - self.typeName() - pass - elif token in [Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.SHORT]: - self.state = 2136 - self.numericType() - pass - elif token in [Java9Parser.BOOLEAN]: - self.state = 2137 - self.match(Java9Parser.BOOLEAN) - pass - else: - raise NoViableAltException(self) - - self.state = 2144 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.LBRACK: - self.state = 2140 - self.match(Java9Parser.LBRACK) - self.state = 2141 - self.match(Java9Parser.RBRACK) - self.state = 2146 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2147 - self.match(Java9Parser.DOT) - self.state = 2148 - self.match(Java9Parser.CLASS) - pass - elif token in [Java9Parser.VOID]: - self.enterOuterAlt(localctx, 2) - self.state = 2149 - self.match(Java9Parser.VOID) - self.state = 2150 - self.match(Java9Parser.DOT) - self.state = 2151 - self.match(Java9Parser.CLASS) - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassInstanceCreationExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def NEW(self): - return self.getToken(Java9Parser.NEW, 0) - - def identifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.IdentifierContext) - else: - return self.getTypedRuleContext(Java9Parser.IdentifierContext,i) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def DOT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.DOT) - else: - return self.getToken(Java9Parser.DOT, i) - - def typeArgumentsOrDiamond(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsOrDiamondContext,0) - - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def classBody(self): - return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) - - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_classInstanceCreationExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassInstanceCreationExpression" ): - listener.enterClassInstanceCreationExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassInstanceCreationExpression" ): - listener.exitClassInstanceCreationExpression(self) - - - - - def classInstanceCreationExpression(self): - - localctx = Java9Parser.ClassInstanceCreationExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 386, self.RULE_classInstanceCreationExpression) - self._la = 0 # Token type - try: - self.state = 2237 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,237,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2154 - self.match(Java9Parser.NEW) - self.state = 2156 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2155 - self.typeArguments() - - - self.state = 2161 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2158 - self.annotation() - self.state = 2163 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2164 - self.identifier() - self.state = 2175 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.DOT: - self.state = 2165 - self.match(Java9Parser.DOT) - self.state = 2169 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2166 - self.annotation() - self.state = 2171 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2172 - self.identifier() - self.state = 2177 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2179 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2178 - self.typeArgumentsOrDiamond() - - - self.state = 2181 - self.match(Java9Parser.LPAREN) - self.state = 2183 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2182 - self.argumentList() - - - self.state = 2185 - self.match(Java9Parser.RPAREN) - self.state = 2187 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LBRACE: - self.state = 2186 - self.classBody() - - - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2189 - self.expressionName() - self.state = 2190 - self.match(Java9Parser.DOT) - self.state = 2191 - self.match(Java9Parser.NEW) - self.state = 2193 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2192 - self.typeArguments() - - - self.state = 2198 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2195 - self.annotation() - self.state = 2200 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2201 - self.identifier() - self.state = 2203 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2202 - self.typeArgumentsOrDiamond() - - - self.state = 2205 - self.match(Java9Parser.LPAREN) - self.state = 2207 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2206 - self.argumentList() - - - self.state = 2209 - self.match(Java9Parser.RPAREN) - self.state = 2211 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LBRACE: - self.state = 2210 - self.classBody() - - - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2213 - self.primary() - self.state = 2214 - self.match(Java9Parser.DOT) - self.state = 2215 - self.match(Java9Parser.NEW) - self.state = 2217 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2216 - self.typeArguments() - - - self.state = 2222 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2219 - self.annotation() - self.state = 2224 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2225 - self.identifier() - self.state = 2227 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2226 - self.typeArgumentsOrDiamond() - - - self.state = 2229 - self.match(Java9Parser.LPAREN) - self.state = 2231 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2230 - self.argumentList() - - - self.state = 2233 - self.match(Java9Parser.RPAREN) - self.state = 2235 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LBRACE: - self.state = 2234 - self.classBody() - - - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassInstanceCreationExpression_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def NEW(self): - return self.getToken(Java9Parser.NEW, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def typeArgumentsOrDiamond(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsOrDiamondContext,0) - - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def classBody(self): - return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_classInstanceCreationExpression_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassInstanceCreationExpression_lf_primary" ): - listener.enterClassInstanceCreationExpression_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassInstanceCreationExpression_lf_primary" ): - listener.exitClassInstanceCreationExpression_lf_primary(self) - - - - - def classInstanceCreationExpression_lf_primary(self): - - localctx = Java9Parser.ClassInstanceCreationExpression_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 388, self.RULE_classInstanceCreationExpression_lf_primary) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2239 - self.match(Java9Parser.DOT) - self.state = 2240 - self.match(Java9Parser.NEW) - self.state = 2242 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2241 - self.typeArguments() - - - self.state = 2247 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2244 - self.annotation() - self.state = 2249 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2250 - self.identifier() - self.state = 2252 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2251 - self.typeArgumentsOrDiamond() - - - self.state = 2254 - self.match(Java9Parser.LPAREN) - self.state = 2256 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2255 - self.argumentList() - - - self.state = 2258 - self.match(Java9Parser.RPAREN) - self.state = 2260 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,242,self._ctx) - if la_ == 1: - self.state = 2259 - self.classBody() - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ClassInstanceCreationExpression_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def NEW(self): - return self.getToken(Java9Parser.NEW, 0) - - def identifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.IdentifierContext) - else: - return self.getTypedRuleContext(Java9Parser.IdentifierContext,i) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def DOT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.DOT) - else: - return self.getToken(Java9Parser.DOT, i) - - def typeArgumentsOrDiamond(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsOrDiamondContext,0) - - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def classBody(self): - return self.getTypedRuleContext(Java9Parser.ClassBodyContext,0) - - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_classInstanceCreationExpression_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterClassInstanceCreationExpression_lfno_primary" ): - listener.enterClassInstanceCreationExpression_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitClassInstanceCreationExpression_lfno_primary" ): - listener.exitClassInstanceCreationExpression_lfno_primary(self) - - - - - def classInstanceCreationExpression_lfno_primary(self): - - localctx = Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 390, self.RULE_classInstanceCreationExpression_lfno_primary) - self._la = 0 # Token type - try: - self.state = 2321 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.NEW]: - self.enterOuterAlt(localctx, 1) - self.state = 2262 - self.match(Java9Parser.NEW) - self.state = 2264 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2263 - self.typeArguments() - - - self.state = 2269 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2266 - self.annotation() - self.state = 2271 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2272 - self.identifier() - self.state = 2283 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.DOT: - self.state = 2273 - self.match(Java9Parser.DOT) - self.state = 2277 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2274 - self.annotation() - self.state = 2279 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2280 - self.identifier() - self.state = 2285 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2287 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2286 - self.typeArgumentsOrDiamond() - - - self.state = 2289 - self.match(Java9Parser.LPAREN) - self.state = 2291 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2290 - self.argumentList() - - - self.state = 2293 - self.match(Java9Parser.RPAREN) - self.state = 2295 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,249,self._ctx) - if la_ == 1: - self.state = 2294 - self.classBody() - - - pass - elif token in [Java9Parser.EXPORTS, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 2) - self.state = 2297 - self.expressionName() - self.state = 2298 - self.match(Java9Parser.DOT) - self.state = 2299 - self.match(Java9Parser.NEW) - self.state = 2301 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2300 - self.typeArguments() - - - self.state = 2306 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2303 - self.annotation() - self.state = 2308 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2309 - self.identifier() - self.state = 2311 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2310 - self.typeArgumentsOrDiamond() - - - self.state = 2313 - self.match(Java9Parser.LPAREN) - self.state = 2315 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2314 - self.argumentList() - - - self.state = 2317 - self.match(Java9Parser.RPAREN) - self.state = 2319 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,254,self._ctx) - if la_ == 1: - self.state = 2318 - self.classBody() - - - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class TypeArgumentsOrDiamondContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def LT(self): - return self.getToken(Java9Parser.LT, 0) - - def GT(self): - return self.getToken(Java9Parser.GT, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_typeArgumentsOrDiamond - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterTypeArgumentsOrDiamond" ): - listener.enterTypeArgumentsOrDiamond(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitTypeArgumentsOrDiamond" ): - listener.exitTypeArgumentsOrDiamond(self) - - - - - def typeArgumentsOrDiamond(self): - - localctx = Java9Parser.TypeArgumentsOrDiamondContext(self, self._ctx, self.state) - self.enterRule(localctx, 392, self.RULE_typeArgumentsOrDiamond) - try: - self.state = 2326 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,256,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2323 - self.typeArguments() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2324 - self.match(Java9Parser.LT) - self.state = 2325 - self.match(Java9Parser.GT) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FieldAccessContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) - - - def DOT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.DOT) - else: - return self.getToken(Java9Parser.DOT, i) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_fieldAccess - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFieldAccess" ): - listener.enterFieldAccess(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFieldAccess" ): - listener.exitFieldAccess(self) - - - - - def fieldAccess(self): - - localctx = Java9Parser.FieldAccessContext(self, self._ctx, self.state) - self.enterRule(localctx, 394, self.RULE_fieldAccess) - try: - self.state = 2341 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,257,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2328 - self.primary() - self.state = 2329 - self.match(Java9Parser.DOT) - self.state = 2330 - self.identifier() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2332 - self.match(Java9Parser.SUPER) - self.state = 2333 - self.match(Java9Parser.DOT) - self.state = 2334 - self.identifier() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2335 - self.typeName() - self.state = 2336 - self.match(Java9Parser.DOT) - self.state = 2337 - self.match(Java9Parser.SUPER) - self.state = 2338 - self.match(Java9Parser.DOT) - self.state = 2339 - self.identifier() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FieldAccess_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_fieldAccess_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFieldAccess_lf_primary" ): - listener.enterFieldAccess_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFieldAccess_lf_primary" ): - listener.exitFieldAccess_lf_primary(self) - - - - - def fieldAccess_lf_primary(self): - - localctx = Java9Parser.FieldAccess_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 396, self.RULE_fieldAccess_lf_primary) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2343 - self.match(Java9Parser.DOT) - self.state = 2344 - self.identifier() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class FieldAccess_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def DOT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.DOT) - else: - return self.getToken(Java9Parser.DOT, i) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_fieldAccess_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFieldAccess_lfno_primary" ): - listener.enterFieldAccess_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFieldAccess_lfno_primary" ): - listener.exitFieldAccess_lfno_primary(self) - - - - - def fieldAccess_lfno_primary(self): - - localctx = Java9Parser.FieldAccess_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 398, self.RULE_fieldAccess_lfno_primary) - try: - self.state = 2355 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.SUPER]: - self.enterOuterAlt(localctx, 1) - self.state = 2346 - self.match(Java9Parser.SUPER) - self.state = 2347 - self.match(Java9Parser.DOT) - self.state = 2348 - self.identifier() - pass - elif token in [Java9Parser.EXPORTS, Java9Parser.MODULE, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.TO, Java9Parser.USES, Java9Parser.WITH, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 2) - self.state = 2349 - self.typeName() - self.state = 2350 - self.match(Java9Parser.DOT) - self.state = 2351 - self.match(Java9Parser.SUPER) - self.state = 2352 - self.match(Java9Parser.DOT) - self.state = 2353 - self.identifier() - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ArrayAccessContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) - - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def primaryNoNewArray_lfno_arrayAccess(self): - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext,0) - - - def primaryNoNewArray_lf_arrayAccess(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext) - else: - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_arrayAccess - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArrayAccess" ): - listener.enterArrayAccess(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArrayAccess" ): - listener.exitArrayAccess(self) - - - - - def arrayAccess(self): - - localctx = Java9Parser.ArrayAccessContext(self, self._ctx, self.state) - self.enterRule(localctx, 400, self.RULE_arrayAccess) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2367 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,259,self._ctx) - if la_ == 1: - self.state = 2357 - self.expressionName() - self.state = 2358 - self.match(Java9Parser.LBRACK) - self.state = 2359 - self.expression() - self.state = 2360 - self.match(Java9Parser.RBRACK) - pass - - elif la_ == 2: - self.state = 2362 - self.primaryNoNewArray_lfno_arrayAccess() - self.state = 2363 - self.match(Java9Parser.LBRACK) - self.state = 2364 - self.expression() - self.state = 2365 - self.match(Java9Parser.RBRACK) - pass - - - self.state = 2376 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.LBRACK: - self.state = 2369 - self.primaryNoNewArray_lf_arrayAccess() - self.state = 2370 - self.match(Java9Parser.LBRACK) - self.state = 2371 - self.expression() - self.state = 2372 - self.match(Java9Parser.RBRACK) - self.state = 2378 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ArrayAccess_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext,0) - - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) - - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext) - else: - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_arrayAccess_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArrayAccess_lf_primary" ): - listener.enterArrayAccess_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArrayAccess_lf_primary" ): - listener.exitArrayAccess_lf_primary(self) - - - - - def arrayAccess_lf_primary(self): - - localctx = Java9Parser.ArrayAccess_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 402, self.RULE_arrayAccess_lf_primary) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2379 - self.primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary() - self.state = 2380 - self.match(Java9Parser.LBRACK) - self.state = 2381 - self.expression() - self.state = 2382 - self.match(Java9Parser.RBRACK) - self.state = 2391 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,261,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 2384 - self.primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary() - self.state = 2385 - self.match(Java9Parser.LBRACK) - self.state = 2386 - self.expression() - self.state = 2387 - self.match(Java9Parser.RBRACK) - self.state = 2393 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,261,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ArrayAccess_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def LBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LBRACK) - else: - return self.getToken(Java9Parser.LBRACK, i) - - def expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) - - - def RBRACK(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.RBRACK) - else: - return self.getToken(Java9Parser.RBRACK, i) - - def primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext,0) - - - def primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext) - else: - return self.getTypedRuleContext(Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_arrayAccess_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArrayAccess_lfno_primary" ): - listener.enterArrayAccess_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArrayAccess_lfno_primary" ): - listener.exitArrayAccess_lfno_primary(self) - - - - - def arrayAccess_lfno_primary(self): - - localctx = Java9Parser.ArrayAccess_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 404, self.RULE_arrayAccess_lfno_primary) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2404 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,262,self._ctx) - if la_ == 1: - self.state = 2394 - self.expressionName() - self.state = 2395 - self.match(Java9Parser.LBRACK) - self.state = 2396 - self.expression() - self.state = 2397 - self.match(Java9Parser.RBRACK) - pass - - elif la_ == 2: - self.state = 2399 - self.primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary() - self.state = 2400 - self.match(Java9Parser.LBRACK) - self.state = 2401 - self.expression() - self.state = 2402 - self.match(Java9Parser.RBRACK) - pass - - - self.state = 2413 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,263,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 2406 - self.primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary() - self.state = 2407 - self.match(Java9Parser.LBRACK) - self.state = 2408 - self.expression() - self.state = 2409 - self.match(Java9Parser.RBRACK) - self.state = 2415 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,263,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodInvocationContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def methodName(self): - return self.getTypedRuleContext(Java9Parser.MethodNameContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.DOT) - else: - return self.getToken(Java9Parser.DOT, i) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) - - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_methodInvocation - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodInvocation" ): - listener.enterMethodInvocation(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodInvocation" ): - listener.exitMethodInvocation(self) - - - - - def methodInvocation(self): - - localctx = Java9Parser.MethodInvocationContext(self, self._ctx, self.state) - self.enterRule(localctx, 406, self.RULE_methodInvocation) - self._la = 0 # Token type - try: - self.state = 2485 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,275,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2416 - self.methodName() - self.state = 2417 - self.match(Java9Parser.LPAREN) - self.state = 2419 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2418 - self.argumentList() - - - self.state = 2421 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2423 - self.typeName() - self.state = 2424 - self.match(Java9Parser.DOT) - self.state = 2426 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2425 - self.typeArguments() - - - self.state = 2428 - self.identifier() - self.state = 2429 - self.match(Java9Parser.LPAREN) - self.state = 2431 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2430 - self.argumentList() - - - self.state = 2433 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2435 - self.expressionName() - self.state = 2436 - self.match(Java9Parser.DOT) - self.state = 2438 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2437 - self.typeArguments() - - - self.state = 2440 - self.identifier() - self.state = 2441 - self.match(Java9Parser.LPAREN) - self.state = 2443 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2442 - self.argumentList() - - - self.state = 2445 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2447 - self.primary() - self.state = 2448 - self.match(Java9Parser.DOT) - self.state = 2450 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2449 - self.typeArguments() - - - self.state = 2452 - self.identifier() - self.state = 2453 - self.match(Java9Parser.LPAREN) - self.state = 2455 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2454 - self.argumentList() - - - self.state = 2457 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2459 - self.match(Java9Parser.SUPER) - self.state = 2460 - self.match(Java9Parser.DOT) - self.state = 2462 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2461 - self.typeArguments() - - - self.state = 2464 - self.identifier() - self.state = 2465 - self.match(Java9Parser.LPAREN) - self.state = 2467 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2466 - self.argumentList() - - - self.state = 2469 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 2471 - self.typeName() - self.state = 2472 - self.match(Java9Parser.DOT) - self.state = 2473 - self.match(Java9Parser.SUPER) - self.state = 2474 - self.match(Java9Parser.DOT) - self.state = 2476 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2475 - self.typeArguments() - - - self.state = 2478 - self.identifier() - self.state = 2479 - self.match(Java9Parser.LPAREN) - self.state = 2481 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2480 - self.argumentList() - - - self.state = 2483 - self.match(Java9Parser.RPAREN) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodInvocation_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodInvocation_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodInvocation_lf_primary" ): - listener.enterMethodInvocation_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodInvocation_lf_primary" ): - listener.exitMethodInvocation_lf_primary(self) - - - - - def methodInvocation_lf_primary(self): - - localctx = Java9Parser.MethodInvocation_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 408, self.RULE_methodInvocation_lf_primary) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2487 - self.match(Java9Parser.DOT) - self.state = 2489 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2488 - self.typeArguments() - - - self.state = 2491 - self.identifier() - self.state = 2492 - self.match(Java9Parser.LPAREN) - self.state = 2494 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2493 - self.argumentList() - - - self.state = 2496 - self.match(Java9Parser.RPAREN) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodInvocation_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def methodName(self): - return self.getTypedRuleContext(Java9Parser.MethodNameContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def argumentList(self): - return self.getTypedRuleContext(Java9Parser.ArgumentListContext,0) - - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.DOT) - else: - return self.getToken(Java9Parser.DOT, i) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_methodInvocation_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodInvocation_lfno_primary" ): - listener.enterMethodInvocation_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodInvocation_lfno_primary" ): - listener.exitMethodInvocation_lfno_primary(self) - - - - - def methodInvocation_lfno_primary(self): - - localctx = Java9Parser.MethodInvocation_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 410, self.RULE_methodInvocation_lfno_primary) - self._la = 0 # Token type - try: - self.state = 2555 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,287,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2498 - self.methodName() - self.state = 2499 - self.match(Java9Parser.LPAREN) - self.state = 2501 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2500 - self.argumentList() - - - self.state = 2503 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2505 - self.typeName() - self.state = 2506 - self.match(Java9Parser.DOT) - self.state = 2508 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2507 - self.typeArguments() - - - self.state = 2510 - self.identifier() - self.state = 2511 - self.match(Java9Parser.LPAREN) - self.state = 2513 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2512 - self.argumentList() - - - self.state = 2515 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2517 - self.expressionName() - self.state = 2518 - self.match(Java9Parser.DOT) - self.state = 2520 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2519 - self.typeArguments() - - - self.state = 2522 - self.identifier() - self.state = 2523 - self.match(Java9Parser.LPAREN) - self.state = 2525 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2524 - self.argumentList() - - - self.state = 2527 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2529 - self.match(Java9Parser.SUPER) - self.state = 2530 - self.match(Java9Parser.DOT) - self.state = 2532 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2531 - self.typeArguments() - - - self.state = 2534 - self.identifier() - self.state = 2535 - self.match(Java9Parser.LPAREN) - self.state = 2537 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2536 - self.argumentList() - - - self.state = 2539 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2541 - self.typeName() - self.state = 2542 - self.match(Java9Parser.DOT) - self.state = 2543 - self.match(Java9Parser.SUPER) - self.state = 2544 - self.match(Java9Parser.DOT) - self.state = 2546 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2545 - self.typeArguments() - - - self.state = 2548 - self.identifier() - self.state = 2549 - self.match(Java9Parser.LPAREN) - self.state = 2551 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.NEW) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.SUPER) | (1 << Java9Parser.THIS) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.VOID) | (1 << Java9Parser.WITH) | (1 << Java9Parser.IntegerLiteral) | (1 << Java9Parser.FloatingPointLiteral))) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & ((1 << (Java9Parser.BooleanLiteral - 64)) | (1 << (Java9Parser.CharacterLiteral - 64)) | (1 << (Java9Parser.StringLiteral - 64)) | (1 << (Java9Parser.NullLiteral - 64)) | (1 << (Java9Parser.LPAREN - 64)) | (1 << (Java9Parser.AT - 64)) | (1 << (Java9Parser.BANG - 64)) | (1 << (Java9Parser.TILDE - 64)) | (1 << (Java9Parser.INC - 64)) | (1 << (Java9Parser.DEC - 64)) | (1 << (Java9Parser.ADD - 64)) | (1 << (Java9Parser.SUB - 64)) | (1 << (Java9Parser.Identifier - 64)))) != 0): - self.state = 2550 - self.argumentList() - - - self.state = 2553 - self.match(Java9Parser.RPAREN) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ArgumentListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.ExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.ExpressionContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_argumentList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArgumentList" ): - listener.enterArgumentList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArgumentList" ): - listener.exitArgumentList(self) - - - - - def argumentList(self): - - localctx = Java9Parser.ArgumentListContext(self, self._ctx, self.state) - self.enterRule(localctx, 412, self.RULE_argumentList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2557 - self.expression() - self.state = 2562 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 2558 - self.match(Java9Parser.COMMA) - self.state = 2559 - self.expression() - self.state = 2564 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodReferenceContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def COLONCOLON(self): - return self.getToken(Java9Parser.COLONCOLON, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def referenceType(self): - return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) - - - def primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) - - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def classType(self): - return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) - - - def NEW(self): - return self.getToken(Java9Parser.NEW, 0) - - def arrayType(self): - return self.getTypedRuleContext(Java9Parser.ArrayTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodReference - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodReference" ): - listener.enterMethodReference(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodReference" ): - listener.exitMethodReference(self) - - - - - def methodReference(self): - - localctx = Java9Parser.MethodReferenceContext(self, self._ctx, self.state) - self.enterRule(localctx, 414, self.RULE_methodReference) - self._la = 0 # Token type - try: - self.state = 2612 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,295,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2565 - self.expressionName() - self.state = 2566 - self.match(Java9Parser.COLONCOLON) - self.state = 2568 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2567 - self.typeArguments() - - - self.state = 2570 - self.identifier() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2572 - self.referenceType() - self.state = 2573 - self.match(Java9Parser.COLONCOLON) - self.state = 2575 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2574 - self.typeArguments() - - - self.state = 2577 - self.identifier() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2579 - self.primary() - self.state = 2580 - self.match(Java9Parser.COLONCOLON) - self.state = 2582 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2581 - self.typeArguments() - - - self.state = 2584 - self.identifier() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2586 - self.match(Java9Parser.SUPER) - self.state = 2587 - self.match(Java9Parser.COLONCOLON) - self.state = 2589 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2588 - self.typeArguments() - - - self.state = 2591 - self.identifier() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2592 - self.typeName() - self.state = 2593 - self.match(Java9Parser.DOT) - self.state = 2594 - self.match(Java9Parser.SUPER) - self.state = 2595 - self.match(Java9Parser.COLONCOLON) - self.state = 2597 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2596 - self.typeArguments() - - - self.state = 2599 - self.identifier() - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 2601 - self.classType() - self.state = 2602 - self.match(Java9Parser.COLONCOLON) - self.state = 2604 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2603 - self.typeArguments() - - - self.state = 2606 - self.match(Java9Parser.NEW) - pass - - elif la_ == 7: - self.enterOuterAlt(localctx, 7) - self.state = 2608 - self.arrayType() - self.state = 2609 - self.match(Java9Parser.COLONCOLON) - self.state = 2610 - self.match(Java9Parser.NEW) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodReference_lf_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def COLONCOLON(self): - return self.getToken(Java9Parser.COLONCOLON, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodReference_lf_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodReference_lf_primary" ): - listener.enterMethodReference_lf_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodReference_lf_primary" ): - listener.exitMethodReference_lf_primary(self) - - - - - def methodReference_lf_primary(self): - - localctx = Java9Parser.MethodReference_lf_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 416, self.RULE_methodReference_lf_primary) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2614 - self.match(Java9Parser.COLONCOLON) - self.state = 2616 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2615 - self.typeArguments() - - - self.state = 2618 - self.identifier() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class MethodReference_lfno_primaryContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def COLONCOLON(self): - return self.getToken(Java9Parser.COLONCOLON, 0) - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def typeArguments(self): - return self.getTypedRuleContext(Java9Parser.TypeArgumentsContext,0) - - - def referenceType(self): - return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) - - - def SUPER(self): - return self.getToken(Java9Parser.SUPER, 0) - - def typeName(self): - return self.getTypedRuleContext(Java9Parser.TypeNameContext,0) - - - def DOT(self): - return self.getToken(Java9Parser.DOT, 0) - - def classType(self): - return self.getTypedRuleContext(Java9Parser.ClassTypeContext,0) - - - def NEW(self): - return self.getToken(Java9Parser.NEW, 0) - - def arrayType(self): - return self.getTypedRuleContext(Java9Parser.ArrayTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_methodReference_lfno_primary - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMethodReference_lfno_primary" ): - listener.enterMethodReference_lfno_primary(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMethodReference_lfno_primary" ): - listener.exitMethodReference_lfno_primary(self) - - - - - def methodReference_lfno_primary(self): - - localctx = Java9Parser.MethodReference_lfno_primaryContext(self, self._ctx, self.state) - self.enterRule(localctx, 418, self.RULE_methodReference_lfno_primary) - self._la = 0 # Token type - try: - self.state = 2660 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,302,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2620 - self.expressionName() - self.state = 2621 - self.match(Java9Parser.COLONCOLON) - self.state = 2623 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2622 - self.typeArguments() - - - self.state = 2625 - self.identifier() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2627 - self.referenceType() - self.state = 2628 - self.match(Java9Parser.COLONCOLON) - self.state = 2630 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2629 - self.typeArguments() - - - self.state = 2632 - self.identifier() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2634 - self.match(Java9Parser.SUPER) - self.state = 2635 - self.match(Java9Parser.COLONCOLON) - self.state = 2637 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2636 - self.typeArguments() - - - self.state = 2639 - self.identifier() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2640 - self.typeName() - self.state = 2641 - self.match(Java9Parser.DOT) - self.state = 2642 - self.match(Java9Parser.SUPER) - self.state = 2643 - self.match(Java9Parser.COLONCOLON) - self.state = 2645 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2644 - self.typeArguments() - - - self.state = 2647 - self.identifier() - pass - - elif la_ == 5: - self.enterOuterAlt(localctx, 5) - self.state = 2649 - self.classType() - self.state = 2650 - self.match(Java9Parser.COLONCOLON) - self.state = 2652 - self._errHandler.sync(self) - _la = self._input.LA(1) - if _la==Java9Parser.LT: - self.state = 2651 - self.typeArguments() - - - self.state = 2654 - self.match(Java9Parser.NEW) - pass - - elif la_ == 6: - self.enterOuterAlt(localctx, 6) - self.state = 2656 - self.arrayType() - self.state = 2657 - self.match(Java9Parser.COLONCOLON) - self.state = 2658 - self.match(Java9Parser.NEW) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ArrayCreationExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def NEW(self): - return self.getToken(Java9Parser.NEW, 0) - - def primitiveType(self): - return self.getTypedRuleContext(Java9Parser.PrimitiveTypeContext,0) - - - def dimExprs(self): - return self.getTypedRuleContext(Java9Parser.DimExprsContext,0) - - - def dims(self): - return self.getTypedRuleContext(Java9Parser.DimsContext,0) - - - def classOrInterfaceType(self): - return self.getTypedRuleContext(Java9Parser.ClassOrInterfaceTypeContext,0) - - - def arrayInitializer(self): - return self.getTypedRuleContext(Java9Parser.ArrayInitializerContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_arrayCreationExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterArrayCreationExpression" ): - listener.enterArrayCreationExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitArrayCreationExpression" ): - listener.exitArrayCreationExpression(self) - - - - - def arrayCreationExpression(self): - - localctx = Java9Parser.ArrayCreationExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 420, self.RULE_arrayCreationExpression) - try: - self.state = 2684 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,305,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2662 - self.match(Java9Parser.NEW) - self.state = 2663 - self.primitiveType() - self.state = 2664 - self.dimExprs() - self.state = 2666 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,303,self._ctx) - if la_ == 1: - self.state = 2665 - self.dims() - - - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2668 - self.match(Java9Parser.NEW) - self.state = 2669 - self.classOrInterfaceType() - self.state = 2670 - self.dimExprs() - self.state = 2672 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,304,self._ctx) - if la_ == 1: - self.state = 2671 - self.dims() - - - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2674 - self.match(Java9Parser.NEW) - self.state = 2675 - self.primitiveType() - self.state = 2676 - self.dims() - self.state = 2677 - self.arrayInitializer() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2679 - self.match(Java9Parser.NEW) - self.state = 2680 - self.classOrInterfaceType() - self.state = 2681 - self.dims() - self.state = 2682 - self.arrayInitializer() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class DimExprsContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def dimExpr(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.DimExprContext) - else: - return self.getTypedRuleContext(Java9Parser.DimExprContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_dimExprs - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDimExprs" ): - listener.enterDimExprs(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDimExprs" ): - listener.exitDimExprs(self) - - - - - def dimExprs(self): - - localctx = Java9Parser.DimExprsContext(self, self._ctx, self.state) - self.enterRule(localctx, 422, self.RULE_dimExprs) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2687 - self._errHandler.sync(self) - _alt = 1 - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt == 1: - self.state = 2686 - self.dimExpr() - - else: - raise NoViableAltException(self) - self.state = 2689 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,306,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class DimExprContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LBRACK(self): - return self.getToken(Java9Parser.LBRACK, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def RBRACK(self): - return self.getToken(Java9Parser.RBRACK, 0) - - def annotation(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AnnotationContext) - else: - return self.getTypedRuleContext(Java9Parser.AnnotationContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_dimExpr - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterDimExpr" ): - listener.enterDimExpr(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitDimExpr" ): - listener.exitDimExpr(self) - - - - - def dimExpr(self): - - localctx = Java9Parser.DimExprContext(self, self._ctx, self.state) - self.enterRule(localctx, 424, self.RULE_dimExpr) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2694 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.AT: - self.state = 2691 - self.annotation() - self.state = 2696 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2697 - self.match(Java9Parser.LBRACK) - self.state = 2698 - self.expression() - self.state = 2699 - self.match(Java9Parser.RBRACK) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConstantExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_constantExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConstantExpression" ): - listener.enterConstantExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConstantExpression" ): - listener.exitConstantExpression(self) - - - - - def constantExpression(self): - - localctx = Java9Parser.ConstantExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 426, self.RULE_constantExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2701 - self.expression() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def lambdaExpression(self): - return self.getTypedRuleContext(Java9Parser.LambdaExpressionContext,0) - - - def assignmentExpression(self): - return self.getTypedRuleContext(Java9Parser.AssignmentExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_expression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExpression" ): - listener.enterExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExpression" ): - listener.exitExpression(self) - - - - - def expression(self): - - localctx = Java9Parser.ExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 428, self.RULE_expression) - try: - self.state = 2705 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,308,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2703 - self.lambdaExpression() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2704 - self.assignmentExpression() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LambdaExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def lambdaParameters(self): - return self.getTypedRuleContext(Java9Parser.LambdaParametersContext,0) - - - def ARROW(self): - return self.getToken(Java9Parser.ARROW, 0) - - def lambdaBody(self): - return self.getTypedRuleContext(Java9Parser.LambdaBodyContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_lambdaExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLambdaExpression" ): - listener.enterLambdaExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLambdaExpression" ): - listener.exitLambdaExpression(self) - - - - - def lambdaExpression(self): - - localctx = Java9Parser.LambdaExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 430, self.RULE_lambdaExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2707 - self.lambdaParameters() - self.state = 2708 - self.match(Java9Parser.ARROW) - self.state = 2709 - self.lambdaBody() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LambdaParametersContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self): - return self.getTypedRuleContext(Java9Parser.IdentifierContext,0) - - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def formalParameterList(self): - return self.getTypedRuleContext(Java9Parser.FormalParameterListContext,0) - - - def inferredFormalParameterList(self): - return self.getTypedRuleContext(Java9Parser.InferredFormalParameterListContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_lambdaParameters - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLambdaParameters" ): - listener.enterLambdaParameters(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLambdaParameters" ): - listener.exitLambdaParameters(self) - - - - - def lambdaParameters(self): - - localctx = Java9Parser.LambdaParametersContext(self, self._ctx, self.state) - self.enterRule(localctx, 432, self.RULE_lambdaParameters) - self._la = 0 # Token type - try: - self.state = 2721 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,310,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2711 - self.identifier() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2712 - self.match(Java9Parser.LPAREN) - self.state = 2714 - self._errHandler.sync(self) - _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.BOOLEAN) | (1 << Java9Parser.BYTE) | (1 << Java9Parser.CHAR) | (1 << Java9Parser.DOUBLE) | (1 << Java9Parser.EXPORTS) | (1 << Java9Parser.FINAL) | (1 << Java9Parser.FLOAT) | (1 << Java9Parser.INT) | (1 << Java9Parser.LONG) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.SHORT) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.AT or _la==Java9Parser.Identifier: - self.state = 2713 - self.formalParameterList() - - - self.state = 2716 - self.match(Java9Parser.RPAREN) - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2717 - self.match(Java9Parser.LPAREN) - self.state = 2718 - self.inferredFormalParameterList() - self.state = 2719 - self.match(Java9Parser.RPAREN) - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class InferredFormalParameterListContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def identifier(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.IdentifierContext) - else: - return self.getTypedRuleContext(Java9Parser.IdentifierContext,i) - - - def COMMA(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.COMMA) - else: - return self.getToken(Java9Parser.COMMA, i) - - def getRuleIndex(self): - return Java9Parser.RULE_inferredFormalParameterList - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInferredFormalParameterList" ): - listener.enterInferredFormalParameterList(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInferredFormalParameterList" ): - listener.exitInferredFormalParameterList(self) - - - - - def inferredFormalParameterList(self): - - localctx = Java9Parser.InferredFormalParameterListContext(self, self._ctx, self.state) - self.enterRule(localctx, 434, self.RULE_inferredFormalParameterList) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2723 - self.identifier() - self.state = 2728 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.COMMA: - self.state = 2724 - self.match(Java9Parser.COMMA) - self.state = 2725 - self.identifier() - self.state = 2730 - self._errHandler.sync(self) - _la = self._input.LA(1) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LambdaBodyContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def block(self): - return self.getTypedRuleContext(Java9Parser.BlockContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_lambdaBody - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLambdaBody" ): - listener.enterLambdaBody(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLambdaBody" ): - listener.exitLambdaBody(self) - - - - - def lambdaBody(self): - - localctx = Java9Parser.LambdaBodyContext(self, self._ctx, self.state) - self.enterRule(localctx, 436, self.RULE_lambdaBody) - try: - self.state = 2733 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.BANG, Java9Parser.TILDE, Java9Parser.INC, Java9Parser.DEC, Java9Parser.ADD, Java9Parser.SUB, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 1) - self.state = 2731 - self.expression() - pass - elif token in [Java9Parser.LBRACE]: - self.enterOuterAlt(localctx, 2) - self.state = 2732 - self.block() - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AssignmentExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def conditionalExpression(self): - return self.getTypedRuleContext(Java9Parser.ConditionalExpressionContext,0) - - - def assignment(self): - return self.getTypedRuleContext(Java9Parser.AssignmentContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_assignmentExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAssignmentExpression" ): - listener.enterAssignmentExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAssignmentExpression" ): - listener.exitAssignmentExpression(self) - - - - - def assignmentExpression(self): - - localctx = Java9Parser.AssignmentExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 438, self.RULE_assignmentExpression) - try: - self.state = 2737 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,313,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2735 - self.conditionalExpression() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2736 - self.assignment() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AssignmentContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def leftHandSide(self): - return self.getTypedRuleContext(Java9Parser.LeftHandSideContext,0) - - - def assignmentOperator(self): - return self.getTypedRuleContext(Java9Parser.AssignmentOperatorContext,0) - - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_assignment - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAssignment" ): - listener.enterAssignment(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAssignment" ): - listener.exitAssignment(self) - - - - - def assignment(self): - - localctx = Java9Parser.AssignmentContext(self, self._ctx, self.state) - self.enterRule(localctx, 440, self.RULE_assignment) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2739 - self.leftHandSide() - self.state = 2740 - self.assignmentOperator() - self.state = 2741 - self.expression() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class LeftHandSideContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def fieldAccess(self): - return self.getTypedRuleContext(Java9Parser.FieldAccessContext,0) - - - def arrayAccess(self): - return self.getTypedRuleContext(Java9Parser.ArrayAccessContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_leftHandSide - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterLeftHandSide" ): - listener.enterLeftHandSide(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitLeftHandSide" ): - listener.exitLeftHandSide(self) - - - - - def leftHandSide(self): - - localctx = Java9Parser.LeftHandSideContext(self, self._ctx, self.state) - self.enterRule(localctx, 442, self.RULE_leftHandSide) - try: - self.state = 2746 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,314,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2743 - self.expressionName() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2744 - self.fieldAccess() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2745 - self.arrayAccess() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class AssignmentOperatorContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def ASSIGN(self): - return self.getToken(Java9Parser.ASSIGN, 0) - - def MUL_ASSIGN(self): - return self.getToken(Java9Parser.MUL_ASSIGN, 0) - - def DIV_ASSIGN(self): - return self.getToken(Java9Parser.DIV_ASSIGN, 0) - - def MOD_ASSIGN(self): - return self.getToken(Java9Parser.MOD_ASSIGN, 0) - - def ADD_ASSIGN(self): - return self.getToken(Java9Parser.ADD_ASSIGN, 0) - - def SUB_ASSIGN(self): - return self.getToken(Java9Parser.SUB_ASSIGN, 0) - - def LSHIFT_ASSIGN(self): - return self.getToken(Java9Parser.LSHIFT_ASSIGN, 0) - - def RSHIFT_ASSIGN(self): - return self.getToken(Java9Parser.RSHIFT_ASSIGN, 0) - - def URSHIFT_ASSIGN(self): - return self.getToken(Java9Parser.URSHIFT_ASSIGN, 0) - - def AND_ASSIGN(self): - return self.getToken(Java9Parser.AND_ASSIGN, 0) - - def XOR_ASSIGN(self): - return self.getToken(Java9Parser.XOR_ASSIGN, 0) - - def OR_ASSIGN(self): - return self.getToken(Java9Parser.OR_ASSIGN, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_assignmentOperator - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAssignmentOperator" ): - listener.enterAssignmentOperator(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAssignmentOperator" ): - listener.exitAssignmentOperator(self) - - - - - def assignmentOperator(self): - - localctx = Java9Parser.AssignmentOperatorContext(self, self._ctx, self.state) - self.enterRule(localctx, 444, self.RULE_assignmentOperator) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2748 - _la = self._input.LA(1) - if not(((((_la - 80)) & ~0x3f) == 0 and ((1 << (_la - 80)) & ((1 << (Java9Parser.ASSIGN - 80)) | (1 << (Java9Parser.ADD_ASSIGN - 80)) | (1 << (Java9Parser.SUB_ASSIGN - 80)) | (1 << (Java9Parser.MUL_ASSIGN - 80)) | (1 << (Java9Parser.DIV_ASSIGN - 80)) | (1 << (Java9Parser.AND_ASSIGN - 80)) | (1 << (Java9Parser.OR_ASSIGN - 80)) | (1 << (Java9Parser.XOR_ASSIGN - 80)) | (1 << (Java9Parser.MOD_ASSIGN - 80)) | (1 << (Java9Parser.LSHIFT_ASSIGN - 80)) | (1 << (Java9Parser.RSHIFT_ASSIGN - 80)) | (1 << (Java9Parser.URSHIFT_ASSIGN - 80)))) != 0)): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConditionalExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def conditionalOrExpression(self): - return self.getTypedRuleContext(Java9Parser.ConditionalOrExpressionContext,0) - - - def QUESTION(self): - return self.getToken(Java9Parser.QUESTION, 0) - - def expression(self): - return self.getTypedRuleContext(Java9Parser.ExpressionContext,0) - - - def COLON(self): - return self.getToken(Java9Parser.COLON, 0) - - def conditionalExpression(self): - return self.getTypedRuleContext(Java9Parser.ConditionalExpressionContext,0) - - - def lambdaExpression(self): - return self.getTypedRuleContext(Java9Parser.LambdaExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_conditionalExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConditionalExpression" ): - listener.enterConditionalExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConditionalExpression" ): - listener.exitConditionalExpression(self) - - - - - def conditionalExpression(self): - - localctx = Java9Parser.ConditionalExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 446, self.RULE_conditionalExpression) - try: - self.state = 2759 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,316,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2750 - self.conditionalOrExpression(0) - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2751 - self.conditionalOrExpression(0) - self.state = 2752 - self.match(Java9Parser.QUESTION) - self.state = 2753 - self.expression() - self.state = 2754 - self.match(Java9Parser.COLON) - self.state = 2757 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,315,self._ctx) - if la_ == 1: - self.state = 2755 - self.conditionalExpression() - pass - - elif la_ == 2: - self.state = 2756 - self.lambdaExpression() - pass - - - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class ConditionalOrExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def conditionalAndExpression(self): - return self.getTypedRuleContext(Java9Parser.ConditionalAndExpressionContext,0) - - - def conditionalOrExpression(self): - return self.getTypedRuleContext(Java9Parser.ConditionalOrExpressionContext,0) - - - def OR(self): - return self.getToken(Java9Parser.OR, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_conditionalOrExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConditionalOrExpression" ): - listener.enterConditionalOrExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConditionalOrExpression" ): - listener.exitConditionalOrExpression(self) - - - - def conditionalOrExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.ConditionalOrExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 448 - self.enterRecursionRule(localctx, 448, self.RULE_conditionalOrExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2762 - self.conditionalAndExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2769 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,317,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.ConditionalOrExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_conditionalOrExpression) - self.state = 2764 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2765 - self.match(Java9Parser.OR) - self.state = 2766 - self.conditionalAndExpression(0) - self.state = 2771 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,317,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class ConditionalAndExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def inclusiveOrExpression(self): - return self.getTypedRuleContext(Java9Parser.InclusiveOrExpressionContext,0) - - - def conditionalAndExpression(self): - return self.getTypedRuleContext(Java9Parser.ConditionalAndExpressionContext,0) - - - def AND(self): - return self.getToken(Java9Parser.AND, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_conditionalAndExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterConditionalAndExpression" ): - listener.enterConditionalAndExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitConditionalAndExpression" ): - listener.exitConditionalAndExpression(self) - - - - def conditionalAndExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.ConditionalAndExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 450 - self.enterRecursionRule(localctx, 450, self.RULE_conditionalAndExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2773 - self.inclusiveOrExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2780 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,318,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.ConditionalAndExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_conditionalAndExpression) - self.state = 2775 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2776 - self.match(Java9Parser.AND) - self.state = 2777 - self.inclusiveOrExpression(0) - self.state = 2782 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,318,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class InclusiveOrExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def exclusiveOrExpression(self): - return self.getTypedRuleContext(Java9Parser.ExclusiveOrExpressionContext,0) - - - def inclusiveOrExpression(self): - return self.getTypedRuleContext(Java9Parser.InclusiveOrExpressionContext,0) - - - def BITOR(self): - return self.getToken(Java9Parser.BITOR, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_inclusiveOrExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterInclusiveOrExpression" ): - listener.enterInclusiveOrExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitInclusiveOrExpression" ): - listener.exitInclusiveOrExpression(self) - - - - def inclusiveOrExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.InclusiveOrExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 452 - self.enterRecursionRule(localctx, 452, self.RULE_inclusiveOrExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2784 - self.exclusiveOrExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2791 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,319,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.InclusiveOrExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_inclusiveOrExpression) - self.state = 2786 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2787 - self.match(Java9Parser.BITOR) - self.state = 2788 - self.exclusiveOrExpression(0) - self.state = 2793 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,319,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class ExclusiveOrExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def andExpression(self): - return self.getTypedRuleContext(Java9Parser.AndExpressionContext,0) - - - def exclusiveOrExpression(self): - return self.getTypedRuleContext(Java9Parser.ExclusiveOrExpressionContext,0) - - - def CARET(self): - return self.getToken(Java9Parser.CARET, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_exclusiveOrExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterExclusiveOrExpression" ): - listener.enterExclusiveOrExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitExclusiveOrExpression" ): - listener.exitExclusiveOrExpression(self) - - - - def exclusiveOrExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.ExclusiveOrExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 454 - self.enterRecursionRule(localctx, 454, self.RULE_exclusiveOrExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2795 - self.andExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2802 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,320,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.ExclusiveOrExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_exclusiveOrExpression) - self.state = 2797 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2798 - self.match(Java9Parser.CARET) - self.state = 2799 - self.andExpression(0) - self.state = 2804 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,320,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class AndExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def equalityExpression(self): - return self.getTypedRuleContext(Java9Parser.EqualityExpressionContext,0) - - - def andExpression(self): - return self.getTypedRuleContext(Java9Parser.AndExpressionContext,0) - - - def BITAND(self): - return self.getToken(Java9Parser.BITAND, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_andExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAndExpression" ): - listener.enterAndExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAndExpression" ): - listener.exitAndExpression(self) - - - - def andExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.AndExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 456 - self.enterRecursionRule(localctx, 456, self.RULE_andExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2806 - self.equalityExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2813 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,321,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - localctx = Java9Parser.AndExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_andExpression) - self.state = 2808 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2809 - self.match(Java9Parser.BITAND) - self.state = 2810 - self.equalityExpression(0) - self.state = 2815 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,321,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class EqualityExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def relationalExpression(self): - return self.getTypedRuleContext(Java9Parser.RelationalExpressionContext,0) - - - def equalityExpression(self): - return self.getTypedRuleContext(Java9Parser.EqualityExpressionContext,0) - - - def EQUAL(self): - return self.getToken(Java9Parser.EQUAL, 0) - - def NOTEQUAL(self): - return self.getToken(Java9Parser.NOTEQUAL, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_equalityExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterEqualityExpression" ): - listener.enterEqualityExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitEqualityExpression" ): - listener.exitEqualityExpression(self) - - - - def equalityExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.EqualityExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 458 - self.enterRecursionRule(localctx, 458, self.RULE_equalityExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2817 - self.relationalExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2827 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,323,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - self.state = 2825 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,322,self._ctx) - if la_ == 1: - localctx = Java9Parser.EqualityExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_equalityExpression) - self.state = 2819 - if not self.precpred(self._ctx, 2): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") - self.state = 2820 - self.match(Java9Parser.EQUAL) - self.state = 2821 - self.relationalExpression(0) - pass - - elif la_ == 2: - localctx = Java9Parser.EqualityExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_equalityExpression) - self.state = 2822 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2823 - self.match(Java9Parser.NOTEQUAL) - self.state = 2824 - self.relationalExpression(0) - pass - - - self.state = 2829 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,323,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class RelationalExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def shiftExpression(self): - return self.getTypedRuleContext(Java9Parser.ShiftExpressionContext,0) - - - def relationalExpression(self): - return self.getTypedRuleContext(Java9Parser.RelationalExpressionContext,0) - - - def LT(self): - return self.getToken(Java9Parser.LT, 0) - - def GT(self): - return self.getToken(Java9Parser.GT, 0) - - def LE(self): - return self.getToken(Java9Parser.LE, 0) - - def GE(self): - return self.getToken(Java9Parser.GE, 0) - - def INSTANCEOF(self): - return self.getToken(Java9Parser.INSTANCEOF, 0) - - def referenceType(self): - return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_relationalExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterRelationalExpression" ): - listener.enterRelationalExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitRelationalExpression" ): - listener.exitRelationalExpression(self) - - - - def relationalExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.RelationalExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 460 - self.enterRecursionRule(localctx, 460, self.RULE_relationalExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2831 - self.shiftExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2850 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,325,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - self.state = 2848 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,324,self._ctx) - if la_ == 1: - localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) - self.state = 2833 - if not self.precpred(self._ctx, 5): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 5)") - self.state = 2834 - self.match(Java9Parser.LT) - self.state = 2835 - self.shiftExpression(0) - pass - - elif la_ == 2: - localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) - self.state = 2836 - if not self.precpred(self._ctx, 4): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 4)") - self.state = 2837 - self.match(Java9Parser.GT) - self.state = 2838 - self.shiftExpression(0) - pass - - elif la_ == 3: - localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) - self.state = 2839 - if not self.precpred(self._ctx, 3): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") - self.state = 2840 - self.match(Java9Parser.LE) - self.state = 2841 - self.shiftExpression(0) - pass - - elif la_ == 4: - localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) - self.state = 2842 - if not self.precpred(self._ctx, 2): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") - self.state = 2843 - self.match(Java9Parser.GE) - self.state = 2844 - self.shiftExpression(0) - pass - - elif la_ == 5: - localctx = Java9Parser.RelationalExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_relationalExpression) - self.state = 2845 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2846 - self.match(Java9Parser.INSTANCEOF) - self.state = 2847 - self.referenceType() - pass - - - self.state = 2852 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,325,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class ShiftExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def additiveExpression(self): - return self.getTypedRuleContext(Java9Parser.AdditiveExpressionContext,0) - - - def shiftExpression(self): - return self.getTypedRuleContext(Java9Parser.ShiftExpressionContext,0) - - - def LT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.LT) - else: - return self.getToken(Java9Parser.LT, i) - - def GT(self, i:int=None): - if i is None: - return self.getTokens(Java9Parser.GT) - else: - return self.getToken(Java9Parser.GT, i) - - def getRuleIndex(self): - return Java9Parser.RULE_shiftExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterShiftExpression" ): - listener.enterShiftExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitShiftExpression" ): - listener.exitShiftExpression(self) - - - - def shiftExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.ShiftExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 462 - self.enterRecursionRule(localctx, 462, self.RULE_shiftExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2854 - self.additiveExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2871 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,327,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - self.state = 2869 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,326,self._ctx) - if la_ == 1: - localctx = Java9Parser.ShiftExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_shiftExpression) - self.state = 2856 - if not self.precpred(self._ctx, 3): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") - self.state = 2857 - self.match(Java9Parser.LT) - self.state = 2858 - self.match(Java9Parser.LT) - self.state = 2859 - self.additiveExpression(0) - pass - - elif la_ == 2: - localctx = Java9Parser.ShiftExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_shiftExpression) - self.state = 2860 - if not self.precpred(self._ctx, 2): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") - self.state = 2861 - self.match(Java9Parser.GT) - self.state = 2862 - self.match(Java9Parser.GT) - self.state = 2863 - self.additiveExpression(0) - pass - - elif la_ == 3: - localctx = Java9Parser.ShiftExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_shiftExpression) - self.state = 2864 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2865 - self.match(Java9Parser.GT) - self.state = 2866 - self.match(Java9Parser.GT) - self.state = 2867 - self.match(Java9Parser.GT) - self.state = 2868 - self.additiveExpression(0) - pass - - - self.state = 2873 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,327,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class AdditiveExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def multiplicativeExpression(self): - return self.getTypedRuleContext(Java9Parser.MultiplicativeExpressionContext,0) - - - def additiveExpression(self): - return self.getTypedRuleContext(Java9Parser.AdditiveExpressionContext,0) - - - def ADD(self): - return self.getToken(Java9Parser.ADD, 0) - - def SUB(self): - return self.getToken(Java9Parser.SUB, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_additiveExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterAdditiveExpression" ): - listener.enterAdditiveExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitAdditiveExpression" ): - listener.exitAdditiveExpression(self) - - - - def additiveExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.AdditiveExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 464 - self.enterRecursionRule(localctx, 464, self.RULE_additiveExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2875 - self.multiplicativeExpression(0) - self._ctx.stop = self._input.LT(-1) - self.state = 2885 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,329,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - self.state = 2883 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,328,self._ctx) - if la_ == 1: - localctx = Java9Parser.AdditiveExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_additiveExpression) - self.state = 2877 - if not self.precpred(self._ctx, 2): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") - self.state = 2878 - self.match(Java9Parser.ADD) - self.state = 2879 - self.multiplicativeExpression(0) - pass - - elif la_ == 2: - localctx = Java9Parser.AdditiveExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_additiveExpression) - self.state = 2880 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2881 - self.match(Java9Parser.SUB) - self.state = 2882 - self.multiplicativeExpression(0) - pass - - - self.state = 2887 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,329,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class MultiplicativeExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def unaryExpression(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) - - - def multiplicativeExpression(self): - return self.getTypedRuleContext(Java9Parser.MultiplicativeExpressionContext,0) - - - def MUL(self): - return self.getToken(Java9Parser.MUL, 0) - - def DIV(self): - return self.getToken(Java9Parser.DIV, 0) - - def MOD(self): - return self.getToken(Java9Parser.MOD, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_multiplicativeExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterMultiplicativeExpression" ): - listener.enterMultiplicativeExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitMultiplicativeExpression" ): - listener.exitMultiplicativeExpression(self) - - - - def multiplicativeExpression(self, _p:int=0): - _parentctx = self._ctx - _parentState = self.state - localctx = Java9Parser.MultiplicativeExpressionContext(self, self._ctx, _parentState) - _prevctx = localctx - _startState = 466 - self.enterRecursionRule(localctx, 466, self.RULE_multiplicativeExpression, _p) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2889 - self.unaryExpression() - self._ctx.stop = self._input.LT(-1) - self.state = 2902 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,331,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - if self._parseListeners is not None: - self.triggerExitRuleEvent() - _prevctx = localctx - self.state = 2900 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,330,self._ctx) - if la_ == 1: - localctx = Java9Parser.MultiplicativeExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_multiplicativeExpression) - self.state = 2891 - if not self.precpred(self._ctx, 3): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") - self.state = 2892 - self.match(Java9Parser.MUL) - self.state = 2893 - self.unaryExpression() - pass - - elif la_ == 2: - localctx = Java9Parser.MultiplicativeExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_multiplicativeExpression) - self.state = 2894 - if not self.precpred(self._ctx, 2): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 2)") - self.state = 2895 - self.match(Java9Parser.DIV) - self.state = 2896 - self.unaryExpression() - pass - - elif la_ == 3: - localctx = Java9Parser.MultiplicativeExpressionContext(self, _parentctx, _parentState) - self.pushNewRecursionContext(localctx, _startState, self.RULE_multiplicativeExpression) - self.state = 2897 - if not self.precpred(self._ctx, 1): - from antlr4.error.Errors import FailedPredicateException - raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 2898 - self.match(Java9Parser.MOD) - self.state = 2899 - self.unaryExpression() - pass - - - self.state = 2904 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,331,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.unrollRecursionContexts(_parentctx) - return localctx - - class UnaryExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def preIncrementExpression(self): - return self.getTypedRuleContext(Java9Parser.PreIncrementExpressionContext,0) - - - def preDecrementExpression(self): - return self.getTypedRuleContext(Java9Parser.PreDecrementExpressionContext,0) - - - def ADD(self): - return self.getToken(Java9Parser.ADD, 0) - - def unaryExpression(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) - - - def SUB(self): - return self.getToken(Java9Parser.SUB, 0) - - def unaryExpressionNotPlusMinus(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionNotPlusMinusContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unaryExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnaryExpression" ): - listener.enterUnaryExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnaryExpression" ): - listener.exitUnaryExpression(self) - - - - - def unaryExpression(self): - - localctx = Java9Parser.UnaryExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 468, self.RULE_unaryExpression) - try: - self.state = 2912 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.INC]: - self.enterOuterAlt(localctx, 1) - self.state = 2905 - self.preIncrementExpression() - pass - elif token in [Java9Parser.DEC]: - self.enterOuterAlt(localctx, 2) - self.state = 2906 - self.preDecrementExpression() - pass - elif token in [Java9Parser.ADD]: - self.enterOuterAlt(localctx, 3) - self.state = 2907 - self.match(Java9Parser.ADD) - self.state = 2908 - self.unaryExpression() - pass - elif token in [Java9Parser.SUB]: - self.enterOuterAlt(localctx, 4) - self.state = 2909 - self.match(Java9Parser.SUB) - self.state = 2910 - self.unaryExpression() - pass - elif token in [Java9Parser.BOOLEAN, Java9Parser.BYTE, Java9Parser.CHAR, Java9Parser.DOUBLE, Java9Parser.EXPORTS, Java9Parser.FLOAT, Java9Parser.INT, Java9Parser.LONG, Java9Parser.MODULE, Java9Parser.NEW, Java9Parser.OPEN, Java9Parser.OPERNS, Java9Parser.PROVIDES, Java9Parser.REQUIRES, Java9Parser.SHORT, Java9Parser.SUPER, Java9Parser.THIS, Java9Parser.TO, Java9Parser.USES, Java9Parser.VOID, Java9Parser.WITH, Java9Parser.IntegerLiteral, Java9Parser.FloatingPointLiteral, Java9Parser.BooleanLiteral, Java9Parser.CharacterLiteral, Java9Parser.StringLiteral, Java9Parser.NullLiteral, Java9Parser.LPAREN, Java9Parser.AT, Java9Parser.BANG, Java9Parser.TILDE, Java9Parser.Identifier]: - self.enterOuterAlt(localctx, 5) - self.state = 2911 - self.unaryExpressionNotPlusMinus() - pass - else: - raise NoViableAltException(self) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PreIncrementExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def INC(self): - return self.getToken(Java9Parser.INC, 0) - - def unaryExpression(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_preIncrementExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPreIncrementExpression" ): - listener.enterPreIncrementExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPreIncrementExpression" ): - listener.exitPreIncrementExpression(self) - - - - - def preIncrementExpression(self): - - localctx = Java9Parser.PreIncrementExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 470, self.RULE_preIncrementExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2914 - self.match(Java9Parser.INC) - self.state = 2915 - self.unaryExpression() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PreDecrementExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DEC(self): - return self.getToken(Java9Parser.DEC, 0) - - def unaryExpression(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_preDecrementExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPreDecrementExpression" ): - listener.enterPreDecrementExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPreDecrementExpression" ): - listener.exitPreDecrementExpression(self) - - - - - def preDecrementExpression(self): - - localctx = Java9Parser.PreDecrementExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 472, self.RULE_preDecrementExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2917 - self.match(Java9Parser.DEC) - self.state = 2918 - self.unaryExpression() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class UnaryExpressionNotPlusMinusContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def postfixExpression(self): - return self.getTypedRuleContext(Java9Parser.PostfixExpressionContext,0) - - - def TILDE(self): - return self.getToken(Java9Parser.TILDE, 0) - - def unaryExpression(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) - - - def BANG(self): - return self.getToken(Java9Parser.BANG, 0) - - def castExpression(self): - return self.getTypedRuleContext(Java9Parser.CastExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_unaryExpressionNotPlusMinus - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterUnaryExpressionNotPlusMinus" ): - listener.enterUnaryExpressionNotPlusMinus(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitUnaryExpressionNotPlusMinus" ): - listener.exitUnaryExpressionNotPlusMinus(self) - - - - - def unaryExpressionNotPlusMinus(self): - - localctx = Java9Parser.UnaryExpressionNotPlusMinusContext(self, self._ctx, self.state) - self.enterRule(localctx, 474, self.RULE_unaryExpressionNotPlusMinus) - try: - self.state = 2926 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,333,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2920 - self.postfixExpression() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2921 - self.match(Java9Parser.TILDE) - self.state = 2922 - self.unaryExpression() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2923 - self.match(Java9Parser.BANG) - self.state = 2924 - self.unaryExpression() - pass - - elif la_ == 4: - self.enterOuterAlt(localctx, 4) - self.state = 2925 - self.castExpression() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PostfixExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def primary(self): - return self.getTypedRuleContext(Java9Parser.PrimaryContext,0) - - - def expressionName(self): - return self.getTypedRuleContext(Java9Parser.ExpressionNameContext,0) - - - def postIncrementExpression_lf_postfixExpression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.PostIncrementExpression_lf_postfixExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.PostIncrementExpression_lf_postfixExpressionContext,i) - - - def postDecrementExpression_lf_postfixExpression(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.PostDecrementExpression_lf_postfixExpressionContext) - else: - return self.getTypedRuleContext(Java9Parser.PostDecrementExpression_lf_postfixExpressionContext,i) - - - def getRuleIndex(self): - return Java9Parser.RULE_postfixExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPostfixExpression" ): - listener.enterPostfixExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPostfixExpression" ): - listener.exitPostfixExpression(self) - - - - - def postfixExpression(self): - - localctx = Java9Parser.PostfixExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 476, self.RULE_postfixExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2930 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,334,self._ctx) - if la_ == 1: - self.state = 2928 - self.primary() - pass - - elif la_ == 2: - self.state = 2929 - self.expressionName() - pass - - - self.state = 2936 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,336,self._ctx) - while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: - if _alt==1: - self.state = 2934 - self._errHandler.sync(self) - token = self._input.LA(1) - if token in [Java9Parser.INC]: - self.state = 2932 - self.postIncrementExpression_lf_postfixExpression() - pass - elif token in [Java9Parser.DEC]: - self.state = 2933 - self.postDecrementExpression_lf_postfixExpression() - pass - else: - raise NoViableAltException(self) - - self.state = 2938 - self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,336,self._ctx) - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PostIncrementExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def postfixExpression(self): - return self.getTypedRuleContext(Java9Parser.PostfixExpressionContext,0) - - - def INC(self): - return self.getToken(Java9Parser.INC, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_postIncrementExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPostIncrementExpression" ): - listener.enterPostIncrementExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPostIncrementExpression" ): - listener.exitPostIncrementExpression(self) - - - - - def postIncrementExpression(self): - - localctx = Java9Parser.PostIncrementExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 478, self.RULE_postIncrementExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2939 - self.postfixExpression() - self.state = 2940 - self.match(Java9Parser.INC) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PostIncrementExpression_lf_postfixExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def INC(self): - return self.getToken(Java9Parser.INC, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_postIncrementExpression_lf_postfixExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPostIncrementExpression_lf_postfixExpression" ): - listener.enterPostIncrementExpression_lf_postfixExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPostIncrementExpression_lf_postfixExpression" ): - listener.exitPostIncrementExpression_lf_postfixExpression(self) - - - - - def postIncrementExpression_lf_postfixExpression(self): - - localctx = Java9Parser.PostIncrementExpression_lf_postfixExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 480, self.RULE_postIncrementExpression_lf_postfixExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2942 - self.match(Java9Parser.INC) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PostDecrementExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def postfixExpression(self): - return self.getTypedRuleContext(Java9Parser.PostfixExpressionContext,0) - - - def DEC(self): - return self.getToken(Java9Parser.DEC, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_postDecrementExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPostDecrementExpression" ): - listener.enterPostDecrementExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPostDecrementExpression" ): - listener.exitPostDecrementExpression(self) - - - - - def postDecrementExpression(self): - - localctx = Java9Parser.PostDecrementExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 482, self.RULE_postDecrementExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2944 - self.postfixExpression() - self.state = 2945 - self.match(Java9Parser.DEC) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class PostDecrementExpression_lf_postfixExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def DEC(self): - return self.getToken(Java9Parser.DEC, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_postDecrementExpression_lf_postfixExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPostDecrementExpression_lf_postfixExpression" ): - listener.enterPostDecrementExpression_lf_postfixExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPostDecrementExpression_lf_postfixExpression" ): - listener.exitPostDecrementExpression_lf_postfixExpression(self) - - - - - def postDecrementExpression_lf_postfixExpression(self): - - localctx = Java9Parser.PostDecrementExpression_lf_postfixExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 484, self.RULE_postDecrementExpression_lf_postfixExpression) - try: - self.enterOuterAlt(localctx, 1) - self.state = 2947 - self.match(Java9Parser.DEC) - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class CastExpressionContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def LPAREN(self): - return self.getToken(Java9Parser.LPAREN, 0) - - def primitiveType(self): - return self.getTypedRuleContext(Java9Parser.PrimitiveTypeContext,0) - - - def RPAREN(self): - return self.getToken(Java9Parser.RPAREN, 0) - - def unaryExpression(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionContext,0) - - - def referenceType(self): - return self.getTypedRuleContext(Java9Parser.ReferenceTypeContext,0) - - - def unaryExpressionNotPlusMinus(self): - return self.getTypedRuleContext(Java9Parser.UnaryExpressionNotPlusMinusContext,0) - - - def additionalBound(self, i:int=None): - if i is None: - return self.getTypedRuleContexts(Java9Parser.AdditionalBoundContext) - else: - return self.getTypedRuleContext(Java9Parser.AdditionalBoundContext,i) - - - def lambdaExpression(self): - return self.getTypedRuleContext(Java9Parser.LambdaExpressionContext,0) - - - def getRuleIndex(self): - return Java9Parser.RULE_castExpression - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterCastExpression" ): - listener.enterCastExpression(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitCastExpression" ): - listener.exitCastExpression(self) - - - - - def castExpression(self): - - localctx = Java9Parser.CastExpressionContext(self, self._ctx, self.state) - self.enterRule(localctx, 486, self.RULE_castExpression) - self._la = 0 # Token type - try: - self.state = 2976 - self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,339,self._ctx) - if la_ == 1: - self.enterOuterAlt(localctx, 1) - self.state = 2949 - self.match(Java9Parser.LPAREN) - self.state = 2950 - self.primitiveType() - self.state = 2951 - self.match(Java9Parser.RPAREN) - self.state = 2952 - self.unaryExpression() - pass - - elif la_ == 2: - self.enterOuterAlt(localctx, 2) - self.state = 2954 - self.match(Java9Parser.LPAREN) - self.state = 2955 - self.referenceType() - self.state = 2959 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.BITAND: - self.state = 2956 - self.additionalBound() - self.state = 2961 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2962 - self.match(Java9Parser.RPAREN) - self.state = 2963 - self.unaryExpressionNotPlusMinus() - pass - - elif la_ == 3: - self.enterOuterAlt(localctx, 3) - self.state = 2965 - self.match(Java9Parser.LPAREN) - self.state = 2966 - self.referenceType() - self.state = 2970 - self._errHandler.sync(self) - _la = self._input.LA(1) - while _la==Java9Parser.BITAND: - self.state = 2967 - self.additionalBound() - self.state = 2972 - self._errHandler.sync(self) - _la = self._input.LA(1) - - self.state = 2973 - self.match(Java9Parser.RPAREN) - self.state = 2974 - self.lambdaExpression() - pass - - - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - class IdentifierContext(ParserRuleContext): - - def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): - super().__init__(parent, invokingState) - self.parser = parser - - def Identifier(self): - return self.getToken(Java9Parser.Identifier, 0) - - def TO(self): - return self.getToken(Java9Parser.TO, 0) - - def MODULE(self): - return self.getToken(Java9Parser.MODULE, 0) - - def OPEN(self): - return self.getToken(Java9Parser.OPEN, 0) - - def WITH(self): - return self.getToken(Java9Parser.WITH, 0) - - def PROVIDES(self): - return self.getToken(Java9Parser.PROVIDES, 0) - - def USES(self): - return self.getToken(Java9Parser.USES, 0) - - def OPERNS(self): - return self.getToken(Java9Parser.OPERNS, 0) - - def REQUIRES(self): - return self.getToken(Java9Parser.REQUIRES, 0) - - def EXPORTS(self): - return self.getToken(Java9Parser.EXPORTS, 0) - - def getRuleIndex(self): - return Java9Parser.RULE_identifier - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterIdentifier" ): - listener.enterIdentifier(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitIdentifier" ): - listener.exitIdentifier(self) - - - - - def identifier(self): - - localctx = Java9Parser.IdentifierContext(self, self._ctx, self.state) - self.enterRule(localctx, 488, self.RULE_identifier) - self._la = 0 # Token type - try: - self.enterOuterAlt(localctx, 1) - self.state = 2978 - _la = self._input.LA(1) - if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << Java9Parser.EXPORTS) | (1 << Java9Parser.MODULE) | (1 << Java9Parser.OPEN) | (1 << Java9Parser.OPERNS) | (1 << Java9Parser.PROVIDES) | (1 << Java9Parser.REQUIRES) | (1 << Java9Parser.TO) | (1 << Java9Parser.USES) | (1 << Java9Parser.WITH))) != 0) or _la==Java9Parser.Identifier): - self._errHandler.recoverInline(self) - else: - self._errHandler.reportMatch(self) - self.consume() - except RecognitionException as re: - localctx.exception = re - self._errHandler.reportError(self, re) - self._errHandler.recover(self, re) - finally: - self.exitRule() - return localctx - - - - def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): - if self._predicates == None: - self._predicates = dict() - self._predicates[25] = self.moduleName_sempred - self._predicates[26] = self.packageName_sempred - self._predicates[28] = self.packageOrTypeName_sempred - self._predicates[31] = self.ambiguousName_sempred - self._predicates[224] = self.conditionalOrExpression_sempred - self._predicates[225] = self.conditionalAndExpression_sempred - self._predicates[226] = self.inclusiveOrExpression_sempred - self._predicates[227] = self.exclusiveOrExpression_sempred - self._predicates[228] = self.andExpression_sempred - self._predicates[229] = self.equalityExpression_sempred - self._predicates[230] = self.relationalExpression_sempred - self._predicates[231] = self.shiftExpression_sempred - self._predicates[232] = self.additiveExpression_sempred - self._predicates[233] = self.multiplicativeExpression_sempred - pred = self._predicates.get(ruleIndex, None) - if pred is None: - raise Exception("No predicate with index:" + str(ruleIndex)) - else: - return pred(localctx, predIndex) - - def moduleName_sempred(self, localctx:ModuleNameContext, predIndex:int): - if predIndex == 0: - return self.precpred(self._ctx, 1) - - - def packageName_sempred(self, localctx:PackageNameContext, predIndex:int): - if predIndex == 1: - return self.precpred(self._ctx, 1) - - - def packageOrTypeName_sempred(self, localctx:PackageOrTypeNameContext, predIndex:int): - if predIndex == 2: - return self.precpred(self._ctx, 1) - - - def ambiguousName_sempred(self, localctx:AmbiguousNameContext, predIndex:int): - if predIndex == 3: - return self.precpred(self._ctx, 1) - - - def conditionalOrExpression_sempred(self, localctx:ConditionalOrExpressionContext, predIndex:int): - if predIndex == 4: - return self.precpred(self._ctx, 1) - - - def conditionalAndExpression_sempred(self, localctx:ConditionalAndExpressionContext, predIndex:int): - if predIndex == 5: - return self.precpred(self._ctx, 1) - - - def inclusiveOrExpression_sempred(self, localctx:InclusiveOrExpressionContext, predIndex:int): - if predIndex == 6: - return self.precpred(self._ctx, 1) - - - def exclusiveOrExpression_sempred(self, localctx:ExclusiveOrExpressionContext, predIndex:int): - if predIndex == 7: - return self.precpred(self._ctx, 1) - - - def andExpression_sempred(self, localctx:AndExpressionContext, predIndex:int): - if predIndex == 8: - return self.precpred(self._ctx, 1) - - - def equalityExpression_sempred(self, localctx:EqualityExpressionContext, predIndex:int): - if predIndex == 9: - return self.precpred(self._ctx, 2) - - - if predIndex == 10: - return self.precpred(self._ctx, 1) - - - def relationalExpression_sempred(self, localctx:RelationalExpressionContext, predIndex:int): - if predIndex == 11: - return self.precpred(self._ctx, 5) - - - if predIndex == 12: - return self.precpred(self._ctx, 4) - - - if predIndex == 13: - return self.precpred(self._ctx, 3) - - - if predIndex == 14: - return self.precpred(self._ctx, 2) - - - if predIndex == 15: - return self.precpred(self._ctx, 1) - - - def shiftExpression_sempred(self, localctx:ShiftExpressionContext, predIndex:int): - if predIndex == 16: - return self.precpred(self._ctx, 3) - - - if predIndex == 17: - return self.precpred(self._ctx, 2) - - - if predIndex == 18: - return self.precpred(self._ctx, 1) - - - def additiveExpression_sempred(self, localctx:AdditiveExpressionContext, predIndex:int): - if predIndex == 19: - return self.precpred(self._ctx, 2) - - - if predIndex == 20: - return self.precpred(self._ctx, 1) - - - def multiplicativeExpression_sempred(self, localctx:MultiplicativeExpressionContext, predIndex:int): - if predIndex == 21: - return self.precpred(self._ctx, 3) - - - if predIndex == 22: - return self.precpred(self._ctx, 2) - - - if predIndex == 23: - return self.precpred(self._ctx, 1) - - - - - diff --git a/java2python/lang/Java9Parser.tokens b/java2python/lang/Java9Parser.tokens deleted file mode 100644 index 9c8b31a..0000000 --- a/java2python/lang/Java9Parser.tokens +++ /dev/null @@ -1,227 +0,0 @@ -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 -EXPORTS=17 -EXTENDS=18 -FINAL=19 -FINALLY=20 -FLOAT=21 -FOR=22 -IF=23 -GOTO=24 -IMPLEMENTS=25 -IMPORT=26 -INSTANCEOF=27 -INT=28 -INTERFACE=29 -LONG=30 -MODULE=31 -NATIVE=32 -NEW=33 -OPEN=34 -OPERNS=35 -PACKAGE=36 -PRIVATE=37 -PROTECTED=38 -PROVIDES=39 -PUBLIC=40 -REQUIRES=41 -RETURN=42 -SHORT=43 -STATIC=44 -STRICTFP=45 -SUPER=46 -SWITCH=47 -SYNCHRONIZED=48 -THIS=49 -THROW=50 -THROWS=51 -TO=52 -TRANSIENT=53 -TRANSITIVE=54 -TRY=55 -USES=56 -VOID=57 -VOLATILE=58 -WHILE=59 -WITH=60 -UNDER_SCORE=61 -IntegerLiteral=62 -FloatingPointLiteral=63 -BooleanLiteral=64 -CharacterLiteral=65 -StringLiteral=66 -NullLiteral=67 -LPAREN=68 -RPAREN=69 -LBRACE=70 -RBRACE=71 -LBRACK=72 -RBRACK=73 -SEMI=74 -COMMA=75 -DOT=76 -ELLIPSIS=77 -AT=78 -COLONCOLON=79 -ASSIGN=80 -GT=81 -LT=82 -BANG=83 -TILDE=84 -QUESTION=85 -COLON=86 -ARROW=87 -EQUAL=88 -LE=89 -GE=90 -NOTEQUAL=91 -AND=92 -OR=93 -INC=94 -DEC=95 -ADD=96 -SUB=97 -MUL=98 -DIV=99 -BITAND=100 -BITOR=101 -CARET=102 -MOD=103 -ADD_ASSIGN=104 -SUB_ASSIGN=105 -MUL_ASSIGN=106 -DIV_ASSIGN=107 -AND_ASSIGN=108 -OR_ASSIGN=109 -XOR_ASSIGN=110 -MOD_ASSIGN=111 -LSHIFT_ASSIGN=112 -RSHIFT_ASSIGN=113 -URSHIFT_ASSIGN=114 -Identifier=115 -WS=116 -COMMENT=117 -LINE_COMMENT=118 -'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 -'exports'=17 -'extends'=18 -'final'=19 -'finally'=20 -'float'=21 -'for'=22 -'if'=23 -'goto'=24 -'implements'=25 -'import'=26 -'instanceof'=27 -'int'=28 -'interface'=29 -'long'=30 -'module'=31 -'native'=32 -'new'=33 -'open'=34 -'opens'=35 -'package'=36 -'private'=37 -'protected'=38 -'provides'=39 -'public'=40 -'requires'=41 -'return'=42 -'short'=43 -'static'=44 -'strictfp'=45 -'super'=46 -'switch'=47 -'synchronized'=48 -'this'=49 -'throw'=50 -'throws'=51 -'to'=52 -'transient'=53 -'transitive'=54 -'try'=55 -'uses'=56 -'void'=57 -'volatile'=58 -'while'=59 -'with'=60 -'_'=61 -'null'=67 -'('=68 -')'=69 -'{'=70 -'}'=71 -'['=72 -']'=73 -';'=74 -','=75 -'.'=76 -'...'=77 -'@'=78 -'::'=79 -'='=80 -'>'=81 -'<'=82 -'!'=83 -'~'=84 -'?'=85 -':'=86 -'->'=87 -'=='=88 -'<='=89 -'>='=90 -'!='=91 -'&&'=92 -'||'=93 -'++'=94 -'--'=95 -'+'=96 -'-'=97 -'*'=98 -'/'=99 -'&'=100 -'|'=101 -'^'=102 -'%'=103 -'+='=104 -'-='=105 -'*='=106 -'/='=107 -'&='=108 -'|='=109 -'^='=110 -'%='=111 -'<<='=112 -'>>='=113 -'>>>='=114 diff --git a/java2python/lang/Java9ParserListener.py b/java2python/lang/Java9ParserListener.py deleted file mode 100644 index ae0ea8b..0000000 --- a/java2python/lang/Java9ParserListener.py +++ /dev/null @@ -1,2215 +0,0 @@ -# Generated from Java9Parser.g4 by ANTLR 4.7.2 -from antlr4 import * -if __name__ is not None and "." in __name__: - from .Java9Parser import Java9Parser -else: - from Java9Parser import Java9Parser - -# This class defines a complete listener for a parse tree produced by Java9Parser. -class Java9ParserListener(ParseTreeListener): - - # Enter a parse tree produced by Java9Parser#literal. - def enterLiteral(self, ctx:Java9Parser.LiteralContext): - pass - - # Exit a parse tree produced by Java9Parser#literal. - def exitLiteral(self, ctx:Java9Parser.LiteralContext): - pass - - - # Enter a parse tree produced by Java9Parser#primitiveType. - def enterPrimitiveType(self, ctx:Java9Parser.PrimitiveTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#primitiveType. - def exitPrimitiveType(self, ctx:Java9Parser.PrimitiveTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#numericType. - def enterNumericType(self, ctx:Java9Parser.NumericTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#numericType. - def exitNumericType(self, ctx:Java9Parser.NumericTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#integralType. - def enterIntegralType(self, ctx:Java9Parser.IntegralTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#integralType. - def exitIntegralType(self, ctx:Java9Parser.IntegralTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#floatingPointType. - def enterFloatingPointType(self, ctx:Java9Parser.FloatingPointTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#floatingPointType. - def exitFloatingPointType(self, ctx:Java9Parser.FloatingPointTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#referenceType. - def enterReferenceType(self, ctx:Java9Parser.ReferenceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#referenceType. - def exitReferenceType(self, ctx:Java9Parser.ReferenceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#classOrInterfaceType. - def enterClassOrInterfaceType(self, ctx:Java9Parser.ClassOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#classOrInterfaceType. - def exitClassOrInterfaceType(self, ctx:Java9Parser.ClassOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#classType. - def enterClassType(self, ctx:Java9Parser.ClassTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#classType. - def exitClassType(self, ctx:Java9Parser.ClassTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#classType_lf_classOrInterfaceType. - def enterClassType_lf_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lf_classOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#classType_lf_classOrInterfaceType. - def exitClassType_lf_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lf_classOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#classType_lfno_classOrInterfaceType. - def enterClassType_lfno_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lfno_classOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#classType_lfno_classOrInterfaceType. - def exitClassType_lfno_classOrInterfaceType(self, ctx:Java9Parser.ClassType_lfno_classOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceType. - def enterInterfaceType(self, ctx:Java9Parser.InterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceType. - def exitInterfaceType(self, ctx:Java9Parser.InterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceType_lf_classOrInterfaceType. - def enterInterfaceType_lf_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceType_lf_classOrInterfaceType. - def exitInterfaceType_lf_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lf_classOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceType_lfno_classOrInterfaceType. - def enterInterfaceType_lfno_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceType_lfno_classOrInterfaceType. - def exitInterfaceType_lfno_classOrInterfaceType(self, ctx:Java9Parser.InterfaceType_lfno_classOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeVariable. - def enterTypeVariable(self, ctx:Java9Parser.TypeVariableContext): - pass - - # Exit a parse tree produced by Java9Parser#typeVariable. - def exitTypeVariable(self, ctx:Java9Parser.TypeVariableContext): - pass - - - # Enter a parse tree produced by Java9Parser#arrayType. - def enterArrayType(self, ctx:Java9Parser.ArrayTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#arrayType. - def exitArrayType(self, ctx:Java9Parser.ArrayTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#dims. - def enterDims(self, ctx:Java9Parser.DimsContext): - pass - - # Exit a parse tree produced by Java9Parser#dims. - def exitDims(self, ctx:Java9Parser.DimsContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeParameter. - def enterTypeParameter(self, ctx:Java9Parser.TypeParameterContext): - pass - - # Exit a parse tree produced by Java9Parser#typeParameter. - def exitTypeParameter(self, ctx:Java9Parser.TypeParameterContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeParameterModifier. - def enterTypeParameterModifier(self, ctx:Java9Parser.TypeParameterModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#typeParameterModifier. - def exitTypeParameterModifier(self, ctx:Java9Parser.TypeParameterModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeBound. - def enterTypeBound(self, ctx:Java9Parser.TypeBoundContext): - pass - - # Exit a parse tree produced by Java9Parser#typeBound. - def exitTypeBound(self, ctx:Java9Parser.TypeBoundContext): - pass - - - # Enter a parse tree produced by Java9Parser#additionalBound. - def enterAdditionalBound(self, ctx:Java9Parser.AdditionalBoundContext): - pass - - # Exit a parse tree produced by Java9Parser#additionalBound. - def exitAdditionalBound(self, ctx:Java9Parser.AdditionalBoundContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeArguments. - def enterTypeArguments(self, ctx:Java9Parser.TypeArgumentsContext): - pass - - # Exit a parse tree produced by Java9Parser#typeArguments. - def exitTypeArguments(self, ctx:Java9Parser.TypeArgumentsContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeArgumentList. - def enterTypeArgumentList(self, ctx:Java9Parser.TypeArgumentListContext): - pass - - # Exit a parse tree produced by Java9Parser#typeArgumentList. - def exitTypeArgumentList(self, ctx:Java9Parser.TypeArgumentListContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeArgument. - def enterTypeArgument(self, ctx:Java9Parser.TypeArgumentContext): - pass - - # Exit a parse tree produced by Java9Parser#typeArgument. - def exitTypeArgument(self, ctx:Java9Parser.TypeArgumentContext): - pass - - - # Enter a parse tree produced by Java9Parser#wildcard. - def enterWildcard(self, ctx:Java9Parser.WildcardContext): - pass - - # Exit a parse tree produced by Java9Parser#wildcard. - def exitWildcard(self, ctx:Java9Parser.WildcardContext): - pass - - - # Enter a parse tree produced by Java9Parser#wildcardBounds. - def enterWildcardBounds(self, ctx:Java9Parser.WildcardBoundsContext): - pass - - # Exit a parse tree produced by Java9Parser#wildcardBounds. - def exitWildcardBounds(self, ctx:Java9Parser.WildcardBoundsContext): - pass - - - # Enter a parse tree produced by Java9Parser#moduleName. - def enterModuleName(self, ctx:Java9Parser.ModuleNameContext): - pass - - # Exit a parse tree produced by Java9Parser#moduleName. - def exitModuleName(self, ctx:Java9Parser.ModuleNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#packageName. - def enterPackageName(self, ctx:Java9Parser.PackageNameContext): - pass - - # Exit a parse tree produced by Java9Parser#packageName. - def exitPackageName(self, ctx:Java9Parser.PackageNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeName. - def enterTypeName(self, ctx:Java9Parser.TypeNameContext): - pass - - # Exit a parse tree produced by Java9Parser#typeName. - def exitTypeName(self, ctx:Java9Parser.TypeNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#packageOrTypeName. - def enterPackageOrTypeName(self, ctx:Java9Parser.PackageOrTypeNameContext): - pass - - # Exit a parse tree produced by Java9Parser#packageOrTypeName. - def exitPackageOrTypeName(self, ctx:Java9Parser.PackageOrTypeNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#expressionName. - def enterExpressionName(self, ctx:Java9Parser.ExpressionNameContext): - pass - - # Exit a parse tree produced by Java9Parser#expressionName. - def exitExpressionName(self, ctx:Java9Parser.ExpressionNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodName. - def enterMethodName(self, ctx:Java9Parser.MethodNameContext): - pass - - # Exit a parse tree produced by Java9Parser#methodName. - def exitMethodName(self, ctx:Java9Parser.MethodNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#ambiguousName. - def enterAmbiguousName(self, ctx:Java9Parser.AmbiguousNameContext): - pass - - # Exit a parse tree produced by Java9Parser#ambiguousName. - def exitAmbiguousName(self, ctx:Java9Parser.AmbiguousNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#compilationUnit. - def enterCompilationUnit(self, ctx:Java9Parser.CompilationUnitContext): - pass - - # Exit a parse tree produced by Java9Parser#compilationUnit. - def exitCompilationUnit(self, ctx:Java9Parser.CompilationUnitContext): - pass - - - # Enter a parse tree produced by Java9Parser#ordinaryCompilation. - def enterOrdinaryCompilation(self, ctx:Java9Parser.OrdinaryCompilationContext): - pass - - # Exit a parse tree produced by Java9Parser#ordinaryCompilation. - def exitOrdinaryCompilation(self, ctx:Java9Parser.OrdinaryCompilationContext): - pass - - - # Enter a parse tree produced by Java9Parser#modularCompilation. - def enterModularCompilation(self, ctx:Java9Parser.ModularCompilationContext): - pass - - # Exit a parse tree produced by Java9Parser#modularCompilation. - def exitModularCompilation(self, ctx:Java9Parser.ModularCompilationContext): - pass - - - # Enter a parse tree produced by Java9Parser#packageDeclaration. - def enterPackageDeclaration(self, ctx:Java9Parser.PackageDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#packageDeclaration. - def exitPackageDeclaration(self, ctx:Java9Parser.PackageDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#packageModifier. - def enterPackageModifier(self, ctx:Java9Parser.PackageModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#packageModifier. - def exitPackageModifier(self, ctx:Java9Parser.PackageModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#importDeclaration. - def enterImportDeclaration(self, ctx:Java9Parser.ImportDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#importDeclaration. - def exitImportDeclaration(self, ctx:Java9Parser.ImportDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#singleTypeImportDeclaration. - def enterSingleTypeImportDeclaration(self, ctx:Java9Parser.SingleTypeImportDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#singleTypeImportDeclaration. - def exitSingleTypeImportDeclaration(self, ctx:Java9Parser.SingleTypeImportDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeImportOnDemandDeclaration. - def enterTypeImportOnDemandDeclaration(self, ctx:Java9Parser.TypeImportOnDemandDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#typeImportOnDemandDeclaration. - def exitTypeImportOnDemandDeclaration(self, ctx:Java9Parser.TypeImportOnDemandDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#singleStaticImportDeclaration. - def enterSingleStaticImportDeclaration(self, ctx:Java9Parser.SingleStaticImportDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#singleStaticImportDeclaration. - def exitSingleStaticImportDeclaration(self, ctx:Java9Parser.SingleStaticImportDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#staticImportOnDemandDeclaration. - def enterStaticImportOnDemandDeclaration(self, ctx:Java9Parser.StaticImportOnDemandDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#staticImportOnDemandDeclaration. - def exitStaticImportOnDemandDeclaration(self, ctx:Java9Parser.StaticImportOnDemandDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeDeclaration. - def enterTypeDeclaration(self, ctx:Java9Parser.TypeDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#typeDeclaration. - def exitTypeDeclaration(self, ctx:Java9Parser.TypeDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#moduleDeclaration. - def enterModuleDeclaration(self, ctx:Java9Parser.ModuleDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#moduleDeclaration. - def exitModuleDeclaration(self, ctx:Java9Parser.ModuleDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#moduleDirective. - def enterModuleDirective(self, ctx:Java9Parser.ModuleDirectiveContext): - pass - - # Exit a parse tree produced by Java9Parser#moduleDirective. - def exitModuleDirective(self, ctx:Java9Parser.ModuleDirectiveContext): - pass - - - # Enter a parse tree produced by Java9Parser#requiresModifier. - def enterRequiresModifier(self, ctx:Java9Parser.RequiresModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#requiresModifier. - def exitRequiresModifier(self, ctx:Java9Parser.RequiresModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#classDeclaration. - def enterClassDeclaration(self, ctx:Java9Parser.ClassDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#classDeclaration. - def exitClassDeclaration(self, ctx:Java9Parser.ClassDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#normalClassDeclaration. - def enterNormalClassDeclaration(self, ctx:Java9Parser.NormalClassDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#normalClassDeclaration. - def exitNormalClassDeclaration(self, ctx:Java9Parser.NormalClassDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#classModifier. - def enterClassModifier(self, ctx:Java9Parser.ClassModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#classModifier. - def exitClassModifier(self, ctx:Java9Parser.ClassModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeParameters. - def enterTypeParameters(self, ctx:Java9Parser.TypeParametersContext): - pass - - # Exit a parse tree produced by Java9Parser#typeParameters. - def exitTypeParameters(self, ctx:Java9Parser.TypeParametersContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeParameterList. - def enterTypeParameterList(self, ctx:Java9Parser.TypeParameterListContext): - pass - - # Exit a parse tree produced by Java9Parser#typeParameterList. - def exitTypeParameterList(self, ctx:Java9Parser.TypeParameterListContext): - pass - - - # Enter a parse tree produced by Java9Parser#superclass. - def enterSuperclass(self, ctx:Java9Parser.SuperclassContext): - pass - - # Exit a parse tree produced by Java9Parser#superclass. - def exitSuperclass(self, ctx:Java9Parser.SuperclassContext): - pass - - - # Enter a parse tree produced by Java9Parser#superinterfaces. - def enterSuperinterfaces(self, ctx:Java9Parser.SuperinterfacesContext): - pass - - # Exit a parse tree produced by Java9Parser#superinterfaces. - def exitSuperinterfaces(self, ctx:Java9Parser.SuperinterfacesContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceTypeList. - def enterInterfaceTypeList(self, ctx:Java9Parser.InterfaceTypeListContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceTypeList. - def exitInterfaceTypeList(self, ctx:Java9Parser.InterfaceTypeListContext): - pass - - - # Enter a parse tree produced by Java9Parser#classBody. - def enterClassBody(self, ctx:Java9Parser.ClassBodyContext): - pass - - # Exit a parse tree produced by Java9Parser#classBody. - def exitClassBody(self, ctx:Java9Parser.ClassBodyContext): - pass - - - # Enter a parse tree produced by Java9Parser#classBodyDeclaration. - def enterClassBodyDeclaration(self, ctx:Java9Parser.ClassBodyDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#classBodyDeclaration. - def exitClassBodyDeclaration(self, ctx:Java9Parser.ClassBodyDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#classMemberDeclaration. - def enterClassMemberDeclaration(self, ctx:Java9Parser.ClassMemberDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#classMemberDeclaration. - def exitClassMemberDeclaration(self, ctx:Java9Parser.ClassMemberDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#fieldDeclaration. - def enterFieldDeclaration(self, ctx:Java9Parser.FieldDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#fieldDeclaration. - def exitFieldDeclaration(self, ctx:Java9Parser.FieldDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#fieldModifier. - def enterFieldModifier(self, ctx:Java9Parser.FieldModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#fieldModifier. - def exitFieldModifier(self, ctx:Java9Parser.FieldModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#variableDeclaratorList. - def enterVariableDeclaratorList(self, ctx:Java9Parser.VariableDeclaratorListContext): - pass - - # Exit a parse tree produced by Java9Parser#variableDeclaratorList. - def exitVariableDeclaratorList(self, ctx:Java9Parser.VariableDeclaratorListContext): - pass - - - # Enter a parse tree produced by Java9Parser#variableDeclarator. - def enterVariableDeclarator(self, ctx:Java9Parser.VariableDeclaratorContext): - pass - - # Exit a parse tree produced by Java9Parser#variableDeclarator. - def exitVariableDeclarator(self, ctx:Java9Parser.VariableDeclaratorContext): - pass - - - # Enter a parse tree produced by Java9Parser#variableDeclaratorId. - def enterVariableDeclaratorId(self, ctx:Java9Parser.VariableDeclaratorIdContext): - pass - - # Exit a parse tree produced by Java9Parser#variableDeclaratorId. - def exitVariableDeclaratorId(self, ctx:Java9Parser.VariableDeclaratorIdContext): - pass - - - # Enter a parse tree produced by Java9Parser#variableInitializer. - def enterVariableInitializer(self, ctx:Java9Parser.VariableInitializerContext): - pass - - # Exit a parse tree produced by Java9Parser#variableInitializer. - def exitVariableInitializer(self, ctx:Java9Parser.VariableInitializerContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannType. - def enterUnannType(self, ctx:Java9Parser.UnannTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannType. - def exitUnannType(self, ctx:Java9Parser.UnannTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannPrimitiveType. - def enterUnannPrimitiveType(self, ctx:Java9Parser.UnannPrimitiveTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannPrimitiveType. - def exitUnannPrimitiveType(self, ctx:Java9Parser.UnannPrimitiveTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannReferenceType. - def enterUnannReferenceType(self, ctx:Java9Parser.UnannReferenceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannReferenceType. - def exitUnannReferenceType(self, ctx:Java9Parser.UnannReferenceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannClassOrInterfaceType. - def enterUnannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannClassOrInterfaceType. - def exitUnannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannClassType. - def enterUnannClassType(self, ctx:Java9Parser.UnannClassTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannClassType. - def exitUnannClassType(self, ctx:Java9Parser.UnannClassTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannClassType_lf_unannClassOrInterfaceType. - def enterUnannClassType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannClassType_lf_unannClassOrInterfaceType. - def exitUnannClassType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lf_unannClassOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannClassType_lfno_unannClassOrInterfaceType. - def enterUnannClassType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannClassType_lfno_unannClassOrInterfaceType. - def exitUnannClassType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannClassType_lfno_unannClassOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannInterfaceType. - def enterUnannInterfaceType(self, ctx:Java9Parser.UnannInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannInterfaceType. - def exitUnannInterfaceType(self, ctx:Java9Parser.UnannInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannInterfaceType_lf_unannClassOrInterfaceType. - def enterUnannInterfaceType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannInterfaceType_lf_unannClassOrInterfaceType. - def exitUnannInterfaceType_lf_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lf_unannClassOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannInterfaceType_lfno_unannClassOrInterfaceType. - def enterUnannInterfaceType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannInterfaceType_lfno_unannClassOrInterfaceType. - def exitUnannInterfaceType_lfno_unannClassOrInterfaceType(self, ctx:Java9Parser.UnannInterfaceType_lfno_unannClassOrInterfaceTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannTypeVariable. - def enterUnannTypeVariable(self, ctx:Java9Parser.UnannTypeVariableContext): - pass - - # Exit a parse tree produced by Java9Parser#unannTypeVariable. - def exitUnannTypeVariable(self, ctx:Java9Parser.UnannTypeVariableContext): - pass - - - # Enter a parse tree produced by Java9Parser#unannArrayType. - def enterUnannArrayType(self, ctx:Java9Parser.UnannArrayTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#unannArrayType. - def exitUnannArrayType(self, ctx:Java9Parser.UnannArrayTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodDeclaration. - def enterMethodDeclaration(self, ctx:Java9Parser.MethodDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#methodDeclaration. - def exitMethodDeclaration(self, ctx:Java9Parser.MethodDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodModifier. - def enterMethodModifier(self, ctx:Java9Parser.MethodModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#methodModifier. - def exitMethodModifier(self, ctx:Java9Parser.MethodModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodHeader. - def enterMethodHeader(self, ctx:Java9Parser.MethodHeaderContext): - pass - - # Exit a parse tree produced by Java9Parser#methodHeader. - def exitMethodHeader(self, ctx:Java9Parser.MethodHeaderContext): - pass - - - # Enter a parse tree produced by Java9Parser#result. - def enterResult(self, ctx:Java9Parser.ResultContext): - pass - - # Exit a parse tree produced by Java9Parser#result. - def exitResult(self, ctx:Java9Parser.ResultContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodDeclarator. - def enterMethodDeclarator(self, ctx:Java9Parser.MethodDeclaratorContext): - pass - - # Exit a parse tree produced by Java9Parser#methodDeclarator. - def exitMethodDeclarator(self, ctx:Java9Parser.MethodDeclaratorContext): - pass - - - # Enter a parse tree produced by Java9Parser#formalParameterList. - def enterFormalParameterList(self, ctx:Java9Parser.FormalParameterListContext): - pass - - # Exit a parse tree produced by Java9Parser#formalParameterList. - def exitFormalParameterList(self, ctx:Java9Parser.FormalParameterListContext): - pass - - - # Enter a parse tree produced by Java9Parser#formalParameters. - def enterFormalParameters(self, ctx:Java9Parser.FormalParametersContext): - pass - - # Exit a parse tree produced by Java9Parser#formalParameters. - def exitFormalParameters(self, ctx:Java9Parser.FormalParametersContext): - pass - - - # Enter a parse tree produced by Java9Parser#formalParameter. - def enterFormalParameter(self, ctx:Java9Parser.FormalParameterContext): - pass - - # Exit a parse tree produced by Java9Parser#formalParameter. - def exitFormalParameter(self, ctx:Java9Parser.FormalParameterContext): - pass - - - # Enter a parse tree produced by Java9Parser#variableModifier. - def enterVariableModifier(self, ctx:Java9Parser.VariableModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#variableModifier. - def exitVariableModifier(self, ctx:Java9Parser.VariableModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#lastFormalParameter. - def enterLastFormalParameter(self, ctx:Java9Parser.LastFormalParameterContext): - pass - - # Exit a parse tree produced by Java9Parser#lastFormalParameter. - def exitLastFormalParameter(self, ctx:Java9Parser.LastFormalParameterContext): - pass - - - # Enter a parse tree produced by Java9Parser#receiverParameter. - def enterReceiverParameter(self, ctx:Java9Parser.ReceiverParameterContext): - pass - - # Exit a parse tree produced by Java9Parser#receiverParameter. - def exitReceiverParameter(self, ctx:Java9Parser.ReceiverParameterContext): - pass - - - # Enter a parse tree produced by Java9Parser#throws_. - def enterThrows_(self, ctx:Java9Parser.Throws_Context): - pass - - # Exit a parse tree produced by Java9Parser#throws_. - def exitThrows_(self, ctx:Java9Parser.Throws_Context): - pass - - - # Enter a parse tree produced by Java9Parser#exceptionTypeList. - def enterExceptionTypeList(self, ctx:Java9Parser.ExceptionTypeListContext): - pass - - # Exit a parse tree produced by Java9Parser#exceptionTypeList. - def exitExceptionTypeList(self, ctx:Java9Parser.ExceptionTypeListContext): - pass - - - # Enter a parse tree produced by Java9Parser#exceptionType. - def enterExceptionType(self, ctx:Java9Parser.ExceptionTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#exceptionType. - def exitExceptionType(self, ctx:Java9Parser.ExceptionTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodBody. - def enterMethodBody(self, ctx:Java9Parser.MethodBodyContext): - pass - - # Exit a parse tree produced by Java9Parser#methodBody. - def exitMethodBody(self, ctx:Java9Parser.MethodBodyContext): - pass - - - # Enter a parse tree produced by Java9Parser#instanceInitializer. - def enterInstanceInitializer(self, ctx:Java9Parser.InstanceInitializerContext): - pass - - # Exit a parse tree produced by Java9Parser#instanceInitializer. - def exitInstanceInitializer(self, ctx:Java9Parser.InstanceInitializerContext): - pass - - - # Enter a parse tree produced by Java9Parser#staticInitializer. - def enterStaticInitializer(self, ctx:Java9Parser.StaticInitializerContext): - pass - - # Exit a parse tree produced by Java9Parser#staticInitializer. - def exitStaticInitializer(self, ctx:Java9Parser.StaticInitializerContext): - pass - - - # Enter a parse tree produced by Java9Parser#constructorDeclaration. - def enterConstructorDeclaration(self, ctx:Java9Parser.ConstructorDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#constructorDeclaration. - def exitConstructorDeclaration(self, ctx:Java9Parser.ConstructorDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#constructorModifier. - def enterConstructorModifier(self, ctx:Java9Parser.ConstructorModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#constructorModifier. - def exitConstructorModifier(self, ctx:Java9Parser.ConstructorModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#constructorDeclarator. - def enterConstructorDeclarator(self, ctx:Java9Parser.ConstructorDeclaratorContext): - pass - - # Exit a parse tree produced by Java9Parser#constructorDeclarator. - def exitConstructorDeclarator(self, ctx:Java9Parser.ConstructorDeclaratorContext): - pass - - - # Enter a parse tree produced by Java9Parser#simpleTypeName. - def enterSimpleTypeName(self, ctx:Java9Parser.SimpleTypeNameContext): - pass - - # Exit a parse tree produced by Java9Parser#simpleTypeName. - def exitSimpleTypeName(self, ctx:Java9Parser.SimpleTypeNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#constructorBody. - def enterConstructorBody(self, ctx:Java9Parser.ConstructorBodyContext): - pass - - # Exit a parse tree produced by Java9Parser#constructorBody. - def exitConstructorBody(self, ctx:Java9Parser.ConstructorBodyContext): - pass - - - # Enter a parse tree produced by Java9Parser#explicitConstructorInvocation. - def enterExplicitConstructorInvocation(self, ctx:Java9Parser.ExplicitConstructorInvocationContext): - pass - - # Exit a parse tree produced by Java9Parser#explicitConstructorInvocation. - def exitExplicitConstructorInvocation(self, ctx:Java9Parser.ExplicitConstructorInvocationContext): - pass - - - # Enter a parse tree produced by Java9Parser#enumDeclaration. - def enterEnumDeclaration(self, ctx:Java9Parser.EnumDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#enumDeclaration. - def exitEnumDeclaration(self, ctx:Java9Parser.EnumDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#enumBody. - def enterEnumBody(self, ctx:Java9Parser.EnumBodyContext): - pass - - # Exit a parse tree produced by Java9Parser#enumBody. - def exitEnumBody(self, ctx:Java9Parser.EnumBodyContext): - pass - - - # Enter a parse tree produced by Java9Parser#enumConstantList. - def enterEnumConstantList(self, ctx:Java9Parser.EnumConstantListContext): - pass - - # Exit a parse tree produced by Java9Parser#enumConstantList. - def exitEnumConstantList(self, ctx:Java9Parser.EnumConstantListContext): - pass - - - # Enter a parse tree produced by Java9Parser#enumConstant. - def enterEnumConstant(self, ctx:Java9Parser.EnumConstantContext): - pass - - # Exit a parse tree produced by Java9Parser#enumConstant. - def exitEnumConstant(self, ctx:Java9Parser.EnumConstantContext): - pass - - - # Enter a parse tree produced by Java9Parser#enumConstantModifier. - def enterEnumConstantModifier(self, ctx:Java9Parser.EnumConstantModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#enumConstantModifier. - def exitEnumConstantModifier(self, ctx:Java9Parser.EnumConstantModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#enumBodyDeclarations. - def enterEnumBodyDeclarations(self, ctx:Java9Parser.EnumBodyDeclarationsContext): - pass - - # Exit a parse tree produced by Java9Parser#enumBodyDeclarations. - def exitEnumBodyDeclarations(self, ctx:Java9Parser.EnumBodyDeclarationsContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceDeclaration. - def enterInterfaceDeclaration(self, ctx:Java9Parser.InterfaceDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceDeclaration. - def exitInterfaceDeclaration(self, ctx:Java9Parser.InterfaceDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#normalInterfaceDeclaration. - def enterNormalInterfaceDeclaration(self, ctx:Java9Parser.NormalInterfaceDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#normalInterfaceDeclaration. - def exitNormalInterfaceDeclaration(self, ctx:Java9Parser.NormalInterfaceDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceModifier. - def enterInterfaceModifier(self, ctx:Java9Parser.InterfaceModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceModifier. - def exitInterfaceModifier(self, ctx:Java9Parser.InterfaceModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#extendsInterfaces. - def enterExtendsInterfaces(self, ctx:Java9Parser.ExtendsInterfacesContext): - pass - - # Exit a parse tree produced by Java9Parser#extendsInterfaces. - def exitExtendsInterfaces(self, ctx:Java9Parser.ExtendsInterfacesContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceBody. - def enterInterfaceBody(self, ctx:Java9Parser.InterfaceBodyContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceBody. - def exitInterfaceBody(self, ctx:Java9Parser.InterfaceBodyContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceMemberDeclaration. - def enterInterfaceMemberDeclaration(self, ctx:Java9Parser.InterfaceMemberDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceMemberDeclaration. - def exitInterfaceMemberDeclaration(self, ctx:Java9Parser.InterfaceMemberDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#constantDeclaration. - def enterConstantDeclaration(self, ctx:Java9Parser.ConstantDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#constantDeclaration. - def exitConstantDeclaration(self, ctx:Java9Parser.ConstantDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#constantModifier. - def enterConstantModifier(self, ctx:Java9Parser.ConstantModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#constantModifier. - def exitConstantModifier(self, ctx:Java9Parser.ConstantModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceMethodDeclaration. - def enterInterfaceMethodDeclaration(self, ctx:Java9Parser.InterfaceMethodDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceMethodDeclaration. - def exitInterfaceMethodDeclaration(self, ctx:Java9Parser.InterfaceMethodDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#interfaceMethodModifier. - def enterInterfaceMethodModifier(self, ctx:Java9Parser.InterfaceMethodModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#interfaceMethodModifier. - def exitInterfaceMethodModifier(self, ctx:Java9Parser.InterfaceMethodModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#annotationTypeDeclaration. - def enterAnnotationTypeDeclaration(self, ctx:Java9Parser.AnnotationTypeDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#annotationTypeDeclaration. - def exitAnnotationTypeDeclaration(self, ctx:Java9Parser.AnnotationTypeDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#annotationTypeBody. - def enterAnnotationTypeBody(self, ctx:Java9Parser.AnnotationTypeBodyContext): - pass - - # Exit a parse tree produced by Java9Parser#annotationTypeBody. - def exitAnnotationTypeBody(self, ctx:Java9Parser.AnnotationTypeBodyContext): - pass - - - # Enter a parse tree produced by Java9Parser#annotationTypeMemberDeclaration. - def enterAnnotationTypeMemberDeclaration(self, ctx:Java9Parser.AnnotationTypeMemberDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#annotationTypeMemberDeclaration. - def exitAnnotationTypeMemberDeclaration(self, ctx:Java9Parser.AnnotationTypeMemberDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#annotationTypeElementDeclaration. - def enterAnnotationTypeElementDeclaration(self, ctx:Java9Parser.AnnotationTypeElementDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#annotationTypeElementDeclaration. - def exitAnnotationTypeElementDeclaration(self, ctx:Java9Parser.AnnotationTypeElementDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#annotationTypeElementModifier. - def enterAnnotationTypeElementModifier(self, ctx:Java9Parser.AnnotationTypeElementModifierContext): - pass - - # Exit a parse tree produced by Java9Parser#annotationTypeElementModifier. - def exitAnnotationTypeElementModifier(self, ctx:Java9Parser.AnnotationTypeElementModifierContext): - pass - - - # Enter a parse tree produced by Java9Parser#defaultValue. - def enterDefaultValue(self, ctx:Java9Parser.DefaultValueContext): - pass - - # Exit a parse tree produced by Java9Parser#defaultValue. - def exitDefaultValue(self, ctx:Java9Parser.DefaultValueContext): - pass - - - # Enter a parse tree produced by Java9Parser#annotation. - def enterAnnotation(self, ctx:Java9Parser.AnnotationContext): - pass - - # Exit a parse tree produced by Java9Parser#annotation. - def exitAnnotation(self, ctx:Java9Parser.AnnotationContext): - pass - - - # Enter a parse tree produced by Java9Parser#normalAnnotation. - def enterNormalAnnotation(self, ctx:Java9Parser.NormalAnnotationContext): - pass - - # Exit a parse tree produced by Java9Parser#normalAnnotation. - def exitNormalAnnotation(self, ctx:Java9Parser.NormalAnnotationContext): - pass - - - # Enter a parse tree produced by Java9Parser#elementValuePairList. - def enterElementValuePairList(self, ctx:Java9Parser.ElementValuePairListContext): - pass - - # Exit a parse tree produced by Java9Parser#elementValuePairList. - def exitElementValuePairList(self, ctx:Java9Parser.ElementValuePairListContext): - pass - - - # Enter a parse tree produced by Java9Parser#elementValuePair. - def enterElementValuePair(self, ctx:Java9Parser.ElementValuePairContext): - pass - - # Exit a parse tree produced by Java9Parser#elementValuePair. - def exitElementValuePair(self, ctx:Java9Parser.ElementValuePairContext): - pass - - - # Enter a parse tree produced by Java9Parser#elementValue. - def enterElementValue(self, ctx:Java9Parser.ElementValueContext): - pass - - # Exit a parse tree produced by Java9Parser#elementValue. - def exitElementValue(self, ctx:Java9Parser.ElementValueContext): - pass - - - # Enter a parse tree produced by Java9Parser#elementValueArrayInitializer. - def enterElementValueArrayInitializer(self, ctx:Java9Parser.ElementValueArrayInitializerContext): - pass - - # Exit a parse tree produced by Java9Parser#elementValueArrayInitializer. - def exitElementValueArrayInitializer(self, ctx:Java9Parser.ElementValueArrayInitializerContext): - pass - - - # Enter a parse tree produced by Java9Parser#elementValueList. - def enterElementValueList(self, ctx:Java9Parser.ElementValueListContext): - pass - - # Exit a parse tree produced by Java9Parser#elementValueList. - def exitElementValueList(self, ctx:Java9Parser.ElementValueListContext): - pass - - - # Enter a parse tree produced by Java9Parser#markerAnnotation. - def enterMarkerAnnotation(self, ctx:Java9Parser.MarkerAnnotationContext): - pass - - # Exit a parse tree produced by Java9Parser#markerAnnotation. - def exitMarkerAnnotation(self, ctx:Java9Parser.MarkerAnnotationContext): - pass - - - # Enter a parse tree produced by Java9Parser#singleElementAnnotation. - def enterSingleElementAnnotation(self, ctx:Java9Parser.SingleElementAnnotationContext): - pass - - # Exit a parse tree produced by Java9Parser#singleElementAnnotation. - def exitSingleElementAnnotation(self, ctx:Java9Parser.SingleElementAnnotationContext): - pass - - - # Enter a parse tree produced by Java9Parser#arrayInitializer. - def enterArrayInitializer(self, ctx:Java9Parser.ArrayInitializerContext): - pass - - # Exit a parse tree produced by Java9Parser#arrayInitializer. - def exitArrayInitializer(self, ctx:Java9Parser.ArrayInitializerContext): - pass - - - # Enter a parse tree produced by Java9Parser#variableInitializerList. - def enterVariableInitializerList(self, ctx:Java9Parser.VariableInitializerListContext): - pass - - # Exit a parse tree produced by Java9Parser#variableInitializerList. - def exitVariableInitializerList(self, ctx:Java9Parser.VariableInitializerListContext): - pass - - - # Enter a parse tree produced by Java9Parser#block. - def enterBlock(self, ctx:Java9Parser.BlockContext): - pass - - # Exit a parse tree produced by Java9Parser#block. - def exitBlock(self, ctx:Java9Parser.BlockContext): - pass - - - # Enter a parse tree produced by Java9Parser#blockStatements. - def enterBlockStatements(self, ctx:Java9Parser.BlockStatementsContext): - pass - - # Exit a parse tree produced by Java9Parser#blockStatements. - def exitBlockStatements(self, ctx:Java9Parser.BlockStatementsContext): - pass - - - # Enter a parse tree produced by Java9Parser#blockStatement. - def enterBlockStatement(self, ctx:Java9Parser.BlockStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#blockStatement. - def exitBlockStatement(self, ctx:Java9Parser.BlockStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#localVariableDeclarationStatement. - def enterLocalVariableDeclarationStatement(self, ctx:Java9Parser.LocalVariableDeclarationStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#localVariableDeclarationStatement. - def exitLocalVariableDeclarationStatement(self, ctx:Java9Parser.LocalVariableDeclarationStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#localVariableDeclaration. - def enterLocalVariableDeclaration(self, ctx:Java9Parser.LocalVariableDeclarationContext): - pass - - # Exit a parse tree produced by Java9Parser#localVariableDeclaration. - def exitLocalVariableDeclaration(self, ctx:Java9Parser.LocalVariableDeclarationContext): - pass - - - # Enter a parse tree produced by Java9Parser#statement. - def enterStatement(self, ctx:Java9Parser.StatementContext): - pass - - # Exit a parse tree produced by Java9Parser#statement. - def exitStatement(self, ctx:Java9Parser.StatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#statementNoShortIf. - def enterStatementNoShortIf(self, ctx:Java9Parser.StatementNoShortIfContext): - pass - - # Exit a parse tree produced by Java9Parser#statementNoShortIf. - def exitStatementNoShortIf(self, ctx:Java9Parser.StatementNoShortIfContext): - pass - - - # Enter a parse tree produced by Java9Parser#statementWithoutTrailingSubstatement. - def enterStatementWithoutTrailingSubstatement(self, ctx:Java9Parser.StatementWithoutTrailingSubstatementContext): - pass - - # Exit a parse tree produced by Java9Parser#statementWithoutTrailingSubstatement. - def exitStatementWithoutTrailingSubstatement(self, ctx:Java9Parser.StatementWithoutTrailingSubstatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#emptyStatement. - def enterEmptyStatement(self, ctx:Java9Parser.EmptyStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#emptyStatement. - def exitEmptyStatement(self, ctx:Java9Parser.EmptyStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#labeledStatement. - def enterLabeledStatement(self, ctx:Java9Parser.LabeledStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#labeledStatement. - def exitLabeledStatement(self, ctx:Java9Parser.LabeledStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#labeledStatementNoShortIf. - def enterLabeledStatementNoShortIf(self, ctx:Java9Parser.LabeledStatementNoShortIfContext): - pass - - # Exit a parse tree produced by Java9Parser#labeledStatementNoShortIf. - def exitLabeledStatementNoShortIf(self, ctx:Java9Parser.LabeledStatementNoShortIfContext): - pass - - - # Enter a parse tree produced by Java9Parser#expressionStatement. - def enterExpressionStatement(self, ctx:Java9Parser.ExpressionStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#expressionStatement. - def exitExpressionStatement(self, ctx:Java9Parser.ExpressionStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#statementExpression. - def enterStatementExpression(self, ctx:Java9Parser.StatementExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#statementExpression. - def exitStatementExpression(self, ctx:Java9Parser.StatementExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#ifThenStatement. - def enterIfThenStatement(self, ctx:Java9Parser.IfThenStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#ifThenStatement. - def exitIfThenStatement(self, ctx:Java9Parser.IfThenStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#ifThenElseStatement. - def enterIfThenElseStatement(self, ctx:Java9Parser.IfThenElseStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#ifThenElseStatement. - def exitIfThenElseStatement(self, ctx:Java9Parser.IfThenElseStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#ifThenElseStatementNoShortIf. - def enterIfThenElseStatementNoShortIf(self, ctx:Java9Parser.IfThenElseStatementNoShortIfContext): - pass - - # Exit a parse tree produced by Java9Parser#ifThenElseStatementNoShortIf. - def exitIfThenElseStatementNoShortIf(self, ctx:Java9Parser.IfThenElseStatementNoShortIfContext): - pass - - - # Enter a parse tree produced by Java9Parser#assertStatement. - def enterAssertStatement(self, ctx:Java9Parser.AssertStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#assertStatement. - def exitAssertStatement(self, ctx:Java9Parser.AssertStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#switchStatement. - def enterSwitchStatement(self, ctx:Java9Parser.SwitchStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#switchStatement. - def exitSwitchStatement(self, ctx:Java9Parser.SwitchStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#switchBlock. - def enterSwitchBlock(self, ctx:Java9Parser.SwitchBlockContext): - pass - - # Exit a parse tree produced by Java9Parser#switchBlock. - def exitSwitchBlock(self, ctx:Java9Parser.SwitchBlockContext): - pass - - - # Enter a parse tree produced by Java9Parser#switchBlockStatementGroup. - def enterSwitchBlockStatementGroup(self, ctx:Java9Parser.SwitchBlockStatementGroupContext): - pass - - # Exit a parse tree produced by Java9Parser#switchBlockStatementGroup. - def exitSwitchBlockStatementGroup(self, ctx:Java9Parser.SwitchBlockStatementGroupContext): - pass - - - # Enter a parse tree produced by Java9Parser#switchLabels. - def enterSwitchLabels(self, ctx:Java9Parser.SwitchLabelsContext): - pass - - # Exit a parse tree produced by Java9Parser#switchLabels. - def exitSwitchLabels(self, ctx:Java9Parser.SwitchLabelsContext): - pass - - - # Enter a parse tree produced by Java9Parser#switchLabel. - def enterSwitchLabel(self, ctx:Java9Parser.SwitchLabelContext): - pass - - # Exit a parse tree produced by Java9Parser#switchLabel. - def exitSwitchLabel(self, ctx:Java9Parser.SwitchLabelContext): - pass - - - # Enter a parse tree produced by Java9Parser#enumConstantName. - def enterEnumConstantName(self, ctx:Java9Parser.EnumConstantNameContext): - pass - - # Exit a parse tree produced by Java9Parser#enumConstantName. - def exitEnumConstantName(self, ctx:Java9Parser.EnumConstantNameContext): - pass - - - # Enter a parse tree produced by Java9Parser#whileStatement. - def enterWhileStatement(self, ctx:Java9Parser.WhileStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#whileStatement. - def exitWhileStatement(self, ctx:Java9Parser.WhileStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#whileStatementNoShortIf. - def enterWhileStatementNoShortIf(self, ctx:Java9Parser.WhileStatementNoShortIfContext): - pass - - # Exit a parse tree produced by Java9Parser#whileStatementNoShortIf. - def exitWhileStatementNoShortIf(self, ctx:Java9Parser.WhileStatementNoShortIfContext): - pass - - - # Enter a parse tree produced by Java9Parser#doStatement. - def enterDoStatement(self, ctx:Java9Parser.DoStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#doStatement. - def exitDoStatement(self, ctx:Java9Parser.DoStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#forStatement. - def enterForStatement(self, ctx:Java9Parser.ForStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#forStatement. - def exitForStatement(self, ctx:Java9Parser.ForStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#forStatementNoShortIf. - def enterForStatementNoShortIf(self, ctx:Java9Parser.ForStatementNoShortIfContext): - pass - - # Exit a parse tree produced by Java9Parser#forStatementNoShortIf. - def exitForStatementNoShortIf(self, ctx:Java9Parser.ForStatementNoShortIfContext): - pass - - - # Enter a parse tree produced by Java9Parser#basicForStatement. - def enterBasicForStatement(self, ctx:Java9Parser.BasicForStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#basicForStatement. - def exitBasicForStatement(self, ctx:Java9Parser.BasicForStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#basicForStatementNoShortIf. - def enterBasicForStatementNoShortIf(self, ctx:Java9Parser.BasicForStatementNoShortIfContext): - pass - - # Exit a parse tree produced by Java9Parser#basicForStatementNoShortIf. - def exitBasicForStatementNoShortIf(self, ctx:Java9Parser.BasicForStatementNoShortIfContext): - pass - - - # Enter a parse tree produced by Java9Parser#forInit. - def enterForInit(self, ctx:Java9Parser.ForInitContext): - pass - - # Exit a parse tree produced by Java9Parser#forInit. - def exitForInit(self, ctx:Java9Parser.ForInitContext): - pass - - - # Enter a parse tree produced by Java9Parser#forUpdate. - def enterForUpdate(self, ctx:Java9Parser.ForUpdateContext): - pass - - # Exit a parse tree produced by Java9Parser#forUpdate. - def exitForUpdate(self, ctx:Java9Parser.ForUpdateContext): - pass - - - # Enter a parse tree produced by Java9Parser#statementExpressionList. - def enterStatementExpressionList(self, ctx:Java9Parser.StatementExpressionListContext): - pass - - # Exit a parse tree produced by Java9Parser#statementExpressionList. - def exitStatementExpressionList(self, ctx:Java9Parser.StatementExpressionListContext): - pass - - - # Enter a parse tree produced by Java9Parser#enhancedForStatement. - def enterEnhancedForStatement(self, ctx:Java9Parser.EnhancedForStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#enhancedForStatement. - def exitEnhancedForStatement(self, ctx:Java9Parser.EnhancedForStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#enhancedForStatementNoShortIf. - def enterEnhancedForStatementNoShortIf(self, ctx:Java9Parser.EnhancedForStatementNoShortIfContext): - pass - - # Exit a parse tree produced by Java9Parser#enhancedForStatementNoShortIf. - def exitEnhancedForStatementNoShortIf(self, ctx:Java9Parser.EnhancedForStatementNoShortIfContext): - pass - - - # Enter a parse tree produced by Java9Parser#breakStatement. - def enterBreakStatement(self, ctx:Java9Parser.BreakStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#breakStatement. - def exitBreakStatement(self, ctx:Java9Parser.BreakStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#continueStatement. - def enterContinueStatement(self, ctx:Java9Parser.ContinueStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#continueStatement. - def exitContinueStatement(self, ctx:Java9Parser.ContinueStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#returnStatement. - def enterReturnStatement(self, ctx:Java9Parser.ReturnStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#returnStatement. - def exitReturnStatement(self, ctx:Java9Parser.ReturnStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#throwStatement. - def enterThrowStatement(self, ctx:Java9Parser.ThrowStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#throwStatement. - def exitThrowStatement(self, ctx:Java9Parser.ThrowStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#synchronizedStatement. - def enterSynchronizedStatement(self, ctx:Java9Parser.SynchronizedStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#synchronizedStatement. - def exitSynchronizedStatement(self, ctx:Java9Parser.SynchronizedStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#tryStatement. - def enterTryStatement(self, ctx:Java9Parser.TryStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#tryStatement. - def exitTryStatement(self, ctx:Java9Parser.TryStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#catches. - def enterCatches(self, ctx:Java9Parser.CatchesContext): - pass - - # Exit a parse tree produced by Java9Parser#catches. - def exitCatches(self, ctx:Java9Parser.CatchesContext): - pass - - - # Enter a parse tree produced by Java9Parser#catchClause. - def enterCatchClause(self, ctx:Java9Parser.CatchClauseContext): - pass - - # Exit a parse tree produced by Java9Parser#catchClause. - def exitCatchClause(self, ctx:Java9Parser.CatchClauseContext): - pass - - - # Enter a parse tree produced by Java9Parser#catchFormalParameter. - def enterCatchFormalParameter(self, ctx:Java9Parser.CatchFormalParameterContext): - pass - - # Exit a parse tree produced by Java9Parser#catchFormalParameter. - def exitCatchFormalParameter(self, ctx:Java9Parser.CatchFormalParameterContext): - pass - - - # Enter a parse tree produced by Java9Parser#catchType. - def enterCatchType(self, ctx:Java9Parser.CatchTypeContext): - pass - - # Exit a parse tree produced by Java9Parser#catchType. - def exitCatchType(self, ctx:Java9Parser.CatchTypeContext): - pass - - - # Enter a parse tree produced by Java9Parser#finally_. - def enterFinally_(self, ctx:Java9Parser.Finally_Context): - pass - - # Exit a parse tree produced by Java9Parser#finally_. - def exitFinally_(self, ctx:Java9Parser.Finally_Context): - pass - - - # Enter a parse tree produced by Java9Parser#tryWithResourcesStatement. - def enterTryWithResourcesStatement(self, ctx:Java9Parser.TryWithResourcesStatementContext): - pass - - # Exit a parse tree produced by Java9Parser#tryWithResourcesStatement. - def exitTryWithResourcesStatement(self, ctx:Java9Parser.TryWithResourcesStatementContext): - pass - - - # Enter a parse tree produced by Java9Parser#resourceSpecification. - def enterResourceSpecification(self, ctx:Java9Parser.ResourceSpecificationContext): - pass - - # Exit a parse tree produced by Java9Parser#resourceSpecification. - def exitResourceSpecification(self, ctx:Java9Parser.ResourceSpecificationContext): - pass - - - # Enter a parse tree produced by Java9Parser#resourceList. - def enterResourceList(self, ctx:Java9Parser.ResourceListContext): - pass - - # Exit a parse tree produced by Java9Parser#resourceList. - def exitResourceList(self, ctx:Java9Parser.ResourceListContext): - pass - - - # Enter a parse tree produced by Java9Parser#resource. - def enterResource(self, ctx:Java9Parser.ResourceContext): - pass - - # Exit a parse tree produced by Java9Parser#resource. - def exitResource(self, ctx:Java9Parser.ResourceContext): - pass - - - # Enter a parse tree produced by Java9Parser#variableAccess. - def enterVariableAccess(self, ctx:Java9Parser.VariableAccessContext): - pass - - # Exit a parse tree produced by Java9Parser#variableAccess. - def exitVariableAccess(self, ctx:Java9Parser.VariableAccessContext): - pass - - - # Enter a parse tree produced by Java9Parser#primary. - def enterPrimary(self, ctx:Java9Parser.PrimaryContext): - pass - - # Exit a parse tree produced by Java9Parser#primary. - def exitPrimary(self, ctx:Java9Parser.PrimaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray. - def enterPrimaryNoNewArray(self, ctx:Java9Parser.PrimaryNoNewArrayContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray. - def exitPrimaryNoNewArray(self, ctx:Java9Parser.PrimaryNoNewArrayContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_arrayAccess. - def enterPrimaryNoNewArray_lf_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_arrayAccess. - def exitPrimaryNoNewArray_lf_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lf_arrayAccessContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_arrayAccess. - def enterPrimaryNoNewArray_lfno_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_arrayAccess. - def exitPrimaryNoNewArray_lfno_arrayAccess(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_arrayAccessContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary. - def enterPrimaryNoNewArray_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary. - def exitPrimaryNoNewArray_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary. - def enterPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary. - def exitPrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lf_arrayAccess_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary. - def enterPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary. - def exitPrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lf_primary_lfno_arrayAccess_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary. - def enterPrimaryNoNewArray_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary. - def exitPrimaryNoNewArray_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary. - def enterPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary. - def exitPrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lf_arrayAccess_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary. - def enterPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#primaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary. - def exitPrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primary(self, ctx:Java9Parser.PrimaryNoNewArray_lfno_primary_lfno_arrayAccess_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#classLiteral. - def enterClassLiteral(self, ctx:Java9Parser.ClassLiteralContext): - pass - - # Exit a parse tree produced by Java9Parser#classLiteral. - def exitClassLiteral(self, ctx:Java9Parser.ClassLiteralContext): - pass - - - # Enter a parse tree produced by Java9Parser#classInstanceCreationExpression. - def enterClassInstanceCreationExpression(self, ctx:Java9Parser.ClassInstanceCreationExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#classInstanceCreationExpression. - def exitClassInstanceCreationExpression(self, ctx:Java9Parser.ClassInstanceCreationExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#classInstanceCreationExpression_lf_primary. - def enterClassInstanceCreationExpression_lf_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#classInstanceCreationExpression_lf_primary. - def exitClassInstanceCreationExpression_lf_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#classInstanceCreationExpression_lfno_primary. - def enterClassInstanceCreationExpression_lfno_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#classInstanceCreationExpression_lfno_primary. - def exitClassInstanceCreationExpression_lfno_primary(self, ctx:Java9Parser.ClassInstanceCreationExpression_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#typeArgumentsOrDiamond. - def enterTypeArgumentsOrDiamond(self, ctx:Java9Parser.TypeArgumentsOrDiamondContext): - pass - - # Exit a parse tree produced by Java9Parser#typeArgumentsOrDiamond. - def exitTypeArgumentsOrDiamond(self, ctx:Java9Parser.TypeArgumentsOrDiamondContext): - pass - - - # Enter a parse tree produced by Java9Parser#fieldAccess. - def enterFieldAccess(self, ctx:Java9Parser.FieldAccessContext): - pass - - # Exit a parse tree produced by Java9Parser#fieldAccess. - def exitFieldAccess(self, ctx:Java9Parser.FieldAccessContext): - pass - - - # Enter a parse tree produced by Java9Parser#fieldAccess_lf_primary. - def enterFieldAccess_lf_primary(self, ctx:Java9Parser.FieldAccess_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#fieldAccess_lf_primary. - def exitFieldAccess_lf_primary(self, ctx:Java9Parser.FieldAccess_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#fieldAccess_lfno_primary. - def enterFieldAccess_lfno_primary(self, ctx:Java9Parser.FieldAccess_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#fieldAccess_lfno_primary. - def exitFieldAccess_lfno_primary(self, ctx:Java9Parser.FieldAccess_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#arrayAccess. - def enterArrayAccess(self, ctx:Java9Parser.ArrayAccessContext): - pass - - # Exit a parse tree produced by Java9Parser#arrayAccess. - def exitArrayAccess(self, ctx:Java9Parser.ArrayAccessContext): - pass - - - # Enter a parse tree produced by Java9Parser#arrayAccess_lf_primary. - def enterArrayAccess_lf_primary(self, ctx:Java9Parser.ArrayAccess_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#arrayAccess_lf_primary. - def exitArrayAccess_lf_primary(self, ctx:Java9Parser.ArrayAccess_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#arrayAccess_lfno_primary. - def enterArrayAccess_lfno_primary(self, ctx:Java9Parser.ArrayAccess_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#arrayAccess_lfno_primary. - def exitArrayAccess_lfno_primary(self, ctx:Java9Parser.ArrayAccess_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodInvocation. - def enterMethodInvocation(self, ctx:Java9Parser.MethodInvocationContext): - pass - - # Exit a parse tree produced by Java9Parser#methodInvocation. - def exitMethodInvocation(self, ctx:Java9Parser.MethodInvocationContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodInvocation_lf_primary. - def enterMethodInvocation_lf_primary(self, ctx:Java9Parser.MethodInvocation_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#methodInvocation_lf_primary. - def exitMethodInvocation_lf_primary(self, ctx:Java9Parser.MethodInvocation_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodInvocation_lfno_primary. - def enterMethodInvocation_lfno_primary(self, ctx:Java9Parser.MethodInvocation_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#methodInvocation_lfno_primary. - def exitMethodInvocation_lfno_primary(self, ctx:Java9Parser.MethodInvocation_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#argumentList. - def enterArgumentList(self, ctx:Java9Parser.ArgumentListContext): - pass - - # Exit a parse tree produced by Java9Parser#argumentList. - def exitArgumentList(self, ctx:Java9Parser.ArgumentListContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodReference. - def enterMethodReference(self, ctx:Java9Parser.MethodReferenceContext): - pass - - # Exit a parse tree produced by Java9Parser#methodReference. - def exitMethodReference(self, ctx:Java9Parser.MethodReferenceContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodReference_lf_primary. - def enterMethodReference_lf_primary(self, ctx:Java9Parser.MethodReference_lf_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#methodReference_lf_primary. - def exitMethodReference_lf_primary(self, ctx:Java9Parser.MethodReference_lf_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#methodReference_lfno_primary. - def enterMethodReference_lfno_primary(self, ctx:Java9Parser.MethodReference_lfno_primaryContext): - pass - - # Exit a parse tree produced by Java9Parser#methodReference_lfno_primary. - def exitMethodReference_lfno_primary(self, ctx:Java9Parser.MethodReference_lfno_primaryContext): - pass - - - # Enter a parse tree produced by Java9Parser#arrayCreationExpression. - def enterArrayCreationExpression(self, ctx:Java9Parser.ArrayCreationExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#arrayCreationExpression. - def exitArrayCreationExpression(self, ctx:Java9Parser.ArrayCreationExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#dimExprs. - def enterDimExprs(self, ctx:Java9Parser.DimExprsContext): - pass - - # Exit a parse tree produced by Java9Parser#dimExprs. - def exitDimExprs(self, ctx:Java9Parser.DimExprsContext): - pass - - - # Enter a parse tree produced by Java9Parser#dimExpr. - def enterDimExpr(self, ctx:Java9Parser.DimExprContext): - pass - - # Exit a parse tree produced by Java9Parser#dimExpr. - def exitDimExpr(self, ctx:Java9Parser.DimExprContext): - pass - - - # Enter a parse tree produced by Java9Parser#constantExpression. - def enterConstantExpression(self, ctx:Java9Parser.ConstantExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#constantExpression. - def exitConstantExpression(self, ctx:Java9Parser.ConstantExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#expression. - def enterExpression(self, ctx:Java9Parser.ExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#expression. - def exitExpression(self, ctx:Java9Parser.ExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#lambdaExpression. - def enterLambdaExpression(self, ctx:Java9Parser.LambdaExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#lambdaExpression. - def exitLambdaExpression(self, ctx:Java9Parser.LambdaExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#lambdaParameters. - def enterLambdaParameters(self, ctx:Java9Parser.LambdaParametersContext): - pass - - # Exit a parse tree produced by Java9Parser#lambdaParameters. - def exitLambdaParameters(self, ctx:Java9Parser.LambdaParametersContext): - pass - - - # Enter a parse tree produced by Java9Parser#inferredFormalParameterList. - def enterInferredFormalParameterList(self, ctx:Java9Parser.InferredFormalParameterListContext): - pass - - # Exit a parse tree produced by Java9Parser#inferredFormalParameterList. - def exitInferredFormalParameterList(self, ctx:Java9Parser.InferredFormalParameterListContext): - pass - - - # Enter a parse tree produced by Java9Parser#lambdaBody. - def enterLambdaBody(self, ctx:Java9Parser.LambdaBodyContext): - pass - - # Exit a parse tree produced by Java9Parser#lambdaBody. - def exitLambdaBody(self, ctx:Java9Parser.LambdaBodyContext): - pass - - - # Enter a parse tree produced by Java9Parser#assignmentExpression. - def enterAssignmentExpression(self, ctx:Java9Parser.AssignmentExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#assignmentExpression. - def exitAssignmentExpression(self, ctx:Java9Parser.AssignmentExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#assignment. - def enterAssignment(self, ctx:Java9Parser.AssignmentContext): - pass - - # Exit a parse tree produced by Java9Parser#assignment. - def exitAssignment(self, ctx:Java9Parser.AssignmentContext): - pass - - - # Enter a parse tree produced by Java9Parser#leftHandSide. - def enterLeftHandSide(self, ctx:Java9Parser.LeftHandSideContext): - pass - - # Exit a parse tree produced by Java9Parser#leftHandSide. - def exitLeftHandSide(self, ctx:Java9Parser.LeftHandSideContext): - pass - - - # Enter a parse tree produced by Java9Parser#assignmentOperator. - def enterAssignmentOperator(self, ctx:Java9Parser.AssignmentOperatorContext): - pass - - # Exit a parse tree produced by Java9Parser#assignmentOperator. - def exitAssignmentOperator(self, ctx:Java9Parser.AssignmentOperatorContext): - pass - - - # Enter a parse tree produced by Java9Parser#conditionalExpression. - def enterConditionalExpression(self, ctx:Java9Parser.ConditionalExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#conditionalExpression. - def exitConditionalExpression(self, ctx:Java9Parser.ConditionalExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#conditionalOrExpression. - def enterConditionalOrExpression(self, ctx:Java9Parser.ConditionalOrExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#conditionalOrExpression. - def exitConditionalOrExpression(self, ctx:Java9Parser.ConditionalOrExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#conditionalAndExpression. - def enterConditionalAndExpression(self, ctx:Java9Parser.ConditionalAndExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#conditionalAndExpression. - def exitConditionalAndExpression(self, ctx:Java9Parser.ConditionalAndExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#inclusiveOrExpression. - def enterInclusiveOrExpression(self, ctx:Java9Parser.InclusiveOrExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#inclusiveOrExpression. - def exitInclusiveOrExpression(self, ctx:Java9Parser.InclusiveOrExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#exclusiveOrExpression. - def enterExclusiveOrExpression(self, ctx:Java9Parser.ExclusiveOrExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#exclusiveOrExpression. - def exitExclusiveOrExpression(self, ctx:Java9Parser.ExclusiveOrExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#andExpression. - def enterAndExpression(self, ctx:Java9Parser.AndExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#andExpression. - def exitAndExpression(self, ctx:Java9Parser.AndExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#equalityExpression. - def enterEqualityExpression(self, ctx:Java9Parser.EqualityExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#equalityExpression. - def exitEqualityExpression(self, ctx:Java9Parser.EqualityExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#relationalExpression. - def enterRelationalExpression(self, ctx:Java9Parser.RelationalExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#relationalExpression. - def exitRelationalExpression(self, ctx:Java9Parser.RelationalExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#shiftExpression. - def enterShiftExpression(self, ctx:Java9Parser.ShiftExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#shiftExpression. - def exitShiftExpression(self, ctx:Java9Parser.ShiftExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#additiveExpression. - def enterAdditiveExpression(self, ctx:Java9Parser.AdditiveExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#additiveExpression. - def exitAdditiveExpression(self, ctx:Java9Parser.AdditiveExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#multiplicativeExpression. - def enterMultiplicativeExpression(self, ctx:Java9Parser.MultiplicativeExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#multiplicativeExpression. - def exitMultiplicativeExpression(self, ctx:Java9Parser.MultiplicativeExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#unaryExpression. - def enterUnaryExpression(self, ctx:Java9Parser.UnaryExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#unaryExpression. - def exitUnaryExpression(self, ctx:Java9Parser.UnaryExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#preIncrementExpression. - def enterPreIncrementExpression(self, ctx:Java9Parser.PreIncrementExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#preIncrementExpression. - def exitPreIncrementExpression(self, ctx:Java9Parser.PreIncrementExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#preDecrementExpression. - def enterPreDecrementExpression(self, ctx:Java9Parser.PreDecrementExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#preDecrementExpression. - def exitPreDecrementExpression(self, ctx:Java9Parser.PreDecrementExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#unaryExpressionNotPlusMinus. - def enterUnaryExpressionNotPlusMinus(self, ctx:Java9Parser.UnaryExpressionNotPlusMinusContext): - pass - - # Exit a parse tree produced by Java9Parser#unaryExpressionNotPlusMinus. - def exitUnaryExpressionNotPlusMinus(self, ctx:Java9Parser.UnaryExpressionNotPlusMinusContext): - pass - - - # Enter a parse tree produced by Java9Parser#postfixExpression. - def enterPostfixExpression(self, ctx:Java9Parser.PostfixExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#postfixExpression. - def exitPostfixExpression(self, ctx:Java9Parser.PostfixExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#postIncrementExpression. - def enterPostIncrementExpression(self, ctx:Java9Parser.PostIncrementExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#postIncrementExpression. - def exitPostIncrementExpression(self, ctx:Java9Parser.PostIncrementExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#postIncrementExpression_lf_postfixExpression. - def enterPostIncrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostIncrementExpression_lf_postfixExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#postIncrementExpression_lf_postfixExpression. - def exitPostIncrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostIncrementExpression_lf_postfixExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#postDecrementExpression. - def enterPostDecrementExpression(self, ctx:Java9Parser.PostDecrementExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#postDecrementExpression. - def exitPostDecrementExpression(self, ctx:Java9Parser.PostDecrementExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#postDecrementExpression_lf_postfixExpression. - def enterPostDecrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostDecrementExpression_lf_postfixExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#postDecrementExpression_lf_postfixExpression. - def exitPostDecrementExpression_lf_postfixExpression(self, ctx:Java9Parser.PostDecrementExpression_lf_postfixExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#castExpression. - def enterCastExpression(self, ctx:Java9Parser.CastExpressionContext): - pass - - # Exit a parse tree produced by Java9Parser#castExpression. - def exitCastExpression(self, ctx:Java9Parser.CastExpressionContext): - pass - - - # Enter a parse tree produced by Java9Parser#identifier. - def enterIdentifier(self, ctx:Java9Parser.IdentifierContext): - pass - - # Exit a parse tree produced by Java9Parser#identifier. - def exitIdentifier(self, ctx:Java9Parser.IdentifierContext): - pass - - diff --git a/java2python/lang/JavaLexer.g4 b/java2python/lang/JavaLexer.g4 new file mode 100644 index 0000000..6919d23 --- /dev/null +++ b/java2python/lang/JavaLexer.g4 @@ -0,0 +1,211 @@ +/* + [The "BSD licence"] + Copyright (c) 2013 Terence Parr, Sam Harwell + Copyright (c) 2017 Ivan Kochurkin (upgrade to Java 8) + 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. +*/ + +lexer grammar JavaLexer; + +// 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'; + +// Literals + +DECIMAL_LITERAL: ('0' | [1-9] (Digits? | '_'+ Digits)) [lL]?; +HEX_LITERAL: '0' [xX] [0-9a-fA-F] ([0-9a-fA-F_]* [0-9a-fA-F])? [lL]?; +OCT_LITERAL: '0' '_'* [0-7] ([0-7_]* [0-7])? [lL]?; +BINARY_LITERAL: '0' [bB] [01] ([01_]* [01])? [lL]?; + +FLOAT_LITERAL: (Digits '.' Digits? | '.' Digits) ExponentPart? [fFdD]? + | Digits (ExponentPart [fFdD]? | [fFdD]) + ; + +HEX_FLOAT_LITERAL: '0' [xX] (HexDigits '.'? | HexDigits? '.' HexDigits) [pP] [+-]? Digits [fFdD]?; + +BOOL_LITERAL: 'true' + | 'false' + ; + +CHAR_LITERAL: '\'' (~['\\\r\n] | EscapeSequence) '\''; + +STRING_LITERAL: '"' (~["\\\r\n] | EscapeSequence)* '"'; + +NULL_LITERAL: 'null'; + +// Separators + +LPAREN: '('; +RPAREN: ')'; +LBRACE: '{'; +RBRACE: '}'; +LBRACK: '['; +RBRACK: ']'; +SEMI: ';'; +COMMA: ','; +DOT: '.'; + +// Operators + +ASSIGN: '='; +GT: '>'; +LT: '<'; +BANG: '!'; +TILDE: '~'; +QUESTION: '?'; +COLON: ':'; +EQUAL: '=='; +LE: '<='; +GE: '>='; +NOTEQUAL: '!='; +AND: '&&'; +OR: '||'; +INC: '++'; +DEC: '--'; +ADD: '+'; +SUB: '-'; +MUL: '*'; +DIV: '/'; +BITAND: '&'; +BITOR: '|'; +CARET: '^'; +MOD: '%'; + +ADD_ASSIGN: '+='; +SUB_ASSIGN: '-='; +MUL_ASSIGN: '*='; +DIV_ASSIGN: '/='; +AND_ASSIGN: '&='; +OR_ASSIGN: '|='; +XOR_ASSIGN: '^='; +MOD_ASSIGN: '%='; +LSHIFT_ASSIGN: '<<='; +RSHIFT_ASSIGN: '>>='; +URSHIFT_ASSIGN: '>>>='; + +// Java 8 tokens + +ARROW: '->'; +COLONCOLON: '::'; + +// Additional symbols not defined in the lexical specification + +AT: '@'; +ELLIPSIS: '...'; + +// Whitespace and comments + +WS: [ \t\r\n\u000C]+ -> channel(HIDDEN); +COMMENT: '/*' .*? '*/' -> channel(HIDDEN); +LINE_COMMENT: '//' ~[\r\n]* -> channel(HIDDEN); + +// Identifiers + +IDENTIFIER: Letter LetterOrDigit*; + +// Fragment rules + +fragment ExponentPart + : [eE] [+-]? Digits + ; + +fragment EscapeSequence + : '\\' [btnfr"'\\] + | '\\' ([0-3]? [0-7])? [0-7] + | '\\' 'u'+ HexDigit HexDigit HexDigit HexDigit + ; + +fragment HexDigits + : HexDigit ((HexDigit | '_')* HexDigit)? + ; + +fragment HexDigit + : [0-9a-fA-F] + ; + +fragment Digits + : [0-9] ([0-9_]* [0-9])? + ; + +fragment LetterOrDigit + : Letter + | [0-9] + ; + +fragment Letter + : [a-zA-Z$_] // these are the "java letters" below 0x7F + | ~[\u0000-\u007F\uD800-\uDBFF] // covers all characters above 0x7F which are not a surrogate + | [\uD800-\uDBFF] [\uDC00-\uDFFF] // covers UTF-16 surrogate pairs encodings for U+10000 to U+10FFFF + ; diff --git a/java2python/lang/JavaLexer.interp b/java2python/lang/JavaLexer.interp new file mode 100644 index 0000000..f4c75ca --- /dev/null +++ b/java2python/lang/JavaLexer.interp @@ -0,0 +1,357 @@ +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' +'(' +')' +'{' +'}' +'[' +']' +';' +',' +'.' +'=' +'>' +'<' +'!' +'~' +'?' +':' +'==' +'<=' +'>=' +'!=' +'&&' +'||' +'++' +'--' +'+' +'-' +'*' +'/' +'&' +'|' +'^' +'%' +'+=' +'-=' +'*=' +'/=' +'&=' +'|=' +'^=' +'%=' +'<<=' +'>>=' +'>>>=' +'->' +'::' +'@' +'...' +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 +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +NULL_LITERAL +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +ARROW +COLONCOLON +AT +ELLIPSIS +WS +COMMENT +LINE_COMMENT +IDENTIFIER + +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 +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +NULL_LITERAL +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +ARROW +COLONCOLON +AT +ELLIPSIS +WS +COMMENT +LINE_COMMENT +IDENTIFIER +ExponentPart +EscapeSequence +HexDigits +HexDigit +Digits +LetterOrDigit +Letter + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 113, 947, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 5, 52, 582, 10, 52, 3, 52, 6, 52, 585, 10, 52, 13, 52, 14, 52, 586, 3, 52, 5, 52, 590, 10, 52, 5, 52, 592, 10, 52, 3, 52, 5, 52, 595, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 7, 53, 601, 10, 53, 12, 53, 14, 53, 604, 11, 53, 3, 53, 5, 53, 607, 10, 53, 3, 53, 5, 53, 610, 10, 53, 3, 54, 3, 54, 7, 54, 614, 10, 54, 12, 54, 14, 54, 617, 11, 54, 3, 54, 3, 54, 7, 54, 621, 10, 54, 12, 54, 14, 54, 624, 11, 54, 3, 54, 5, 54, 627, 10, 54, 3, 54, 5, 54, 630, 10, 54, 3, 55, 3, 55, 3, 55, 3, 55, 7, 55, 636, 10, 55, 12, 55, 14, 55, 639, 11, 55, 3, 55, 5, 55, 642, 10, 55, 3, 55, 5, 55, 645, 10, 55, 3, 56, 3, 56, 3, 56, 5, 56, 650, 10, 56, 3, 56, 3, 56, 5, 56, 654, 10, 56, 3, 56, 5, 56, 657, 10, 56, 3, 56, 5, 56, 660, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 665, 10, 56, 3, 56, 5, 56, 668, 10, 56, 5, 56, 670, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 5, 57, 676, 10, 57, 3, 57, 5, 57, 679, 10, 57, 3, 57, 3, 57, 5, 57, 683, 10, 57, 3, 57, 3, 57, 5, 57, 687, 10, 57, 3, 57, 3, 57, 5, 57, 691, 10, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 5, 58, 702, 10, 58, 3, 59, 3, 59, 3, 59, 5, 59, 707, 10, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 7, 60, 714, 10, 60, 12, 60, 14, 60, 717, 11, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 65, 3, 65, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 87, 3, 87, 3, 88, 3, 88, 3, 89, 3, 89, 3, 90, 3, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 6, 109, 848, 10, 109, 13, 109, 14, 109, 849, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 7, 110, 858, 10, 110, 12, 110, 14, 110, 861, 11, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 7, 111, 872, 10, 111, 12, 111, 14, 111, 875, 11, 111, 3, 111, 3, 111, 3, 112, 3, 112, 7, 112, 881, 10, 112, 12, 112, 14, 112, 884, 11, 112, 3, 113, 3, 113, 5, 113, 888, 10, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 5, 114, 896, 10, 114, 3, 114, 5, 114, 899, 10, 114, 3, 114, 3, 114, 3, 114, 6, 114, 904, 10, 114, 13, 114, 14, 114, 905, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 5, 114, 913, 10, 114, 3, 115, 3, 115, 3, 115, 7, 115, 918, 10, 115, 12, 115, 14, 115, 921, 11, 115, 3, 115, 5, 115, 924, 10, 115, 3, 116, 3, 116, 3, 117, 3, 117, 7, 117, 930, 10, 117, 12, 117, 14, 117, 933, 11, 117, 3, 117, 5, 117, 936, 10, 117, 3, 118, 3, 118, 5, 118, 940, 10, 118, 3, 119, 3, 119, 3, 119, 3, 119, 5, 119, 946, 10, 119, 3, 859, 2, 120, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 2, 227, 2, 229, 2, 231, 2, 233, 2, 235, 2, 237, 2, 3, 2, 28, 3, 2, 51, 59, 4, 2, 78, 78, 110, 110, 4, 2, 90, 90, 122, 122, 5, 2, 50, 59, 67, 72, 99, 104, 6, 2, 50, 59, 67, 72, 97, 97, 99, 104, 3, 2, 50, 57, 4, 2, 50, 57, 97, 97, 4, 2, 68, 68, 100, 100, 3, 2, 50, 51, 4, 2, 50, 51, 97, 97, 6, 2, 70, 70, 72, 72, 102, 102, 104, 104, 4, 2, 82, 82, 114, 114, 4, 2, 45, 45, 47, 47, 6, 2, 12, 12, 15, 15, 41, 41, 94, 94, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 5, 2, 11, 12, 14, 15, 34, 34, 4, 2, 12, 12, 15, 15, 4, 2, 71, 71, 103, 103, 10, 2, 36, 36, 41, 41, 94, 94, 100, 100, 104, 104, 112, 112, 116, 116, 118, 118, 3, 2, 50, 53, 3, 2, 50, 59, 4, 2, 50, 59, 97, 97, 6, 2, 38, 38, 67, 92, 97, 97, 99, 124, 4, 2, 2, 129, 55298, 56321, 3, 2, 55298, 56321, 3, 2, 56322, 57345, 2, 988, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 3, 239, 3, 2, 2, 2, 5, 248, 3, 2, 2, 2, 7, 255, 3, 2, 2, 2, 9, 263, 3, 2, 2, 2, 11, 269, 3, 2, 2, 2, 13, 274, 3, 2, 2, 2, 15, 279, 3, 2, 2, 2, 17, 285, 3, 2, 2, 2, 19, 290, 3, 2, 2, 2, 21, 296, 3, 2, 2, 2, 23, 302, 3, 2, 2, 2, 25, 311, 3, 2, 2, 2, 27, 319, 3, 2, 2, 2, 29, 322, 3, 2, 2, 2, 31, 329, 3, 2, 2, 2, 33, 334, 3, 2, 2, 2, 35, 339, 3, 2, 2, 2, 37, 347, 3, 2, 2, 2, 39, 353, 3, 2, 2, 2, 41, 361, 3, 2, 2, 2, 43, 367, 3, 2, 2, 2, 45, 371, 3, 2, 2, 2, 47, 374, 3, 2, 2, 2, 49, 379, 3, 2, 2, 2, 51, 390, 3, 2, 2, 2, 53, 397, 3, 2, 2, 2, 55, 408, 3, 2, 2, 2, 57, 412, 3, 2, 2, 2, 59, 422, 3, 2, 2, 2, 61, 427, 3, 2, 2, 2, 63, 434, 3, 2, 2, 2, 65, 438, 3, 2, 2, 2, 67, 446, 3, 2, 2, 2, 69, 454, 3, 2, 2, 2, 71, 464, 3, 2, 2, 2, 73, 471, 3, 2, 2, 2, 75, 478, 3, 2, 2, 2, 77, 484, 3, 2, 2, 2, 79, 491, 3, 2, 2, 2, 81, 500, 3, 2, 2, 2, 83, 506, 3, 2, 2, 2, 85, 513, 3, 2, 2, 2, 87, 526, 3, 2, 2, 2, 89, 531, 3, 2, 2, 2, 91, 537, 3, 2, 2, 2, 93, 544, 3, 2, 2, 2, 95, 554, 3, 2, 2, 2, 97, 558, 3, 2, 2, 2, 99, 563, 3, 2, 2, 2, 101, 572, 3, 2, 2, 2, 103, 591, 3, 2, 2, 2, 105, 596, 3, 2, 2, 2, 107, 611, 3, 2, 2, 2, 109, 631, 3, 2, 2, 2, 111, 669, 3, 2, 2, 2, 113, 671, 3, 2, 2, 2, 115, 701, 3, 2, 2, 2, 117, 703, 3, 2, 2, 2, 119, 710, 3, 2, 2, 2, 121, 720, 3, 2, 2, 2, 123, 725, 3, 2, 2, 2, 125, 727, 3, 2, 2, 2, 127, 729, 3, 2, 2, 2, 129, 731, 3, 2, 2, 2, 131, 733, 3, 2, 2, 2, 133, 735, 3, 2, 2, 2, 135, 737, 3, 2, 2, 2, 137, 739, 3, 2, 2, 2, 139, 741, 3, 2, 2, 2, 141, 743, 3, 2, 2, 2, 143, 745, 3, 2, 2, 2, 145, 747, 3, 2, 2, 2, 147, 749, 3, 2, 2, 2, 149, 751, 3, 2, 2, 2, 151, 753, 3, 2, 2, 2, 153, 755, 3, 2, 2, 2, 155, 757, 3, 2, 2, 2, 157, 760, 3, 2, 2, 2, 159, 763, 3, 2, 2, 2, 161, 766, 3, 2, 2, 2, 163, 769, 3, 2, 2, 2, 165, 772, 3, 2, 2, 2, 167, 775, 3, 2, 2, 2, 169, 778, 3, 2, 2, 2, 171, 781, 3, 2, 2, 2, 173, 783, 3, 2, 2, 2, 175, 785, 3, 2, 2, 2, 177, 787, 3, 2, 2, 2, 179, 789, 3, 2, 2, 2, 181, 791, 3, 2, 2, 2, 183, 793, 3, 2, 2, 2, 185, 795, 3, 2, 2, 2, 187, 797, 3, 2, 2, 2, 189, 800, 3, 2, 2, 2, 191, 803, 3, 2, 2, 2, 193, 806, 3, 2, 2, 2, 195, 809, 3, 2, 2, 2, 197, 812, 3, 2, 2, 2, 199, 815, 3, 2, 2, 2, 201, 818, 3, 2, 2, 2, 203, 821, 3, 2, 2, 2, 205, 825, 3, 2, 2, 2, 207, 829, 3, 2, 2, 2, 209, 834, 3, 2, 2, 2, 211, 837, 3, 2, 2, 2, 213, 840, 3, 2, 2, 2, 215, 842, 3, 2, 2, 2, 217, 847, 3, 2, 2, 2, 219, 853, 3, 2, 2, 2, 221, 867, 3, 2, 2, 2, 223, 878, 3, 2, 2, 2, 225, 885, 3, 2, 2, 2, 227, 912, 3, 2, 2, 2, 229, 914, 3, 2, 2, 2, 231, 925, 3, 2, 2, 2, 233, 927, 3, 2, 2, 2, 235, 939, 3, 2, 2, 2, 237, 945, 3, 2, 2, 2, 239, 240, 7, 99, 2, 2, 240, 241, 7, 100, 2, 2, 241, 242, 7, 117, 2, 2, 242, 243, 7, 118, 2, 2, 243, 244, 7, 116, 2, 2, 244, 245, 7, 99, 2, 2, 245, 246, 7, 101, 2, 2, 246, 247, 7, 118, 2, 2, 247, 4, 3, 2, 2, 2, 248, 249, 7, 99, 2, 2, 249, 250, 7, 117, 2, 2, 250, 251, 7, 117, 2, 2, 251, 252, 7, 103, 2, 2, 252, 253, 7, 116, 2, 2, 253, 254, 7, 118, 2, 2, 254, 6, 3, 2, 2, 2, 255, 256, 7, 100, 2, 2, 256, 257, 7, 113, 2, 2, 257, 258, 7, 113, 2, 2, 258, 259, 7, 110, 2, 2, 259, 260, 7, 103, 2, 2, 260, 261, 7, 99, 2, 2, 261, 262, 7, 112, 2, 2, 262, 8, 3, 2, 2, 2, 263, 264, 7, 100, 2, 2, 264, 265, 7, 116, 2, 2, 265, 266, 7, 103, 2, 2, 266, 267, 7, 99, 2, 2, 267, 268, 7, 109, 2, 2, 268, 10, 3, 2, 2, 2, 269, 270, 7, 100, 2, 2, 270, 271, 7, 123, 2, 2, 271, 272, 7, 118, 2, 2, 272, 273, 7, 103, 2, 2, 273, 12, 3, 2, 2, 2, 274, 275, 7, 101, 2, 2, 275, 276, 7, 99, 2, 2, 276, 277, 7, 117, 2, 2, 277, 278, 7, 103, 2, 2, 278, 14, 3, 2, 2, 2, 279, 280, 7, 101, 2, 2, 280, 281, 7, 99, 2, 2, 281, 282, 7, 118, 2, 2, 282, 283, 7, 101, 2, 2, 283, 284, 7, 106, 2, 2, 284, 16, 3, 2, 2, 2, 285, 286, 7, 101, 2, 2, 286, 287, 7, 106, 2, 2, 287, 288, 7, 99, 2, 2, 288, 289, 7, 116, 2, 2, 289, 18, 3, 2, 2, 2, 290, 291, 7, 101, 2, 2, 291, 292, 7, 110, 2, 2, 292, 293, 7, 99, 2, 2, 293, 294, 7, 117, 2, 2, 294, 295, 7, 117, 2, 2, 295, 20, 3, 2, 2, 2, 296, 297, 7, 101, 2, 2, 297, 298, 7, 113, 2, 2, 298, 299, 7, 112, 2, 2, 299, 300, 7, 117, 2, 2, 300, 301, 7, 118, 2, 2, 301, 22, 3, 2, 2, 2, 302, 303, 7, 101, 2, 2, 303, 304, 7, 113, 2, 2, 304, 305, 7, 112, 2, 2, 305, 306, 7, 118, 2, 2, 306, 307, 7, 107, 2, 2, 307, 308, 7, 112, 2, 2, 308, 309, 7, 119, 2, 2, 309, 310, 7, 103, 2, 2, 310, 24, 3, 2, 2, 2, 311, 312, 7, 102, 2, 2, 312, 313, 7, 103, 2, 2, 313, 314, 7, 104, 2, 2, 314, 315, 7, 99, 2, 2, 315, 316, 7, 119, 2, 2, 316, 317, 7, 110, 2, 2, 317, 318, 7, 118, 2, 2, 318, 26, 3, 2, 2, 2, 319, 320, 7, 102, 2, 2, 320, 321, 7, 113, 2, 2, 321, 28, 3, 2, 2, 2, 322, 323, 7, 102, 2, 2, 323, 324, 7, 113, 2, 2, 324, 325, 7, 119, 2, 2, 325, 326, 7, 100, 2, 2, 326, 327, 7, 110, 2, 2, 327, 328, 7, 103, 2, 2, 328, 30, 3, 2, 2, 2, 329, 330, 7, 103, 2, 2, 330, 331, 7, 110, 2, 2, 331, 332, 7, 117, 2, 2, 332, 333, 7, 103, 2, 2, 333, 32, 3, 2, 2, 2, 334, 335, 7, 103, 2, 2, 335, 336, 7, 112, 2, 2, 336, 337, 7, 119, 2, 2, 337, 338, 7, 111, 2, 2, 338, 34, 3, 2, 2, 2, 339, 340, 7, 103, 2, 2, 340, 341, 7, 122, 2, 2, 341, 342, 7, 118, 2, 2, 342, 343, 7, 103, 2, 2, 343, 344, 7, 112, 2, 2, 344, 345, 7, 102, 2, 2, 345, 346, 7, 117, 2, 2, 346, 36, 3, 2, 2, 2, 347, 348, 7, 104, 2, 2, 348, 349, 7, 107, 2, 2, 349, 350, 7, 112, 2, 2, 350, 351, 7, 99, 2, 2, 351, 352, 7, 110, 2, 2, 352, 38, 3, 2, 2, 2, 353, 354, 7, 104, 2, 2, 354, 355, 7, 107, 2, 2, 355, 356, 7, 112, 2, 2, 356, 357, 7, 99, 2, 2, 357, 358, 7, 110, 2, 2, 358, 359, 7, 110, 2, 2, 359, 360, 7, 123, 2, 2, 360, 40, 3, 2, 2, 2, 361, 362, 7, 104, 2, 2, 362, 363, 7, 110, 2, 2, 363, 364, 7, 113, 2, 2, 364, 365, 7, 99, 2, 2, 365, 366, 7, 118, 2, 2, 366, 42, 3, 2, 2, 2, 367, 368, 7, 104, 2, 2, 368, 369, 7, 113, 2, 2, 369, 370, 7, 116, 2, 2, 370, 44, 3, 2, 2, 2, 371, 372, 7, 107, 2, 2, 372, 373, 7, 104, 2, 2, 373, 46, 3, 2, 2, 2, 374, 375, 7, 105, 2, 2, 375, 376, 7, 113, 2, 2, 376, 377, 7, 118, 2, 2, 377, 378, 7, 113, 2, 2, 378, 48, 3, 2, 2, 2, 379, 380, 7, 107, 2, 2, 380, 381, 7, 111, 2, 2, 381, 382, 7, 114, 2, 2, 382, 383, 7, 110, 2, 2, 383, 384, 7, 103, 2, 2, 384, 385, 7, 111, 2, 2, 385, 386, 7, 103, 2, 2, 386, 387, 7, 112, 2, 2, 387, 388, 7, 118, 2, 2, 388, 389, 7, 117, 2, 2, 389, 50, 3, 2, 2, 2, 390, 391, 7, 107, 2, 2, 391, 392, 7, 111, 2, 2, 392, 393, 7, 114, 2, 2, 393, 394, 7, 113, 2, 2, 394, 395, 7, 116, 2, 2, 395, 396, 7, 118, 2, 2, 396, 52, 3, 2, 2, 2, 397, 398, 7, 107, 2, 2, 398, 399, 7, 112, 2, 2, 399, 400, 7, 117, 2, 2, 400, 401, 7, 118, 2, 2, 401, 402, 7, 99, 2, 2, 402, 403, 7, 112, 2, 2, 403, 404, 7, 101, 2, 2, 404, 405, 7, 103, 2, 2, 405, 406, 7, 113, 2, 2, 406, 407, 7, 104, 2, 2, 407, 54, 3, 2, 2, 2, 408, 409, 7, 107, 2, 2, 409, 410, 7, 112, 2, 2, 410, 411, 7, 118, 2, 2, 411, 56, 3, 2, 2, 2, 412, 413, 7, 107, 2, 2, 413, 414, 7, 112, 2, 2, 414, 415, 7, 118, 2, 2, 415, 416, 7, 103, 2, 2, 416, 417, 7, 116, 2, 2, 417, 418, 7, 104, 2, 2, 418, 419, 7, 99, 2, 2, 419, 420, 7, 101, 2, 2, 420, 421, 7, 103, 2, 2, 421, 58, 3, 2, 2, 2, 422, 423, 7, 110, 2, 2, 423, 424, 7, 113, 2, 2, 424, 425, 7, 112, 2, 2, 425, 426, 7, 105, 2, 2, 426, 60, 3, 2, 2, 2, 427, 428, 7, 112, 2, 2, 428, 429, 7, 99, 2, 2, 429, 430, 7, 118, 2, 2, 430, 431, 7, 107, 2, 2, 431, 432, 7, 120, 2, 2, 432, 433, 7, 103, 2, 2, 433, 62, 3, 2, 2, 2, 434, 435, 7, 112, 2, 2, 435, 436, 7, 103, 2, 2, 436, 437, 7, 121, 2, 2, 437, 64, 3, 2, 2, 2, 438, 439, 7, 114, 2, 2, 439, 440, 7, 99, 2, 2, 440, 441, 7, 101, 2, 2, 441, 442, 7, 109, 2, 2, 442, 443, 7, 99, 2, 2, 443, 444, 7, 105, 2, 2, 444, 445, 7, 103, 2, 2, 445, 66, 3, 2, 2, 2, 446, 447, 7, 114, 2, 2, 447, 448, 7, 116, 2, 2, 448, 449, 7, 107, 2, 2, 449, 450, 7, 120, 2, 2, 450, 451, 7, 99, 2, 2, 451, 452, 7, 118, 2, 2, 452, 453, 7, 103, 2, 2, 453, 68, 3, 2, 2, 2, 454, 455, 7, 114, 2, 2, 455, 456, 7, 116, 2, 2, 456, 457, 7, 113, 2, 2, 457, 458, 7, 118, 2, 2, 458, 459, 7, 103, 2, 2, 459, 460, 7, 101, 2, 2, 460, 461, 7, 118, 2, 2, 461, 462, 7, 103, 2, 2, 462, 463, 7, 102, 2, 2, 463, 70, 3, 2, 2, 2, 464, 465, 7, 114, 2, 2, 465, 466, 7, 119, 2, 2, 466, 467, 7, 100, 2, 2, 467, 468, 7, 110, 2, 2, 468, 469, 7, 107, 2, 2, 469, 470, 7, 101, 2, 2, 470, 72, 3, 2, 2, 2, 471, 472, 7, 116, 2, 2, 472, 473, 7, 103, 2, 2, 473, 474, 7, 118, 2, 2, 474, 475, 7, 119, 2, 2, 475, 476, 7, 116, 2, 2, 476, 477, 7, 112, 2, 2, 477, 74, 3, 2, 2, 2, 478, 479, 7, 117, 2, 2, 479, 480, 7, 106, 2, 2, 480, 481, 7, 113, 2, 2, 481, 482, 7, 116, 2, 2, 482, 483, 7, 118, 2, 2, 483, 76, 3, 2, 2, 2, 484, 485, 7, 117, 2, 2, 485, 486, 7, 118, 2, 2, 486, 487, 7, 99, 2, 2, 487, 488, 7, 118, 2, 2, 488, 489, 7, 107, 2, 2, 489, 490, 7, 101, 2, 2, 490, 78, 3, 2, 2, 2, 491, 492, 7, 117, 2, 2, 492, 493, 7, 118, 2, 2, 493, 494, 7, 116, 2, 2, 494, 495, 7, 107, 2, 2, 495, 496, 7, 101, 2, 2, 496, 497, 7, 118, 2, 2, 497, 498, 7, 104, 2, 2, 498, 499, 7, 114, 2, 2, 499, 80, 3, 2, 2, 2, 500, 501, 7, 117, 2, 2, 501, 502, 7, 119, 2, 2, 502, 503, 7, 114, 2, 2, 503, 504, 7, 103, 2, 2, 504, 505, 7, 116, 2, 2, 505, 82, 3, 2, 2, 2, 506, 507, 7, 117, 2, 2, 507, 508, 7, 121, 2, 2, 508, 509, 7, 107, 2, 2, 509, 510, 7, 118, 2, 2, 510, 511, 7, 101, 2, 2, 511, 512, 7, 106, 2, 2, 512, 84, 3, 2, 2, 2, 513, 514, 7, 117, 2, 2, 514, 515, 7, 123, 2, 2, 515, 516, 7, 112, 2, 2, 516, 517, 7, 101, 2, 2, 517, 518, 7, 106, 2, 2, 518, 519, 7, 116, 2, 2, 519, 520, 7, 113, 2, 2, 520, 521, 7, 112, 2, 2, 521, 522, 7, 107, 2, 2, 522, 523, 7, 124, 2, 2, 523, 524, 7, 103, 2, 2, 524, 525, 7, 102, 2, 2, 525, 86, 3, 2, 2, 2, 526, 527, 7, 118, 2, 2, 527, 528, 7, 106, 2, 2, 528, 529, 7, 107, 2, 2, 529, 530, 7, 117, 2, 2, 530, 88, 3, 2, 2, 2, 531, 532, 7, 118, 2, 2, 532, 533, 7, 106, 2, 2, 533, 534, 7, 116, 2, 2, 534, 535, 7, 113, 2, 2, 535, 536, 7, 121, 2, 2, 536, 90, 3, 2, 2, 2, 537, 538, 7, 118, 2, 2, 538, 539, 7, 106, 2, 2, 539, 540, 7, 116, 2, 2, 540, 541, 7, 113, 2, 2, 541, 542, 7, 121, 2, 2, 542, 543, 7, 117, 2, 2, 543, 92, 3, 2, 2, 2, 544, 545, 7, 118, 2, 2, 545, 546, 7, 116, 2, 2, 546, 547, 7, 99, 2, 2, 547, 548, 7, 112, 2, 2, 548, 549, 7, 117, 2, 2, 549, 550, 7, 107, 2, 2, 550, 551, 7, 103, 2, 2, 551, 552, 7, 112, 2, 2, 552, 553, 7, 118, 2, 2, 553, 94, 3, 2, 2, 2, 554, 555, 7, 118, 2, 2, 555, 556, 7, 116, 2, 2, 556, 557, 7, 123, 2, 2, 557, 96, 3, 2, 2, 2, 558, 559, 7, 120, 2, 2, 559, 560, 7, 113, 2, 2, 560, 561, 7, 107, 2, 2, 561, 562, 7, 102, 2, 2, 562, 98, 3, 2, 2, 2, 563, 564, 7, 120, 2, 2, 564, 565, 7, 113, 2, 2, 565, 566, 7, 110, 2, 2, 566, 567, 7, 99, 2, 2, 567, 568, 7, 118, 2, 2, 568, 569, 7, 107, 2, 2, 569, 570, 7, 110, 2, 2, 570, 571, 7, 103, 2, 2, 571, 100, 3, 2, 2, 2, 572, 573, 7, 121, 2, 2, 573, 574, 7, 106, 2, 2, 574, 575, 7, 107, 2, 2, 575, 576, 7, 110, 2, 2, 576, 577, 7, 103, 2, 2, 577, 102, 3, 2, 2, 2, 578, 592, 7, 50, 2, 2, 579, 589, 9, 2, 2, 2, 580, 582, 5, 233, 117, 2, 581, 580, 3, 2, 2, 2, 581, 582, 3, 2, 2, 2, 582, 590, 3, 2, 2, 2, 583, 585, 7, 97, 2, 2, 584, 583, 3, 2, 2, 2, 585, 586, 3, 2, 2, 2, 586, 584, 3, 2, 2, 2, 586, 587, 3, 2, 2, 2, 587, 588, 3, 2, 2, 2, 588, 590, 5, 233, 117, 2, 589, 581, 3, 2, 2, 2, 589, 584, 3, 2, 2, 2, 590, 592, 3, 2, 2, 2, 591, 578, 3, 2, 2, 2, 591, 579, 3, 2, 2, 2, 592, 594, 3, 2, 2, 2, 593, 595, 9, 3, 2, 2, 594, 593, 3, 2, 2, 2, 594, 595, 3, 2, 2, 2, 595, 104, 3, 2, 2, 2, 596, 597, 7, 50, 2, 2, 597, 598, 9, 4, 2, 2, 598, 606, 9, 5, 2, 2, 599, 601, 9, 6, 2, 2, 600, 599, 3, 2, 2, 2, 601, 604, 3, 2, 2, 2, 602, 600, 3, 2, 2, 2, 602, 603, 3, 2, 2, 2, 603, 605, 3, 2, 2, 2, 604, 602, 3, 2, 2, 2, 605, 607, 9, 5, 2, 2, 606, 602, 3, 2, 2, 2, 606, 607, 3, 2, 2, 2, 607, 609, 3, 2, 2, 2, 608, 610, 9, 3, 2, 2, 609, 608, 3, 2, 2, 2, 609, 610, 3, 2, 2, 2, 610, 106, 3, 2, 2, 2, 611, 615, 7, 50, 2, 2, 612, 614, 7, 97, 2, 2, 613, 612, 3, 2, 2, 2, 614, 617, 3, 2, 2, 2, 615, 613, 3, 2, 2, 2, 615, 616, 3, 2, 2, 2, 616, 618, 3, 2, 2, 2, 617, 615, 3, 2, 2, 2, 618, 626, 9, 7, 2, 2, 619, 621, 9, 8, 2, 2, 620, 619, 3, 2, 2, 2, 621, 624, 3, 2, 2, 2, 622, 620, 3, 2, 2, 2, 622, 623, 3, 2, 2, 2, 623, 625, 3, 2, 2, 2, 624, 622, 3, 2, 2, 2, 625, 627, 9, 7, 2, 2, 626, 622, 3, 2, 2, 2, 626, 627, 3, 2, 2, 2, 627, 629, 3, 2, 2, 2, 628, 630, 9, 3, 2, 2, 629, 628, 3, 2, 2, 2, 629, 630, 3, 2, 2, 2, 630, 108, 3, 2, 2, 2, 631, 632, 7, 50, 2, 2, 632, 633, 9, 9, 2, 2, 633, 641, 9, 10, 2, 2, 634, 636, 9, 11, 2, 2, 635, 634, 3, 2, 2, 2, 636, 639, 3, 2, 2, 2, 637, 635, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 640, 3, 2, 2, 2, 639, 637, 3, 2, 2, 2, 640, 642, 9, 10, 2, 2, 641, 637, 3, 2, 2, 2, 641, 642, 3, 2, 2, 2, 642, 644, 3, 2, 2, 2, 643, 645, 9, 3, 2, 2, 644, 643, 3, 2, 2, 2, 644, 645, 3, 2, 2, 2, 645, 110, 3, 2, 2, 2, 646, 647, 5, 233, 117, 2, 647, 649, 7, 48, 2, 2, 648, 650, 5, 233, 117, 2, 649, 648, 3, 2, 2, 2, 649, 650, 3, 2, 2, 2, 650, 654, 3, 2, 2, 2, 651, 652, 7, 48, 2, 2, 652, 654, 5, 233, 117, 2, 653, 646, 3, 2, 2, 2, 653, 651, 3, 2, 2, 2, 654, 656, 3, 2, 2, 2, 655, 657, 5, 225, 113, 2, 656, 655, 3, 2, 2, 2, 656, 657, 3, 2, 2, 2, 657, 659, 3, 2, 2, 2, 658, 660, 9, 12, 2, 2, 659, 658, 3, 2, 2, 2, 659, 660, 3, 2, 2, 2, 660, 670, 3, 2, 2, 2, 661, 667, 5, 233, 117, 2, 662, 664, 5, 225, 113, 2, 663, 665, 9, 12, 2, 2, 664, 663, 3, 2, 2, 2, 664, 665, 3, 2, 2, 2, 665, 668, 3, 2, 2, 2, 666, 668, 9, 12, 2, 2, 667, 662, 3, 2, 2, 2, 667, 666, 3, 2, 2, 2, 668, 670, 3, 2, 2, 2, 669, 653, 3, 2, 2, 2, 669, 661, 3, 2, 2, 2, 670, 112, 3, 2, 2, 2, 671, 672, 7, 50, 2, 2, 672, 682, 9, 4, 2, 2, 673, 675, 5, 229, 115, 2, 674, 676, 7, 48, 2, 2, 675, 674, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 683, 3, 2, 2, 2, 677, 679, 5, 229, 115, 2, 678, 677, 3, 2, 2, 2, 678, 679, 3, 2, 2, 2, 679, 680, 3, 2, 2, 2, 680, 681, 7, 48, 2, 2, 681, 683, 5, 229, 115, 2, 682, 673, 3, 2, 2, 2, 682, 678, 3, 2, 2, 2, 683, 684, 3, 2, 2, 2, 684, 686, 9, 13, 2, 2, 685, 687, 9, 14, 2, 2, 686, 685, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 690, 5, 233, 117, 2, 689, 691, 9, 12, 2, 2, 690, 689, 3, 2, 2, 2, 690, 691, 3, 2, 2, 2, 691, 114, 3, 2, 2, 2, 692, 693, 7, 118, 2, 2, 693, 694, 7, 116, 2, 2, 694, 695, 7, 119, 2, 2, 695, 702, 7, 103, 2, 2, 696, 697, 7, 104, 2, 2, 697, 698, 7, 99, 2, 2, 698, 699, 7, 110, 2, 2, 699, 700, 7, 117, 2, 2, 700, 702, 7, 103, 2, 2, 701, 692, 3, 2, 2, 2, 701, 696, 3, 2, 2, 2, 702, 116, 3, 2, 2, 2, 703, 706, 7, 41, 2, 2, 704, 707, 10, 15, 2, 2, 705, 707, 5, 227, 114, 2, 706, 704, 3, 2, 2, 2, 706, 705, 3, 2, 2, 2, 707, 708, 3, 2, 2, 2, 708, 709, 7, 41, 2, 2, 709, 118, 3, 2, 2, 2, 710, 715, 7, 36, 2, 2, 711, 714, 10, 16, 2, 2, 712, 714, 5, 227, 114, 2, 713, 711, 3, 2, 2, 2, 713, 712, 3, 2, 2, 2, 714, 717, 3, 2, 2, 2, 715, 713, 3, 2, 2, 2, 715, 716, 3, 2, 2, 2, 716, 718, 3, 2, 2, 2, 717, 715, 3, 2, 2, 2, 718, 719, 7, 36, 2, 2, 719, 120, 3, 2, 2, 2, 720, 721, 7, 112, 2, 2, 721, 722, 7, 119, 2, 2, 722, 723, 7, 110, 2, 2, 723, 724, 7, 110, 2, 2, 724, 122, 3, 2, 2, 2, 725, 726, 7, 42, 2, 2, 726, 124, 3, 2, 2, 2, 727, 728, 7, 43, 2, 2, 728, 126, 3, 2, 2, 2, 729, 730, 7, 125, 2, 2, 730, 128, 3, 2, 2, 2, 731, 732, 7, 127, 2, 2, 732, 130, 3, 2, 2, 2, 733, 734, 7, 93, 2, 2, 734, 132, 3, 2, 2, 2, 735, 736, 7, 95, 2, 2, 736, 134, 3, 2, 2, 2, 737, 738, 7, 61, 2, 2, 738, 136, 3, 2, 2, 2, 739, 740, 7, 46, 2, 2, 740, 138, 3, 2, 2, 2, 741, 742, 7, 48, 2, 2, 742, 140, 3, 2, 2, 2, 743, 744, 7, 63, 2, 2, 744, 142, 3, 2, 2, 2, 745, 746, 7, 64, 2, 2, 746, 144, 3, 2, 2, 2, 747, 748, 7, 62, 2, 2, 748, 146, 3, 2, 2, 2, 749, 750, 7, 35, 2, 2, 750, 148, 3, 2, 2, 2, 751, 752, 7, 128, 2, 2, 752, 150, 3, 2, 2, 2, 753, 754, 7, 65, 2, 2, 754, 152, 3, 2, 2, 2, 755, 756, 7, 60, 2, 2, 756, 154, 3, 2, 2, 2, 757, 758, 7, 63, 2, 2, 758, 759, 7, 63, 2, 2, 759, 156, 3, 2, 2, 2, 760, 761, 7, 62, 2, 2, 761, 762, 7, 63, 2, 2, 762, 158, 3, 2, 2, 2, 763, 764, 7, 64, 2, 2, 764, 765, 7, 63, 2, 2, 765, 160, 3, 2, 2, 2, 766, 767, 7, 35, 2, 2, 767, 768, 7, 63, 2, 2, 768, 162, 3, 2, 2, 2, 769, 770, 7, 40, 2, 2, 770, 771, 7, 40, 2, 2, 771, 164, 3, 2, 2, 2, 772, 773, 7, 126, 2, 2, 773, 774, 7, 126, 2, 2, 774, 166, 3, 2, 2, 2, 775, 776, 7, 45, 2, 2, 776, 777, 7, 45, 2, 2, 777, 168, 3, 2, 2, 2, 778, 779, 7, 47, 2, 2, 779, 780, 7, 47, 2, 2, 780, 170, 3, 2, 2, 2, 781, 782, 7, 45, 2, 2, 782, 172, 3, 2, 2, 2, 783, 784, 7, 47, 2, 2, 784, 174, 3, 2, 2, 2, 785, 786, 7, 44, 2, 2, 786, 176, 3, 2, 2, 2, 787, 788, 7, 49, 2, 2, 788, 178, 3, 2, 2, 2, 789, 790, 7, 40, 2, 2, 790, 180, 3, 2, 2, 2, 791, 792, 7, 126, 2, 2, 792, 182, 3, 2, 2, 2, 793, 794, 7, 96, 2, 2, 794, 184, 3, 2, 2, 2, 795, 796, 7, 39, 2, 2, 796, 186, 3, 2, 2, 2, 797, 798, 7, 45, 2, 2, 798, 799, 7, 63, 2, 2, 799, 188, 3, 2, 2, 2, 800, 801, 7, 47, 2, 2, 801, 802, 7, 63, 2, 2, 802, 190, 3, 2, 2, 2, 803, 804, 7, 44, 2, 2, 804, 805, 7, 63, 2, 2, 805, 192, 3, 2, 2, 2, 806, 807, 7, 49, 2, 2, 807, 808, 7, 63, 2, 2, 808, 194, 3, 2, 2, 2, 809, 810, 7, 40, 2, 2, 810, 811, 7, 63, 2, 2, 811, 196, 3, 2, 2, 2, 812, 813, 7, 126, 2, 2, 813, 814, 7, 63, 2, 2, 814, 198, 3, 2, 2, 2, 815, 816, 7, 96, 2, 2, 816, 817, 7, 63, 2, 2, 817, 200, 3, 2, 2, 2, 818, 819, 7, 39, 2, 2, 819, 820, 7, 63, 2, 2, 820, 202, 3, 2, 2, 2, 821, 822, 7, 62, 2, 2, 822, 823, 7, 62, 2, 2, 823, 824, 7, 63, 2, 2, 824, 204, 3, 2, 2, 2, 825, 826, 7, 64, 2, 2, 826, 827, 7, 64, 2, 2, 827, 828, 7, 63, 2, 2, 828, 206, 3, 2, 2, 2, 829, 830, 7, 64, 2, 2, 830, 831, 7, 64, 2, 2, 831, 832, 7, 64, 2, 2, 832, 833, 7, 63, 2, 2, 833, 208, 3, 2, 2, 2, 834, 835, 7, 47, 2, 2, 835, 836, 7, 64, 2, 2, 836, 210, 3, 2, 2, 2, 837, 838, 7, 60, 2, 2, 838, 839, 7, 60, 2, 2, 839, 212, 3, 2, 2, 2, 840, 841, 7, 66, 2, 2, 841, 214, 3, 2, 2, 2, 842, 843, 7, 48, 2, 2, 843, 844, 7, 48, 2, 2, 844, 845, 7, 48, 2, 2, 845, 216, 3, 2, 2, 2, 846, 848, 9, 17, 2, 2, 847, 846, 3, 2, 2, 2, 848, 849, 3, 2, 2, 2, 849, 847, 3, 2, 2, 2, 849, 850, 3, 2, 2, 2, 850, 851, 3, 2, 2, 2, 851, 852, 8, 109, 2, 2, 852, 218, 3, 2, 2, 2, 853, 854, 7, 49, 2, 2, 854, 855, 7, 44, 2, 2, 855, 859, 3, 2, 2, 2, 856, 858, 11, 2, 2, 2, 857, 856, 3, 2, 2, 2, 858, 861, 3, 2, 2, 2, 859, 860, 3, 2, 2, 2, 859, 857, 3, 2, 2, 2, 860, 862, 3, 2, 2, 2, 861, 859, 3, 2, 2, 2, 862, 863, 7, 44, 2, 2, 863, 864, 7, 49, 2, 2, 864, 865, 3, 2, 2, 2, 865, 866, 8, 110, 2, 2, 866, 220, 3, 2, 2, 2, 867, 868, 7, 49, 2, 2, 868, 869, 7, 49, 2, 2, 869, 873, 3, 2, 2, 2, 870, 872, 10, 18, 2, 2, 871, 870, 3, 2, 2, 2, 872, 875, 3, 2, 2, 2, 873, 871, 3, 2, 2, 2, 873, 874, 3, 2, 2, 2, 874, 876, 3, 2, 2, 2, 875, 873, 3, 2, 2, 2, 876, 877, 8, 111, 2, 2, 877, 222, 3, 2, 2, 2, 878, 882, 5, 237, 119, 2, 879, 881, 5, 235, 118, 2, 880, 879, 3, 2, 2, 2, 881, 884, 3, 2, 2, 2, 882, 880, 3, 2, 2, 2, 882, 883, 3, 2, 2, 2, 883, 224, 3, 2, 2, 2, 884, 882, 3, 2, 2, 2, 885, 887, 9, 19, 2, 2, 886, 888, 9, 14, 2, 2, 887, 886, 3, 2, 2, 2, 887, 888, 3, 2, 2, 2, 888, 889, 3, 2, 2, 2, 889, 890, 5, 233, 117, 2, 890, 226, 3, 2, 2, 2, 891, 892, 7, 94, 2, 2, 892, 913, 9, 20, 2, 2, 893, 898, 7, 94, 2, 2, 894, 896, 9, 21, 2, 2, 895, 894, 3, 2, 2, 2, 895, 896, 3, 2, 2, 2, 896, 897, 3, 2, 2, 2, 897, 899, 9, 7, 2, 2, 898, 895, 3, 2, 2, 2, 898, 899, 3, 2, 2, 2, 899, 900, 3, 2, 2, 2, 900, 913, 9, 7, 2, 2, 901, 903, 7, 94, 2, 2, 902, 904, 7, 119, 2, 2, 903, 902, 3, 2, 2, 2, 904, 905, 3, 2, 2, 2, 905, 903, 3, 2, 2, 2, 905, 906, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 908, 5, 231, 116, 2, 908, 909, 5, 231, 116, 2, 909, 910, 5, 231, 116, 2, 910, 911, 5, 231, 116, 2, 911, 913, 3, 2, 2, 2, 912, 891, 3, 2, 2, 2, 912, 893, 3, 2, 2, 2, 912, 901, 3, 2, 2, 2, 913, 228, 3, 2, 2, 2, 914, 923, 5, 231, 116, 2, 915, 918, 5, 231, 116, 2, 916, 918, 7, 97, 2, 2, 917, 915, 3, 2, 2, 2, 917, 916, 3, 2, 2, 2, 918, 921, 3, 2, 2, 2, 919, 917, 3, 2, 2, 2, 919, 920, 3, 2, 2, 2, 920, 922, 3, 2, 2, 2, 921, 919, 3, 2, 2, 2, 922, 924, 5, 231, 116, 2, 923, 919, 3, 2, 2, 2, 923, 924, 3, 2, 2, 2, 924, 230, 3, 2, 2, 2, 925, 926, 9, 5, 2, 2, 926, 232, 3, 2, 2, 2, 927, 935, 9, 22, 2, 2, 928, 930, 9, 23, 2, 2, 929, 928, 3, 2, 2, 2, 930, 933, 3, 2, 2, 2, 931, 929, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 934, 3, 2, 2, 2, 933, 931, 3, 2, 2, 2, 934, 936, 9, 22, 2, 2, 935, 931, 3, 2, 2, 2, 935, 936, 3, 2, 2, 2, 936, 234, 3, 2, 2, 2, 937, 940, 5, 237, 119, 2, 938, 940, 9, 22, 2, 2, 939, 937, 3, 2, 2, 2, 939, 938, 3, 2, 2, 2, 940, 236, 3, 2, 2, 2, 941, 946, 9, 24, 2, 2, 942, 946, 10, 25, 2, 2, 943, 944, 9, 26, 2, 2, 944, 946, 9, 27, 2, 2, 945, 941, 3, 2, 2, 2, 945, 942, 3, 2, 2, 2, 945, 943, 3, 2, 2, 2, 946, 238, 3, 2, 2, 2, 50, 2, 581, 586, 589, 591, 594, 602, 606, 609, 615, 622, 626, 629, 637, 641, 644, 649, 653, 656, 659, 664, 667, 669, 675, 678, 682, 686, 690, 701, 706, 713, 715, 849, 859, 873, 882, 887, 895, 898, 905, 912, 917, 919, 923, 931, 935, 939, 945, 3, 2, 3, 2] \ No newline at end of file diff --git a/java2python/lang/JavaLexer.py b/java2python/lang/JavaLexer.py new file mode 100644 index 0000000..4d5150e --- /dev/null +++ b/java2python/lang/JavaLexer.py @@ -0,0 +1,630 @@ +# Generated from JavaLexer.g4 by ANTLR 4.7.2 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2q") + buf.write("\u03b3\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7") + buf.write("\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r") + buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23") + buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30") + buf.write("\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36") + buf.write("\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%") + buf.write("\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.") + buf.write("\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64") + buf.write("\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:") + buf.write("\4;\t;\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\t") + buf.write("C\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\t") + buf.write("L\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\t") + buf.write("U\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4") + buf.write("^\t^\4_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4") + buf.write("g\tg\4h\th\4i\ti\4j\tj\4k\tk\4l\tl\4m\tm\4n\tn\4o\to\4") + buf.write("p\tp\4q\tq\4r\tr\4s\ts\4t\tt\4u\tu\4v\tv\4w\tw\3\2\3\2") + buf.write("\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3") + buf.write("\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\3\5") + buf.write("\3\5\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3\7\3\b\3\b\3") + buf.write("\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n") + buf.write("\3\n\3\13\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f") + buf.write("\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16") + buf.write("\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20") + buf.write("\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22") + buf.write("\3\22\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23") + buf.write("\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25") + buf.write("\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\30") + buf.write("\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\31") + buf.write("\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32") + buf.write("\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33") + buf.write("\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35") + buf.write("\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37") + buf.write("\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3!\3!\3!\3!\3!\3!\3!") + buf.write("\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#") + buf.write("\3#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3%\3%\3%\3%\3%\3%\3") + buf.write("%\3&\3&\3&\3&\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(") + buf.write("\3(\3(\3(\3(\3(\3(\3(\3)\3)\3)\3)\3)\3)\3*\3*\3*\3*\3") + buf.write("*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3,\3,\3") + buf.write(",\3,\3,\3-\3-\3-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3/\3/\3") + buf.write("/\3/\3/\3/\3/\3/\3/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3") + buf.write("\61\3\61\3\61\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62") + buf.write("\3\62\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64\3\64\5\64") + buf.write("\u0246\n\64\3\64\6\64\u0249\n\64\r\64\16\64\u024a\3\64") + buf.write("\5\64\u024e\n\64\5\64\u0250\n\64\3\64\5\64\u0253\n\64") + buf.write("\3\65\3\65\3\65\3\65\7\65\u0259\n\65\f\65\16\65\u025c") + buf.write("\13\65\3\65\5\65\u025f\n\65\3\65\5\65\u0262\n\65\3\66") + buf.write("\3\66\7\66\u0266\n\66\f\66\16\66\u0269\13\66\3\66\3\66") + buf.write("\7\66\u026d\n\66\f\66\16\66\u0270\13\66\3\66\5\66\u0273") + buf.write("\n\66\3\66\5\66\u0276\n\66\3\67\3\67\3\67\3\67\7\67\u027c") + buf.write("\n\67\f\67\16\67\u027f\13\67\3\67\5\67\u0282\n\67\3\67") + buf.write("\5\67\u0285\n\67\38\38\38\58\u028a\n8\38\38\58\u028e\n") + buf.write("8\38\58\u0291\n8\38\58\u0294\n8\38\38\38\58\u0299\n8\3") + buf.write("8\58\u029c\n8\58\u029e\n8\39\39\39\39\59\u02a4\n9\39\5") + buf.write("9\u02a7\n9\39\39\59\u02ab\n9\39\39\59\u02af\n9\39\39\5") + buf.write("9\u02b3\n9\3:\3:\3:\3:\3:\3:\3:\3:\3:\5:\u02be\n:\3;\3") + buf.write(";\3;\5;\u02c3\n;\3;\3;\3<\3<\3<\7<\u02ca\n<\f<\16<\u02cd") + buf.write("\13<\3<\3<\3=\3=\3=\3=\3=\3>\3>\3?\3?\3@\3@\3A\3A\3B\3") + buf.write("B\3C\3C\3D\3D\3E\3E\3F\3F\3G\3G\3H\3H\3I\3I\3J\3J\3K\3") + buf.write("K\3L\3L\3M\3M\3N\3N\3N\3O\3O\3O\3P\3P\3P\3Q\3Q\3Q\3R\3") + buf.write("R\3R\3S\3S\3S\3T\3T\3T\3U\3U\3U\3V\3V\3W\3W\3X\3X\3Y\3") + buf.write("Y\3Z\3Z\3[\3[\3\\\3\\\3]\3]\3^\3^\3^\3_\3_\3_\3`\3`\3") + buf.write("`\3a\3a\3a\3b\3b\3b\3c\3c\3c\3d\3d\3d\3e\3e\3e\3f\3f\3") + buf.write("f\3f\3g\3g\3g\3g\3h\3h\3h\3h\3h\3i\3i\3i\3j\3j\3j\3k\3") + buf.write("k\3l\3l\3l\3l\3m\6m\u0350\nm\rm\16m\u0351\3m\3m\3n\3n") + buf.write("\3n\3n\7n\u035a\nn\fn\16n\u035d\13n\3n\3n\3n\3n\3n\3o") + buf.write("\3o\3o\3o\7o\u0368\no\fo\16o\u036b\13o\3o\3o\3p\3p\7p") + buf.write("\u0371\np\fp\16p\u0374\13p\3q\3q\5q\u0378\nq\3q\3q\3r") + buf.write("\3r\3r\3r\5r\u0380\nr\3r\5r\u0383\nr\3r\3r\3r\6r\u0388") + buf.write("\nr\rr\16r\u0389\3r\3r\3r\3r\3r\5r\u0391\nr\3s\3s\3s\7") + buf.write("s\u0396\ns\fs\16s\u0399\13s\3s\5s\u039c\ns\3t\3t\3u\3") + buf.write("u\7u\u03a2\nu\fu\16u\u03a5\13u\3u\5u\u03a8\nu\3v\3v\5") + buf.write("v\u03ac\nv\3w\3w\3w\3w\5w\u03b2\nw\3\u035b\2x\3\3\5\4") + buf.write("\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17") + buf.write("\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63") + buf.write("\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-") + buf.write("Y.[/]\60_\61a\62c\63e\64g\65i\66k\67m8o9q:s;u{?}") + buf.write("@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008d") + buf.write("H\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009d") + buf.write("P\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00ad") + buf.write("X\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd") + buf.write("`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cd") + buf.write("h\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00dd") + buf.write("p\u00dfq\u00e1\2\u00e3\2\u00e5\2\u00e7\2\u00e9\2\u00eb") + buf.write("\2\u00ed\2\3\2\34\3\2\63;\4\2NNnn\4\2ZZzz\5\2\62;CHch") + buf.write("\6\2\62;CHaach\3\2\629\4\2\629aa\4\2DDdd\3\2\62\63\4\2") + buf.write("\62\63aa\6\2FFHHffhh\4\2RRrr\4\2--//\6\2\f\f\17\17))^") + buf.write("^\6\2\f\f\17\17$$^^\5\2\13\f\16\17\"\"\4\2\f\f\17\17\4") + buf.write("\2GGgg\n\2$$))^^ddhhppttvv\3\2\62\65\3\2\62;\4\2\62;a") + buf.write("a\6\2&&C\\aac|\4\2\2\u0081\ud802\udc01\3\2\ud802\udc01") + buf.write("\3\2\udc02\ue001\2\u03dc\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3") + buf.write("\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2") + buf.write("\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2") + buf.write("\2\31\3\2\2\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2") + buf.write("!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)\3\2\2\2") + buf.write("\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3") + buf.write("\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2") + buf.write("\2=\3\2\2\2\2?\3\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2") + buf.write("\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3\2\2\2\2O\3\2") + buf.write("\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3") + buf.write("\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c") + buf.write("\3\2\2\2\2e\3\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2") + buf.write("m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3\2\2\2\2u\3\2\2\2") + buf.write("\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3\2") + buf.write("\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2") + buf.write("\u0087\3\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d") + buf.write("\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\2\u0093\3\2\2") + buf.write("\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2\2\2\u009b") + buf.write("\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2") + buf.write("\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9") + buf.write("\3\2\2\2\2\u00ab\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2") + buf.write("\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5\3\2\2\2\2\u00b7") + buf.write("\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2") + buf.write("\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00c5") + buf.write("\3\2\2\2\2\u00c7\3\2\2\2\2\u00c9\3\2\2\2\2\u00cb\3\2\2") + buf.write("\2\2\u00cd\3\2\2\2\2\u00cf\3\2\2\2\2\u00d1\3\2\2\2\2\u00d3") + buf.write("\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\2\u00d9\3\2\2") + buf.write("\2\2\u00db\3\2\2\2\2\u00dd\3\2\2\2\2\u00df\3\2\2\2\3\u00ef") + buf.write("\3\2\2\2\5\u00f8\3\2\2\2\7\u00ff\3\2\2\2\t\u0107\3\2\2") + buf.write("\2\13\u010d\3\2\2\2\r\u0112\3\2\2\2\17\u0117\3\2\2\2\21") + buf.write("\u011d\3\2\2\2\23\u0122\3\2\2\2\25\u0128\3\2\2\2\27\u012e") + buf.write("\3\2\2\2\31\u0137\3\2\2\2\33\u013f\3\2\2\2\35\u0142\3") + buf.write("\2\2\2\37\u0149\3\2\2\2!\u014e\3\2\2\2#\u0153\3\2\2\2") + buf.write("%\u015b\3\2\2\2\'\u0161\3\2\2\2)\u0169\3\2\2\2+\u016f") + buf.write("\3\2\2\2-\u0173\3\2\2\2/\u0176\3\2\2\2\61\u017b\3\2\2") + buf.write("\2\63\u0186\3\2\2\2\65\u018d\3\2\2\2\67\u0198\3\2\2\2") + buf.write("9\u019c\3\2\2\2;\u01a6\3\2\2\2=\u01ab\3\2\2\2?\u01b2\3") + buf.write("\2\2\2A\u01b6\3\2\2\2C\u01be\3\2\2\2E\u01c6\3\2\2\2G\u01d0") + buf.write("\3\2\2\2I\u01d7\3\2\2\2K\u01de\3\2\2\2M\u01e4\3\2\2\2") + buf.write("O\u01eb\3\2\2\2Q\u01f4\3\2\2\2S\u01fa\3\2\2\2U\u0201\3") + buf.write("\2\2\2W\u020e\3\2\2\2Y\u0213\3\2\2\2[\u0219\3\2\2\2]\u0220") + buf.write("\3\2\2\2_\u022a\3\2\2\2a\u022e\3\2\2\2c\u0233\3\2\2\2") + buf.write("e\u023c\3\2\2\2g\u024f\3\2\2\2i\u0254\3\2\2\2k\u0263\3") + buf.write("\2\2\2m\u0277\3\2\2\2o\u029d\3\2\2\2q\u029f\3\2\2\2s\u02bd") + buf.write("\3\2\2\2u\u02bf\3\2\2\2w\u02c6\3\2\2\2y\u02d0\3\2\2\2") + buf.write("{\u02d5\3\2\2\2}\u02d7\3\2\2\2\177\u02d9\3\2\2\2\u0081") + buf.write("\u02db\3\2\2\2\u0083\u02dd\3\2\2\2\u0085\u02df\3\2\2\2") + buf.write("\u0087\u02e1\3\2\2\2\u0089\u02e3\3\2\2\2\u008b\u02e5\3") + buf.write("\2\2\2\u008d\u02e7\3\2\2\2\u008f\u02e9\3\2\2\2\u0091\u02eb") + buf.write("\3\2\2\2\u0093\u02ed\3\2\2\2\u0095\u02ef\3\2\2\2\u0097") + buf.write("\u02f1\3\2\2\2\u0099\u02f3\3\2\2\2\u009b\u02f5\3\2\2\2") + buf.write("\u009d\u02f8\3\2\2\2\u009f\u02fb\3\2\2\2\u00a1\u02fe\3") + buf.write("\2\2\2\u00a3\u0301\3\2\2\2\u00a5\u0304\3\2\2\2\u00a7\u0307") + buf.write("\3\2\2\2\u00a9\u030a\3\2\2\2\u00ab\u030d\3\2\2\2\u00ad") + buf.write("\u030f\3\2\2\2\u00af\u0311\3\2\2\2\u00b1\u0313\3\2\2\2") + buf.write("\u00b3\u0315\3\2\2\2\u00b5\u0317\3\2\2\2\u00b7\u0319\3") + buf.write("\2\2\2\u00b9\u031b\3\2\2\2\u00bb\u031d\3\2\2\2\u00bd\u0320") + buf.write("\3\2\2\2\u00bf\u0323\3\2\2\2\u00c1\u0326\3\2\2\2\u00c3") + buf.write("\u0329\3\2\2\2\u00c5\u032c\3\2\2\2\u00c7\u032f\3\2\2\2") + buf.write("\u00c9\u0332\3\2\2\2\u00cb\u0335\3\2\2\2\u00cd\u0339\3") + buf.write("\2\2\2\u00cf\u033d\3\2\2\2\u00d1\u0342\3\2\2\2\u00d3\u0345") + buf.write("\3\2\2\2\u00d5\u0348\3\2\2\2\u00d7\u034a\3\2\2\2\u00d9") + buf.write("\u034f\3\2\2\2\u00db\u0355\3\2\2\2\u00dd\u0363\3\2\2\2") + buf.write("\u00df\u036e\3\2\2\2\u00e1\u0375\3\2\2\2\u00e3\u0390\3") + buf.write("\2\2\2\u00e5\u0392\3\2\2\2\u00e7\u039d\3\2\2\2\u00e9\u039f") + buf.write("\3\2\2\2\u00eb\u03ab\3\2\2\2\u00ed\u03b1\3\2\2\2\u00ef") + buf.write("\u00f0\7c\2\2\u00f0\u00f1\7d\2\2\u00f1\u00f2\7u\2\2\u00f2") + buf.write("\u00f3\7v\2\2\u00f3\u00f4\7t\2\2\u00f4\u00f5\7c\2\2\u00f5") + buf.write("\u00f6\7e\2\2\u00f6\u00f7\7v\2\2\u00f7\4\3\2\2\2\u00f8") + buf.write("\u00f9\7c\2\2\u00f9\u00fa\7u\2\2\u00fa\u00fb\7u\2\2\u00fb") + buf.write("\u00fc\7g\2\2\u00fc\u00fd\7t\2\2\u00fd\u00fe\7v\2\2\u00fe") + buf.write("\6\3\2\2\2\u00ff\u0100\7d\2\2\u0100\u0101\7q\2\2\u0101") + buf.write("\u0102\7q\2\2\u0102\u0103\7n\2\2\u0103\u0104\7g\2\2\u0104") + buf.write("\u0105\7c\2\2\u0105\u0106\7p\2\2\u0106\b\3\2\2\2\u0107") + buf.write("\u0108\7d\2\2\u0108\u0109\7t\2\2\u0109\u010a\7g\2\2\u010a") + buf.write("\u010b\7c\2\2\u010b\u010c\7m\2\2\u010c\n\3\2\2\2\u010d") + buf.write("\u010e\7d\2\2\u010e\u010f\7{\2\2\u010f\u0110\7v\2\2\u0110") + buf.write("\u0111\7g\2\2\u0111\f\3\2\2\2\u0112\u0113\7e\2\2\u0113") + buf.write("\u0114\7c\2\2\u0114\u0115\7u\2\2\u0115\u0116\7g\2\2\u0116") + buf.write("\16\3\2\2\2\u0117\u0118\7e\2\2\u0118\u0119\7c\2\2\u0119") + buf.write("\u011a\7v\2\2\u011a\u011b\7e\2\2\u011b\u011c\7j\2\2\u011c") + buf.write("\20\3\2\2\2\u011d\u011e\7e\2\2\u011e\u011f\7j\2\2\u011f") + buf.write("\u0120\7c\2\2\u0120\u0121\7t\2\2\u0121\22\3\2\2\2\u0122") + buf.write("\u0123\7e\2\2\u0123\u0124\7n\2\2\u0124\u0125\7c\2\2\u0125") + buf.write("\u0126\7u\2\2\u0126\u0127\7u\2\2\u0127\24\3\2\2\2\u0128") + buf.write("\u0129\7e\2\2\u0129\u012a\7q\2\2\u012a\u012b\7p\2\2\u012b") + buf.write("\u012c\7u\2\2\u012c\u012d\7v\2\2\u012d\26\3\2\2\2\u012e") + buf.write("\u012f\7e\2\2\u012f\u0130\7q\2\2\u0130\u0131\7p\2\2\u0131") + buf.write("\u0132\7v\2\2\u0132\u0133\7k\2\2\u0133\u0134\7p\2\2\u0134") + buf.write("\u0135\7w\2\2\u0135\u0136\7g\2\2\u0136\30\3\2\2\2\u0137") + buf.write("\u0138\7f\2\2\u0138\u0139\7g\2\2\u0139\u013a\7h\2\2\u013a") + buf.write("\u013b\7c\2\2\u013b\u013c\7w\2\2\u013c\u013d\7n\2\2\u013d") + buf.write("\u013e\7v\2\2\u013e\32\3\2\2\2\u013f\u0140\7f\2\2\u0140") + buf.write("\u0141\7q\2\2\u0141\34\3\2\2\2\u0142\u0143\7f\2\2\u0143") + buf.write("\u0144\7q\2\2\u0144\u0145\7w\2\2\u0145\u0146\7d\2\2\u0146") + buf.write("\u0147\7n\2\2\u0147\u0148\7g\2\2\u0148\36\3\2\2\2\u0149") + buf.write("\u014a\7g\2\2\u014a\u014b\7n\2\2\u014b\u014c\7u\2\2\u014c") + buf.write("\u014d\7g\2\2\u014d \3\2\2\2\u014e\u014f\7g\2\2\u014f") + buf.write("\u0150\7p\2\2\u0150\u0151\7w\2\2\u0151\u0152\7o\2\2\u0152") + buf.write("\"\3\2\2\2\u0153\u0154\7g\2\2\u0154\u0155\7z\2\2\u0155") + buf.write("\u0156\7v\2\2\u0156\u0157\7g\2\2\u0157\u0158\7p\2\2\u0158") + buf.write("\u0159\7f\2\2\u0159\u015a\7u\2\2\u015a$\3\2\2\2\u015b") + buf.write("\u015c\7h\2\2\u015c\u015d\7k\2\2\u015d\u015e\7p\2\2\u015e") + buf.write("\u015f\7c\2\2\u015f\u0160\7n\2\2\u0160&\3\2\2\2\u0161") + buf.write("\u0162\7h\2\2\u0162\u0163\7k\2\2\u0163\u0164\7p\2\2\u0164") + buf.write("\u0165\7c\2\2\u0165\u0166\7n\2\2\u0166\u0167\7n\2\2\u0167") + buf.write("\u0168\7{\2\2\u0168(\3\2\2\2\u0169\u016a\7h\2\2\u016a") + buf.write("\u016b\7n\2\2\u016b\u016c\7q\2\2\u016c\u016d\7c\2\2\u016d") + buf.write("\u016e\7v\2\2\u016e*\3\2\2\2\u016f\u0170\7h\2\2\u0170") + buf.write("\u0171\7q\2\2\u0171\u0172\7t\2\2\u0172,\3\2\2\2\u0173") + buf.write("\u0174\7k\2\2\u0174\u0175\7h\2\2\u0175.\3\2\2\2\u0176") + buf.write("\u0177\7i\2\2\u0177\u0178\7q\2\2\u0178\u0179\7v\2\2\u0179") + buf.write("\u017a\7q\2\2\u017a\60\3\2\2\2\u017b\u017c\7k\2\2\u017c") + buf.write("\u017d\7o\2\2\u017d\u017e\7r\2\2\u017e\u017f\7n\2\2\u017f") + buf.write("\u0180\7g\2\2\u0180\u0181\7o\2\2\u0181\u0182\7g\2\2\u0182") + buf.write("\u0183\7p\2\2\u0183\u0184\7v\2\2\u0184\u0185\7u\2\2\u0185") + buf.write("\62\3\2\2\2\u0186\u0187\7k\2\2\u0187\u0188\7o\2\2\u0188") + buf.write("\u0189\7r\2\2\u0189\u018a\7q\2\2\u018a\u018b\7t\2\2\u018b") + buf.write("\u018c\7v\2\2\u018c\64\3\2\2\2\u018d\u018e\7k\2\2\u018e") + buf.write("\u018f\7p\2\2\u018f\u0190\7u\2\2\u0190\u0191\7v\2\2\u0191") + buf.write("\u0192\7c\2\2\u0192\u0193\7p\2\2\u0193\u0194\7e\2\2\u0194") + buf.write("\u0195\7g\2\2\u0195\u0196\7q\2\2\u0196\u0197\7h\2\2\u0197") + buf.write("\66\3\2\2\2\u0198\u0199\7k\2\2\u0199\u019a\7p\2\2\u019a") + buf.write("\u019b\7v\2\2\u019b8\3\2\2\2\u019c\u019d\7k\2\2\u019d") + buf.write("\u019e\7p\2\2\u019e\u019f\7v\2\2\u019f\u01a0\7g\2\2\u01a0") + buf.write("\u01a1\7t\2\2\u01a1\u01a2\7h\2\2\u01a2\u01a3\7c\2\2\u01a3") + buf.write("\u01a4\7e\2\2\u01a4\u01a5\7g\2\2\u01a5:\3\2\2\2\u01a6") + buf.write("\u01a7\7n\2\2\u01a7\u01a8\7q\2\2\u01a8\u01a9\7p\2\2\u01a9") + buf.write("\u01aa\7i\2\2\u01aa<\3\2\2\2\u01ab\u01ac\7p\2\2\u01ac") + buf.write("\u01ad\7c\2\2\u01ad\u01ae\7v\2\2\u01ae\u01af\7k\2\2\u01af") + buf.write("\u01b0\7x\2\2\u01b0\u01b1\7g\2\2\u01b1>\3\2\2\2\u01b2") + buf.write("\u01b3\7p\2\2\u01b3\u01b4\7g\2\2\u01b4\u01b5\7y\2\2\u01b5") + buf.write("@\3\2\2\2\u01b6\u01b7\7r\2\2\u01b7\u01b8\7c\2\2\u01b8") + buf.write("\u01b9\7e\2\2\u01b9\u01ba\7m\2\2\u01ba\u01bb\7c\2\2\u01bb") + buf.write("\u01bc\7i\2\2\u01bc\u01bd\7g\2\2\u01bdB\3\2\2\2\u01be") + buf.write("\u01bf\7r\2\2\u01bf\u01c0\7t\2\2\u01c0\u01c1\7k\2\2\u01c1") + buf.write("\u01c2\7x\2\2\u01c2\u01c3\7c\2\2\u01c3\u01c4\7v\2\2\u01c4") + buf.write("\u01c5\7g\2\2\u01c5D\3\2\2\2\u01c6\u01c7\7r\2\2\u01c7") + buf.write("\u01c8\7t\2\2\u01c8\u01c9\7q\2\2\u01c9\u01ca\7v\2\2\u01ca") + buf.write("\u01cb\7g\2\2\u01cb\u01cc\7e\2\2\u01cc\u01cd\7v\2\2\u01cd") + buf.write("\u01ce\7g\2\2\u01ce\u01cf\7f\2\2\u01cfF\3\2\2\2\u01d0") + buf.write("\u01d1\7r\2\2\u01d1\u01d2\7w\2\2\u01d2\u01d3\7d\2\2\u01d3") + buf.write("\u01d4\7n\2\2\u01d4\u01d5\7k\2\2\u01d5\u01d6\7e\2\2\u01d6") + buf.write("H\3\2\2\2\u01d7\u01d8\7t\2\2\u01d8\u01d9\7g\2\2\u01d9") + buf.write("\u01da\7v\2\2\u01da\u01db\7w\2\2\u01db\u01dc\7t\2\2\u01dc") + buf.write("\u01dd\7p\2\2\u01ddJ\3\2\2\2\u01de\u01df\7u\2\2\u01df") + buf.write("\u01e0\7j\2\2\u01e0\u01e1\7q\2\2\u01e1\u01e2\7t\2\2\u01e2") + buf.write("\u01e3\7v\2\2\u01e3L\3\2\2\2\u01e4\u01e5\7u\2\2\u01e5") + buf.write("\u01e6\7v\2\2\u01e6\u01e7\7c\2\2\u01e7\u01e8\7v\2\2\u01e8") + buf.write("\u01e9\7k\2\2\u01e9\u01ea\7e\2\2\u01eaN\3\2\2\2\u01eb") + buf.write("\u01ec\7u\2\2\u01ec\u01ed\7v\2\2\u01ed\u01ee\7t\2\2\u01ee") + buf.write("\u01ef\7k\2\2\u01ef\u01f0\7e\2\2\u01f0\u01f1\7v\2\2\u01f1") + buf.write("\u01f2\7h\2\2\u01f2\u01f3\7r\2\2\u01f3P\3\2\2\2\u01f4") + buf.write("\u01f5\7u\2\2\u01f5\u01f6\7w\2\2\u01f6\u01f7\7r\2\2\u01f7") + buf.write("\u01f8\7g\2\2\u01f8\u01f9\7t\2\2\u01f9R\3\2\2\2\u01fa") + buf.write("\u01fb\7u\2\2\u01fb\u01fc\7y\2\2\u01fc\u01fd\7k\2\2\u01fd") + buf.write("\u01fe\7v\2\2\u01fe\u01ff\7e\2\2\u01ff\u0200\7j\2\2\u0200") + buf.write("T\3\2\2\2\u0201\u0202\7u\2\2\u0202\u0203\7{\2\2\u0203") + buf.write("\u0204\7p\2\2\u0204\u0205\7e\2\2\u0205\u0206\7j\2\2\u0206") + buf.write("\u0207\7t\2\2\u0207\u0208\7q\2\2\u0208\u0209\7p\2\2\u0209") + buf.write("\u020a\7k\2\2\u020a\u020b\7|\2\2\u020b\u020c\7g\2\2\u020c") + buf.write("\u020d\7f\2\2\u020dV\3\2\2\2\u020e\u020f\7v\2\2\u020f") + buf.write("\u0210\7j\2\2\u0210\u0211\7k\2\2\u0211\u0212\7u\2\2\u0212") + buf.write("X\3\2\2\2\u0213\u0214\7v\2\2\u0214\u0215\7j\2\2\u0215") + buf.write("\u0216\7t\2\2\u0216\u0217\7q\2\2\u0217\u0218\7y\2\2\u0218") + buf.write("Z\3\2\2\2\u0219\u021a\7v\2\2\u021a\u021b\7j\2\2\u021b") + buf.write("\u021c\7t\2\2\u021c\u021d\7q\2\2\u021d\u021e\7y\2\2\u021e") + buf.write("\u021f\7u\2\2\u021f\\\3\2\2\2\u0220\u0221\7v\2\2\u0221") + buf.write("\u0222\7t\2\2\u0222\u0223\7c\2\2\u0223\u0224\7p\2\2\u0224") + buf.write("\u0225\7u\2\2\u0225\u0226\7k\2\2\u0226\u0227\7g\2\2\u0227") + buf.write("\u0228\7p\2\2\u0228\u0229\7v\2\2\u0229^\3\2\2\2\u022a") + buf.write("\u022b\7v\2\2\u022b\u022c\7t\2\2\u022c\u022d\7{\2\2\u022d") + buf.write("`\3\2\2\2\u022e\u022f\7x\2\2\u022f\u0230\7q\2\2\u0230") + buf.write("\u0231\7k\2\2\u0231\u0232\7f\2\2\u0232b\3\2\2\2\u0233") + buf.write("\u0234\7x\2\2\u0234\u0235\7q\2\2\u0235\u0236\7n\2\2\u0236") + buf.write("\u0237\7c\2\2\u0237\u0238\7v\2\2\u0238\u0239\7k\2\2\u0239") + buf.write("\u023a\7n\2\2\u023a\u023b\7g\2\2\u023bd\3\2\2\2\u023c") + buf.write("\u023d\7y\2\2\u023d\u023e\7j\2\2\u023e\u023f\7k\2\2\u023f") + buf.write("\u0240\7n\2\2\u0240\u0241\7g\2\2\u0241f\3\2\2\2\u0242") + buf.write("\u0250\7\62\2\2\u0243\u024d\t\2\2\2\u0244\u0246\5\u00e9") + buf.write("u\2\u0245\u0244\3\2\2\2\u0245\u0246\3\2\2\2\u0246\u024e") + buf.write("\3\2\2\2\u0247\u0249\7a\2\2\u0248\u0247\3\2\2\2\u0249") + buf.write("\u024a\3\2\2\2\u024a\u0248\3\2\2\2\u024a\u024b\3\2\2\2") + buf.write("\u024b\u024c\3\2\2\2\u024c\u024e\5\u00e9u\2\u024d\u0245") + buf.write("\3\2\2\2\u024d\u0248\3\2\2\2\u024e\u0250\3\2\2\2\u024f") + buf.write("\u0242\3\2\2\2\u024f\u0243\3\2\2\2\u0250\u0252\3\2\2\2") + buf.write("\u0251\u0253\t\3\2\2\u0252\u0251\3\2\2\2\u0252\u0253\3") + buf.write("\2\2\2\u0253h\3\2\2\2\u0254\u0255\7\62\2\2\u0255\u0256") + buf.write("\t\4\2\2\u0256\u025e\t\5\2\2\u0257\u0259\t\6\2\2\u0258") + buf.write("\u0257\3\2\2\2\u0259\u025c\3\2\2\2\u025a\u0258\3\2\2\2") + buf.write("\u025a\u025b\3\2\2\2\u025b\u025d\3\2\2\2\u025c\u025a\3") + buf.write("\2\2\2\u025d\u025f\t\5\2\2\u025e\u025a\3\2\2\2\u025e\u025f") + buf.write("\3\2\2\2\u025f\u0261\3\2\2\2\u0260\u0262\t\3\2\2\u0261") + buf.write("\u0260\3\2\2\2\u0261\u0262\3\2\2\2\u0262j\3\2\2\2\u0263") + buf.write("\u0267\7\62\2\2\u0264\u0266\7a\2\2\u0265\u0264\3\2\2\2") + buf.write("\u0266\u0269\3\2\2\2\u0267\u0265\3\2\2\2\u0267\u0268\3") + buf.write("\2\2\2\u0268\u026a\3\2\2\2\u0269\u0267\3\2\2\2\u026a\u0272") + buf.write("\t\7\2\2\u026b\u026d\t\b\2\2\u026c\u026b\3\2\2\2\u026d") + buf.write("\u0270\3\2\2\2\u026e\u026c\3\2\2\2\u026e\u026f\3\2\2\2") + buf.write("\u026f\u0271\3\2\2\2\u0270\u026e\3\2\2\2\u0271\u0273\t") + buf.write("\7\2\2\u0272\u026e\3\2\2\2\u0272\u0273\3\2\2\2\u0273\u0275") + buf.write("\3\2\2\2\u0274\u0276\t\3\2\2\u0275\u0274\3\2\2\2\u0275") + buf.write("\u0276\3\2\2\2\u0276l\3\2\2\2\u0277\u0278\7\62\2\2\u0278") + buf.write("\u0279\t\t\2\2\u0279\u0281\t\n\2\2\u027a\u027c\t\13\2") + buf.write("\2\u027b\u027a\3\2\2\2\u027c\u027f\3\2\2\2\u027d\u027b") + buf.write("\3\2\2\2\u027d\u027e\3\2\2\2\u027e\u0280\3\2\2\2\u027f") + buf.write("\u027d\3\2\2\2\u0280\u0282\t\n\2\2\u0281\u027d\3\2\2\2") + buf.write("\u0281\u0282\3\2\2\2\u0282\u0284\3\2\2\2\u0283\u0285\t") + buf.write("\3\2\2\u0284\u0283\3\2\2\2\u0284\u0285\3\2\2\2\u0285n") + buf.write("\3\2\2\2\u0286\u0287\5\u00e9u\2\u0287\u0289\7\60\2\2\u0288") + buf.write("\u028a\5\u00e9u\2\u0289\u0288\3\2\2\2\u0289\u028a\3\2") + buf.write("\2\2\u028a\u028e\3\2\2\2\u028b\u028c\7\60\2\2\u028c\u028e") + buf.write("\5\u00e9u\2\u028d\u0286\3\2\2\2\u028d\u028b\3\2\2\2\u028e") + buf.write("\u0290\3\2\2\2\u028f\u0291\5\u00e1q\2\u0290\u028f\3\2") + buf.write("\2\2\u0290\u0291\3\2\2\2\u0291\u0293\3\2\2\2\u0292\u0294") + buf.write("\t\f\2\2\u0293\u0292\3\2\2\2\u0293\u0294\3\2\2\2\u0294") + buf.write("\u029e\3\2\2\2\u0295\u029b\5\u00e9u\2\u0296\u0298\5\u00e1") + buf.write("q\2\u0297\u0299\t\f\2\2\u0298\u0297\3\2\2\2\u0298\u0299") + buf.write("\3\2\2\2\u0299\u029c\3\2\2\2\u029a\u029c\t\f\2\2\u029b") + buf.write("\u0296\3\2\2\2\u029b\u029a\3\2\2\2\u029c\u029e\3\2\2\2") + buf.write("\u029d\u028d\3\2\2\2\u029d\u0295\3\2\2\2\u029ep\3\2\2") + buf.write("\2\u029f\u02a0\7\62\2\2\u02a0\u02aa\t\4\2\2\u02a1\u02a3") + buf.write("\5\u00e5s\2\u02a2\u02a4\7\60\2\2\u02a3\u02a2\3\2\2\2\u02a3") + buf.write("\u02a4\3\2\2\2\u02a4\u02ab\3\2\2\2\u02a5\u02a7\5\u00e5") + buf.write("s\2\u02a6\u02a5\3\2\2\2\u02a6\u02a7\3\2\2\2\u02a7\u02a8") + buf.write("\3\2\2\2\u02a8\u02a9\7\60\2\2\u02a9\u02ab\5\u00e5s\2\u02aa") + buf.write("\u02a1\3\2\2\2\u02aa\u02a6\3\2\2\2\u02ab\u02ac\3\2\2\2") + buf.write("\u02ac\u02ae\t\r\2\2\u02ad\u02af\t\16\2\2\u02ae\u02ad") + buf.write("\3\2\2\2\u02ae\u02af\3\2\2\2\u02af\u02b0\3\2\2\2\u02b0") + buf.write("\u02b2\5\u00e9u\2\u02b1\u02b3\t\f\2\2\u02b2\u02b1\3\2") + buf.write("\2\2\u02b2\u02b3\3\2\2\2\u02b3r\3\2\2\2\u02b4\u02b5\7") + buf.write("v\2\2\u02b5\u02b6\7t\2\2\u02b6\u02b7\7w\2\2\u02b7\u02be") + buf.write("\7g\2\2\u02b8\u02b9\7h\2\2\u02b9\u02ba\7c\2\2\u02ba\u02bb") + buf.write("\7n\2\2\u02bb\u02bc\7u\2\2\u02bc\u02be\7g\2\2\u02bd\u02b4") + buf.write("\3\2\2\2\u02bd\u02b8\3\2\2\2\u02bet\3\2\2\2\u02bf\u02c2") + buf.write("\7)\2\2\u02c0\u02c3\n\17\2\2\u02c1\u02c3\5\u00e3r\2\u02c2") + buf.write("\u02c0\3\2\2\2\u02c2\u02c1\3\2\2\2\u02c3\u02c4\3\2\2\2") + buf.write("\u02c4\u02c5\7)\2\2\u02c5v\3\2\2\2\u02c6\u02cb\7$\2\2") + buf.write("\u02c7\u02ca\n\20\2\2\u02c8\u02ca\5\u00e3r\2\u02c9\u02c7") + buf.write("\3\2\2\2\u02c9\u02c8\3\2\2\2\u02ca\u02cd\3\2\2\2\u02cb") + buf.write("\u02c9\3\2\2\2\u02cb\u02cc\3\2\2\2\u02cc\u02ce\3\2\2\2") + buf.write("\u02cd\u02cb\3\2\2\2\u02ce\u02cf\7$\2\2\u02cfx\3\2\2\2") + buf.write("\u02d0\u02d1\7p\2\2\u02d1\u02d2\7w\2\2\u02d2\u02d3\7n") + buf.write("\2\2\u02d3\u02d4\7n\2\2\u02d4z\3\2\2\2\u02d5\u02d6\7*") + buf.write("\2\2\u02d6|\3\2\2\2\u02d7\u02d8\7+\2\2\u02d8~\3\2\2\2") + buf.write("\u02d9\u02da\7}\2\2\u02da\u0080\3\2\2\2\u02db\u02dc\7") + buf.write("\177\2\2\u02dc\u0082\3\2\2\2\u02dd\u02de\7]\2\2\u02de") + buf.write("\u0084\3\2\2\2\u02df\u02e0\7_\2\2\u02e0\u0086\3\2\2\2") + buf.write("\u02e1\u02e2\7=\2\2\u02e2\u0088\3\2\2\2\u02e3\u02e4\7") + buf.write(".\2\2\u02e4\u008a\3\2\2\2\u02e5\u02e6\7\60\2\2\u02e6\u008c") + buf.write("\3\2\2\2\u02e7\u02e8\7?\2\2\u02e8\u008e\3\2\2\2\u02e9") + buf.write("\u02ea\7@\2\2\u02ea\u0090\3\2\2\2\u02eb\u02ec\7>\2\2\u02ec") + buf.write("\u0092\3\2\2\2\u02ed\u02ee\7#\2\2\u02ee\u0094\3\2\2\2") + buf.write("\u02ef\u02f0\7\u0080\2\2\u02f0\u0096\3\2\2\2\u02f1\u02f2") + buf.write("\7A\2\2\u02f2\u0098\3\2\2\2\u02f3\u02f4\7<\2\2\u02f4\u009a") + buf.write("\3\2\2\2\u02f5\u02f6\7?\2\2\u02f6\u02f7\7?\2\2\u02f7\u009c") + buf.write("\3\2\2\2\u02f8\u02f9\7>\2\2\u02f9\u02fa\7?\2\2\u02fa\u009e") + buf.write("\3\2\2\2\u02fb\u02fc\7@\2\2\u02fc\u02fd\7?\2\2\u02fd\u00a0") + buf.write("\3\2\2\2\u02fe\u02ff\7#\2\2\u02ff\u0300\7?\2\2\u0300\u00a2") + buf.write("\3\2\2\2\u0301\u0302\7(\2\2\u0302\u0303\7(\2\2\u0303\u00a4") + buf.write("\3\2\2\2\u0304\u0305\7~\2\2\u0305\u0306\7~\2\2\u0306\u00a6") + buf.write("\3\2\2\2\u0307\u0308\7-\2\2\u0308\u0309\7-\2\2\u0309\u00a8") + buf.write("\3\2\2\2\u030a\u030b\7/\2\2\u030b\u030c\7/\2\2\u030c\u00aa") + buf.write("\3\2\2\2\u030d\u030e\7-\2\2\u030e\u00ac\3\2\2\2\u030f") + buf.write("\u0310\7/\2\2\u0310\u00ae\3\2\2\2\u0311\u0312\7,\2\2\u0312") + buf.write("\u00b0\3\2\2\2\u0313\u0314\7\61\2\2\u0314\u00b2\3\2\2") + buf.write("\2\u0315\u0316\7(\2\2\u0316\u00b4\3\2\2\2\u0317\u0318") + buf.write("\7~\2\2\u0318\u00b6\3\2\2\2\u0319\u031a\7`\2\2\u031a\u00b8") + buf.write("\3\2\2\2\u031b\u031c\7\'\2\2\u031c\u00ba\3\2\2\2\u031d") + buf.write("\u031e\7-\2\2\u031e\u031f\7?\2\2\u031f\u00bc\3\2\2\2\u0320") + buf.write("\u0321\7/\2\2\u0321\u0322\7?\2\2\u0322\u00be\3\2\2\2\u0323") + buf.write("\u0324\7,\2\2\u0324\u0325\7?\2\2\u0325\u00c0\3\2\2\2\u0326") + buf.write("\u0327\7\61\2\2\u0327\u0328\7?\2\2\u0328\u00c2\3\2\2\2") + buf.write("\u0329\u032a\7(\2\2\u032a\u032b\7?\2\2\u032b\u00c4\3\2") + buf.write("\2\2\u032c\u032d\7~\2\2\u032d\u032e\7?\2\2\u032e\u00c6") + buf.write("\3\2\2\2\u032f\u0330\7`\2\2\u0330\u0331\7?\2\2\u0331\u00c8") + buf.write("\3\2\2\2\u0332\u0333\7\'\2\2\u0333\u0334\7?\2\2\u0334") + buf.write("\u00ca\3\2\2\2\u0335\u0336\7>\2\2\u0336\u0337\7>\2\2\u0337") + buf.write("\u0338\7?\2\2\u0338\u00cc\3\2\2\2\u0339\u033a\7@\2\2\u033a") + buf.write("\u033b\7@\2\2\u033b\u033c\7?\2\2\u033c\u00ce\3\2\2\2\u033d") + buf.write("\u033e\7@\2\2\u033e\u033f\7@\2\2\u033f\u0340\7@\2\2\u0340") + buf.write("\u0341\7?\2\2\u0341\u00d0\3\2\2\2\u0342\u0343\7/\2\2\u0343") + buf.write("\u0344\7@\2\2\u0344\u00d2\3\2\2\2\u0345\u0346\7<\2\2\u0346") + buf.write("\u0347\7<\2\2\u0347\u00d4\3\2\2\2\u0348\u0349\7B\2\2\u0349") + buf.write("\u00d6\3\2\2\2\u034a\u034b\7\60\2\2\u034b\u034c\7\60\2") + buf.write("\2\u034c\u034d\7\60\2\2\u034d\u00d8\3\2\2\2\u034e\u0350") + buf.write("\t\21\2\2\u034f\u034e\3\2\2\2\u0350\u0351\3\2\2\2\u0351") + buf.write("\u034f\3\2\2\2\u0351\u0352\3\2\2\2\u0352\u0353\3\2\2\2") + buf.write("\u0353\u0354\bm\2\2\u0354\u00da\3\2\2\2\u0355\u0356\7") + buf.write("\61\2\2\u0356\u0357\7,\2\2\u0357\u035b\3\2\2\2\u0358\u035a") + buf.write("\13\2\2\2\u0359\u0358\3\2\2\2\u035a\u035d\3\2\2\2\u035b") + buf.write("\u035c\3\2\2\2\u035b\u0359\3\2\2\2\u035c\u035e\3\2\2\2") + buf.write("\u035d\u035b\3\2\2\2\u035e\u035f\7,\2\2\u035f\u0360\7") + buf.write("\61\2\2\u0360\u0361\3\2\2\2\u0361\u0362\bn\2\2\u0362\u00dc") + buf.write("\3\2\2\2\u0363\u0364\7\61\2\2\u0364\u0365\7\61\2\2\u0365") + buf.write("\u0369\3\2\2\2\u0366\u0368\n\22\2\2\u0367\u0366\3\2\2") + buf.write("\2\u0368\u036b\3\2\2\2\u0369\u0367\3\2\2\2\u0369\u036a") + buf.write("\3\2\2\2\u036a\u036c\3\2\2\2\u036b\u0369\3\2\2\2\u036c") + buf.write("\u036d\bo\2\2\u036d\u00de\3\2\2\2\u036e\u0372\5\u00ed") + buf.write("w\2\u036f\u0371\5\u00ebv\2\u0370\u036f\3\2\2\2\u0371\u0374") + buf.write("\3\2\2\2\u0372\u0370\3\2\2\2\u0372\u0373\3\2\2\2\u0373") + buf.write("\u00e0\3\2\2\2\u0374\u0372\3\2\2\2\u0375\u0377\t\23\2") + buf.write("\2\u0376\u0378\t\16\2\2\u0377\u0376\3\2\2\2\u0377\u0378") + buf.write("\3\2\2\2\u0378\u0379\3\2\2\2\u0379\u037a\5\u00e9u\2\u037a") + buf.write("\u00e2\3\2\2\2\u037b\u037c\7^\2\2\u037c\u0391\t\24\2\2") + buf.write("\u037d\u0382\7^\2\2\u037e\u0380\t\25\2\2\u037f\u037e\3") + buf.write("\2\2\2\u037f\u0380\3\2\2\2\u0380\u0381\3\2\2\2\u0381\u0383") + buf.write("\t\7\2\2\u0382\u037f\3\2\2\2\u0382\u0383\3\2\2\2\u0383") + buf.write("\u0384\3\2\2\2\u0384\u0391\t\7\2\2\u0385\u0387\7^\2\2") + buf.write("\u0386\u0388\7w\2\2\u0387\u0386\3\2\2\2\u0388\u0389\3") + buf.write("\2\2\2\u0389\u0387\3\2\2\2\u0389\u038a\3\2\2\2\u038a\u038b") + buf.write("\3\2\2\2\u038b\u038c\5\u00e7t\2\u038c\u038d\5\u00e7t\2") + buf.write("\u038d\u038e\5\u00e7t\2\u038e\u038f\5\u00e7t\2\u038f\u0391") + buf.write("\3\2\2\2\u0390\u037b\3\2\2\2\u0390\u037d\3\2\2\2\u0390") + buf.write("\u0385\3\2\2\2\u0391\u00e4\3\2\2\2\u0392\u039b\5\u00e7") + buf.write("t\2\u0393\u0396\5\u00e7t\2\u0394\u0396\7a\2\2\u0395\u0393") + buf.write("\3\2\2\2\u0395\u0394\3\2\2\2\u0396\u0399\3\2\2\2\u0397") + buf.write("\u0395\3\2\2\2\u0397\u0398\3\2\2\2\u0398\u039a\3\2\2\2") + buf.write("\u0399\u0397\3\2\2\2\u039a\u039c\5\u00e7t\2\u039b\u0397") + buf.write("\3\2\2\2\u039b\u039c\3\2\2\2\u039c\u00e6\3\2\2\2\u039d") + buf.write("\u039e\t\5\2\2\u039e\u00e8\3\2\2\2\u039f\u03a7\t\26\2") + buf.write("\2\u03a0\u03a2\t\27\2\2\u03a1\u03a0\3\2\2\2\u03a2\u03a5") + buf.write("\3\2\2\2\u03a3\u03a1\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4") + buf.write("\u03a6\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a6\u03a8\t\26\2") + buf.write("\2\u03a7\u03a3\3\2\2\2\u03a7\u03a8\3\2\2\2\u03a8\u00ea") + buf.write("\3\2\2\2\u03a9\u03ac\5\u00edw\2\u03aa\u03ac\t\26\2\2\u03ab") + buf.write("\u03a9\3\2\2\2\u03ab\u03aa\3\2\2\2\u03ac\u00ec\3\2\2\2") + buf.write("\u03ad\u03b2\t\30\2\2\u03ae\u03b2\n\31\2\2\u03af\u03b0") + buf.write("\t\32\2\2\u03b0\u03b2\t\33\2\2\u03b1\u03ad\3\2\2\2\u03b1") + buf.write("\u03ae\3\2\2\2\u03b1\u03af\3\2\2\2\u03b2\u00ee\3\2\2\2") + buf.write("\62\2\u0245\u024a\u024d\u024f\u0252\u025a\u025e\u0261") + buf.write("\u0267\u026e\u0272\u0275\u027d\u0281\u0284\u0289\u028d") + buf.write("\u0290\u0293\u0298\u029b\u029d\u02a3\u02a6\u02aa\u02ae") + buf.write("\u02b2\u02bd\u02c2\u02c9\u02cb\u0351\u035b\u0369\u0372") + buf.write("\u0377\u037f\u0382\u0389\u0390\u0395\u0397\u039b\u03a3") + buf.write("\u03a7\u03ab\u03b1\3\2\3\2") + return buf.getvalue() + + +class JavaLexer(Lexer): + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + 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 + DECIMAL_LITERAL = 51 + HEX_LITERAL = 52 + OCT_LITERAL = 53 + BINARY_LITERAL = 54 + FLOAT_LITERAL = 55 + HEX_FLOAT_LITERAL = 56 + BOOL_LITERAL = 57 + CHAR_LITERAL = 58 + STRING_LITERAL = 59 + NULL_LITERAL = 60 + LPAREN = 61 + RPAREN = 62 + LBRACE = 63 + RBRACE = 64 + LBRACK = 65 + RBRACK = 66 + SEMI = 67 + COMMA = 68 + DOT = 69 + ASSIGN = 70 + GT = 71 + LT = 72 + BANG = 73 + TILDE = 74 + QUESTION = 75 + COLON = 76 + EQUAL = 77 + LE = 78 + GE = 79 + NOTEQUAL = 80 + AND = 81 + OR = 82 + INC = 83 + DEC = 84 + ADD = 85 + SUB = 86 + MUL = 87 + DIV = 88 + BITAND = 89 + BITOR = 90 + CARET = 91 + MOD = 92 + ADD_ASSIGN = 93 + SUB_ASSIGN = 94 + MUL_ASSIGN = 95 + DIV_ASSIGN = 96 + AND_ASSIGN = 97 + OR_ASSIGN = 98 + XOR_ASSIGN = 99 + MOD_ASSIGN = 100 + LSHIFT_ASSIGN = 101 + RSHIFT_ASSIGN = 102 + URSHIFT_ASSIGN = 103 + ARROW = 104 + COLONCOLON = 105 + AT = 106 + ELLIPSIS = 107 + WS = 108 + COMMENT = 109 + LINE_COMMENT = 110 + IDENTIFIER = 111 + + channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] + + modeNames = [ "DEFAULT_MODE" ] + + literalNames = [ "", + "'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'", "'('", "')'", "'{'", "'}'", "'['", "']'", + "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", + "':'", "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", + "'--'", "'+'", "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", + "'+='", "'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", + "'<<='", "'>>='", "'>>>='", "'->'", "'::'", "'@'", "'...'" ] + + symbolicNames = [ "", + "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", "DECIMAL_LITERAL", "HEX_LITERAL", + "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", + "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", + "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", + "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", "TILDE", + "QUESTION", "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", "AND", + "OR", "INC", "DEC", "ADD", "SUB", "MUL", "DIV", "BITAND", "BITOR", + "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", "DIV_ASSIGN", + "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", + "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "ARROW", "COLONCOLON", "AT", + "ELLIPSIS", "WS", "COMMENT", "LINE_COMMENT", "IDENTIFIER" ] + + ruleNames = [ "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", "DECIMAL_LITERAL", "HEX_LITERAL", + "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", + "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", + "LPAREN", "RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", + "SEMI", "COMMA", "DOT", "ASSIGN", "GT", "LT", "BANG", + "TILDE", "QUESTION", "COLON", "EQUAL", "LE", "GE", "NOTEQUAL", + "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL", "DIV", + "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", + "MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", + "XOR_ASSIGN", "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", + "URSHIFT_ASSIGN", "ARROW", "COLONCOLON", "AT", "ELLIPSIS", + "WS", "COMMENT", "LINE_COMMENT", "IDENTIFIER", "ExponentPart", + "EscapeSequence", "HexDigits", "HexDigit", "Digits", "LetterOrDigit", + "Letter" ] + + grammarFileName = "JavaLexer.g4" + + def __init__(self, input=None, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) + self._actions = None + self._predicates = None + + diff --git a/java2python/lang/JavaLexer.tokens b/java2python/lang/JavaLexer.tokens new file mode 100644 index 0000000..c648b8c --- /dev/null +++ b/java2python/lang/JavaLexer.tokens @@ -0,0 +1,209 @@ +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 +DECIMAL_LITERAL=51 +HEX_LITERAL=52 +OCT_LITERAL=53 +BINARY_LITERAL=54 +FLOAT_LITERAL=55 +HEX_FLOAT_LITERAL=56 +BOOL_LITERAL=57 +CHAR_LITERAL=58 +STRING_LITERAL=59 +NULL_LITERAL=60 +LPAREN=61 +RPAREN=62 +LBRACE=63 +RBRACE=64 +LBRACK=65 +RBRACK=66 +SEMI=67 +COMMA=68 +DOT=69 +ASSIGN=70 +GT=71 +LT=72 +BANG=73 +TILDE=74 +QUESTION=75 +COLON=76 +EQUAL=77 +LE=78 +GE=79 +NOTEQUAL=80 +AND=81 +OR=82 +INC=83 +DEC=84 +ADD=85 +SUB=86 +MUL=87 +DIV=88 +BITAND=89 +BITOR=90 +CARET=91 +MOD=92 +ADD_ASSIGN=93 +SUB_ASSIGN=94 +MUL_ASSIGN=95 +DIV_ASSIGN=96 +AND_ASSIGN=97 +OR_ASSIGN=98 +XOR_ASSIGN=99 +MOD_ASSIGN=100 +LSHIFT_ASSIGN=101 +RSHIFT_ASSIGN=102 +URSHIFT_ASSIGN=103 +ARROW=104 +COLONCOLON=105 +AT=106 +ELLIPSIS=107 +WS=108 +COMMENT=109 +LINE_COMMENT=110 +IDENTIFIER=111 +'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'=60 +'('=61 +')'=62 +'{'=63 +'}'=64 +'['=65 +']'=66 +';'=67 +','=68 +'.'=69 +'='=70 +'>'=71 +'<'=72 +'!'=73 +'~'=74 +'?'=75 +':'=76 +'=='=77 +'<='=78 +'>='=79 +'!='=80 +'&&'=81 +'||'=82 +'++'=83 +'--'=84 +'+'=85 +'-'=86 +'*'=87 +'/'=88 +'&'=89 +'|'=90 +'^'=91 +'%'=92 +'+='=93 +'-='=94 +'*='=95 +'/='=96 +'&='=97 +'|='=98 +'^='=99 +'%='=100 +'<<='=101 +'>>='=102 +'>>>='=103 +'->'=104 +'::'=105 +'@'=106 +'...'=107 diff --git a/java2python/lang/JavaParser.g4 b/java2python/lang/JavaParser.g4 new file mode 100644 index 0000000..49326ef --- /dev/null +++ b/java2python/lang/JavaParser.g4 @@ -0,0 +1,620 @@ +/* + [The "BSD licence"] + Copyright (c) 2013 Terence Parr, Sam Harwell + Copyright (c) 2017 Ivan Kochurkin (upgrade to Java 8) + 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. +*/ + +parser grammar JavaParser; + +options { tokenVocab=JavaLexer; } + +compilationUnit + : packageDeclaration? importDeclaration* typeDeclaration* EOF + ; + +packageDeclaration + : annotation* PACKAGE qualifiedName ';' + ; + +importDeclaration + : IMPORT STATIC? qualifiedName ('.' '*')? ';' + ; + +typeDeclaration + : classOrInterfaceModifier* + (classDeclaration | enumDeclaration | interfaceDeclaration | annotationTypeDeclaration) + | ';' + ; + +modifier + : classOrInterfaceModifier + | NATIVE + | SYNCHRONIZED + | TRANSIENT + | VOLATILE + ; + +classOrInterfaceModifier + : annotation + | PUBLIC + | PROTECTED + | PRIVATE + | STATIC + | ABSTRACT + | FINAL // FINAL for class only -- does not apply to interfaces + | STRICTFP + ; + +variableModifier + : FINAL + | annotation + ; + +classDeclaration + : CLASS IDENTIFIER typeParameters? + (EXTENDS typeType)? + (IMPLEMENTS typeList)? + classBody + ; + +typeParameters + : '<' typeParameter (',' typeParameter)* '>' + ; + +typeParameter + : annotation* IDENTIFIER (EXTENDS annotation* typeBound)? + ; + +typeBound + : typeType ('&' typeType)* + ; + +enumDeclaration + : ENUM IDENTIFIER (IMPLEMENTS typeList)? '{' enumConstants? ','? enumBodyDeclarations? '}' + ; + +enumConstants + : enumConstant (',' enumConstant)* + ; + +enumConstant + : annotation* IDENTIFIER arguments? classBody? + ; + +enumBodyDeclarations + : ';' classBodyDeclaration* + ; + +interfaceDeclaration + : INTERFACE IDENTIFIER typeParameters? (EXTENDS typeList)? interfaceBody + ; + +classBody + : '{' classBodyDeclaration* '}' + ; + +interfaceBody + : '{' interfaceBodyDeclaration* '}' + ; + +classBodyDeclaration + : ';' + | STATIC? block + | modifier* memberDeclaration + ; + +memberDeclaration + : methodDeclaration + | genericMethodDeclaration + | fieldDeclaration + | constructorDeclaration + | genericConstructorDeclaration + | interfaceDeclaration + | annotationTypeDeclaration + | classDeclaration + | enumDeclaration + ; + +/* We use rule this even for void methods which cannot have [] after parameters. + This simplifies grammar and we can consider void to be a type, which + renders the [] matching as a context-sensitive issue or a semantic check + for invalid return type after parsing. + */ +methodDeclaration + : typeTypeOrVoid IDENTIFIER formalParameters ('[' ']')* + (THROWS qualifiedNameList)? + methodBody + ; + +methodBody + : block + | ';' + ; + +typeTypeOrVoid + : typeType + | VOID + ; + +genericMethodDeclaration + : typeParameters methodDeclaration + ; + +genericConstructorDeclaration + : typeParameters constructorDeclaration + ; + +constructorDeclaration + : IDENTIFIER formalParameters (THROWS qualifiedNameList)? constructorBody=block + ; + +fieldDeclaration + : typeType variableDeclarators ';' + ; + +interfaceBodyDeclaration + : modifier* interfaceMemberDeclaration + | ';' + ; + +interfaceMemberDeclaration + : constDeclaration + | interfaceMethodDeclaration + | genericInterfaceMethodDeclaration + | interfaceDeclaration + | annotationTypeDeclaration + | classDeclaration + | enumDeclaration + ; + +constDeclaration + : typeType constantDeclarator (',' constantDeclarator)* ';' + ; + +constantDeclarator + : IDENTIFIER ('[' ']')* '=' variableInitializer + ; + +// Early versions of Java allows brackets after the method name, eg. +// public int[] return2DArray() [] { ... } +// is the same as +// public int[][] return2DArray() { ... } +interfaceMethodDeclaration + : interfaceMethodModifier* (typeTypeOrVoid | typeParameters annotation* typeTypeOrVoid) + IDENTIFIER formalParameters ('[' ']')* (THROWS qualifiedNameList)? methodBody + ; + +// Java8 +interfaceMethodModifier + : annotation + | PUBLIC + | ABSTRACT + | DEFAULT + | STATIC + | STRICTFP + ; + +genericInterfaceMethodDeclaration + : typeParameters interfaceMethodDeclaration + ; + +variableDeclarators + : variableDeclarator (',' variableDeclarator)* + ; + +variableDeclarator + : variableDeclaratorId ('=' variableInitializer)? + ; + +variableDeclaratorId + : IDENTIFIER ('[' ']')* + ; + +variableInitializer + : arrayInitializer + | expression + ; + +arrayInitializer + : '{' (variableInitializer (',' variableInitializer)* (',')? )? '}' + ; + +classOrInterfaceType + : IDENTIFIER typeArguments? ('.' IDENTIFIER typeArguments?)* + ; + +typeArgument + : typeType + | annotation* '?' ((EXTENDS | SUPER) typeType)? + ; + +qualifiedNameList + : qualifiedName (',' qualifiedName)* + ; + +formalParameters + : '(' formalParameterList? ')' + ; + +formalParameterList + : formalParameter (',' formalParameter)* (',' lastFormalParameter)? + | lastFormalParameter + ; + +formalParameter + : variableModifier* typeType variableDeclaratorId + ; + +lastFormalParameter + : variableModifier* typeType annotation* '...' variableDeclaratorId + ; + +qualifiedName + : IDENTIFIER ('.' IDENTIFIER)* + ; + +literal + : integerLiteral + | floatLiteral + | CHAR_LITERAL + | STRING_LITERAL + | BOOL_LITERAL + | NULL_LITERAL + ; + +integerLiteral + : DECIMAL_LITERAL + | HEX_LITERAL + | OCT_LITERAL + | BINARY_LITERAL + ; + +floatLiteral + : FLOAT_LITERAL + | HEX_FLOAT_LITERAL + ; + +// ANNOTATIONS +altAnnotationQualifiedName + : (IDENTIFIER DOT)* '@' IDENTIFIER + ; + +annotation + : ('@' qualifiedName | altAnnotationQualifiedName) ('(' ( elementValuePairs | elementValue )? ')')? + ; + +elementValuePairs + : elementValuePair (',' elementValuePair)* + ; + +elementValuePair + : IDENTIFIER '=' elementValue + ; + +elementValue + : expression + | annotation + | elementValueArrayInitializer + ; + +elementValueArrayInitializer + : '{' (elementValue (',' elementValue)*)? (',')? '}' + ; + +annotationTypeDeclaration + : '@' INTERFACE IDENTIFIER annotationTypeBody + ; + +annotationTypeBody + : '{' (annotationTypeElementDeclaration)* '}' + ; + +annotationTypeElementDeclaration + : modifier* annotationTypeElementRest + | ';' // this is not allowed by the grammar, but apparently allowed by the actual compiler + ; + +annotationTypeElementRest + : typeType annotationMethodOrConstantRest ';' + | classDeclaration ';'? + | interfaceDeclaration ';'? + | enumDeclaration ';'? + | annotationTypeDeclaration ';'? + ; + +annotationMethodOrConstantRest + : annotationMethodRest + | annotationConstantRest + ; + +annotationMethodRest + : IDENTIFIER '(' ')' defaultValue? + ; + +annotationConstantRest + : variableDeclarators + ; + +defaultValue + : DEFAULT elementValue + ; + +// STATEMENTS / BLOCKS + +block + : '{' blockStatement* '}' + ; + +blockStatement + : localVariableDeclaration ';' + | statement + | localTypeDeclaration + ; + +localVariableDeclaration + : variableModifier* typeType variableDeclarators + ; + +localTypeDeclaration + : classOrInterfaceModifier* + (classDeclaration | interfaceDeclaration) + | ';' + ; + +statement + : blockLabel=block + | ASSERT expression (':' expression)? ';' + | IF parExpression statement (ELSE statement)? + | FOR '(' forControl ')' statement + | WHILE parExpression statement + | DO statement WHILE parExpression ';' + | TRY block (catchClause+ finallyBlock? | finallyBlock) + | TRY resourceSpecification block catchClause* finallyBlock? + | SWITCH parExpression '{' switchBlockStatementGroup* switchLabel* '}' + | SYNCHRONIZED parExpression block + | RETURN expression? ';' + | THROW expression ';' + | BREAK IDENTIFIER? ';' + | CONTINUE IDENTIFIER? ';' + | SEMI + | statementExpression=expression ';' + | identifierLabel=IDENTIFIER ':' statement + ; + +catchClause + : CATCH '(' variableModifier* catchType IDENTIFIER ')' block + ; + +catchType + : qualifiedName ('|' qualifiedName)* + ; + +finallyBlock + : FINALLY block + ; + +resourceSpecification + : '(' resources ';'? ')' + ; + +resources + : resource (';' resource)* + ; + +resource + : variableModifier* classOrInterfaceType variableDeclaratorId '=' expression + ; + +/** Matches cases then statements, both of which are mandatory. + * To handle empty cases at the end, we add switchLabel* to statement. + */ +switchBlockStatementGroup + : switchLabel+ blockStatement+ + ; + +switchLabel + : CASE (constantExpression=expression | enumConstantName=IDENTIFIER) ':' + | DEFAULT ':' + ; + +forControl + : enhancedForControl + | forInit? ';' expression? ';' forUpdate=expressionList? + ; + +forInit + : localVariableDeclaration + | expressionList + ; + +enhancedForControl + : variableModifier* typeType variableDeclaratorId ':' expression + ; + +// EXPRESSIONS + +parExpression + : '(' expression ')' + ; + +expressionList + : expression (',' expression)* + ; + +methodCall + : IDENTIFIER '(' expressionList? ')' + | THIS '(' expressionList? ')' + | SUPER '(' expressionList? ')' + ; + +expression + : primary + | expression bop='.' + ( IDENTIFIER + | methodCall + | THIS + | NEW nonWildcardTypeArguments? innerCreator + | SUPER superSuffix + | explicitGenericInvocation + ) + | expression '[' expression ']' + | methodCall + | NEW creator + | '(' annotation* typeType ('&' typeType)* ')' expression + | expression postfix=('++' | '--') + | prefix=('+'|'-'|'++'|'--') expression + | prefix=('~'|'!') expression + | expression bop=('*'|'/'|'%') expression + | expression bop=('+'|'-') expression + | expression ('<' '<' | '>' '>' '>' | '>' '>') expression + | expression bop=('<=' | '>=' | '>' | '<') expression + | expression bop=INSTANCEOF typeType + | expression bop=('==' | '!=') expression + | expression bop='&' expression + | expression bop='^' expression + | expression bop='|' expression + | expression bop='&&' expression + | expression bop='||' expression + | expression bop='?' expression ':' expression + | expression + bop=('=' | '+=' | '-=' | '*=' | '/=' | '&=' | '|=' | '^=' | '>>=' | '>>>=' | '<<=' | '%=') + expression + | lambdaExpression // Java8 + + // Java 8 methodReference + | expression '::' typeArguments? IDENTIFIER + | typeType '::' (typeArguments? IDENTIFIER | NEW) + | classType '::' typeArguments? NEW + ; + +// Java8 +lambdaExpression + : lambdaParameters '->' lambdaBody + ; + +// Java8 +lambdaParameters + : IDENTIFIER + | '(' formalParameterList? ')' + | '(' IDENTIFIER (',' IDENTIFIER)* ')' + ; + +// Java8 +lambdaBody + : expression + | block + ; + +primary + : '(' expression ')' + | THIS + | SUPER + | literal + | IDENTIFIER + | typeTypeOrVoid '.' CLASS + | nonWildcardTypeArguments (explicitGenericInvocationSuffix | THIS arguments) + ; + +classType + : (classOrInterfaceType '.')? annotation* IDENTIFIER typeArguments? + ; + +creator + : nonWildcardTypeArguments createdName classCreatorRest + | createdName (arrayCreatorRest | classCreatorRest) + ; + +createdName + : IDENTIFIER typeArgumentsOrDiamond? ('.' IDENTIFIER typeArgumentsOrDiamond?)* + | primitiveType + ; + +innerCreator + : IDENTIFIER nonWildcardTypeArgumentsOrDiamond? classCreatorRest + ; + +arrayCreatorRest + : '[' (']' ('[' ']')* arrayInitializer | expression ']' ('[' expression ']')* ('[' ']')*) + ; + +classCreatorRest + : arguments classBody? + ; + +explicitGenericInvocation + : nonWildcardTypeArguments explicitGenericInvocationSuffix + ; + +typeArgumentsOrDiamond + : '<' '>' + | typeArguments + ; + +nonWildcardTypeArgumentsOrDiamond + : '<' '>' + | nonWildcardTypeArguments + ; + +nonWildcardTypeArguments + : '<' typeList '>' + ; + +typeList + : typeType (',' typeType)* + ; + +typeType + : annotation* (classOrInterfaceType | primitiveType) (annotation* '[' ']')* + ; + +primitiveType + : BOOLEAN + | CHAR + | BYTE + | SHORT + | INT + | LONG + | FLOAT + | DOUBLE + ; + +typeArguments + : '<' typeArgument (',' typeArgument)* '>' + ; + +superSuffix + : arguments + | '.' IDENTIFIER arguments? + ; + +explicitGenericInvocationSuffix + : SUPER superSuffix + | IDENTIFIER arguments + ; + +arguments + : '(' expressionList? ')' + ; diff --git a/java2python/lang/JavaParser.interp b/java2python/lang/JavaParser.interp new file mode 100644 index 0000000..9559ee1 --- /dev/null +++ b/java2python/lang/JavaParser.interp @@ -0,0 +1,338 @@ +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' +'(' +')' +'{' +'}' +'[' +']' +';' +',' +'.' +'=' +'>' +'<' +'!' +'~' +'?' +':' +'==' +'<=' +'>=' +'!=' +'&&' +'||' +'++' +'--' +'+' +'-' +'*' +'/' +'&' +'|' +'^' +'%' +'+=' +'-=' +'*=' +'/=' +'&=' +'|=' +'^=' +'%=' +'<<=' +'>>=' +'>>>=' +'->' +'::' +'@' +'...' +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 +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +NULL_LITERAL +LPAREN +RPAREN +LBRACE +RBRACE +LBRACK +RBRACK +SEMI +COMMA +DOT +ASSIGN +GT +LT +BANG +TILDE +QUESTION +COLON +EQUAL +LE +GE +NOTEQUAL +AND +OR +INC +DEC +ADD +SUB +MUL +DIV +BITAND +BITOR +CARET +MOD +ADD_ASSIGN +SUB_ASSIGN +MUL_ASSIGN +DIV_ASSIGN +AND_ASSIGN +OR_ASSIGN +XOR_ASSIGN +MOD_ASSIGN +LSHIFT_ASSIGN +RSHIFT_ASSIGN +URSHIFT_ASSIGN +ARROW +COLONCOLON +AT +ELLIPSIS +WS +COMMENT +LINE_COMMENT +IDENTIFIER + +rule names: +compilationUnit +packageDeclaration +importDeclaration +typeDeclaration +modifier +classOrInterfaceModifier +variableModifier +classDeclaration +typeParameters +typeParameter +typeBound +enumDeclaration +enumConstants +enumConstant +enumBodyDeclarations +interfaceDeclaration +classBody +interfaceBody +classBodyDeclaration +memberDeclaration +methodDeclaration +methodBody +typeTypeOrVoid +genericMethodDeclaration +genericConstructorDeclaration +constructorDeclaration +fieldDeclaration +interfaceBodyDeclaration +interfaceMemberDeclaration +constDeclaration +constantDeclarator +interfaceMethodDeclaration +interfaceMethodModifier +genericInterfaceMethodDeclaration +variableDeclarators +variableDeclarator +variableDeclaratorId +variableInitializer +arrayInitializer +classOrInterfaceType +typeArgument +qualifiedNameList +formalParameters +formalParameterList +formalParameter +lastFormalParameter +qualifiedName +literal +integerLiteral +floatLiteral +altAnnotationQualifiedName +annotation +elementValuePairs +elementValuePair +elementValue +elementValueArrayInitializer +annotationTypeDeclaration +annotationTypeBody +annotationTypeElementDeclaration +annotationTypeElementRest +annotationMethodOrConstantRest +annotationMethodRest +annotationConstantRest +defaultValue +block +blockStatement +localVariableDeclaration +localTypeDeclaration +statement +catchClause +catchType +finallyBlock +resourceSpecification +resources +resource +switchBlockStatementGroup +switchLabel +forControl +forInit +enhancedForControl +parExpression +expressionList +methodCall +expression +lambdaExpression +lambdaParameters +lambdaBody +primary +classType +creator +createdName +innerCreator +arrayCreatorRest +classCreatorRest +explicitGenericInvocation +typeArgumentsOrDiamond +nonWildcardTypeArgumentsOrDiamond +nonWildcardTypeArguments +typeList +typeType +primitiveType +typeArguments +superSuffix +explicitGenericInvocationSuffix +arguments + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 113, 1439, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 3, 2, 5, 2, 214, 10, 2, 3, 2, 7, 2, 217, 10, 2, 12, 2, 14, 2, 220, 11, 2, 3, 2, 7, 2, 223, 10, 2, 12, 2, 14, 2, 226, 11, 2, 3, 2, 3, 2, 3, 3, 7, 3, 231, 10, 3, 12, 3, 14, 3, 234, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 5, 4, 242, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 247, 10, 4, 3, 4, 3, 4, 3, 5, 7, 5, 252, 10, 5, 12, 5, 14, 5, 255, 11, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 261, 10, 5, 3, 5, 5, 5, 264, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 271, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 281, 10, 7, 3, 8, 3, 8, 5, 8, 285, 10, 8, 3, 9, 3, 9, 3, 9, 5, 9, 290, 10, 9, 3, 9, 3, 9, 5, 9, 294, 10, 9, 3, 9, 3, 9, 5, 9, 298, 10, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 306, 10, 10, 12, 10, 14, 10, 309, 11, 10, 3, 10, 3, 10, 3, 11, 7, 11, 314, 10, 11, 12, 11, 14, 11, 317, 11, 11, 3, 11, 3, 11, 3, 11, 7, 11, 322, 10, 11, 12, 11, 14, 11, 325, 11, 11, 3, 11, 5, 11, 328, 10, 11, 3, 12, 3, 12, 3, 12, 7, 12, 333, 10, 12, 12, 12, 14, 12, 336, 11, 12, 3, 13, 3, 13, 3, 13, 3, 13, 5, 13, 342, 10, 13, 3, 13, 3, 13, 5, 13, 346, 10, 13, 3, 13, 5, 13, 349, 10, 13, 3, 13, 5, 13, 352, 10, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 7, 14, 359, 10, 14, 12, 14, 14, 14, 362, 11, 14, 3, 15, 7, 15, 365, 10, 15, 12, 15, 14, 15, 368, 11, 15, 3, 15, 3, 15, 5, 15, 372, 10, 15, 3, 15, 5, 15, 375, 10, 15, 3, 16, 3, 16, 7, 16, 379, 10, 16, 12, 16, 14, 16, 382, 11, 16, 3, 17, 3, 17, 3, 17, 5, 17, 387, 10, 17, 3, 17, 3, 17, 5, 17, 391, 10, 17, 3, 17, 3, 17, 3, 18, 3, 18, 7, 18, 397, 10, 18, 12, 18, 14, 18, 400, 11, 18, 3, 18, 3, 18, 3, 19, 3, 19, 7, 19, 406, 10, 19, 12, 19, 14, 19, 409, 11, 19, 3, 19, 3, 19, 3, 20, 3, 20, 5, 20, 415, 10, 20, 3, 20, 3, 20, 7, 20, 419, 10, 20, 12, 20, 14, 20, 422, 11, 20, 3, 20, 5, 20, 425, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 436, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 443, 10, 22, 12, 22, 14, 22, 446, 11, 22, 3, 22, 3, 22, 5, 22, 450, 10, 22, 3, 22, 3, 22, 3, 23, 3, 23, 5, 23, 456, 10, 23, 3, 24, 3, 24, 5, 24, 460, 10, 24, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 472, 10, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 7, 29, 481, 10, 29, 12, 29, 14, 29, 484, 11, 29, 3, 29, 3, 29, 5, 29, 488, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 497, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 503, 10, 31, 12, 31, 14, 31, 506, 11, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 7, 32, 513, 10, 32, 12, 32, 14, 32, 516, 11, 32, 3, 32, 3, 32, 3, 32, 3, 33, 7, 33, 522, 10, 33, 12, 33, 14, 33, 525, 11, 33, 3, 33, 3, 33, 3, 33, 7, 33, 530, 10, 33, 12, 33, 14, 33, 533, 11, 33, 3, 33, 3, 33, 5, 33, 537, 10, 33, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 543, 10, 33, 12, 33, 14, 33, 546, 11, 33, 3, 33, 3, 33, 5, 33, 550, 10, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 560, 10, 34, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 7, 36, 568, 10, 36, 12, 36, 14, 36, 571, 11, 36, 3, 37, 3, 37, 3, 37, 5, 37, 576, 10, 37, 3, 38, 3, 38, 3, 38, 7, 38, 581, 10, 38, 12, 38, 14, 38, 584, 11, 38, 3, 39, 3, 39, 5, 39, 588, 10, 39, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 594, 10, 40, 12, 40, 14, 40, 597, 11, 40, 3, 40, 5, 40, 600, 10, 40, 5, 40, 602, 10, 40, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 608, 10, 41, 3, 41, 3, 41, 3, 41, 5, 41, 613, 10, 41, 7, 41, 615, 10, 41, 12, 41, 14, 41, 618, 11, 41, 3, 42, 3, 42, 7, 42, 622, 10, 42, 12, 42, 14, 42, 625, 11, 42, 3, 42, 3, 42, 3, 42, 5, 42, 630, 10, 42, 5, 42, 632, 10, 42, 3, 43, 3, 43, 3, 43, 7, 43, 637, 10, 43, 12, 43, 14, 43, 640, 11, 43, 3, 44, 3, 44, 5, 44, 644, 10, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 7, 45, 651, 10, 45, 12, 45, 14, 45, 654, 11, 45, 3, 45, 3, 45, 5, 45, 658, 10, 45, 3, 45, 5, 45, 661, 10, 45, 3, 46, 7, 46, 664, 10, 46, 12, 46, 14, 46, 667, 11, 46, 3, 46, 3, 46, 3, 46, 3, 47, 7, 47, 673, 10, 47, 12, 47, 14, 47, 676, 11, 47, 3, 47, 3, 47, 7, 47, 680, 10, 47, 12, 47, 14, 47, 683, 11, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 7, 48, 691, 10, 48, 12, 48, 14, 48, 694, 11, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 702, 10, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 52, 3, 52, 7, 52, 710, 10, 52, 12, 52, 14, 52, 713, 11, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 5, 53, 721, 10, 53, 3, 53, 3, 53, 3, 53, 5, 53, 726, 10, 53, 3, 53, 5, 53, 729, 10, 53, 3, 54, 3, 54, 3, 54, 7, 54, 734, 10, 54, 12, 54, 14, 54, 737, 11, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 5, 56, 746, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 752, 10, 57, 12, 57, 14, 57, 755, 11, 57, 5, 57, 757, 10, 57, 3, 57, 5, 57, 760, 10, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 7, 59, 771, 10, 59, 12, 59, 14, 59, 774, 11, 59, 3, 59, 3, 59, 3, 60, 7, 60, 779, 10, 60, 12, 60, 14, 60, 782, 11, 60, 3, 60, 3, 60, 5, 60, 786, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 794, 10, 61, 3, 61, 3, 61, 5, 61, 798, 10, 61, 3, 61, 3, 61, 5, 61, 802, 10, 61, 3, 61, 3, 61, 5, 61, 806, 10, 61, 5, 61, 808, 10, 61, 3, 62, 3, 62, 5, 62, 812, 10, 62, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 818, 10, 63, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 7, 66, 827, 10, 66, 12, 66, 14, 66, 830, 11, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 839, 10, 67, 3, 68, 7, 68, 842, 10, 68, 12, 68, 14, 68, 845, 11, 68, 3, 68, 3, 68, 3, 68, 3, 69, 7, 69, 851, 10, 69, 12, 69, 14, 69, 854, 11, 69, 3, 69, 3, 69, 5, 69, 858, 10, 69, 3, 69, 5, 69, 861, 10, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 868, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 877, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 6, 70, 898, 10, 70, 13, 70, 14, 70, 899, 3, 70, 5, 70, 903, 10, 70, 3, 70, 5, 70, 906, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 912, 10, 70, 12, 70, 14, 70, 915, 11, 70, 3, 70, 5, 70, 918, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 924, 10, 70, 12, 70, 14, 70, 927, 11, 70, 3, 70, 7, 70, 930, 10, 70, 12, 70, 14, 70, 933, 11, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 943, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 952, 10, 70, 3, 70, 3, 70, 3, 70, 5, 70, 957, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 967, 10, 70, 3, 71, 3, 71, 3, 71, 7, 71, 972, 10, 71, 12, 71, 14, 71, 975, 11, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 7, 72, 985, 10, 72, 12, 72, 14, 72, 988, 11, 72, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 5, 74, 996, 10, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 7, 75, 1003, 10, 75, 12, 75, 14, 75, 1006, 11, 75, 3, 76, 7, 76, 1009, 10, 76, 12, 76, 14, 76, 1012, 11, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 6, 77, 1020, 10, 77, 13, 77, 14, 77, 1021, 3, 77, 6, 77, 1025, 10, 77, 13, 77, 14, 77, 1026, 3, 78, 3, 78, 3, 78, 5, 78, 1032, 10, 78, 3, 78, 3, 78, 3, 78, 5, 78, 1037, 10, 78, 3, 79, 3, 79, 5, 79, 1041, 10, 79, 3, 79, 3, 79, 5, 79, 1045, 10, 79, 3, 79, 3, 79, 5, 79, 1049, 10, 79, 5, 79, 1051, 10, 79, 3, 80, 3, 80, 5, 80, 1055, 10, 80, 3, 81, 7, 81, 1058, 10, 81, 12, 81, 14, 81, 1061, 11, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 7, 83, 1075, 10, 83, 12, 83, 14, 83, 1078, 11, 83, 3, 84, 3, 84, 3, 84, 5, 84, 1083, 10, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 1089, 10, 84, 3, 84, 3, 84, 3, 84, 3, 84, 5, 84, 1095, 10, 84, 3, 84, 5, 84, 1098, 10, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 7, 85, 1107, 10, 85, 12, 85, 14, 85, 1110, 11, 85, 3, 85, 3, 85, 3, 85, 7, 85, 1115, 10, 85, 12, 85, 14, 85, 1118, 11, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1131, 10, 85, 3, 85, 3, 85, 5, 85, 1135, 10, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1140, 10, 85, 3, 85, 3, 85, 5, 85, 1144, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1160, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1200, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1206, 10, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1221, 10, 85, 3, 85, 7, 85, 1224, 10, 85, 12, 85, 14, 85, 1227, 11, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 5, 87, 1236, 10, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 7, 87, 1243, 10, 87, 12, 87, 14, 87, 1246, 11, 87, 3, 87, 5, 87, 1249, 10, 87, 3, 88, 3, 88, 5, 88, 1253, 10, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 5, 89, 1271, 10, 89, 5, 89, 1273, 10, 89, 3, 90, 3, 90, 3, 90, 5, 90, 1278, 10, 90, 3, 90, 7, 90, 1281, 10, 90, 12, 90, 14, 90, 1284, 11, 90, 3, 90, 3, 90, 5, 90, 1288, 10, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 5, 91, 1297, 10, 91, 5, 91, 1299, 10, 91, 3, 92, 3, 92, 5, 92, 1303, 10, 92, 3, 92, 3, 92, 3, 92, 5, 92, 1308, 10, 92, 7, 92, 1310, 10, 92, 12, 92, 14, 92, 1313, 11, 92, 3, 92, 5, 92, 1316, 10, 92, 3, 93, 3, 93, 5, 93, 1320, 10, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 7, 94, 1328, 10, 94, 12, 94, 14, 94, 1331, 11, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 7, 94, 1340, 10, 94, 12, 94, 14, 94, 1343, 11, 94, 3, 94, 3, 94, 7, 94, 1347, 10, 94, 12, 94, 14, 94, 1350, 11, 94, 5, 94, 1352, 10, 94, 3, 95, 3, 95, 5, 95, 1356, 10, 95, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 5, 97, 1364, 10, 97, 3, 98, 3, 98, 3, 98, 5, 98, 1369, 10, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 7, 100, 1378, 10, 100, 12, 100, 14, 100, 1381, 11, 100, 3, 101, 7, 101, 1384, 10, 101, 12, 101, 14, 101, 1387, 11, 101, 3, 101, 3, 101, 5, 101, 1391, 10, 101, 3, 101, 7, 101, 1394, 10, 101, 12, 101, 14, 101, 1397, 11, 101, 3, 101, 3, 101, 7, 101, 1401, 10, 101, 12, 101, 14, 101, 1404, 11, 101, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 7, 103, 1412, 10, 103, 12, 103, 14, 103, 1415, 11, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1423, 10, 104, 5, 104, 1425, 10, 104, 3, 105, 3, 105, 3, 105, 3, 105, 5, 105, 1431, 10, 105, 3, 106, 3, 106, 5, 106, 1435, 10, 106, 3, 106, 3, 106, 3, 106, 2, 3, 168, 107, 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, 2, 14, 4, 2, 19, 19, 42, 42, 3, 2, 53, 56, 3, 2, 57, 58, 3, 2, 85, 88, 3, 2, 75, 76, 4, 2, 89, 90, 94, 94, 3, 2, 87, 88, 4, 2, 73, 74, 80, 81, 4, 2, 79, 79, 82, 82, 4, 2, 72, 72, 95, 105, 3, 2, 85, 86, 10, 2, 5, 5, 7, 7, 10, 10, 16, 16, 22, 22, 29, 29, 31, 31, 39, 39, 2, 1599, 2, 213, 3, 2, 2, 2, 4, 232, 3, 2, 2, 2, 6, 239, 3, 2, 2, 2, 8, 263, 3, 2, 2, 2, 10, 270, 3, 2, 2, 2, 12, 280, 3, 2, 2, 2, 14, 284, 3, 2, 2, 2, 16, 286, 3, 2, 2, 2, 18, 301, 3, 2, 2, 2, 20, 315, 3, 2, 2, 2, 22, 329, 3, 2, 2, 2, 24, 337, 3, 2, 2, 2, 26, 355, 3, 2, 2, 2, 28, 366, 3, 2, 2, 2, 30, 376, 3, 2, 2, 2, 32, 383, 3, 2, 2, 2, 34, 394, 3, 2, 2, 2, 36, 403, 3, 2, 2, 2, 38, 424, 3, 2, 2, 2, 40, 435, 3, 2, 2, 2, 42, 437, 3, 2, 2, 2, 44, 455, 3, 2, 2, 2, 46, 459, 3, 2, 2, 2, 48, 461, 3, 2, 2, 2, 50, 464, 3, 2, 2, 2, 52, 467, 3, 2, 2, 2, 54, 475, 3, 2, 2, 2, 56, 487, 3, 2, 2, 2, 58, 496, 3, 2, 2, 2, 60, 498, 3, 2, 2, 2, 62, 509, 3, 2, 2, 2, 64, 523, 3, 2, 2, 2, 66, 559, 3, 2, 2, 2, 68, 561, 3, 2, 2, 2, 70, 564, 3, 2, 2, 2, 72, 572, 3, 2, 2, 2, 74, 577, 3, 2, 2, 2, 76, 587, 3, 2, 2, 2, 78, 589, 3, 2, 2, 2, 80, 605, 3, 2, 2, 2, 82, 631, 3, 2, 2, 2, 84, 633, 3, 2, 2, 2, 86, 641, 3, 2, 2, 2, 88, 660, 3, 2, 2, 2, 90, 665, 3, 2, 2, 2, 92, 674, 3, 2, 2, 2, 94, 687, 3, 2, 2, 2, 96, 701, 3, 2, 2, 2, 98, 703, 3, 2, 2, 2, 100, 705, 3, 2, 2, 2, 102, 711, 3, 2, 2, 2, 104, 720, 3, 2, 2, 2, 106, 730, 3, 2, 2, 2, 108, 738, 3, 2, 2, 2, 110, 745, 3, 2, 2, 2, 112, 747, 3, 2, 2, 2, 114, 763, 3, 2, 2, 2, 116, 768, 3, 2, 2, 2, 118, 785, 3, 2, 2, 2, 120, 807, 3, 2, 2, 2, 122, 811, 3, 2, 2, 2, 124, 813, 3, 2, 2, 2, 126, 819, 3, 2, 2, 2, 128, 821, 3, 2, 2, 2, 130, 824, 3, 2, 2, 2, 132, 838, 3, 2, 2, 2, 134, 843, 3, 2, 2, 2, 136, 860, 3, 2, 2, 2, 138, 966, 3, 2, 2, 2, 140, 968, 3, 2, 2, 2, 142, 981, 3, 2, 2, 2, 144, 989, 3, 2, 2, 2, 146, 992, 3, 2, 2, 2, 148, 999, 3, 2, 2, 2, 150, 1010, 3, 2, 2, 2, 152, 1019, 3, 2, 2, 2, 154, 1036, 3, 2, 2, 2, 156, 1050, 3, 2, 2, 2, 158, 1054, 3, 2, 2, 2, 160, 1059, 3, 2, 2, 2, 162, 1067, 3, 2, 2, 2, 164, 1071, 3, 2, 2, 2, 166, 1097, 3, 2, 2, 2, 168, 1143, 3, 2, 2, 2, 170, 1228, 3, 2, 2, 2, 172, 1248, 3, 2, 2, 2, 174, 1252, 3, 2, 2, 2, 176, 1272, 3, 2, 2, 2, 178, 1277, 3, 2, 2, 2, 180, 1298, 3, 2, 2, 2, 182, 1315, 3, 2, 2, 2, 184, 1317, 3, 2, 2, 2, 186, 1323, 3, 2, 2, 2, 188, 1353, 3, 2, 2, 2, 190, 1357, 3, 2, 2, 2, 192, 1363, 3, 2, 2, 2, 194, 1368, 3, 2, 2, 2, 196, 1370, 3, 2, 2, 2, 198, 1374, 3, 2, 2, 2, 200, 1385, 3, 2, 2, 2, 202, 1405, 3, 2, 2, 2, 204, 1407, 3, 2, 2, 2, 206, 1424, 3, 2, 2, 2, 208, 1430, 3, 2, 2, 2, 210, 1432, 3, 2, 2, 2, 212, 214, 5, 4, 3, 2, 213, 212, 3, 2, 2, 2, 213, 214, 3, 2, 2, 2, 214, 218, 3, 2, 2, 2, 215, 217, 5, 6, 4, 2, 216, 215, 3, 2, 2, 2, 217, 220, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 224, 3, 2, 2, 2, 220, 218, 3, 2, 2, 2, 221, 223, 5, 8, 5, 2, 222, 221, 3, 2, 2, 2, 223, 226, 3, 2, 2, 2, 224, 222, 3, 2, 2, 2, 224, 225, 3, 2, 2, 2, 225, 227, 3, 2, 2, 2, 226, 224, 3, 2, 2, 2, 227, 228, 7, 2, 2, 3, 228, 3, 3, 2, 2, 2, 229, 231, 5, 104, 53, 2, 230, 229, 3, 2, 2, 2, 231, 234, 3, 2, 2, 2, 232, 230, 3, 2, 2, 2, 232, 233, 3, 2, 2, 2, 233, 235, 3, 2, 2, 2, 234, 232, 3, 2, 2, 2, 235, 236, 7, 34, 2, 2, 236, 237, 5, 94, 48, 2, 237, 238, 7, 69, 2, 2, 238, 5, 3, 2, 2, 2, 239, 241, 7, 27, 2, 2, 240, 242, 7, 40, 2, 2, 241, 240, 3, 2, 2, 2, 241, 242, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 246, 5, 94, 48, 2, 244, 245, 7, 71, 2, 2, 245, 247, 7, 89, 2, 2, 246, 244, 3, 2, 2, 2, 246, 247, 3, 2, 2, 2, 247, 248, 3, 2, 2, 2, 248, 249, 7, 69, 2, 2, 249, 7, 3, 2, 2, 2, 250, 252, 5, 12, 7, 2, 251, 250, 3, 2, 2, 2, 252, 255, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 253, 254, 3, 2, 2, 2, 254, 260, 3, 2, 2, 2, 255, 253, 3, 2, 2, 2, 256, 261, 5, 16, 9, 2, 257, 261, 5, 24, 13, 2, 258, 261, 5, 32, 17, 2, 259, 261, 5, 114, 58, 2, 260, 256, 3, 2, 2, 2, 260, 257, 3, 2, 2, 2, 260, 258, 3, 2, 2, 2, 260, 259, 3, 2, 2, 2, 261, 264, 3, 2, 2, 2, 262, 264, 7, 69, 2, 2, 263, 253, 3, 2, 2, 2, 263, 262, 3, 2, 2, 2, 264, 9, 3, 2, 2, 2, 265, 271, 5, 12, 7, 2, 266, 271, 7, 32, 2, 2, 267, 271, 7, 44, 2, 2, 268, 271, 7, 48, 2, 2, 269, 271, 7, 51, 2, 2, 270, 265, 3, 2, 2, 2, 270, 266, 3, 2, 2, 2, 270, 267, 3, 2, 2, 2, 270, 268, 3, 2, 2, 2, 270, 269, 3, 2, 2, 2, 271, 11, 3, 2, 2, 2, 272, 281, 5, 104, 53, 2, 273, 281, 7, 37, 2, 2, 274, 281, 7, 36, 2, 2, 275, 281, 7, 35, 2, 2, 276, 281, 7, 40, 2, 2, 277, 281, 7, 3, 2, 2, 278, 281, 7, 20, 2, 2, 279, 281, 7, 41, 2, 2, 280, 272, 3, 2, 2, 2, 280, 273, 3, 2, 2, 2, 280, 274, 3, 2, 2, 2, 280, 275, 3, 2, 2, 2, 280, 276, 3, 2, 2, 2, 280, 277, 3, 2, 2, 2, 280, 278, 3, 2, 2, 2, 280, 279, 3, 2, 2, 2, 281, 13, 3, 2, 2, 2, 282, 285, 7, 20, 2, 2, 283, 285, 5, 104, 53, 2, 284, 282, 3, 2, 2, 2, 284, 283, 3, 2, 2, 2, 285, 15, 3, 2, 2, 2, 286, 287, 7, 11, 2, 2, 287, 289, 7, 113, 2, 2, 288, 290, 5, 18, 10, 2, 289, 288, 3, 2, 2, 2, 289, 290, 3, 2, 2, 2, 290, 293, 3, 2, 2, 2, 291, 292, 7, 19, 2, 2, 292, 294, 5, 200, 101, 2, 293, 291, 3, 2, 2, 2, 293, 294, 3, 2, 2, 2, 294, 297, 3, 2, 2, 2, 295, 296, 7, 26, 2, 2, 296, 298, 5, 198, 100, 2, 297, 295, 3, 2, 2, 2, 297, 298, 3, 2, 2, 2, 298, 299, 3, 2, 2, 2, 299, 300, 5, 34, 18, 2, 300, 17, 3, 2, 2, 2, 301, 302, 7, 74, 2, 2, 302, 307, 5, 20, 11, 2, 303, 304, 7, 70, 2, 2, 304, 306, 5, 20, 11, 2, 305, 303, 3, 2, 2, 2, 306, 309, 3, 2, 2, 2, 307, 305, 3, 2, 2, 2, 307, 308, 3, 2, 2, 2, 308, 310, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 310, 311, 7, 73, 2, 2, 311, 19, 3, 2, 2, 2, 312, 314, 5, 104, 53, 2, 313, 312, 3, 2, 2, 2, 314, 317, 3, 2, 2, 2, 315, 313, 3, 2, 2, 2, 315, 316, 3, 2, 2, 2, 316, 318, 3, 2, 2, 2, 317, 315, 3, 2, 2, 2, 318, 327, 7, 113, 2, 2, 319, 323, 7, 19, 2, 2, 320, 322, 5, 104, 53, 2, 321, 320, 3, 2, 2, 2, 322, 325, 3, 2, 2, 2, 323, 321, 3, 2, 2, 2, 323, 324, 3, 2, 2, 2, 324, 326, 3, 2, 2, 2, 325, 323, 3, 2, 2, 2, 326, 328, 5, 22, 12, 2, 327, 319, 3, 2, 2, 2, 327, 328, 3, 2, 2, 2, 328, 21, 3, 2, 2, 2, 329, 334, 5, 200, 101, 2, 330, 331, 7, 91, 2, 2, 331, 333, 5, 200, 101, 2, 332, 330, 3, 2, 2, 2, 333, 336, 3, 2, 2, 2, 334, 332, 3, 2, 2, 2, 334, 335, 3, 2, 2, 2, 335, 23, 3, 2, 2, 2, 336, 334, 3, 2, 2, 2, 337, 338, 7, 18, 2, 2, 338, 341, 7, 113, 2, 2, 339, 340, 7, 26, 2, 2, 340, 342, 5, 198, 100, 2, 341, 339, 3, 2, 2, 2, 341, 342, 3, 2, 2, 2, 342, 343, 3, 2, 2, 2, 343, 345, 7, 65, 2, 2, 344, 346, 5, 26, 14, 2, 345, 344, 3, 2, 2, 2, 345, 346, 3, 2, 2, 2, 346, 348, 3, 2, 2, 2, 347, 349, 7, 70, 2, 2, 348, 347, 3, 2, 2, 2, 348, 349, 3, 2, 2, 2, 349, 351, 3, 2, 2, 2, 350, 352, 5, 30, 16, 2, 351, 350, 3, 2, 2, 2, 351, 352, 3, 2, 2, 2, 352, 353, 3, 2, 2, 2, 353, 354, 7, 66, 2, 2, 354, 25, 3, 2, 2, 2, 355, 360, 5, 28, 15, 2, 356, 357, 7, 70, 2, 2, 357, 359, 5, 28, 15, 2, 358, 356, 3, 2, 2, 2, 359, 362, 3, 2, 2, 2, 360, 358, 3, 2, 2, 2, 360, 361, 3, 2, 2, 2, 361, 27, 3, 2, 2, 2, 362, 360, 3, 2, 2, 2, 363, 365, 5, 104, 53, 2, 364, 363, 3, 2, 2, 2, 365, 368, 3, 2, 2, 2, 366, 364, 3, 2, 2, 2, 366, 367, 3, 2, 2, 2, 367, 369, 3, 2, 2, 2, 368, 366, 3, 2, 2, 2, 369, 371, 7, 113, 2, 2, 370, 372, 5, 210, 106, 2, 371, 370, 3, 2, 2, 2, 371, 372, 3, 2, 2, 2, 372, 374, 3, 2, 2, 2, 373, 375, 5, 34, 18, 2, 374, 373, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 29, 3, 2, 2, 2, 376, 380, 7, 69, 2, 2, 377, 379, 5, 38, 20, 2, 378, 377, 3, 2, 2, 2, 379, 382, 3, 2, 2, 2, 380, 378, 3, 2, 2, 2, 380, 381, 3, 2, 2, 2, 381, 31, 3, 2, 2, 2, 382, 380, 3, 2, 2, 2, 383, 384, 7, 30, 2, 2, 384, 386, 7, 113, 2, 2, 385, 387, 5, 18, 10, 2, 386, 385, 3, 2, 2, 2, 386, 387, 3, 2, 2, 2, 387, 390, 3, 2, 2, 2, 388, 389, 7, 19, 2, 2, 389, 391, 5, 198, 100, 2, 390, 388, 3, 2, 2, 2, 390, 391, 3, 2, 2, 2, 391, 392, 3, 2, 2, 2, 392, 393, 5, 36, 19, 2, 393, 33, 3, 2, 2, 2, 394, 398, 7, 65, 2, 2, 395, 397, 5, 38, 20, 2, 396, 395, 3, 2, 2, 2, 397, 400, 3, 2, 2, 2, 398, 396, 3, 2, 2, 2, 398, 399, 3, 2, 2, 2, 399, 401, 3, 2, 2, 2, 400, 398, 3, 2, 2, 2, 401, 402, 7, 66, 2, 2, 402, 35, 3, 2, 2, 2, 403, 407, 7, 65, 2, 2, 404, 406, 5, 56, 29, 2, 405, 404, 3, 2, 2, 2, 406, 409, 3, 2, 2, 2, 407, 405, 3, 2, 2, 2, 407, 408, 3, 2, 2, 2, 408, 410, 3, 2, 2, 2, 409, 407, 3, 2, 2, 2, 410, 411, 7, 66, 2, 2, 411, 37, 3, 2, 2, 2, 412, 425, 7, 69, 2, 2, 413, 415, 7, 40, 2, 2, 414, 413, 3, 2, 2, 2, 414, 415, 3, 2, 2, 2, 415, 416, 3, 2, 2, 2, 416, 425, 5, 130, 66, 2, 417, 419, 5, 10, 6, 2, 418, 417, 3, 2, 2, 2, 419, 422, 3, 2, 2, 2, 420, 418, 3, 2, 2, 2, 420, 421, 3, 2, 2, 2, 421, 423, 3, 2, 2, 2, 422, 420, 3, 2, 2, 2, 423, 425, 5, 40, 21, 2, 424, 412, 3, 2, 2, 2, 424, 414, 3, 2, 2, 2, 424, 420, 3, 2, 2, 2, 425, 39, 3, 2, 2, 2, 426, 436, 5, 42, 22, 2, 427, 436, 5, 48, 25, 2, 428, 436, 5, 54, 28, 2, 429, 436, 5, 52, 27, 2, 430, 436, 5, 50, 26, 2, 431, 436, 5, 32, 17, 2, 432, 436, 5, 114, 58, 2, 433, 436, 5, 16, 9, 2, 434, 436, 5, 24, 13, 2, 435, 426, 3, 2, 2, 2, 435, 427, 3, 2, 2, 2, 435, 428, 3, 2, 2, 2, 435, 429, 3, 2, 2, 2, 435, 430, 3, 2, 2, 2, 435, 431, 3, 2, 2, 2, 435, 432, 3, 2, 2, 2, 435, 433, 3, 2, 2, 2, 435, 434, 3, 2, 2, 2, 436, 41, 3, 2, 2, 2, 437, 438, 5, 46, 24, 2, 438, 439, 7, 113, 2, 2, 439, 444, 5, 86, 44, 2, 440, 441, 7, 67, 2, 2, 441, 443, 7, 68, 2, 2, 442, 440, 3, 2, 2, 2, 443, 446, 3, 2, 2, 2, 444, 442, 3, 2, 2, 2, 444, 445, 3, 2, 2, 2, 445, 449, 3, 2, 2, 2, 446, 444, 3, 2, 2, 2, 447, 448, 7, 47, 2, 2, 448, 450, 5, 84, 43, 2, 449, 447, 3, 2, 2, 2, 449, 450, 3, 2, 2, 2, 450, 451, 3, 2, 2, 2, 451, 452, 5, 44, 23, 2, 452, 43, 3, 2, 2, 2, 453, 456, 5, 130, 66, 2, 454, 456, 7, 69, 2, 2, 455, 453, 3, 2, 2, 2, 455, 454, 3, 2, 2, 2, 456, 45, 3, 2, 2, 2, 457, 460, 5, 200, 101, 2, 458, 460, 7, 50, 2, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 47, 3, 2, 2, 2, 461, 462, 5, 18, 10, 2, 462, 463, 5, 42, 22, 2, 463, 49, 3, 2, 2, 2, 464, 465, 5, 18, 10, 2, 465, 466, 5, 52, 27, 2, 466, 51, 3, 2, 2, 2, 467, 468, 7, 113, 2, 2, 468, 471, 5, 86, 44, 2, 469, 470, 7, 47, 2, 2, 470, 472, 5, 84, 43, 2, 471, 469, 3, 2, 2, 2, 471, 472, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 474, 5, 130, 66, 2, 474, 53, 3, 2, 2, 2, 475, 476, 5, 200, 101, 2, 476, 477, 5, 70, 36, 2, 477, 478, 7, 69, 2, 2, 478, 55, 3, 2, 2, 2, 479, 481, 5, 10, 6, 2, 480, 479, 3, 2, 2, 2, 481, 484, 3, 2, 2, 2, 482, 480, 3, 2, 2, 2, 482, 483, 3, 2, 2, 2, 483, 485, 3, 2, 2, 2, 484, 482, 3, 2, 2, 2, 485, 488, 5, 58, 30, 2, 486, 488, 7, 69, 2, 2, 487, 482, 3, 2, 2, 2, 487, 486, 3, 2, 2, 2, 488, 57, 3, 2, 2, 2, 489, 497, 5, 60, 31, 2, 490, 497, 5, 64, 33, 2, 491, 497, 5, 68, 35, 2, 492, 497, 5, 32, 17, 2, 493, 497, 5, 114, 58, 2, 494, 497, 5, 16, 9, 2, 495, 497, 5, 24, 13, 2, 496, 489, 3, 2, 2, 2, 496, 490, 3, 2, 2, 2, 496, 491, 3, 2, 2, 2, 496, 492, 3, 2, 2, 2, 496, 493, 3, 2, 2, 2, 496, 494, 3, 2, 2, 2, 496, 495, 3, 2, 2, 2, 497, 59, 3, 2, 2, 2, 498, 499, 5, 200, 101, 2, 499, 504, 5, 62, 32, 2, 500, 501, 7, 70, 2, 2, 501, 503, 5, 62, 32, 2, 502, 500, 3, 2, 2, 2, 503, 506, 3, 2, 2, 2, 504, 502, 3, 2, 2, 2, 504, 505, 3, 2, 2, 2, 505, 507, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 507, 508, 7, 69, 2, 2, 508, 61, 3, 2, 2, 2, 509, 514, 7, 113, 2, 2, 510, 511, 7, 67, 2, 2, 511, 513, 7, 68, 2, 2, 512, 510, 3, 2, 2, 2, 513, 516, 3, 2, 2, 2, 514, 512, 3, 2, 2, 2, 514, 515, 3, 2, 2, 2, 515, 517, 3, 2, 2, 2, 516, 514, 3, 2, 2, 2, 517, 518, 7, 72, 2, 2, 518, 519, 5, 76, 39, 2, 519, 63, 3, 2, 2, 2, 520, 522, 5, 66, 34, 2, 521, 520, 3, 2, 2, 2, 522, 525, 3, 2, 2, 2, 523, 521, 3, 2, 2, 2, 523, 524, 3, 2, 2, 2, 524, 536, 3, 2, 2, 2, 525, 523, 3, 2, 2, 2, 526, 537, 5, 46, 24, 2, 527, 531, 5, 18, 10, 2, 528, 530, 5, 104, 53, 2, 529, 528, 3, 2, 2, 2, 530, 533, 3, 2, 2, 2, 531, 529, 3, 2, 2, 2, 531, 532, 3, 2, 2, 2, 532, 534, 3, 2, 2, 2, 533, 531, 3, 2, 2, 2, 534, 535, 5, 46, 24, 2, 535, 537, 3, 2, 2, 2, 536, 526, 3, 2, 2, 2, 536, 527, 3, 2, 2, 2, 537, 538, 3, 2, 2, 2, 538, 539, 7, 113, 2, 2, 539, 544, 5, 86, 44, 2, 540, 541, 7, 67, 2, 2, 541, 543, 7, 68, 2, 2, 542, 540, 3, 2, 2, 2, 543, 546, 3, 2, 2, 2, 544, 542, 3, 2, 2, 2, 544, 545, 3, 2, 2, 2, 545, 549, 3, 2, 2, 2, 546, 544, 3, 2, 2, 2, 547, 548, 7, 47, 2, 2, 548, 550, 5, 84, 43, 2, 549, 547, 3, 2, 2, 2, 549, 550, 3, 2, 2, 2, 550, 551, 3, 2, 2, 2, 551, 552, 5, 44, 23, 2, 552, 65, 3, 2, 2, 2, 553, 560, 5, 104, 53, 2, 554, 560, 7, 37, 2, 2, 555, 560, 7, 3, 2, 2, 556, 560, 7, 14, 2, 2, 557, 560, 7, 40, 2, 2, 558, 560, 7, 41, 2, 2, 559, 553, 3, 2, 2, 2, 559, 554, 3, 2, 2, 2, 559, 555, 3, 2, 2, 2, 559, 556, 3, 2, 2, 2, 559, 557, 3, 2, 2, 2, 559, 558, 3, 2, 2, 2, 560, 67, 3, 2, 2, 2, 561, 562, 5, 18, 10, 2, 562, 563, 5, 64, 33, 2, 563, 69, 3, 2, 2, 2, 564, 569, 5, 72, 37, 2, 565, 566, 7, 70, 2, 2, 566, 568, 5, 72, 37, 2, 567, 565, 3, 2, 2, 2, 568, 571, 3, 2, 2, 2, 569, 567, 3, 2, 2, 2, 569, 570, 3, 2, 2, 2, 570, 71, 3, 2, 2, 2, 571, 569, 3, 2, 2, 2, 572, 575, 5, 74, 38, 2, 573, 574, 7, 72, 2, 2, 574, 576, 5, 76, 39, 2, 575, 573, 3, 2, 2, 2, 575, 576, 3, 2, 2, 2, 576, 73, 3, 2, 2, 2, 577, 582, 7, 113, 2, 2, 578, 579, 7, 67, 2, 2, 579, 581, 7, 68, 2, 2, 580, 578, 3, 2, 2, 2, 581, 584, 3, 2, 2, 2, 582, 580, 3, 2, 2, 2, 582, 583, 3, 2, 2, 2, 583, 75, 3, 2, 2, 2, 584, 582, 3, 2, 2, 2, 585, 588, 5, 78, 40, 2, 586, 588, 5, 168, 85, 2, 587, 585, 3, 2, 2, 2, 587, 586, 3, 2, 2, 2, 588, 77, 3, 2, 2, 2, 589, 601, 7, 65, 2, 2, 590, 595, 5, 76, 39, 2, 591, 592, 7, 70, 2, 2, 592, 594, 5, 76, 39, 2, 593, 591, 3, 2, 2, 2, 594, 597, 3, 2, 2, 2, 595, 593, 3, 2, 2, 2, 595, 596, 3, 2, 2, 2, 596, 599, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 598, 600, 7, 70, 2, 2, 599, 598, 3, 2, 2, 2, 599, 600, 3, 2, 2, 2, 600, 602, 3, 2, 2, 2, 601, 590, 3, 2, 2, 2, 601, 602, 3, 2, 2, 2, 602, 603, 3, 2, 2, 2, 603, 604, 7, 66, 2, 2, 604, 79, 3, 2, 2, 2, 605, 607, 7, 113, 2, 2, 606, 608, 5, 204, 103, 2, 607, 606, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 616, 3, 2, 2, 2, 609, 610, 7, 71, 2, 2, 610, 612, 7, 113, 2, 2, 611, 613, 5, 204, 103, 2, 612, 611, 3, 2, 2, 2, 612, 613, 3, 2, 2, 2, 613, 615, 3, 2, 2, 2, 614, 609, 3, 2, 2, 2, 615, 618, 3, 2, 2, 2, 616, 614, 3, 2, 2, 2, 616, 617, 3, 2, 2, 2, 617, 81, 3, 2, 2, 2, 618, 616, 3, 2, 2, 2, 619, 632, 5, 200, 101, 2, 620, 622, 5, 104, 53, 2, 621, 620, 3, 2, 2, 2, 622, 625, 3, 2, 2, 2, 623, 621, 3, 2, 2, 2, 623, 624, 3, 2, 2, 2, 624, 626, 3, 2, 2, 2, 625, 623, 3, 2, 2, 2, 626, 629, 7, 77, 2, 2, 627, 628, 9, 2, 2, 2, 628, 630, 5, 200, 101, 2, 629, 627, 3, 2, 2, 2, 629, 630, 3, 2, 2, 2, 630, 632, 3, 2, 2, 2, 631, 619, 3, 2, 2, 2, 631, 623, 3, 2, 2, 2, 632, 83, 3, 2, 2, 2, 633, 638, 5, 94, 48, 2, 634, 635, 7, 70, 2, 2, 635, 637, 5, 94, 48, 2, 636, 634, 3, 2, 2, 2, 637, 640, 3, 2, 2, 2, 638, 636, 3, 2, 2, 2, 638, 639, 3, 2, 2, 2, 639, 85, 3, 2, 2, 2, 640, 638, 3, 2, 2, 2, 641, 643, 7, 63, 2, 2, 642, 644, 5, 88, 45, 2, 643, 642, 3, 2, 2, 2, 643, 644, 3, 2, 2, 2, 644, 645, 3, 2, 2, 2, 645, 646, 7, 64, 2, 2, 646, 87, 3, 2, 2, 2, 647, 652, 5, 90, 46, 2, 648, 649, 7, 70, 2, 2, 649, 651, 5, 90, 46, 2, 650, 648, 3, 2, 2, 2, 651, 654, 3, 2, 2, 2, 652, 650, 3, 2, 2, 2, 652, 653, 3, 2, 2, 2, 653, 657, 3, 2, 2, 2, 654, 652, 3, 2, 2, 2, 655, 656, 7, 70, 2, 2, 656, 658, 5, 92, 47, 2, 657, 655, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 661, 3, 2, 2, 2, 659, 661, 5, 92, 47, 2, 660, 647, 3, 2, 2, 2, 660, 659, 3, 2, 2, 2, 661, 89, 3, 2, 2, 2, 662, 664, 5, 14, 8, 2, 663, 662, 3, 2, 2, 2, 664, 667, 3, 2, 2, 2, 665, 663, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 668, 3, 2, 2, 2, 667, 665, 3, 2, 2, 2, 668, 669, 5, 200, 101, 2, 669, 670, 5, 74, 38, 2, 670, 91, 3, 2, 2, 2, 671, 673, 5, 14, 8, 2, 672, 671, 3, 2, 2, 2, 673, 676, 3, 2, 2, 2, 674, 672, 3, 2, 2, 2, 674, 675, 3, 2, 2, 2, 675, 677, 3, 2, 2, 2, 676, 674, 3, 2, 2, 2, 677, 681, 5, 200, 101, 2, 678, 680, 5, 104, 53, 2, 679, 678, 3, 2, 2, 2, 680, 683, 3, 2, 2, 2, 681, 679, 3, 2, 2, 2, 681, 682, 3, 2, 2, 2, 682, 684, 3, 2, 2, 2, 683, 681, 3, 2, 2, 2, 684, 685, 7, 109, 2, 2, 685, 686, 5, 74, 38, 2, 686, 93, 3, 2, 2, 2, 687, 692, 7, 113, 2, 2, 688, 689, 7, 71, 2, 2, 689, 691, 7, 113, 2, 2, 690, 688, 3, 2, 2, 2, 691, 694, 3, 2, 2, 2, 692, 690, 3, 2, 2, 2, 692, 693, 3, 2, 2, 2, 693, 95, 3, 2, 2, 2, 694, 692, 3, 2, 2, 2, 695, 702, 5, 98, 50, 2, 696, 702, 5, 100, 51, 2, 697, 702, 7, 60, 2, 2, 698, 702, 7, 61, 2, 2, 699, 702, 7, 59, 2, 2, 700, 702, 7, 62, 2, 2, 701, 695, 3, 2, 2, 2, 701, 696, 3, 2, 2, 2, 701, 697, 3, 2, 2, 2, 701, 698, 3, 2, 2, 2, 701, 699, 3, 2, 2, 2, 701, 700, 3, 2, 2, 2, 702, 97, 3, 2, 2, 2, 703, 704, 9, 3, 2, 2, 704, 99, 3, 2, 2, 2, 705, 706, 9, 4, 2, 2, 706, 101, 3, 2, 2, 2, 707, 708, 7, 113, 2, 2, 708, 710, 7, 71, 2, 2, 709, 707, 3, 2, 2, 2, 710, 713, 3, 2, 2, 2, 711, 709, 3, 2, 2, 2, 711, 712, 3, 2, 2, 2, 712, 714, 3, 2, 2, 2, 713, 711, 3, 2, 2, 2, 714, 715, 7, 108, 2, 2, 715, 716, 7, 113, 2, 2, 716, 103, 3, 2, 2, 2, 717, 718, 7, 108, 2, 2, 718, 721, 5, 94, 48, 2, 719, 721, 5, 102, 52, 2, 720, 717, 3, 2, 2, 2, 720, 719, 3, 2, 2, 2, 721, 728, 3, 2, 2, 2, 722, 725, 7, 63, 2, 2, 723, 726, 5, 106, 54, 2, 724, 726, 5, 110, 56, 2, 725, 723, 3, 2, 2, 2, 725, 724, 3, 2, 2, 2, 725, 726, 3, 2, 2, 2, 726, 727, 3, 2, 2, 2, 727, 729, 7, 64, 2, 2, 728, 722, 3, 2, 2, 2, 728, 729, 3, 2, 2, 2, 729, 105, 3, 2, 2, 2, 730, 735, 5, 108, 55, 2, 731, 732, 7, 70, 2, 2, 732, 734, 5, 108, 55, 2, 733, 731, 3, 2, 2, 2, 734, 737, 3, 2, 2, 2, 735, 733, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 107, 3, 2, 2, 2, 737, 735, 3, 2, 2, 2, 738, 739, 7, 113, 2, 2, 739, 740, 7, 72, 2, 2, 740, 741, 5, 110, 56, 2, 741, 109, 3, 2, 2, 2, 742, 746, 5, 168, 85, 2, 743, 746, 5, 104, 53, 2, 744, 746, 5, 112, 57, 2, 745, 742, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 744, 3, 2, 2, 2, 746, 111, 3, 2, 2, 2, 747, 756, 7, 65, 2, 2, 748, 753, 5, 110, 56, 2, 749, 750, 7, 70, 2, 2, 750, 752, 5, 110, 56, 2, 751, 749, 3, 2, 2, 2, 752, 755, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 753, 754, 3, 2, 2, 2, 754, 757, 3, 2, 2, 2, 755, 753, 3, 2, 2, 2, 756, 748, 3, 2, 2, 2, 756, 757, 3, 2, 2, 2, 757, 759, 3, 2, 2, 2, 758, 760, 7, 70, 2, 2, 759, 758, 3, 2, 2, 2, 759, 760, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 762, 7, 66, 2, 2, 762, 113, 3, 2, 2, 2, 763, 764, 7, 108, 2, 2, 764, 765, 7, 30, 2, 2, 765, 766, 7, 113, 2, 2, 766, 767, 5, 116, 59, 2, 767, 115, 3, 2, 2, 2, 768, 772, 7, 65, 2, 2, 769, 771, 5, 118, 60, 2, 770, 769, 3, 2, 2, 2, 771, 774, 3, 2, 2, 2, 772, 770, 3, 2, 2, 2, 772, 773, 3, 2, 2, 2, 773, 775, 3, 2, 2, 2, 774, 772, 3, 2, 2, 2, 775, 776, 7, 66, 2, 2, 776, 117, 3, 2, 2, 2, 777, 779, 5, 10, 6, 2, 778, 777, 3, 2, 2, 2, 779, 782, 3, 2, 2, 2, 780, 778, 3, 2, 2, 2, 780, 781, 3, 2, 2, 2, 781, 783, 3, 2, 2, 2, 782, 780, 3, 2, 2, 2, 783, 786, 5, 120, 61, 2, 784, 786, 7, 69, 2, 2, 785, 780, 3, 2, 2, 2, 785, 784, 3, 2, 2, 2, 786, 119, 3, 2, 2, 2, 787, 788, 5, 200, 101, 2, 788, 789, 5, 122, 62, 2, 789, 790, 7, 69, 2, 2, 790, 808, 3, 2, 2, 2, 791, 793, 5, 16, 9, 2, 792, 794, 7, 69, 2, 2, 793, 792, 3, 2, 2, 2, 793, 794, 3, 2, 2, 2, 794, 808, 3, 2, 2, 2, 795, 797, 5, 32, 17, 2, 796, 798, 7, 69, 2, 2, 797, 796, 3, 2, 2, 2, 797, 798, 3, 2, 2, 2, 798, 808, 3, 2, 2, 2, 799, 801, 5, 24, 13, 2, 800, 802, 7, 69, 2, 2, 801, 800, 3, 2, 2, 2, 801, 802, 3, 2, 2, 2, 802, 808, 3, 2, 2, 2, 803, 805, 5, 114, 58, 2, 804, 806, 7, 69, 2, 2, 805, 804, 3, 2, 2, 2, 805, 806, 3, 2, 2, 2, 806, 808, 3, 2, 2, 2, 807, 787, 3, 2, 2, 2, 807, 791, 3, 2, 2, 2, 807, 795, 3, 2, 2, 2, 807, 799, 3, 2, 2, 2, 807, 803, 3, 2, 2, 2, 808, 121, 3, 2, 2, 2, 809, 812, 5, 124, 63, 2, 810, 812, 5, 126, 64, 2, 811, 809, 3, 2, 2, 2, 811, 810, 3, 2, 2, 2, 812, 123, 3, 2, 2, 2, 813, 814, 7, 113, 2, 2, 814, 815, 7, 63, 2, 2, 815, 817, 7, 64, 2, 2, 816, 818, 5, 128, 65, 2, 817, 816, 3, 2, 2, 2, 817, 818, 3, 2, 2, 2, 818, 125, 3, 2, 2, 2, 819, 820, 5, 70, 36, 2, 820, 127, 3, 2, 2, 2, 821, 822, 7, 14, 2, 2, 822, 823, 5, 110, 56, 2, 823, 129, 3, 2, 2, 2, 824, 828, 7, 65, 2, 2, 825, 827, 5, 132, 67, 2, 826, 825, 3, 2, 2, 2, 827, 830, 3, 2, 2, 2, 828, 826, 3, 2, 2, 2, 828, 829, 3, 2, 2, 2, 829, 831, 3, 2, 2, 2, 830, 828, 3, 2, 2, 2, 831, 832, 7, 66, 2, 2, 832, 131, 3, 2, 2, 2, 833, 834, 5, 134, 68, 2, 834, 835, 7, 69, 2, 2, 835, 839, 3, 2, 2, 2, 836, 839, 5, 138, 70, 2, 837, 839, 5, 136, 69, 2, 838, 833, 3, 2, 2, 2, 838, 836, 3, 2, 2, 2, 838, 837, 3, 2, 2, 2, 839, 133, 3, 2, 2, 2, 840, 842, 5, 14, 8, 2, 841, 840, 3, 2, 2, 2, 842, 845, 3, 2, 2, 2, 843, 841, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 846, 3, 2, 2, 2, 845, 843, 3, 2, 2, 2, 846, 847, 5, 200, 101, 2, 847, 848, 5, 70, 36, 2, 848, 135, 3, 2, 2, 2, 849, 851, 5, 12, 7, 2, 850, 849, 3, 2, 2, 2, 851, 854, 3, 2, 2, 2, 852, 850, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 857, 3, 2, 2, 2, 854, 852, 3, 2, 2, 2, 855, 858, 5, 16, 9, 2, 856, 858, 5, 32, 17, 2, 857, 855, 3, 2, 2, 2, 857, 856, 3, 2, 2, 2, 858, 861, 3, 2, 2, 2, 859, 861, 7, 69, 2, 2, 860, 852, 3, 2, 2, 2, 860, 859, 3, 2, 2, 2, 861, 137, 3, 2, 2, 2, 862, 967, 5, 130, 66, 2, 863, 864, 7, 4, 2, 2, 864, 867, 5, 168, 85, 2, 865, 866, 7, 78, 2, 2, 866, 868, 5, 168, 85, 2, 867, 865, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 869, 3, 2, 2, 2, 869, 870, 7, 69, 2, 2, 870, 967, 3, 2, 2, 2, 871, 872, 7, 24, 2, 2, 872, 873, 5, 162, 82, 2, 873, 876, 5, 138, 70, 2, 874, 875, 7, 17, 2, 2, 875, 877, 5, 138, 70, 2, 876, 874, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 967, 3, 2, 2, 2, 878, 879, 7, 23, 2, 2, 879, 880, 7, 63, 2, 2, 880, 881, 5, 156, 79, 2, 881, 882, 7, 64, 2, 2, 882, 883, 5, 138, 70, 2, 883, 967, 3, 2, 2, 2, 884, 885, 7, 52, 2, 2, 885, 886, 5, 162, 82, 2, 886, 887, 5, 138, 70, 2, 887, 967, 3, 2, 2, 2, 888, 889, 7, 15, 2, 2, 889, 890, 5, 138, 70, 2, 890, 891, 7, 52, 2, 2, 891, 892, 5, 162, 82, 2, 892, 893, 7, 69, 2, 2, 893, 967, 3, 2, 2, 2, 894, 895, 7, 49, 2, 2, 895, 905, 5, 130, 66, 2, 896, 898, 5, 140, 71, 2, 897, 896, 3, 2, 2, 2, 898, 899, 3, 2, 2, 2, 899, 897, 3, 2, 2, 2, 899, 900, 3, 2, 2, 2, 900, 902, 3, 2, 2, 2, 901, 903, 5, 144, 73, 2, 902, 901, 3, 2, 2, 2, 902, 903, 3, 2, 2, 2, 903, 906, 3, 2, 2, 2, 904, 906, 5, 144, 73, 2, 905, 897, 3, 2, 2, 2, 905, 904, 3, 2, 2, 2, 906, 967, 3, 2, 2, 2, 907, 908, 7, 49, 2, 2, 908, 909, 5, 146, 74, 2, 909, 913, 5, 130, 66, 2, 910, 912, 5, 140, 71, 2, 911, 910, 3, 2, 2, 2, 912, 915, 3, 2, 2, 2, 913, 911, 3, 2, 2, 2, 913, 914, 3, 2, 2, 2, 914, 917, 3, 2, 2, 2, 915, 913, 3, 2, 2, 2, 916, 918, 5, 144, 73, 2, 917, 916, 3, 2, 2, 2, 917, 918, 3, 2, 2, 2, 918, 967, 3, 2, 2, 2, 919, 920, 7, 43, 2, 2, 920, 921, 5, 162, 82, 2, 921, 925, 7, 65, 2, 2, 922, 924, 5, 152, 77, 2, 923, 922, 3, 2, 2, 2, 924, 927, 3, 2, 2, 2, 925, 923, 3, 2, 2, 2, 925, 926, 3, 2, 2, 2, 926, 931, 3, 2, 2, 2, 927, 925, 3, 2, 2, 2, 928, 930, 5, 154, 78, 2, 929, 928, 3, 2, 2, 2, 930, 933, 3, 2, 2, 2, 931, 929, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 934, 3, 2, 2, 2, 933, 931, 3, 2, 2, 2, 934, 935, 7, 66, 2, 2, 935, 967, 3, 2, 2, 2, 936, 937, 7, 44, 2, 2, 937, 938, 5, 162, 82, 2, 938, 939, 5, 130, 66, 2, 939, 967, 3, 2, 2, 2, 940, 942, 7, 38, 2, 2, 941, 943, 5, 168, 85, 2, 942, 941, 3, 2, 2, 2, 942, 943, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 967, 7, 69, 2, 2, 945, 946, 7, 46, 2, 2, 946, 947, 5, 168, 85, 2, 947, 948, 7, 69, 2, 2, 948, 967, 3, 2, 2, 2, 949, 951, 7, 6, 2, 2, 950, 952, 7, 113, 2, 2, 951, 950, 3, 2, 2, 2, 951, 952, 3, 2, 2, 2, 952, 953, 3, 2, 2, 2, 953, 967, 7, 69, 2, 2, 954, 956, 7, 13, 2, 2, 955, 957, 7, 113, 2, 2, 956, 955, 3, 2, 2, 2, 956, 957, 3, 2, 2, 2, 957, 958, 3, 2, 2, 2, 958, 967, 7, 69, 2, 2, 959, 967, 7, 69, 2, 2, 960, 961, 5, 168, 85, 2, 961, 962, 7, 69, 2, 2, 962, 967, 3, 2, 2, 2, 963, 964, 7, 113, 2, 2, 964, 965, 7, 78, 2, 2, 965, 967, 5, 138, 70, 2, 966, 862, 3, 2, 2, 2, 966, 863, 3, 2, 2, 2, 966, 871, 3, 2, 2, 2, 966, 878, 3, 2, 2, 2, 966, 884, 3, 2, 2, 2, 966, 888, 3, 2, 2, 2, 966, 894, 3, 2, 2, 2, 966, 907, 3, 2, 2, 2, 966, 919, 3, 2, 2, 2, 966, 936, 3, 2, 2, 2, 966, 940, 3, 2, 2, 2, 966, 945, 3, 2, 2, 2, 966, 949, 3, 2, 2, 2, 966, 954, 3, 2, 2, 2, 966, 959, 3, 2, 2, 2, 966, 960, 3, 2, 2, 2, 966, 963, 3, 2, 2, 2, 967, 139, 3, 2, 2, 2, 968, 969, 7, 9, 2, 2, 969, 973, 7, 63, 2, 2, 970, 972, 5, 14, 8, 2, 971, 970, 3, 2, 2, 2, 972, 975, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 973, 974, 3, 2, 2, 2, 974, 976, 3, 2, 2, 2, 975, 973, 3, 2, 2, 2, 976, 977, 5, 142, 72, 2, 977, 978, 7, 113, 2, 2, 978, 979, 7, 64, 2, 2, 979, 980, 5, 130, 66, 2, 980, 141, 3, 2, 2, 2, 981, 986, 5, 94, 48, 2, 982, 983, 7, 92, 2, 2, 983, 985, 5, 94, 48, 2, 984, 982, 3, 2, 2, 2, 985, 988, 3, 2, 2, 2, 986, 984, 3, 2, 2, 2, 986, 987, 3, 2, 2, 2, 987, 143, 3, 2, 2, 2, 988, 986, 3, 2, 2, 2, 989, 990, 7, 21, 2, 2, 990, 991, 5, 130, 66, 2, 991, 145, 3, 2, 2, 2, 992, 993, 7, 63, 2, 2, 993, 995, 5, 148, 75, 2, 994, 996, 7, 69, 2, 2, 995, 994, 3, 2, 2, 2, 995, 996, 3, 2, 2, 2, 996, 997, 3, 2, 2, 2, 997, 998, 7, 64, 2, 2, 998, 147, 3, 2, 2, 2, 999, 1004, 5, 150, 76, 2, 1000, 1001, 7, 69, 2, 2, 1001, 1003, 5, 150, 76, 2, 1002, 1000, 3, 2, 2, 2, 1003, 1006, 3, 2, 2, 2, 1004, 1002, 3, 2, 2, 2, 1004, 1005, 3, 2, 2, 2, 1005, 149, 3, 2, 2, 2, 1006, 1004, 3, 2, 2, 2, 1007, 1009, 5, 14, 8, 2, 1008, 1007, 3, 2, 2, 2, 1009, 1012, 3, 2, 2, 2, 1010, 1008, 3, 2, 2, 2, 1010, 1011, 3, 2, 2, 2, 1011, 1013, 3, 2, 2, 2, 1012, 1010, 3, 2, 2, 2, 1013, 1014, 5, 80, 41, 2, 1014, 1015, 5, 74, 38, 2, 1015, 1016, 7, 72, 2, 2, 1016, 1017, 5, 168, 85, 2, 1017, 151, 3, 2, 2, 2, 1018, 1020, 5, 154, 78, 2, 1019, 1018, 3, 2, 2, 2, 1020, 1021, 3, 2, 2, 2, 1021, 1019, 3, 2, 2, 2, 1021, 1022, 3, 2, 2, 2, 1022, 1024, 3, 2, 2, 2, 1023, 1025, 5, 132, 67, 2, 1024, 1023, 3, 2, 2, 2, 1025, 1026, 3, 2, 2, 2, 1026, 1024, 3, 2, 2, 2, 1026, 1027, 3, 2, 2, 2, 1027, 153, 3, 2, 2, 2, 1028, 1031, 7, 8, 2, 2, 1029, 1032, 5, 168, 85, 2, 1030, 1032, 7, 113, 2, 2, 1031, 1029, 3, 2, 2, 2, 1031, 1030, 3, 2, 2, 2, 1032, 1033, 3, 2, 2, 2, 1033, 1037, 7, 78, 2, 2, 1034, 1035, 7, 14, 2, 2, 1035, 1037, 7, 78, 2, 2, 1036, 1028, 3, 2, 2, 2, 1036, 1034, 3, 2, 2, 2, 1037, 155, 3, 2, 2, 2, 1038, 1051, 5, 160, 81, 2, 1039, 1041, 5, 158, 80, 2, 1040, 1039, 3, 2, 2, 2, 1040, 1041, 3, 2, 2, 2, 1041, 1042, 3, 2, 2, 2, 1042, 1044, 7, 69, 2, 2, 1043, 1045, 5, 168, 85, 2, 1044, 1043, 3, 2, 2, 2, 1044, 1045, 3, 2, 2, 2, 1045, 1046, 3, 2, 2, 2, 1046, 1048, 7, 69, 2, 2, 1047, 1049, 5, 164, 83, 2, 1048, 1047, 3, 2, 2, 2, 1048, 1049, 3, 2, 2, 2, 1049, 1051, 3, 2, 2, 2, 1050, 1038, 3, 2, 2, 2, 1050, 1040, 3, 2, 2, 2, 1051, 157, 3, 2, 2, 2, 1052, 1055, 5, 134, 68, 2, 1053, 1055, 5, 164, 83, 2, 1054, 1052, 3, 2, 2, 2, 1054, 1053, 3, 2, 2, 2, 1055, 159, 3, 2, 2, 2, 1056, 1058, 5, 14, 8, 2, 1057, 1056, 3, 2, 2, 2, 1058, 1061, 3, 2, 2, 2, 1059, 1057, 3, 2, 2, 2, 1059, 1060, 3, 2, 2, 2, 1060, 1062, 3, 2, 2, 2, 1061, 1059, 3, 2, 2, 2, 1062, 1063, 5, 200, 101, 2, 1063, 1064, 5, 74, 38, 2, 1064, 1065, 7, 78, 2, 2, 1065, 1066, 5, 168, 85, 2, 1066, 161, 3, 2, 2, 2, 1067, 1068, 7, 63, 2, 2, 1068, 1069, 5, 168, 85, 2, 1069, 1070, 7, 64, 2, 2, 1070, 163, 3, 2, 2, 2, 1071, 1076, 5, 168, 85, 2, 1072, 1073, 7, 70, 2, 2, 1073, 1075, 5, 168, 85, 2, 1074, 1072, 3, 2, 2, 2, 1075, 1078, 3, 2, 2, 2, 1076, 1074, 3, 2, 2, 2, 1076, 1077, 3, 2, 2, 2, 1077, 165, 3, 2, 2, 2, 1078, 1076, 3, 2, 2, 2, 1079, 1080, 7, 113, 2, 2, 1080, 1082, 7, 63, 2, 2, 1081, 1083, 5, 164, 83, 2, 1082, 1081, 3, 2, 2, 2, 1082, 1083, 3, 2, 2, 2, 1083, 1084, 3, 2, 2, 2, 1084, 1098, 7, 64, 2, 2, 1085, 1086, 7, 45, 2, 2, 1086, 1088, 7, 63, 2, 2, 1087, 1089, 5, 164, 83, 2, 1088, 1087, 3, 2, 2, 2, 1088, 1089, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1098, 7, 64, 2, 2, 1091, 1092, 7, 42, 2, 2, 1092, 1094, 7, 63, 2, 2, 1093, 1095, 5, 164, 83, 2, 1094, 1093, 3, 2, 2, 2, 1094, 1095, 3, 2, 2, 2, 1095, 1096, 3, 2, 2, 2, 1096, 1098, 7, 64, 2, 2, 1097, 1079, 3, 2, 2, 2, 1097, 1085, 3, 2, 2, 2, 1097, 1091, 3, 2, 2, 2, 1098, 167, 3, 2, 2, 2, 1099, 1100, 8, 85, 1, 2, 1100, 1144, 5, 176, 89, 2, 1101, 1144, 5, 166, 84, 2, 1102, 1103, 7, 33, 2, 2, 1103, 1144, 5, 180, 91, 2, 1104, 1108, 7, 63, 2, 2, 1105, 1107, 5, 104, 53, 2, 1106, 1105, 3, 2, 2, 2, 1107, 1110, 3, 2, 2, 2, 1108, 1106, 3, 2, 2, 2, 1108, 1109, 3, 2, 2, 2, 1109, 1111, 3, 2, 2, 2, 1110, 1108, 3, 2, 2, 2, 1111, 1116, 5, 200, 101, 2, 1112, 1113, 7, 91, 2, 2, 1113, 1115, 5, 200, 101, 2, 1114, 1112, 3, 2, 2, 2, 1115, 1118, 3, 2, 2, 2, 1116, 1114, 3, 2, 2, 2, 1116, 1117, 3, 2, 2, 2, 1117, 1119, 3, 2, 2, 2, 1118, 1116, 3, 2, 2, 2, 1119, 1120, 7, 64, 2, 2, 1120, 1121, 5, 168, 85, 23, 1121, 1144, 3, 2, 2, 2, 1122, 1123, 9, 5, 2, 2, 1123, 1144, 5, 168, 85, 21, 1124, 1125, 9, 6, 2, 2, 1125, 1144, 5, 168, 85, 20, 1126, 1144, 5, 170, 86, 2, 1127, 1128, 5, 200, 101, 2, 1128, 1134, 7, 107, 2, 2, 1129, 1131, 5, 204, 103, 2, 1130, 1129, 3, 2, 2, 2, 1130, 1131, 3, 2, 2, 2, 1131, 1132, 3, 2, 2, 2, 1132, 1135, 7, 113, 2, 2, 1133, 1135, 7, 33, 2, 2, 1134, 1130, 3, 2, 2, 2, 1134, 1133, 3, 2, 2, 2, 1135, 1144, 3, 2, 2, 2, 1136, 1137, 5, 178, 90, 2, 1137, 1139, 7, 107, 2, 2, 1138, 1140, 5, 204, 103, 2, 1139, 1138, 3, 2, 2, 2, 1139, 1140, 3, 2, 2, 2, 1140, 1141, 3, 2, 2, 2, 1141, 1142, 7, 33, 2, 2, 1142, 1144, 3, 2, 2, 2, 1143, 1099, 3, 2, 2, 2, 1143, 1101, 3, 2, 2, 2, 1143, 1102, 3, 2, 2, 2, 1143, 1104, 3, 2, 2, 2, 1143, 1122, 3, 2, 2, 2, 1143, 1124, 3, 2, 2, 2, 1143, 1126, 3, 2, 2, 2, 1143, 1127, 3, 2, 2, 2, 1143, 1136, 3, 2, 2, 2, 1144, 1225, 3, 2, 2, 2, 1145, 1146, 12, 19, 2, 2, 1146, 1147, 9, 7, 2, 2, 1147, 1224, 5, 168, 85, 20, 1148, 1149, 12, 18, 2, 2, 1149, 1150, 9, 8, 2, 2, 1150, 1224, 5, 168, 85, 19, 1151, 1159, 12, 17, 2, 2, 1152, 1153, 7, 74, 2, 2, 1153, 1160, 7, 74, 2, 2, 1154, 1155, 7, 73, 2, 2, 1155, 1156, 7, 73, 2, 2, 1156, 1160, 7, 73, 2, 2, 1157, 1158, 7, 73, 2, 2, 1158, 1160, 7, 73, 2, 2, 1159, 1152, 3, 2, 2, 2, 1159, 1154, 3, 2, 2, 2, 1159, 1157, 3, 2, 2, 2, 1160, 1161, 3, 2, 2, 2, 1161, 1224, 5, 168, 85, 18, 1162, 1163, 12, 16, 2, 2, 1163, 1164, 9, 9, 2, 2, 1164, 1224, 5, 168, 85, 17, 1165, 1166, 12, 14, 2, 2, 1166, 1167, 9, 10, 2, 2, 1167, 1224, 5, 168, 85, 15, 1168, 1169, 12, 13, 2, 2, 1169, 1170, 7, 91, 2, 2, 1170, 1224, 5, 168, 85, 14, 1171, 1172, 12, 12, 2, 2, 1172, 1173, 7, 93, 2, 2, 1173, 1224, 5, 168, 85, 13, 1174, 1175, 12, 11, 2, 2, 1175, 1176, 7, 92, 2, 2, 1176, 1224, 5, 168, 85, 12, 1177, 1178, 12, 10, 2, 2, 1178, 1179, 7, 83, 2, 2, 1179, 1224, 5, 168, 85, 11, 1180, 1181, 12, 9, 2, 2, 1181, 1182, 7, 84, 2, 2, 1182, 1224, 5, 168, 85, 10, 1183, 1184, 12, 8, 2, 2, 1184, 1185, 7, 77, 2, 2, 1185, 1186, 5, 168, 85, 2, 1186, 1187, 7, 78, 2, 2, 1187, 1188, 5, 168, 85, 8, 1188, 1224, 3, 2, 2, 2, 1189, 1190, 12, 7, 2, 2, 1190, 1191, 9, 11, 2, 2, 1191, 1224, 5, 168, 85, 7, 1192, 1193, 12, 27, 2, 2, 1193, 1205, 7, 71, 2, 2, 1194, 1206, 7, 113, 2, 2, 1195, 1206, 5, 166, 84, 2, 1196, 1206, 7, 45, 2, 2, 1197, 1199, 7, 33, 2, 2, 1198, 1200, 5, 196, 99, 2, 1199, 1198, 3, 2, 2, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1201, 3, 2, 2, 2, 1201, 1206, 5, 184, 93, 2, 1202, 1203, 7, 42, 2, 2, 1203, 1206, 5, 206, 104, 2, 1204, 1206, 5, 190, 96, 2, 1205, 1194, 3, 2, 2, 2, 1205, 1195, 3, 2, 2, 2, 1205, 1196, 3, 2, 2, 2, 1205, 1197, 3, 2, 2, 2, 1205, 1202, 3, 2, 2, 2, 1205, 1204, 3, 2, 2, 2, 1206, 1224, 3, 2, 2, 2, 1207, 1208, 12, 26, 2, 2, 1208, 1209, 7, 67, 2, 2, 1209, 1210, 5, 168, 85, 2, 1210, 1211, 7, 68, 2, 2, 1211, 1224, 3, 2, 2, 2, 1212, 1213, 12, 22, 2, 2, 1213, 1224, 9, 12, 2, 2, 1214, 1215, 12, 15, 2, 2, 1215, 1216, 7, 28, 2, 2, 1216, 1224, 5, 200, 101, 2, 1217, 1218, 12, 5, 2, 2, 1218, 1220, 7, 107, 2, 2, 1219, 1221, 5, 204, 103, 2, 1220, 1219, 3, 2, 2, 2, 1220, 1221, 3, 2, 2, 2, 1221, 1222, 3, 2, 2, 2, 1222, 1224, 7, 113, 2, 2, 1223, 1145, 3, 2, 2, 2, 1223, 1148, 3, 2, 2, 2, 1223, 1151, 3, 2, 2, 2, 1223, 1162, 3, 2, 2, 2, 1223, 1165, 3, 2, 2, 2, 1223, 1168, 3, 2, 2, 2, 1223, 1171, 3, 2, 2, 2, 1223, 1174, 3, 2, 2, 2, 1223, 1177, 3, 2, 2, 2, 1223, 1180, 3, 2, 2, 2, 1223, 1183, 3, 2, 2, 2, 1223, 1189, 3, 2, 2, 2, 1223, 1192, 3, 2, 2, 2, 1223, 1207, 3, 2, 2, 2, 1223, 1212, 3, 2, 2, 2, 1223, 1214, 3, 2, 2, 2, 1223, 1217, 3, 2, 2, 2, 1224, 1227, 3, 2, 2, 2, 1225, 1223, 3, 2, 2, 2, 1225, 1226, 3, 2, 2, 2, 1226, 169, 3, 2, 2, 2, 1227, 1225, 3, 2, 2, 2, 1228, 1229, 5, 172, 87, 2, 1229, 1230, 7, 106, 2, 2, 1230, 1231, 5, 174, 88, 2, 1231, 171, 3, 2, 2, 2, 1232, 1249, 7, 113, 2, 2, 1233, 1235, 7, 63, 2, 2, 1234, 1236, 5, 88, 45, 2, 1235, 1234, 3, 2, 2, 2, 1235, 1236, 3, 2, 2, 2, 1236, 1237, 3, 2, 2, 2, 1237, 1249, 7, 64, 2, 2, 1238, 1239, 7, 63, 2, 2, 1239, 1244, 7, 113, 2, 2, 1240, 1241, 7, 70, 2, 2, 1241, 1243, 7, 113, 2, 2, 1242, 1240, 3, 2, 2, 2, 1243, 1246, 3, 2, 2, 2, 1244, 1242, 3, 2, 2, 2, 1244, 1245, 3, 2, 2, 2, 1245, 1247, 3, 2, 2, 2, 1246, 1244, 3, 2, 2, 2, 1247, 1249, 7, 64, 2, 2, 1248, 1232, 3, 2, 2, 2, 1248, 1233, 3, 2, 2, 2, 1248, 1238, 3, 2, 2, 2, 1249, 173, 3, 2, 2, 2, 1250, 1253, 5, 168, 85, 2, 1251, 1253, 5, 130, 66, 2, 1252, 1250, 3, 2, 2, 2, 1252, 1251, 3, 2, 2, 2, 1253, 175, 3, 2, 2, 2, 1254, 1255, 7, 63, 2, 2, 1255, 1256, 5, 168, 85, 2, 1256, 1257, 7, 64, 2, 2, 1257, 1273, 3, 2, 2, 2, 1258, 1273, 7, 45, 2, 2, 1259, 1273, 7, 42, 2, 2, 1260, 1273, 5, 96, 49, 2, 1261, 1273, 7, 113, 2, 2, 1262, 1263, 5, 46, 24, 2, 1263, 1264, 7, 71, 2, 2, 1264, 1265, 7, 11, 2, 2, 1265, 1273, 3, 2, 2, 2, 1266, 1270, 5, 196, 99, 2, 1267, 1271, 5, 208, 105, 2, 1268, 1269, 7, 45, 2, 2, 1269, 1271, 5, 210, 106, 2, 1270, 1267, 3, 2, 2, 2, 1270, 1268, 3, 2, 2, 2, 1271, 1273, 3, 2, 2, 2, 1272, 1254, 3, 2, 2, 2, 1272, 1258, 3, 2, 2, 2, 1272, 1259, 3, 2, 2, 2, 1272, 1260, 3, 2, 2, 2, 1272, 1261, 3, 2, 2, 2, 1272, 1262, 3, 2, 2, 2, 1272, 1266, 3, 2, 2, 2, 1273, 177, 3, 2, 2, 2, 1274, 1275, 5, 80, 41, 2, 1275, 1276, 7, 71, 2, 2, 1276, 1278, 3, 2, 2, 2, 1277, 1274, 3, 2, 2, 2, 1277, 1278, 3, 2, 2, 2, 1278, 1282, 3, 2, 2, 2, 1279, 1281, 5, 104, 53, 2, 1280, 1279, 3, 2, 2, 2, 1281, 1284, 3, 2, 2, 2, 1282, 1280, 3, 2, 2, 2, 1282, 1283, 3, 2, 2, 2, 1283, 1285, 3, 2, 2, 2, 1284, 1282, 3, 2, 2, 2, 1285, 1287, 7, 113, 2, 2, 1286, 1288, 5, 204, 103, 2, 1287, 1286, 3, 2, 2, 2, 1287, 1288, 3, 2, 2, 2, 1288, 179, 3, 2, 2, 2, 1289, 1290, 5, 196, 99, 2, 1290, 1291, 5, 182, 92, 2, 1291, 1292, 5, 188, 95, 2, 1292, 1299, 3, 2, 2, 2, 1293, 1296, 5, 182, 92, 2, 1294, 1297, 5, 186, 94, 2, 1295, 1297, 5, 188, 95, 2, 1296, 1294, 3, 2, 2, 2, 1296, 1295, 3, 2, 2, 2, 1297, 1299, 3, 2, 2, 2, 1298, 1289, 3, 2, 2, 2, 1298, 1293, 3, 2, 2, 2, 1299, 181, 3, 2, 2, 2, 1300, 1302, 7, 113, 2, 2, 1301, 1303, 5, 192, 97, 2, 1302, 1301, 3, 2, 2, 2, 1302, 1303, 3, 2, 2, 2, 1303, 1311, 3, 2, 2, 2, 1304, 1305, 7, 71, 2, 2, 1305, 1307, 7, 113, 2, 2, 1306, 1308, 5, 192, 97, 2, 1307, 1306, 3, 2, 2, 2, 1307, 1308, 3, 2, 2, 2, 1308, 1310, 3, 2, 2, 2, 1309, 1304, 3, 2, 2, 2, 1310, 1313, 3, 2, 2, 2, 1311, 1309, 3, 2, 2, 2, 1311, 1312, 3, 2, 2, 2, 1312, 1316, 3, 2, 2, 2, 1313, 1311, 3, 2, 2, 2, 1314, 1316, 5, 202, 102, 2, 1315, 1300, 3, 2, 2, 2, 1315, 1314, 3, 2, 2, 2, 1316, 183, 3, 2, 2, 2, 1317, 1319, 7, 113, 2, 2, 1318, 1320, 5, 194, 98, 2, 1319, 1318, 3, 2, 2, 2, 1319, 1320, 3, 2, 2, 2, 1320, 1321, 3, 2, 2, 2, 1321, 1322, 5, 188, 95, 2, 1322, 185, 3, 2, 2, 2, 1323, 1351, 7, 67, 2, 2, 1324, 1329, 7, 68, 2, 2, 1325, 1326, 7, 67, 2, 2, 1326, 1328, 7, 68, 2, 2, 1327, 1325, 3, 2, 2, 2, 1328, 1331, 3, 2, 2, 2, 1329, 1327, 3, 2, 2, 2, 1329, 1330, 3, 2, 2, 2, 1330, 1332, 3, 2, 2, 2, 1331, 1329, 3, 2, 2, 2, 1332, 1352, 5, 78, 40, 2, 1333, 1334, 5, 168, 85, 2, 1334, 1341, 7, 68, 2, 2, 1335, 1336, 7, 67, 2, 2, 1336, 1337, 5, 168, 85, 2, 1337, 1338, 7, 68, 2, 2, 1338, 1340, 3, 2, 2, 2, 1339, 1335, 3, 2, 2, 2, 1340, 1343, 3, 2, 2, 2, 1341, 1339, 3, 2, 2, 2, 1341, 1342, 3, 2, 2, 2, 1342, 1348, 3, 2, 2, 2, 1343, 1341, 3, 2, 2, 2, 1344, 1345, 7, 67, 2, 2, 1345, 1347, 7, 68, 2, 2, 1346, 1344, 3, 2, 2, 2, 1347, 1350, 3, 2, 2, 2, 1348, 1346, 3, 2, 2, 2, 1348, 1349, 3, 2, 2, 2, 1349, 1352, 3, 2, 2, 2, 1350, 1348, 3, 2, 2, 2, 1351, 1324, 3, 2, 2, 2, 1351, 1333, 3, 2, 2, 2, 1352, 187, 3, 2, 2, 2, 1353, 1355, 5, 210, 106, 2, 1354, 1356, 5, 34, 18, 2, 1355, 1354, 3, 2, 2, 2, 1355, 1356, 3, 2, 2, 2, 1356, 189, 3, 2, 2, 2, 1357, 1358, 5, 196, 99, 2, 1358, 1359, 5, 208, 105, 2, 1359, 191, 3, 2, 2, 2, 1360, 1361, 7, 74, 2, 2, 1361, 1364, 7, 73, 2, 2, 1362, 1364, 5, 204, 103, 2, 1363, 1360, 3, 2, 2, 2, 1363, 1362, 3, 2, 2, 2, 1364, 193, 3, 2, 2, 2, 1365, 1366, 7, 74, 2, 2, 1366, 1369, 7, 73, 2, 2, 1367, 1369, 5, 196, 99, 2, 1368, 1365, 3, 2, 2, 2, 1368, 1367, 3, 2, 2, 2, 1369, 195, 3, 2, 2, 2, 1370, 1371, 7, 74, 2, 2, 1371, 1372, 5, 198, 100, 2, 1372, 1373, 7, 73, 2, 2, 1373, 197, 3, 2, 2, 2, 1374, 1379, 5, 200, 101, 2, 1375, 1376, 7, 70, 2, 2, 1376, 1378, 5, 200, 101, 2, 1377, 1375, 3, 2, 2, 2, 1378, 1381, 3, 2, 2, 2, 1379, 1377, 3, 2, 2, 2, 1379, 1380, 3, 2, 2, 2, 1380, 199, 3, 2, 2, 2, 1381, 1379, 3, 2, 2, 2, 1382, 1384, 5, 104, 53, 2, 1383, 1382, 3, 2, 2, 2, 1384, 1387, 3, 2, 2, 2, 1385, 1383, 3, 2, 2, 2, 1385, 1386, 3, 2, 2, 2, 1386, 1390, 3, 2, 2, 2, 1387, 1385, 3, 2, 2, 2, 1388, 1391, 5, 80, 41, 2, 1389, 1391, 5, 202, 102, 2, 1390, 1388, 3, 2, 2, 2, 1390, 1389, 3, 2, 2, 2, 1391, 1402, 3, 2, 2, 2, 1392, 1394, 5, 104, 53, 2, 1393, 1392, 3, 2, 2, 2, 1394, 1397, 3, 2, 2, 2, 1395, 1393, 3, 2, 2, 2, 1395, 1396, 3, 2, 2, 2, 1396, 1398, 3, 2, 2, 2, 1397, 1395, 3, 2, 2, 2, 1398, 1399, 7, 67, 2, 2, 1399, 1401, 7, 68, 2, 2, 1400, 1395, 3, 2, 2, 2, 1401, 1404, 3, 2, 2, 2, 1402, 1400, 3, 2, 2, 2, 1402, 1403, 3, 2, 2, 2, 1403, 201, 3, 2, 2, 2, 1404, 1402, 3, 2, 2, 2, 1405, 1406, 9, 13, 2, 2, 1406, 203, 3, 2, 2, 2, 1407, 1408, 7, 74, 2, 2, 1408, 1413, 5, 82, 42, 2, 1409, 1410, 7, 70, 2, 2, 1410, 1412, 5, 82, 42, 2, 1411, 1409, 3, 2, 2, 2, 1412, 1415, 3, 2, 2, 2, 1413, 1411, 3, 2, 2, 2, 1413, 1414, 3, 2, 2, 2, 1414, 1416, 3, 2, 2, 2, 1415, 1413, 3, 2, 2, 2, 1416, 1417, 7, 73, 2, 2, 1417, 205, 3, 2, 2, 2, 1418, 1425, 5, 210, 106, 2, 1419, 1420, 7, 71, 2, 2, 1420, 1422, 7, 113, 2, 2, 1421, 1423, 5, 210, 106, 2, 1422, 1421, 3, 2, 2, 2, 1422, 1423, 3, 2, 2, 2, 1423, 1425, 3, 2, 2, 2, 1424, 1418, 3, 2, 2, 2, 1424, 1419, 3, 2, 2, 2, 1425, 207, 3, 2, 2, 2, 1426, 1427, 7, 42, 2, 2, 1427, 1431, 5, 206, 104, 2, 1428, 1429, 7, 113, 2, 2, 1429, 1431, 5, 210, 106, 2, 1430, 1426, 3, 2, 2, 2, 1430, 1428, 3, 2, 2, 2, 1431, 209, 3, 2, 2, 2, 1432, 1434, 7, 63, 2, 2, 1433, 1435, 5, 164, 83, 2, 1434, 1433, 3, 2, 2, 2, 1434, 1435, 3, 2, 2, 2, 1435, 1436, 3, 2, 2, 2, 1436, 1437, 7, 64, 2, 2, 1437, 211, 3, 2, 2, 2, 181, 213, 218, 224, 232, 241, 246, 253, 260, 263, 270, 280, 284, 289, 293, 297, 307, 315, 323, 327, 334, 341, 345, 348, 351, 360, 366, 371, 374, 380, 386, 390, 398, 407, 414, 420, 424, 435, 444, 449, 455, 459, 471, 482, 487, 496, 504, 514, 523, 531, 536, 544, 549, 559, 569, 575, 582, 587, 595, 599, 601, 607, 612, 616, 623, 629, 631, 638, 643, 652, 657, 660, 665, 674, 681, 692, 701, 711, 720, 725, 728, 735, 745, 753, 756, 759, 772, 780, 785, 793, 797, 801, 805, 807, 811, 817, 828, 838, 843, 852, 857, 860, 867, 876, 899, 902, 905, 913, 917, 925, 931, 942, 951, 956, 966, 973, 986, 995, 1004, 1010, 1021, 1026, 1031, 1036, 1040, 1044, 1048, 1050, 1054, 1059, 1076, 1082, 1088, 1094, 1097, 1108, 1116, 1130, 1134, 1139, 1143, 1159, 1199, 1205, 1220, 1223, 1225, 1235, 1244, 1248, 1252, 1270, 1272, 1277, 1282, 1287, 1296, 1298, 1302, 1307, 1311, 1315, 1319, 1329, 1341, 1348, 1351, 1355, 1363, 1368, 1379, 1385, 1390, 1395, 1402, 1413, 1422, 1424, 1430, 1434] \ No newline at end of file diff --git a/java2python/lang/JavaParser.py b/java2python/lang/JavaParser.py new file mode 100644 index 0000000..6cb2169 --- /dev/null +++ b/java2python/lang/JavaParser.py @@ -0,0 +1,9921 @@ +# Generated from JavaParser.g4 by ANTLR 4.7.2 +# encoding: utf-8 +from antlr4 import * +from io import StringIO +from typing.io import TextIO +import sys + +def serializedATN(): + with StringIO() as buf: + buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3q") + buf.write("\u059f\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7") + buf.write("\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16") + buf.write("\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23\t\23") + buf.write("\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31") + buf.write("\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36") + buf.write("\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t") + buf.write("&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.\t.\4") + buf.write("/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t\64") + buf.write("\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:\4;\t") + buf.write(";\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\tC\4D\t") + buf.write("D\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\tL\4M\t") + buf.write("M\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\tU\4V\t") + buf.write("V\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4") + buf.write("_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4") + buf.write("h\th\4i\ti\4j\tj\3\2\5\2\u00d6\n\2\3\2\7\2\u00d9\n\2\f") + buf.write("\2\16\2\u00dc\13\2\3\2\7\2\u00df\n\2\f\2\16\2\u00e2\13") + buf.write("\2\3\2\3\2\3\3\7\3\u00e7\n\3\f\3\16\3\u00ea\13\3\3\3\3") + buf.write("\3\3\3\3\3\3\4\3\4\5\4\u00f2\n\4\3\4\3\4\3\4\5\4\u00f7") + buf.write("\n\4\3\4\3\4\3\5\7\5\u00fc\n\5\f\5\16\5\u00ff\13\5\3\5") + buf.write("\3\5\3\5\3\5\5\5\u0105\n\5\3\5\5\5\u0108\n\5\3\6\3\6\3") + buf.write("\6\3\6\3\6\5\6\u010f\n\6\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3") + buf.write("\7\5\7\u0119\n\7\3\b\3\b\5\b\u011d\n\b\3\t\3\t\3\t\5\t") + buf.write("\u0122\n\t\3\t\3\t\5\t\u0126\n\t\3\t\3\t\5\t\u012a\n\t") + buf.write("\3\t\3\t\3\n\3\n\3\n\3\n\7\n\u0132\n\n\f\n\16\n\u0135") + buf.write("\13\n\3\n\3\n\3\13\7\13\u013a\n\13\f\13\16\13\u013d\13") + buf.write("\13\3\13\3\13\3\13\7\13\u0142\n\13\f\13\16\13\u0145\13") + buf.write("\13\3\13\5\13\u0148\n\13\3\f\3\f\3\f\7\f\u014d\n\f\f\f") + buf.write("\16\f\u0150\13\f\3\r\3\r\3\r\3\r\5\r\u0156\n\r\3\r\3\r") + buf.write("\5\r\u015a\n\r\3\r\5\r\u015d\n\r\3\r\5\r\u0160\n\r\3\r") + buf.write("\3\r\3\16\3\16\3\16\7\16\u0167\n\16\f\16\16\16\u016a\13") + buf.write("\16\3\17\7\17\u016d\n\17\f\17\16\17\u0170\13\17\3\17\3") + buf.write("\17\5\17\u0174\n\17\3\17\5\17\u0177\n\17\3\20\3\20\7\20") + buf.write("\u017b\n\20\f\20\16\20\u017e\13\20\3\21\3\21\3\21\5\21") + buf.write("\u0183\n\21\3\21\3\21\5\21\u0187\n\21\3\21\3\21\3\22\3") + buf.write("\22\7\22\u018d\n\22\f\22\16\22\u0190\13\22\3\22\3\22\3") + buf.write("\23\3\23\7\23\u0196\n\23\f\23\16\23\u0199\13\23\3\23\3") + buf.write("\23\3\24\3\24\5\24\u019f\n\24\3\24\3\24\7\24\u01a3\n\24") + buf.write("\f\24\16\24\u01a6\13\24\3\24\5\24\u01a9\n\24\3\25\3\25") + buf.write("\3\25\3\25\3\25\3\25\3\25\3\25\3\25\5\25\u01b4\n\25\3") + buf.write("\26\3\26\3\26\3\26\3\26\7\26\u01bb\n\26\f\26\16\26\u01be") + buf.write("\13\26\3\26\3\26\5\26\u01c2\n\26\3\26\3\26\3\27\3\27\5") + buf.write("\27\u01c8\n\27\3\30\3\30\5\30\u01cc\n\30\3\31\3\31\3\31") + buf.write("\3\32\3\32\3\32\3\33\3\33\3\33\3\33\5\33\u01d8\n\33\3") + buf.write("\33\3\33\3\34\3\34\3\34\3\34\3\35\7\35\u01e1\n\35\f\35") + buf.write("\16\35\u01e4\13\35\3\35\3\35\5\35\u01e8\n\35\3\36\3\36") + buf.write("\3\36\3\36\3\36\3\36\3\36\5\36\u01f1\n\36\3\37\3\37\3") + buf.write("\37\3\37\7\37\u01f7\n\37\f\37\16\37\u01fa\13\37\3\37\3") + buf.write("\37\3 \3 \3 \7 \u0201\n \f \16 \u0204\13 \3 \3 \3 \3!") + buf.write("\7!\u020a\n!\f!\16!\u020d\13!\3!\3!\3!\7!\u0212\n!\f!") + buf.write("\16!\u0215\13!\3!\3!\5!\u0219\n!\3!\3!\3!\3!\7!\u021f") + buf.write("\n!\f!\16!\u0222\13!\3!\3!\5!\u0226\n!\3!\3!\3\"\3\"\3") + buf.write("\"\3\"\3\"\3\"\5\"\u0230\n\"\3#\3#\3#\3$\3$\3$\7$\u0238") + buf.write("\n$\f$\16$\u023b\13$\3%\3%\3%\5%\u0240\n%\3&\3&\3&\7&") + buf.write("\u0245\n&\f&\16&\u0248\13&\3\'\3\'\5\'\u024c\n\'\3(\3") + buf.write("(\3(\3(\7(\u0252\n(\f(\16(\u0255\13(\3(\5(\u0258\n(\5") + buf.write("(\u025a\n(\3(\3(\3)\3)\5)\u0260\n)\3)\3)\3)\5)\u0265\n") + buf.write(")\7)\u0267\n)\f)\16)\u026a\13)\3*\3*\7*\u026e\n*\f*\16") + buf.write("*\u0271\13*\3*\3*\3*\5*\u0276\n*\5*\u0278\n*\3+\3+\3+") + buf.write("\7+\u027d\n+\f+\16+\u0280\13+\3,\3,\5,\u0284\n,\3,\3,") + buf.write("\3-\3-\3-\7-\u028b\n-\f-\16-\u028e\13-\3-\3-\5-\u0292") + buf.write("\n-\3-\5-\u0295\n-\3.\7.\u0298\n.\f.\16.\u029b\13.\3.") + buf.write("\3.\3.\3/\7/\u02a1\n/\f/\16/\u02a4\13/\3/\3/\7/\u02a8") + buf.write("\n/\f/\16/\u02ab\13/\3/\3/\3/\3\60\3\60\3\60\7\60\u02b3") + buf.write("\n\60\f\60\16\60\u02b6\13\60\3\61\3\61\3\61\3\61\3\61") + buf.write("\3\61\5\61\u02be\n\61\3\62\3\62\3\63\3\63\3\64\3\64\7") + buf.write("\64\u02c6\n\64\f\64\16\64\u02c9\13\64\3\64\3\64\3\64\3") + buf.write("\65\3\65\3\65\5\65\u02d1\n\65\3\65\3\65\3\65\5\65\u02d6") + buf.write("\n\65\3\65\5\65\u02d9\n\65\3\66\3\66\3\66\7\66\u02de\n") + buf.write("\66\f\66\16\66\u02e1\13\66\3\67\3\67\3\67\3\67\38\38\3") + buf.write("8\58\u02ea\n8\39\39\39\39\79\u02f0\n9\f9\169\u02f3\13") + buf.write("9\59\u02f5\n9\39\59\u02f8\n9\39\39\3:\3:\3:\3:\3:\3;\3") + buf.write(";\7;\u0303\n;\f;\16;\u0306\13;\3;\3;\3<\7<\u030b\n<\f") + buf.write("<\16<\u030e\13<\3<\3<\5<\u0312\n<\3=\3=\3=\3=\3=\3=\5") + buf.write("=\u031a\n=\3=\3=\5=\u031e\n=\3=\3=\5=\u0322\n=\3=\3=\5") + buf.write("=\u0326\n=\5=\u0328\n=\3>\3>\5>\u032c\n>\3?\3?\3?\3?\5") + buf.write("?\u0332\n?\3@\3@\3A\3A\3A\3B\3B\7B\u033b\nB\fB\16B\u033e") + buf.write("\13B\3B\3B\3C\3C\3C\3C\3C\5C\u0347\nC\3D\7D\u034a\nD\f") + buf.write("D\16D\u034d\13D\3D\3D\3D\3E\7E\u0353\nE\fE\16E\u0356\13") + buf.write("E\3E\3E\5E\u035a\nE\3E\5E\u035d\nE\3F\3F\3F\3F\3F\5F\u0364") + buf.write("\nF\3F\3F\3F\3F\3F\3F\3F\5F\u036d\nF\3F\3F\3F\3F\3F\3") + buf.write("F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\3F\6F\u0382\nF\r") + buf.write("F\16F\u0383\3F\5F\u0387\nF\3F\5F\u038a\nF\3F\3F\3F\3F") + buf.write("\7F\u0390\nF\fF\16F\u0393\13F\3F\5F\u0396\nF\3F\3F\3F") + buf.write("\3F\7F\u039c\nF\fF\16F\u039f\13F\3F\7F\u03a2\nF\fF\16") + buf.write("F\u03a5\13F\3F\3F\3F\3F\3F\3F\3F\3F\5F\u03af\nF\3F\3F") + buf.write("\3F\3F\3F\3F\3F\5F\u03b8\nF\3F\3F\3F\5F\u03bd\nF\3F\3") + buf.write("F\3F\3F\3F\3F\3F\3F\5F\u03c7\nF\3G\3G\3G\7G\u03cc\nG\f") + buf.write("G\16G\u03cf\13G\3G\3G\3G\3G\3G\3H\3H\3H\7H\u03d9\nH\f") + buf.write("H\16H\u03dc\13H\3I\3I\3I\3J\3J\3J\5J\u03e4\nJ\3J\3J\3") + buf.write("K\3K\3K\7K\u03eb\nK\fK\16K\u03ee\13K\3L\7L\u03f1\nL\f") + buf.write("L\16L\u03f4\13L\3L\3L\3L\3L\3L\3M\6M\u03fc\nM\rM\16M\u03fd") + buf.write("\3M\6M\u0401\nM\rM\16M\u0402\3N\3N\3N\5N\u0408\nN\3N\3") + buf.write("N\3N\5N\u040d\nN\3O\3O\5O\u0411\nO\3O\3O\5O\u0415\nO\3") + buf.write("O\3O\5O\u0419\nO\5O\u041b\nO\3P\3P\5P\u041f\nP\3Q\7Q\u0422") + buf.write("\nQ\fQ\16Q\u0425\13Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3S\3S") + buf.write("\3S\7S\u0433\nS\fS\16S\u0436\13S\3T\3T\3T\5T\u043b\nT") + buf.write("\3T\3T\3T\3T\5T\u0441\nT\3T\3T\3T\3T\5T\u0447\nT\3T\5") + buf.write("T\u044a\nT\3U\3U\3U\3U\3U\3U\3U\7U\u0453\nU\fU\16U\u0456") + buf.write("\13U\3U\3U\3U\7U\u045b\nU\fU\16U\u045e\13U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\5U\u046b\nU\3U\3U\5U\u046f\nU\3") + buf.write("U\3U\3U\5U\u0474\nU\3U\3U\5U\u0478\nU\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u0488\nU\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u04b0\n") + buf.write("U\3U\3U\3U\3U\5U\u04b6\nU\3U\3U\3U\3U\3U\3U\3U\3U\3U\3") + buf.write("U\3U\3U\3U\5U\u04c5\nU\3U\7U\u04c8\nU\fU\16U\u04cb\13") + buf.write("U\3V\3V\3V\3V\3W\3W\3W\5W\u04d4\nW\3W\3W\3W\3W\3W\7W\u04db") + buf.write("\nW\fW\16W\u04de\13W\3W\5W\u04e1\nW\3X\3X\5X\u04e5\nX") + buf.write("\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u04f7") + buf.write("\nY\5Y\u04f9\nY\3Z\3Z\3Z\5Z\u04fe\nZ\3Z\7Z\u0501\nZ\f") + buf.write("Z\16Z\u0504\13Z\3Z\3Z\5Z\u0508\nZ\3[\3[\3[\3[\3[\3[\3") + buf.write("[\5[\u0511\n[\5[\u0513\n[\3\\\3\\\5\\\u0517\n\\\3\\\3") + buf.write("\\\3\\\5\\\u051c\n\\\7\\\u051e\n\\\f\\\16\\\u0521\13\\") + buf.write("\3\\\5\\\u0524\n\\\3]\3]\5]\u0528\n]\3]\3]\3^\3^\3^\3") + buf.write("^\7^\u0530\n^\f^\16^\u0533\13^\3^\3^\3^\3^\3^\3^\3^\7") + buf.write("^\u053c\n^\f^\16^\u053f\13^\3^\3^\7^\u0543\n^\f^\16^\u0546") + buf.write("\13^\5^\u0548\n^\3_\3_\5_\u054c\n_\3`\3`\3`\3a\3a\3a\5") + buf.write("a\u0554\na\3b\3b\3b\5b\u0559\nb\3c\3c\3c\3c\3d\3d\3d\7") + buf.write("d\u0562\nd\fd\16d\u0565\13d\3e\7e\u0568\ne\fe\16e\u056b") + buf.write("\13e\3e\3e\5e\u056f\ne\3e\7e\u0572\ne\fe\16e\u0575\13") + buf.write("e\3e\3e\7e\u0579\ne\fe\16e\u057c\13e\3f\3f\3g\3g\3g\3") + buf.write("g\7g\u0584\ng\fg\16g\u0587\13g\3g\3g\3h\3h\3h\3h\5h\u058f") + buf.write("\nh\5h\u0591\nh\3i\3i\3i\3i\5i\u0597\ni\3j\3j\5j\u059b") + buf.write("\nj\3j\3j\3j\2\3\u00a8k\2\4\6\b\n\f\16\20\22\24\26\30") + buf.write("\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJLNPRTVXZ\\^`b") + buf.write("dfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c") + buf.write("\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e") + buf.write("\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0") + buf.write("\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2") + buf.write("\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\2\16") + buf.write("\4\2\23\23**\3\2\658\3\29:\3\2UX\3\2KL\4\2YZ^^\3\2WX\4") + buf.write("\2IJPQ\4\2OORR\4\2HH_i\3\2UV\n\2\5\5\7\7\n\n\20\20\26") + buf.write("\26\35\35\37\37\'\'\2\u063f\2\u00d5\3\2\2\2\4\u00e8\3") + buf.write("\2\2\2\6\u00ef\3\2\2\2\b\u0107\3\2\2\2\n\u010e\3\2\2\2") + buf.write("\f\u0118\3\2\2\2\16\u011c\3\2\2\2\20\u011e\3\2\2\2\22") + buf.write("\u012d\3\2\2\2\24\u013b\3\2\2\2\26\u0149\3\2\2\2\30\u0151") + buf.write("\3\2\2\2\32\u0163\3\2\2\2\34\u016e\3\2\2\2\36\u0178\3") + buf.write("\2\2\2 \u017f\3\2\2\2\"\u018a\3\2\2\2$\u0193\3\2\2\2&") + buf.write("\u01a8\3\2\2\2(\u01b3\3\2\2\2*\u01b5\3\2\2\2,\u01c7\3") + buf.write("\2\2\2.\u01cb\3\2\2\2\60\u01cd\3\2\2\2\62\u01d0\3\2\2") + buf.write("\2\64\u01d3\3\2\2\2\66\u01db\3\2\2\28\u01e7\3\2\2\2:\u01f0") + buf.write("\3\2\2\2<\u01f2\3\2\2\2>\u01fd\3\2\2\2@\u020b\3\2\2\2") + buf.write("B\u022f\3\2\2\2D\u0231\3\2\2\2F\u0234\3\2\2\2H\u023c\3") + buf.write("\2\2\2J\u0241\3\2\2\2L\u024b\3\2\2\2N\u024d\3\2\2\2P\u025d") + buf.write("\3\2\2\2R\u0277\3\2\2\2T\u0279\3\2\2\2V\u0281\3\2\2\2") + buf.write("X\u0294\3\2\2\2Z\u0299\3\2\2\2\\\u02a2\3\2\2\2^\u02af") + buf.write("\3\2\2\2`\u02bd\3\2\2\2b\u02bf\3\2\2\2d\u02c1\3\2\2\2") + buf.write("f\u02c7\3\2\2\2h\u02d0\3\2\2\2j\u02da\3\2\2\2l\u02e2\3") + buf.write("\2\2\2n\u02e9\3\2\2\2p\u02eb\3\2\2\2r\u02fb\3\2\2\2t\u0300") + buf.write("\3\2\2\2v\u0311\3\2\2\2x\u0327\3\2\2\2z\u032b\3\2\2\2") + buf.write("|\u032d\3\2\2\2~\u0333\3\2\2\2\u0080\u0335\3\2\2\2\u0082") + buf.write("\u0338\3\2\2\2\u0084\u0346\3\2\2\2\u0086\u034b\3\2\2\2") + buf.write("\u0088\u035c\3\2\2\2\u008a\u03c6\3\2\2\2\u008c\u03c8\3") + buf.write("\2\2\2\u008e\u03d5\3\2\2\2\u0090\u03dd\3\2\2\2\u0092\u03e0") + buf.write("\3\2\2\2\u0094\u03e7\3\2\2\2\u0096\u03f2\3\2\2\2\u0098") + buf.write("\u03fb\3\2\2\2\u009a\u040c\3\2\2\2\u009c\u041a\3\2\2\2") + buf.write("\u009e\u041e\3\2\2\2\u00a0\u0423\3\2\2\2\u00a2\u042b\3") + buf.write("\2\2\2\u00a4\u042f\3\2\2\2\u00a6\u0449\3\2\2\2\u00a8\u0477") + buf.write("\3\2\2\2\u00aa\u04cc\3\2\2\2\u00ac\u04e0\3\2\2\2\u00ae") + buf.write("\u04e4\3\2\2\2\u00b0\u04f8\3\2\2\2\u00b2\u04fd\3\2\2\2") + buf.write("\u00b4\u0512\3\2\2\2\u00b6\u0523\3\2\2\2\u00b8\u0525\3") + buf.write("\2\2\2\u00ba\u052b\3\2\2\2\u00bc\u0549\3\2\2\2\u00be\u054d") + buf.write("\3\2\2\2\u00c0\u0553\3\2\2\2\u00c2\u0558\3\2\2\2\u00c4") + buf.write("\u055a\3\2\2\2\u00c6\u055e\3\2\2\2\u00c8\u0569\3\2\2\2") + buf.write("\u00ca\u057d\3\2\2\2\u00cc\u057f\3\2\2\2\u00ce\u0590\3") + buf.write("\2\2\2\u00d0\u0596\3\2\2\2\u00d2\u0598\3\2\2\2\u00d4\u00d6") + buf.write("\5\4\3\2\u00d5\u00d4\3\2\2\2\u00d5\u00d6\3\2\2\2\u00d6") + buf.write("\u00da\3\2\2\2\u00d7\u00d9\5\6\4\2\u00d8\u00d7\3\2\2\2") + buf.write("\u00d9\u00dc\3\2\2\2\u00da\u00d8\3\2\2\2\u00da\u00db\3") + buf.write("\2\2\2\u00db\u00e0\3\2\2\2\u00dc\u00da\3\2\2\2\u00dd\u00df") + buf.write("\5\b\5\2\u00de\u00dd\3\2\2\2\u00df\u00e2\3\2\2\2\u00e0") + buf.write("\u00de\3\2\2\2\u00e0\u00e1\3\2\2\2\u00e1\u00e3\3\2\2\2") + buf.write("\u00e2\u00e0\3\2\2\2\u00e3\u00e4\7\2\2\3\u00e4\3\3\2\2") + buf.write("\2\u00e5\u00e7\5h\65\2\u00e6\u00e5\3\2\2\2\u00e7\u00ea") + buf.write("\3\2\2\2\u00e8\u00e6\3\2\2\2\u00e8\u00e9\3\2\2\2\u00e9") + buf.write("\u00eb\3\2\2\2\u00ea\u00e8\3\2\2\2\u00eb\u00ec\7\"\2\2") + buf.write("\u00ec\u00ed\5^\60\2\u00ed\u00ee\7E\2\2\u00ee\5\3\2\2") + buf.write("\2\u00ef\u00f1\7\33\2\2\u00f0\u00f2\7(\2\2\u00f1\u00f0") + buf.write("\3\2\2\2\u00f1\u00f2\3\2\2\2\u00f2\u00f3\3\2\2\2\u00f3") + buf.write("\u00f6\5^\60\2\u00f4\u00f5\7G\2\2\u00f5\u00f7\7Y\2\2\u00f6") + buf.write("\u00f4\3\2\2\2\u00f6\u00f7\3\2\2\2\u00f7\u00f8\3\2\2\2") + buf.write("\u00f8\u00f9\7E\2\2\u00f9\7\3\2\2\2\u00fa\u00fc\5\f\7") + buf.write("\2\u00fb\u00fa\3\2\2\2\u00fc\u00ff\3\2\2\2\u00fd\u00fb") + buf.write("\3\2\2\2\u00fd\u00fe\3\2\2\2\u00fe\u0104\3\2\2\2\u00ff") + buf.write("\u00fd\3\2\2\2\u0100\u0105\5\20\t\2\u0101\u0105\5\30\r") + buf.write("\2\u0102\u0105\5 \21\2\u0103\u0105\5r:\2\u0104\u0100\3") + buf.write("\2\2\2\u0104\u0101\3\2\2\2\u0104\u0102\3\2\2\2\u0104\u0103") + buf.write("\3\2\2\2\u0105\u0108\3\2\2\2\u0106\u0108\7E\2\2\u0107") + buf.write("\u00fd\3\2\2\2\u0107\u0106\3\2\2\2\u0108\t\3\2\2\2\u0109") + buf.write("\u010f\5\f\7\2\u010a\u010f\7 \2\2\u010b\u010f\7,\2\2\u010c") + buf.write("\u010f\7\60\2\2\u010d\u010f\7\63\2\2\u010e\u0109\3\2\2") + buf.write("\2\u010e\u010a\3\2\2\2\u010e\u010b\3\2\2\2\u010e\u010c") + buf.write("\3\2\2\2\u010e\u010d\3\2\2\2\u010f\13\3\2\2\2\u0110\u0119") + buf.write("\5h\65\2\u0111\u0119\7%\2\2\u0112\u0119\7$\2\2\u0113\u0119") + buf.write("\7#\2\2\u0114\u0119\7(\2\2\u0115\u0119\7\3\2\2\u0116\u0119") + buf.write("\7\24\2\2\u0117\u0119\7)\2\2\u0118\u0110\3\2\2\2\u0118") + buf.write("\u0111\3\2\2\2\u0118\u0112\3\2\2\2\u0118\u0113\3\2\2\2") + buf.write("\u0118\u0114\3\2\2\2\u0118\u0115\3\2\2\2\u0118\u0116\3") + buf.write("\2\2\2\u0118\u0117\3\2\2\2\u0119\r\3\2\2\2\u011a\u011d") + buf.write("\7\24\2\2\u011b\u011d\5h\65\2\u011c\u011a\3\2\2\2\u011c") + buf.write("\u011b\3\2\2\2\u011d\17\3\2\2\2\u011e\u011f\7\13\2\2\u011f") + buf.write("\u0121\7q\2\2\u0120\u0122\5\22\n\2\u0121\u0120\3\2\2\2") + buf.write("\u0121\u0122\3\2\2\2\u0122\u0125\3\2\2\2\u0123\u0124\7") + buf.write("\23\2\2\u0124\u0126\5\u00c8e\2\u0125\u0123\3\2\2\2\u0125") + buf.write("\u0126\3\2\2\2\u0126\u0129\3\2\2\2\u0127\u0128\7\32\2") + buf.write("\2\u0128\u012a\5\u00c6d\2\u0129\u0127\3\2\2\2\u0129\u012a") + buf.write("\3\2\2\2\u012a\u012b\3\2\2\2\u012b\u012c\5\"\22\2\u012c") + buf.write("\21\3\2\2\2\u012d\u012e\7J\2\2\u012e\u0133\5\24\13\2\u012f") + buf.write("\u0130\7F\2\2\u0130\u0132\5\24\13\2\u0131\u012f\3\2\2") + buf.write("\2\u0132\u0135\3\2\2\2\u0133\u0131\3\2\2\2\u0133\u0134") + buf.write("\3\2\2\2\u0134\u0136\3\2\2\2\u0135\u0133\3\2\2\2\u0136") + buf.write("\u0137\7I\2\2\u0137\23\3\2\2\2\u0138\u013a\5h\65\2\u0139") + buf.write("\u0138\3\2\2\2\u013a\u013d\3\2\2\2\u013b\u0139\3\2\2\2") + buf.write("\u013b\u013c\3\2\2\2\u013c\u013e\3\2\2\2\u013d\u013b\3") + buf.write("\2\2\2\u013e\u0147\7q\2\2\u013f\u0143\7\23\2\2\u0140\u0142") + buf.write("\5h\65\2\u0141\u0140\3\2\2\2\u0142\u0145\3\2\2\2\u0143") + buf.write("\u0141\3\2\2\2\u0143\u0144\3\2\2\2\u0144\u0146\3\2\2\2") + buf.write("\u0145\u0143\3\2\2\2\u0146\u0148\5\26\f\2\u0147\u013f") + buf.write("\3\2\2\2\u0147\u0148\3\2\2\2\u0148\25\3\2\2\2\u0149\u014e") + buf.write("\5\u00c8e\2\u014a\u014b\7[\2\2\u014b\u014d\5\u00c8e\2") + buf.write("\u014c\u014a\3\2\2\2\u014d\u0150\3\2\2\2\u014e\u014c\3") + buf.write("\2\2\2\u014e\u014f\3\2\2\2\u014f\27\3\2\2\2\u0150\u014e") + buf.write("\3\2\2\2\u0151\u0152\7\22\2\2\u0152\u0155\7q\2\2\u0153") + buf.write("\u0154\7\32\2\2\u0154\u0156\5\u00c6d\2\u0155\u0153\3\2") + buf.write("\2\2\u0155\u0156\3\2\2\2\u0156\u0157\3\2\2\2\u0157\u0159") + buf.write("\7A\2\2\u0158\u015a\5\32\16\2\u0159\u0158\3\2\2\2\u0159") + buf.write("\u015a\3\2\2\2\u015a\u015c\3\2\2\2\u015b\u015d\7F\2\2") + buf.write("\u015c\u015b\3\2\2\2\u015c\u015d\3\2\2\2\u015d\u015f\3") + buf.write("\2\2\2\u015e\u0160\5\36\20\2\u015f\u015e\3\2\2\2\u015f") + buf.write("\u0160\3\2\2\2\u0160\u0161\3\2\2\2\u0161\u0162\7B\2\2") + buf.write("\u0162\31\3\2\2\2\u0163\u0168\5\34\17\2\u0164\u0165\7") + buf.write("F\2\2\u0165\u0167\5\34\17\2\u0166\u0164\3\2\2\2\u0167") + buf.write("\u016a\3\2\2\2\u0168\u0166\3\2\2\2\u0168\u0169\3\2\2\2") + buf.write("\u0169\33\3\2\2\2\u016a\u0168\3\2\2\2\u016b\u016d\5h\65") + buf.write("\2\u016c\u016b\3\2\2\2\u016d\u0170\3\2\2\2\u016e\u016c") + buf.write("\3\2\2\2\u016e\u016f\3\2\2\2\u016f\u0171\3\2\2\2\u0170") + buf.write("\u016e\3\2\2\2\u0171\u0173\7q\2\2\u0172\u0174\5\u00d2") + buf.write("j\2\u0173\u0172\3\2\2\2\u0173\u0174\3\2\2\2\u0174\u0176") + buf.write("\3\2\2\2\u0175\u0177\5\"\22\2\u0176\u0175\3\2\2\2\u0176") + buf.write("\u0177\3\2\2\2\u0177\35\3\2\2\2\u0178\u017c\7E\2\2\u0179") + buf.write("\u017b\5&\24\2\u017a\u0179\3\2\2\2\u017b\u017e\3\2\2\2") + buf.write("\u017c\u017a\3\2\2\2\u017c\u017d\3\2\2\2\u017d\37\3\2") + buf.write("\2\2\u017e\u017c\3\2\2\2\u017f\u0180\7\36\2\2\u0180\u0182") + buf.write("\7q\2\2\u0181\u0183\5\22\n\2\u0182\u0181\3\2\2\2\u0182") + buf.write("\u0183\3\2\2\2\u0183\u0186\3\2\2\2\u0184\u0185\7\23\2") + buf.write("\2\u0185\u0187\5\u00c6d\2\u0186\u0184\3\2\2\2\u0186\u0187") + buf.write("\3\2\2\2\u0187\u0188\3\2\2\2\u0188\u0189\5$\23\2\u0189") + buf.write("!\3\2\2\2\u018a\u018e\7A\2\2\u018b\u018d\5&\24\2\u018c") + buf.write("\u018b\3\2\2\2\u018d\u0190\3\2\2\2\u018e\u018c\3\2\2\2") + buf.write("\u018e\u018f\3\2\2\2\u018f\u0191\3\2\2\2\u0190\u018e\3") + buf.write("\2\2\2\u0191\u0192\7B\2\2\u0192#\3\2\2\2\u0193\u0197\7") + buf.write("A\2\2\u0194\u0196\58\35\2\u0195\u0194\3\2\2\2\u0196\u0199") + buf.write("\3\2\2\2\u0197\u0195\3\2\2\2\u0197\u0198\3\2\2\2\u0198") + buf.write("\u019a\3\2\2\2\u0199\u0197\3\2\2\2\u019a\u019b\7B\2\2") + buf.write("\u019b%\3\2\2\2\u019c\u01a9\7E\2\2\u019d\u019f\7(\2\2") + buf.write("\u019e\u019d\3\2\2\2\u019e\u019f\3\2\2\2\u019f\u01a0\3") + buf.write("\2\2\2\u01a0\u01a9\5\u0082B\2\u01a1\u01a3\5\n\6\2\u01a2") + buf.write("\u01a1\3\2\2\2\u01a3\u01a6\3\2\2\2\u01a4\u01a2\3\2\2\2") + buf.write("\u01a4\u01a5\3\2\2\2\u01a5\u01a7\3\2\2\2\u01a6\u01a4\3") + buf.write("\2\2\2\u01a7\u01a9\5(\25\2\u01a8\u019c\3\2\2\2\u01a8\u019e") + buf.write("\3\2\2\2\u01a8\u01a4\3\2\2\2\u01a9\'\3\2\2\2\u01aa\u01b4") + buf.write("\5*\26\2\u01ab\u01b4\5\60\31\2\u01ac\u01b4\5\66\34\2\u01ad") + buf.write("\u01b4\5\64\33\2\u01ae\u01b4\5\62\32\2\u01af\u01b4\5 ") + buf.write("\21\2\u01b0\u01b4\5r:\2\u01b1\u01b4\5\20\t\2\u01b2\u01b4") + buf.write("\5\30\r\2\u01b3\u01aa\3\2\2\2\u01b3\u01ab\3\2\2\2\u01b3") + buf.write("\u01ac\3\2\2\2\u01b3\u01ad\3\2\2\2\u01b3\u01ae\3\2\2\2") + buf.write("\u01b3\u01af\3\2\2\2\u01b3\u01b0\3\2\2\2\u01b3\u01b1\3") + buf.write("\2\2\2\u01b3\u01b2\3\2\2\2\u01b4)\3\2\2\2\u01b5\u01b6") + buf.write("\5.\30\2\u01b6\u01b7\7q\2\2\u01b7\u01bc\5V,\2\u01b8\u01b9") + buf.write("\7C\2\2\u01b9\u01bb\7D\2\2\u01ba\u01b8\3\2\2\2\u01bb\u01be") + buf.write("\3\2\2\2\u01bc\u01ba\3\2\2\2\u01bc\u01bd\3\2\2\2\u01bd") + buf.write("\u01c1\3\2\2\2\u01be\u01bc\3\2\2\2\u01bf\u01c0\7/\2\2") + buf.write("\u01c0\u01c2\5T+\2\u01c1\u01bf\3\2\2\2\u01c1\u01c2\3\2") + buf.write("\2\2\u01c2\u01c3\3\2\2\2\u01c3\u01c4\5,\27\2\u01c4+\3") + buf.write("\2\2\2\u01c5\u01c8\5\u0082B\2\u01c6\u01c8\7E\2\2\u01c7") + buf.write("\u01c5\3\2\2\2\u01c7\u01c6\3\2\2\2\u01c8-\3\2\2\2\u01c9") + buf.write("\u01cc\5\u00c8e\2\u01ca\u01cc\7\62\2\2\u01cb\u01c9\3\2") + buf.write("\2\2\u01cb\u01ca\3\2\2\2\u01cc/\3\2\2\2\u01cd\u01ce\5") + buf.write("\22\n\2\u01ce\u01cf\5*\26\2\u01cf\61\3\2\2\2\u01d0\u01d1") + buf.write("\5\22\n\2\u01d1\u01d2\5\64\33\2\u01d2\63\3\2\2\2\u01d3") + buf.write("\u01d4\7q\2\2\u01d4\u01d7\5V,\2\u01d5\u01d6\7/\2\2\u01d6") + buf.write("\u01d8\5T+\2\u01d7\u01d5\3\2\2\2\u01d7\u01d8\3\2\2\2\u01d8") + buf.write("\u01d9\3\2\2\2\u01d9\u01da\5\u0082B\2\u01da\65\3\2\2\2") + buf.write("\u01db\u01dc\5\u00c8e\2\u01dc\u01dd\5F$\2\u01dd\u01de") + buf.write("\7E\2\2\u01de\67\3\2\2\2\u01df\u01e1\5\n\6\2\u01e0\u01df") + buf.write("\3\2\2\2\u01e1\u01e4\3\2\2\2\u01e2\u01e0\3\2\2\2\u01e2") + buf.write("\u01e3\3\2\2\2\u01e3\u01e5\3\2\2\2\u01e4\u01e2\3\2\2\2") + buf.write("\u01e5\u01e8\5:\36\2\u01e6\u01e8\7E\2\2\u01e7\u01e2\3") + buf.write("\2\2\2\u01e7\u01e6\3\2\2\2\u01e89\3\2\2\2\u01e9\u01f1") + buf.write("\5<\37\2\u01ea\u01f1\5@!\2\u01eb\u01f1\5D#\2\u01ec\u01f1") + buf.write("\5 \21\2\u01ed\u01f1\5r:\2\u01ee\u01f1\5\20\t\2\u01ef") + buf.write("\u01f1\5\30\r\2\u01f0\u01e9\3\2\2\2\u01f0\u01ea\3\2\2") + buf.write("\2\u01f0\u01eb\3\2\2\2\u01f0\u01ec\3\2\2\2\u01f0\u01ed") + buf.write("\3\2\2\2\u01f0\u01ee\3\2\2\2\u01f0\u01ef\3\2\2\2\u01f1") + buf.write(";\3\2\2\2\u01f2\u01f3\5\u00c8e\2\u01f3\u01f8\5> \2\u01f4") + buf.write("\u01f5\7F\2\2\u01f5\u01f7\5> \2\u01f6\u01f4\3\2\2\2\u01f7") + buf.write("\u01fa\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f8\u01f9\3\2\2\2") + buf.write("\u01f9\u01fb\3\2\2\2\u01fa\u01f8\3\2\2\2\u01fb\u01fc\7") + buf.write("E\2\2\u01fc=\3\2\2\2\u01fd\u0202\7q\2\2\u01fe\u01ff\7") + buf.write("C\2\2\u01ff\u0201\7D\2\2\u0200\u01fe\3\2\2\2\u0201\u0204") + buf.write("\3\2\2\2\u0202\u0200\3\2\2\2\u0202\u0203\3\2\2\2\u0203") + buf.write("\u0205\3\2\2\2\u0204\u0202\3\2\2\2\u0205\u0206\7H\2\2") + buf.write("\u0206\u0207\5L\'\2\u0207?\3\2\2\2\u0208\u020a\5B\"\2") + buf.write("\u0209\u0208\3\2\2\2\u020a\u020d\3\2\2\2\u020b\u0209\3") + buf.write("\2\2\2\u020b\u020c\3\2\2\2\u020c\u0218\3\2\2\2\u020d\u020b") + buf.write("\3\2\2\2\u020e\u0219\5.\30\2\u020f\u0213\5\22\n\2\u0210") + buf.write("\u0212\5h\65\2\u0211\u0210\3\2\2\2\u0212\u0215\3\2\2\2") + buf.write("\u0213\u0211\3\2\2\2\u0213\u0214\3\2\2\2\u0214\u0216\3") + buf.write("\2\2\2\u0215\u0213\3\2\2\2\u0216\u0217\5.\30\2\u0217\u0219") + buf.write("\3\2\2\2\u0218\u020e\3\2\2\2\u0218\u020f\3\2\2\2\u0219") + buf.write("\u021a\3\2\2\2\u021a\u021b\7q\2\2\u021b\u0220\5V,\2\u021c") + buf.write("\u021d\7C\2\2\u021d\u021f\7D\2\2\u021e\u021c\3\2\2\2\u021f") + buf.write("\u0222\3\2\2\2\u0220\u021e\3\2\2\2\u0220\u0221\3\2\2\2") + buf.write("\u0221\u0225\3\2\2\2\u0222\u0220\3\2\2\2\u0223\u0224\7") + buf.write("/\2\2\u0224\u0226\5T+\2\u0225\u0223\3\2\2\2\u0225\u0226") + buf.write("\3\2\2\2\u0226\u0227\3\2\2\2\u0227\u0228\5,\27\2\u0228") + buf.write("A\3\2\2\2\u0229\u0230\5h\65\2\u022a\u0230\7%\2\2\u022b") + buf.write("\u0230\7\3\2\2\u022c\u0230\7\16\2\2\u022d\u0230\7(\2\2") + buf.write("\u022e\u0230\7)\2\2\u022f\u0229\3\2\2\2\u022f\u022a\3") + buf.write("\2\2\2\u022f\u022b\3\2\2\2\u022f\u022c\3\2\2\2\u022f\u022d") + buf.write("\3\2\2\2\u022f\u022e\3\2\2\2\u0230C\3\2\2\2\u0231\u0232") + buf.write("\5\22\n\2\u0232\u0233\5@!\2\u0233E\3\2\2\2\u0234\u0239") + buf.write("\5H%\2\u0235\u0236\7F\2\2\u0236\u0238\5H%\2\u0237\u0235") + buf.write("\3\2\2\2\u0238\u023b\3\2\2\2\u0239\u0237\3\2\2\2\u0239") + buf.write("\u023a\3\2\2\2\u023aG\3\2\2\2\u023b\u0239\3\2\2\2\u023c") + buf.write("\u023f\5J&\2\u023d\u023e\7H\2\2\u023e\u0240\5L\'\2\u023f") + buf.write("\u023d\3\2\2\2\u023f\u0240\3\2\2\2\u0240I\3\2\2\2\u0241") + buf.write("\u0246\7q\2\2\u0242\u0243\7C\2\2\u0243\u0245\7D\2\2\u0244") + buf.write("\u0242\3\2\2\2\u0245\u0248\3\2\2\2\u0246\u0244\3\2\2\2") + buf.write("\u0246\u0247\3\2\2\2\u0247K\3\2\2\2\u0248\u0246\3\2\2") + buf.write("\2\u0249\u024c\5N(\2\u024a\u024c\5\u00a8U\2\u024b\u0249") + buf.write("\3\2\2\2\u024b\u024a\3\2\2\2\u024cM\3\2\2\2\u024d\u0259") + buf.write("\7A\2\2\u024e\u0253\5L\'\2\u024f\u0250\7F\2\2\u0250\u0252") + buf.write("\5L\'\2\u0251\u024f\3\2\2\2\u0252\u0255\3\2\2\2\u0253") + buf.write("\u0251\3\2\2\2\u0253\u0254\3\2\2\2\u0254\u0257\3\2\2\2") + buf.write("\u0255\u0253\3\2\2\2\u0256\u0258\7F\2\2\u0257\u0256\3") + buf.write("\2\2\2\u0257\u0258\3\2\2\2\u0258\u025a\3\2\2\2\u0259\u024e") + buf.write("\3\2\2\2\u0259\u025a\3\2\2\2\u025a\u025b\3\2\2\2\u025b") + buf.write("\u025c\7B\2\2\u025cO\3\2\2\2\u025d\u025f\7q\2\2\u025e") + buf.write("\u0260\5\u00ccg\2\u025f\u025e\3\2\2\2\u025f\u0260\3\2") + buf.write("\2\2\u0260\u0268\3\2\2\2\u0261\u0262\7G\2\2\u0262\u0264") + buf.write("\7q\2\2\u0263\u0265\5\u00ccg\2\u0264\u0263\3\2\2\2\u0264") + buf.write("\u0265\3\2\2\2\u0265\u0267\3\2\2\2\u0266\u0261\3\2\2\2") + buf.write("\u0267\u026a\3\2\2\2\u0268\u0266\3\2\2\2\u0268\u0269\3") + buf.write("\2\2\2\u0269Q\3\2\2\2\u026a\u0268\3\2\2\2\u026b\u0278") + buf.write("\5\u00c8e\2\u026c\u026e\5h\65\2\u026d\u026c\3\2\2\2\u026e") + buf.write("\u0271\3\2\2\2\u026f\u026d\3\2\2\2\u026f\u0270\3\2\2\2") + buf.write("\u0270\u0272\3\2\2\2\u0271\u026f\3\2\2\2\u0272\u0275\7") + buf.write("M\2\2\u0273\u0274\t\2\2\2\u0274\u0276\5\u00c8e\2\u0275") + buf.write("\u0273\3\2\2\2\u0275\u0276\3\2\2\2\u0276\u0278\3\2\2\2") + buf.write("\u0277\u026b\3\2\2\2\u0277\u026f\3\2\2\2\u0278S\3\2\2") + buf.write("\2\u0279\u027e\5^\60\2\u027a\u027b\7F\2\2\u027b\u027d") + buf.write("\5^\60\2\u027c\u027a\3\2\2\2\u027d\u0280\3\2\2\2\u027e") + buf.write("\u027c\3\2\2\2\u027e\u027f\3\2\2\2\u027fU\3\2\2\2\u0280") + buf.write("\u027e\3\2\2\2\u0281\u0283\7?\2\2\u0282\u0284\5X-\2\u0283") + buf.write("\u0282\3\2\2\2\u0283\u0284\3\2\2\2\u0284\u0285\3\2\2\2") + buf.write("\u0285\u0286\7@\2\2\u0286W\3\2\2\2\u0287\u028c\5Z.\2\u0288") + buf.write("\u0289\7F\2\2\u0289\u028b\5Z.\2\u028a\u0288\3\2\2\2\u028b") + buf.write("\u028e\3\2\2\2\u028c\u028a\3\2\2\2\u028c\u028d\3\2\2\2") + buf.write("\u028d\u0291\3\2\2\2\u028e\u028c\3\2\2\2\u028f\u0290\7") + buf.write("F\2\2\u0290\u0292\5\\/\2\u0291\u028f\3\2\2\2\u0291\u0292") + buf.write("\3\2\2\2\u0292\u0295\3\2\2\2\u0293\u0295\5\\/\2\u0294") + buf.write("\u0287\3\2\2\2\u0294\u0293\3\2\2\2\u0295Y\3\2\2\2\u0296") + buf.write("\u0298\5\16\b\2\u0297\u0296\3\2\2\2\u0298\u029b\3\2\2") + buf.write("\2\u0299\u0297\3\2\2\2\u0299\u029a\3\2\2\2\u029a\u029c") + buf.write("\3\2\2\2\u029b\u0299\3\2\2\2\u029c\u029d\5\u00c8e\2\u029d") + buf.write("\u029e\5J&\2\u029e[\3\2\2\2\u029f\u02a1\5\16\b\2\u02a0") + buf.write("\u029f\3\2\2\2\u02a1\u02a4\3\2\2\2\u02a2\u02a0\3\2\2\2") + buf.write("\u02a2\u02a3\3\2\2\2\u02a3\u02a5\3\2\2\2\u02a4\u02a2\3") + buf.write("\2\2\2\u02a5\u02a9\5\u00c8e\2\u02a6\u02a8\5h\65\2\u02a7") + buf.write("\u02a6\3\2\2\2\u02a8\u02ab\3\2\2\2\u02a9\u02a7\3\2\2\2") + buf.write("\u02a9\u02aa\3\2\2\2\u02aa\u02ac\3\2\2\2\u02ab\u02a9\3") + buf.write("\2\2\2\u02ac\u02ad\7m\2\2\u02ad\u02ae\5J&\2\u02ae]\3\2") + buf.write("\2\2\u02af\u02b4\7q\2\2\u02b0\u02b1\7G\2\2\u02b1\u02b3") + buf.write("\7q\2\2\u02b2\u02b0\3\2\2\2\u02b3\u02b6\3\2\2\2\u02b4") + buf.write("\u02b2\3\2\2\2\u02b4\u02b5\3\2\2\2\u02b5_\3\2\2\2\u02b6") + buf.write("\u02b4\3\2\2\2\u02b7\u02be\5b\62\2\u02b8\u02be\5d\63\2") + buf.write("\u02b9\u02be\7<\2\2\u02ba\u02be\7=\2\2\u02bb\u02be\7;") + buf.write("\2\2\u02bc\u02be\7>\2\2\u02bd\u02b7\3\2\2\2\u02bd\u02b8") + buf.write("\3\2\2\2\u02bd\u02b9\3\2\2\2\u02bd\u02ba\3\2\2\2\u02bd") + buf.write("\u02bb\3\2\2\2\u02bd\u02bc\3\2\2\2\u02bea\3\2\2\2\u02bf") + buf.write("\u02c0\t\3\2\2\u02c0c\3\2\2\2\u02c1\u02c2\t\4\2\2\u02c2") + buf.write("e\3\2\2\2\u02c3\u02c4\7q\2\2\u02c4\u02c6\7G\2\2\u02c5") + buf.write("\u02c3\3\2\2\2\u02c6\u02c9\3\2\2\2\u02c7\u02c5\3\2\2\2") + buf.write("\u02c7\u02c8\3\2\2\2\u02c8\u02ca\3\2\2\2\u02c9\u02c7\3") + buf.write("\2\2\2\u02ca\u02cb\7l\2\2\u02cb\u02cc\7q\2\2\u02ccg\3") + buf.write("\2\2\2\u02cd\u02ce\7l\2\2\u02ce\u02d1\5^\60\2\u02cf\u02d1") + buf.write("\5f\64\2\u02d0\u02cd\3\2\2\2\u02d0\u02cf\3\2\2\2\u02d1") + buf.write("\u02d8\3\2\2\2\u02d2\u02d5\7?\2\2\u02d3\u02d6\5j\66\2") + buf.write("\u02d4\u02d6\5n8\2\u02d5\u02d3\3\2\2\2\u02d5\u02d4\3\2") + buf.write("\2\2\u02d5\u02d6\3\2\2\2\u02d6\u02d7\3\2\2\2\u02d7\u02d9") + buf.write("\7@\2\2\u02d8\u02d2\3\2\2\2\u02d8\u02d9\3\2\2\2\u02d9") + buf.write("i\3\2\2\2\u02da\u02df\5l\67\2\u02db\u02dc\7F\2\2\u02dc") + buf.write("\u02de\5l\67\2\u02dd\u02db\3\2\2\2\u02de\u02e1\3\2\2\2") + buf.write("\u02df\u02dd\3\2\2\2\u02df\u02e0\3\2\2\2\u02e0k\3\2\2") + buf.write("\2\u02e1\u02df\3\2\2\2\u02e2\u02e3\7q\2\2\u02e3\u02e4") + buf.write("\7H\2\2\u02e4\u02e5\5n8\2\u02e5m\3\2\2\2\u02e6\u02ea\5") + buf.write("\u00a8U\2\u02e7\u02ea\5h\65\2\u02e8\u02ea\5p9\2\u02e9") + buf.write("\u02e6\3\2\2\2\u02e9\u02e7\3\2\2\2\u02e9\u02e8\3\2\2\2") + buf.write("\u02eao\3\2\2\2\u02eb\u02f4\7A\2\2\u02ec\u02f1\5n8\2\u02ed") + buf.write("\u02ee\7F\2\2\u02ee\u02f0\5n8\2\u02ef\u02ed\3\2\2\2\u02f0") + buf.write("\u02f3\3\2\2\2\u02f1\u02ef\3\2\2\2\u02f1\u02f2\3\2\2\2") + buf.write("\u02f2\u02f5\3\2\2\2\u02f3\u02f1\3\2\2\2\u02f4\u02ec\3") + buf.write("\2\2\2\u02f4\u02f5\3\2\2\2\u02f5\u02f7\3\2\2\2\u02f6\u02f8") + buf.write("\7F\2\2\u02f7\u02f6\3\2\2\2\u02f7\u02f8\3\2\2\2\u02f8") + buf.write("\u02f9\3\2\2\2\u02f9\u02fa\7B\2\2\u02faq\3\2\2\2\u02fb") + buf.write("\u02fc\7l\2\2\u02fc\u02fd\7\36\2\2\u02fd\u02fe\7q\2\2") + buf.write("\u02fe\u02ff\5t;\2\u02ffs\3\2\2\2\u0300\u0304\7A\2\2\u0301") + buf.write("\u0303\5v<\2\u0302\u0301\3\2\2\2\u0303\u0306\3\2\2\2\u0304") + buf.write("\u0302\3\2\2\2\u0304\u0305\3\2\2\2\u0305\u0307\3\2\2\2") + buf.write("\u0306\u0304\3\2\2\2\u0307\u0308\7B\2\2\u0308u\3\2\2\2") + buf.write("\u0309\u030b\5\n\6\2\u030a\u0309\3\2\2\2\u030b\u030e\3") + buf.write("\2\2\2\u030c\u030a\3\2\2\2\u030c\u030d\3\2\2\2\u030d\u030f") + buf.write("\3\2\2\2\u030e\u030c\3\2\2\2\u030f\u0312\5x=\2\u0310\u0312") + buf.write("\7E\2\2\u0311\u030c\3\2\2\2\u0311\u0310\3\2\2\2\u0312") + buf.write("w\3\2\2\2\u0313\u0314\5\u00c8e\2\u0314\u0315\5z>\2\u0315") + buf.write("\u0316\7E\2\2\u0316\u0328\3\2\2\2\u0317\u0319\5\20\t\2") + buf.write("\u0318\u031a\7E\2\2\u0319\u0318\3\2\2\2\u0319\u031a\3") + buf.write("\2\2\2\u031a\u0328\3\2\2\2\u031b\u031d\5 \21\2\u031c\u031e") + buf.write("\7E\2\2\u031d\u031c\3\2\2\2\u031d\u031e\3\2\2\2\u031e") + buf.write("\u0328\3\2\2\2\u031f\u0321\5\30\r\2\u0320\u0322\7E\2\2") + buf.write("\u0321\u0320\3\2\2\2\u0321\u0322\3\2\2\2\u0322\u0328\3") + buf.write("\2\2\2\u0323\u0325\5r:\2\u0324\u0326\7E\2\2\u0325\u0324") + buf.write("\3\2\2\2\u0325\u0326\3\2\2\2\u0326\u0328\3\2\2\2\u0327") + buf.write("\u0313\3\2\2\2\u0327\u0317\3\2\2\2\u0327\u031b\3\2\2\2") + buf.write("\u0327\u031f\3\2\2\2\u0327\u0323\3\2\2\2\u0328y\3\2\2") + buf.write("\2\u0329\u032c\5|?\2\u032a\u032c\5~@\2\u032b\u0329\3\2") + buf.write("\2\2\u032b\u032a\3\2\2\2\u032c{\3\2\2\2\u032d\u032e\7") + buf.write("q\2\2\u032e\u032f\7?\2\2\u032f\u0331\7@\2\2\u0330\u0332") + buf.write("\5\u0080A\2\u0331\u0330\3\2\2\2\u0331\u0332\3\2\2\2\u0332") + buf.write("}\3\2\2\2\u0333\u0334\5F$\2\u0334\177\3\2\2\2\u0335\u0336") + buf.write("\7\16\2\2\u0336\u0337\5n8\2\u0337\u0081\3\2\2\2\u0338") + buf.write("\u033c\7A\2\2\u0339\u033b\5\u0084C\2\u033a\u0339\3\2\2") + buf.write("\2\u033b\u033e\3\2\2\2\u033c\u033a\3\2\2\2\u033c\u033d") + buf.write("\3\2\2\2\u033d\u033f\3\2\2\2\u033e\u033c\3\2\2\2\u033f") + buf.write("\u0340\7B\2\2\u0340\u0083\3\2\2\2\u0341\u0342\5\u0086") + buf.write("D\2\u0342\u0343\7E\2\2\u0343\u0347\3\2\2\2\u0344\u0347") + buf.write("\5\u008aF\2\u0345\u0347\5\u0088E\2\u0346\u0341\3\2\2\2") + buf.write("\u0346\u0344\3\2\2\2\u0346\u0345\3\2\2\2\u0347\u0085\3") + buf.write("\2\2\2\u0348\u034a\5\16\b\2\u0349\u0348\3\2\2\2\u034a") + buf.write("\u034d\3\2\2\2\u034b\u0349\3\2\2\2\u034b\u034c\3\2\2\2") + buf.write("\u034c\u034e\3\2\2\2\u034d\u034b\3\2\2\2\u034e\u034f\5") + buf.write("\u00c8e\2\u034f\u0350\5F$\2\u0350\u0087\3\2\2\2\u0351") + buf.write("\u0353\5\f\7\2\u0352\u0351\3\2\2\2\u0353\u0356\3\2\2\2") + buf.write("\u0354\u0352\3\2\2\2\u0354\u0355\3\2\2\2\u0355\u0359\3") + buf.write("\2\2\2\u0356\u0354\3\2\2\2\u0357\u035a\5\20\t\2\u0358") + buf.write("\u035a\5 \21\2\u0359\u0357\3\2\2\2\u0359\u0358\3\2\2\2") + buf.write("\u035a\u035d\3\2\2\2\u035b\u035d\7E\2\2\u035c\u0354\3") + buf.write("\2\2\2\u035c\u035b\3\2\2\2\u035d\u0089\3\2\2\2\u035e\u03c7") + buf.write("\5\u0082B\2\u035f\u0360\7\4\2\2\u0360\u0363\5\u00a8U\2") + buf.write("\u0361\u0362\7N\2\2\u0362\u0364\5\u00a8U\2\u0363\u0361") + buf.write("\3\2\2\2\u0363\u0364\3\2\2\2\u0364\u0365\3\2\2\2\u0365") + buf.write("\u0366\7E\2\2\u0366\u03c7\3\2\2\2\u0367\u0368\7\30\2\2") + buf.write("\u0368\u0369\5\u00a2R\2\u0369\u036c\5\u008aF\2\u036a\u036b") + buf.write("\7\21\2\2\u036b\u036d\5\u008aF\2\u036c\u036a\3\2\2\2\u036c") + buf.write("\u036d\3\2\2\2\u036d\u03c7\3\2\2\2\u036e\u036f\7\27\2") + buf.write("\2\u036f\u0370\7?\2\2\u0370\u0371\5\u009cO\2\u0371\u0372") + buf.write("\7@\2\2\u0372\u0373\5\u008aF\2\u0373\u03c7\3\2\2\2\u0374") + buf.write("\u0375\7\64\2\2\u0375\u0376\5\u00a2R\2\u0376\u0377\5\u008a") + buf.write("F\2\u0377\u03c7\3\2\2\2\u0378\u0379\7\17\2\2\u0379\u037a") + buf.write("\5\u008aF\2\u037a\u037b\7\64\2\2\u037b\u037c\5\u00a2R") + buf.write("\2\u037c\u037d\7E\2\2\u037d\u03c7\3\2\2\2\u037e\u037f") + buf.write("\7\61\2\2\u037f\u0389\5\u0082B\2\u0380\u0382\5\u008cG") + buf.write("\2\u0381\u0380\3\2\2\2\u0382\u0383\3\2\2\2\u0383\u0381") + buf.write("\3\2\2\2\u0383\u0384\3\2\2\2\u0384\u0386\3\2\2\2\u0385") + buf.write("\u0387\5\u0090I\2\u0386\u0385\3\2\2\2\u0386\u0387\3\2") + buf.write("\2\2\u0387\u038a\3\2\2\2\u0388\u038a\5\u0090I\2\u0389") + buf.write("\u0381\3\2\2\2\u0389\u0388\3\2\2\2\u038a\u03c7\3\2\2\2") + buf.write("\u038b\u038c\7\61\2\2\u038c\u038d\5\u0092J\2\u038d\u0391") + buf.write("\5\u0082B\2\u038e\u0390\5\u008cG\2\u038f\u038e\3\2\2\2") + buf.write("\u0390\u0393\3\2\2\2\u0391\u038f\3\2\2\2\u0391\u0392\3") + buf.write("\2\2\2\u0392\u0395\3\2\2\2\u0393\u0391\3\2\2\2\u0394\u0396") + buf.write("\5\u0090I\2\u0395\u0394\3\2\2\2\u0395\u0396\3\2\2\2\u0396") + buf.write("\u03c7\3\2\2\2\u0397\u0398\7+\2\2\u0398\u0399\5\u00a2") + buf.write("R\2\u0399\u039d\7A\2\2\u039a\u039c\5\u0098M\2\u039b\u039a") + buf.write("\3\2\2\2\u039c\u039f\3\2\2\2\u039d\u039b\3\2\2\2\u039d") + buf.write("\u039e\3\2\2\2\u039e\u03a3\3\2\2\2\u039f\u039d\3\2\2\2") + buf.write("\u03a0\u03a2\5\u009aN\2\u03a1\u03a0\3\2\2\2\u03a2\u03a5") + buf.write("\3\2\2\2\u03a3\u03a1\3\2\2\2\u03a3\u03a4\3\2\2\2\u03a4") + buf.write("\u03a6\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a6\u03a7\7B\2\2") + buf.write("\u03a7\u03c7\3\2\2\2\u03a8\u03a9\7,\2\2\u03a9\u03aa\5") + buf.write("\u00a2R\2\u03aa\u03ab\5\u0082B\2\u03ab\u03c7\3\2\2\2\u03ac") + buf.write("\u03ae\7&\2\2\u03ad\u03af\5\u00a8U\2\u03ae\u03ad\3\2\2") + buf.write("\2\u03ae\u03af\3\2\2\2\u03af\u03b0\3\2\2\2\u03b0\u03c7") + buf.write("\7E\2\2\u03b1\u03b2\7.\2\2\u03b2\u03b3\5\u00a8U\2\u03b3") + buf.write("\u03b4\7E\2\2\u03b4\u03c7\3\2\2\2\u03b5\u03b7\7\6\2\2") + buf.write("\u03b6\u03b8\7q\2\2\u03b7\u03b6\3\2\2\2\u03b7\u03b8\3") + buf.write("\2\2\2\u03b8\u03b9\3\2\2\2\u03b9\u03c7\7E\2\2\u03ba\u03bc") + buf.write("\7\r\2\2\u03bb\u03bd\7q\2\2\u03bc\u03bb\3\2\2\2\u03bc") + buf.write("\u03bd\3\2\2\2\u03bd\u03be\3\2\2\2\u03be\u03c7\7E\2\2") + buf.write("\u03bf\u03c7\7E\2\2\u03c0\u03c1\5\u00a8U\2\u03c1\u03c2") + buf.write("\7E\2\2\u03c2\u03c7\3\2\2\2\u03c3\u03c4\7q\2\2\u03c4\u03c5") + buf.write("\7N\2\2\u03c5\u03c7\5\u008aF\2\u03c6\u035e\3\2\2\2\u03c6") + buf.write("\u035f\3\2\2\2\u03c6\u0367\3\2\2\2\u03c6\u036e\3\2\2\2") + buf.write("\u03c6\u0374\3\2\2\2\u03c6\u0378\3\2\2\2\u03c6\u037e\3") + buf.write("\2\2\2\u03c6\u038b\3\2\2\2\u03c6\u0397\3\2\2\2\u03c6\u03a8") + buf.write("\3\2\2\2\u03c6\u03ac\3\2\2\2\u03c6\u03b1\3\2\2\2\u03c6") + buf.write("\u03b5\3\2\2\2\u03c6\u03ba\3\2\2\2\u03c6\u03bf\3\2\2\2") + buf.write("\u03c6\u03c0\3\2\2\2\u03c6\u03c3\3\2\2\2\u03c7\u008b\3") + buf.write("\2\2\2\u03c8\u03c9\7\t\2\2\u03c9\u03cd\7?\2\2\u03ca\u03cc") + buf.write("\5\16\b\2\u03cb\u03ca\3\2\2\2\u03cc\u03cf\3\2\2\2\u03cd") + buf.write("\u03cb\3\2\2\2\u03cd\u03ce\3\2\2\2\u03ce\u03d0\3\2\2\2") + buf.write("\u03cf\u03cd\3\2\2\2\u03d0\u03d1\5\u008eH\2\u03d1\u03d2") + buf.write("\7q\2\2\u03d2\u03d3\7@\2\2\u03d3\u03d4\5\u0082B\2\u03d4") + buf.write("\u008d\3\2\2\2\u03d5\u03da\5^\60\2\u03d6\u03d7\7\\\2\2") + buf.write("\u03d7\u03d9\5^\60\2\u03d8\u03d6\3\2\2\2\u03d9\u03dc\3") + buf.write("\2\2\2\u03da\u03d8\3\2\2\2\u03da\u03db\3\2\2\2\u03db\u008f") + buf.write("\3\2\2\2\u03dc\u03da\3\2\2\2\u03dd\u03de\7\25\2\2\u03de") + buf.write("\u03df\5\u0082B\2\u03df\u0091\3\2\2\2\u03e0\u03e1\7?\2") + buf.write("\2\u03e1\u03e3\5\u0094K\2\u03e2\u03e4\7E\2\2\u03e3\u03e2") + buf.write("\3\2\2\2\u03e3\u03e4\3\2\2\2\u03e4\u03e5\3\2\2\2\u03e5") + buf.write("\u03e6\7@\2\2\u03e6\u0093\3\2\2\2\u03e7\u03ec\5\u0096") + buf.write("L\2\u03e8\u03e9\7E\2\2\u03e9\u03eb\5\u0096L\2\u03ea\u03e8") + buf.write("\3\2\2\2\u03eb\u03ee\3\2\2\2\u03ec\u03ea\3\2\2\2\u03ec") + buf.write("\u03ed\3\2\2\2\u03ed\u0095\3\2\2\2\u03ee\u03ec\3\2\2\2") + buf.write("\u03ef\u03f1\5\16\b\2\u03f0\u03ef\3\2\2\2\u03f1\u03f4") + buf.write("\3\2\2\2\u03f2\u03f0\3\2\2\2\u03f2\u03f3\3\2\2\2\u03f3") + buf.write("\u03f5\3\2\2\2\u03f4\u03f2\3\2\2\2\u03f5\u03f6\5P)\2\u03f6") + buf.write("\u03f7\5J&\2\u03f7\u03f8\7H\2\2\u03f8\u03f9\5\u00a8U\2") + buf.write("\u03f9\u0097\3\2\2\2\u03fa\u03fc\5\u009aN\2\u03fb\u03fa") + buf.write("\3\2\2\2\u03fc\u03fd\3\2\2\2\u03fd\u03fb\3\2\2\2\u03fd") + buf.write("\u03fe\3\2\2\2\u03fe\u0400\3\2\2\2\u03ff\u0401\5\u0084") + buf.write("C\2\u0400\u03ff\3\2\2\2\u0401\u0402\3\2\2\2\u0402\u0400") + buf.write("\3\2\2\2\u0402\u0403\3\2\2\2\u0403\u0099\3\2\2\2\u0404") + buf.write("\u0407\7\b\2\2\u0405\u0408\5\u00a8U\2\u0406\u0408\7q\2") + buf.write("\2\u0407\u0405\3\2\2\2\u0407\u0406\3\2\2\2\u0408\u0409") + buf.write("\3\2\2\2\u0409\u040d\7N\2\2\u040a\u040b\7\16\2\2\u040b") + buf.write("\u040d\7N\2\2\u040c\u0404\3\2\2\2\u040c\u040a\3\2\2\2") + buf.write("\u040d\u009b\3\2\2\2\u040e\u041b\5\u00a0Q\2\u040f\u0411") + buf.write("\5\u009eP\2\u0410\u040f\3\2\2\2\u0410\u0411\3\2\2\2\u0411") + buf.write("\u0412\3\2\2\2\u0412\u0414\7E\2\2\u0413\u0415\5\u00a8") + buf.write("U\2\u0414\u0413\3\2\2\2\u0414\u0415\3\2\2\2\u0415\u0416") + buf.write("\3\2\2\2\u0416\u0418\7E\2\2\u0417\u0419\5\u00a4S\2\u0418") + buf.write("\u0417\3\2\2\2\u0418\u0419\3\2\2\2\u0419\u041b\3\2\2\2") + buf.write("\u041a\u040e\3\2\2\2\u041a\u0410\3\2\2\2\u041b\u009d\3") + buf.write("\2\2\2\u041c\u041f\5\u0086D\2\u041d\u041f\5\u00a4S\2\u041e") + buf.write("\u041c\3\2\2\2\u041e\u041d\3\2\2\2\u041f\u009f\3\2\2\2") + buf.write("\u0420\u0422\5\16\b\2\u0421\u0420\3\2\2\2\u0422\u0425") + buf.write("\3\2\2\2\u0423\u0421\3\2\2\2\u0423\u0424\3\2\2\2\u0424") + buf.write("\u0426\3\2\2\2\u0425\u0423\3\2\2\2\u0426\u0427\5\u00c8") + buf.write("e\2\u0427\u0428\5J&\2\u0428\u0429\7N\2\2\u0429\u042a\5") + buf.write("\u00a8U\2\u042a\u00a1\3\2\2\2\u042b\u042c\7?\2\2\u042c") + buf.write("\u042d\5\u00a8U\2\u042d\u042e\7@\2\2\u042e\u00a3\3\2\2") + buf.write("\2\u042f\u0434\5\u00a8U\2\u0430\u0431\7F\2\2\u0431\u0433") + buf.write("\5\u00a8U\2\u0432\u0430\3\2\2\2\u0433\u0436\3\2\2\2\u0434") + buf.write("\u0432\3\2\2\2\u0434\u0435\3\2\2\2\u0435\u00a5\3\2\2\2") + buf.write("\u0436\u0434\3\2\2\2\u0437\u0438\7q\2\2\u0438\u043a\7") + buf.write("?\2\2\u0439\u043b\5\u00a4S\2\u043a\u0439\3\2\2\2\u043a") + buf.write("\u043b\3\2\2\2\u043b\u043c\3\2\2\2\u043c\u044a\7@\2\2") + buf.write("\u043d\u043e\7-\2\2\u043e\u0440\7?\2\2\u043f\u0441\5\u00a4") + buf.write("S\2\u0440\u043f\3\2\2\2\u0440\u0441\3\2\2\2\u0441\u0442") + buf.write("\3\2\2\2\u0442\u044a\7@\2\2\u0443\u0444\7*\2\2\u0444\u0446") + buf.write("\7?\2\2\u0445\u0447\5\u00a4S\2\u0446\u0445\3\2\2\2\u0446") + buf.write("\u0447\3\2\2\2\u0447\u0448\3\2\2\2\u0448\u044a\7@\2\2") + buf.write("\u0449\u0437\3\2\2\2\u0449\u043d\3\2\2\2\u0449\u0443\3") + buf.write("\2\2\2\u044a\u00a7\3\2\2\2\u044b\u044c\bU\1\2\u044c\u0478") + buf.write("\5\u00b0Y\2\u044d\u0478\5\u00a6T\2\u044e\u044f\7!\2\2") + buf.write("\u044f\u0478\5\u00b4[\2\u0450\u0454\7?\2\2\u0451\u0453") + buf.write("\5h\65\2\u0452\u0451\3\2\2\2\u0453\u0456\3\2\2\2\u0454") + buf.write("\u0452\3\2\2\2\u0454\u0455\3\2\2\2\u0455\u0457\3\2\2\2") + buf.write("\u0456\u0454\3\2\2\2\u0457\u045c\5\u00c8e\2\u0458\u0459") + buf.write("\7[\2\2\u0459\u045b\5\u00c8e\2\u045a\u0458\3\2\2\2\u045b") + buf.write("\u045e\3\2\2\2\u045c\u045a\3\2\2\2\u045c\u045d\3\2\2\2") + buf.write("\u045d\u045f\3\2\2\2\u045e\u045c\3\2\2\2\u045f\u0460\7") + buf.write("@\2\2\u0460\u0461\5\u00a8U\27\u0461\u0478\3\2\2\2\u0462") + buf.write("\u0463\t\5\2\2\u0463\u0478\5\u00a8U\25\u0464\u0465\t\6") + buf.write("\2\2\u0465\u0478\5\u00a8U\24\u0466\u0478\5\u00aaV\2\u0467") + buf.write("\u0468\5\u00c8e\2\u0468\u046e\7k\2\2\u0469\u046b\5\u00cc") + buf.write("g\2\u046a\u0469\3\2\2\2\u046a\u046b\3\2\2\2\u046b\u046c") + buf.write("\3\2\2\2\u046c\u046f\7q\2\2\u046d\u046f\7!\2\2\u046e\u046a") + buf.write("\3\2\2\2\u046e\u046d\3\2\2\2\u046f\u0478\3\2\2\2\u0470") + buf.write("\u0471\5\u00b2Z\2\u0471\u0473\7k\2\2\u0472\u0474\5\u00cc") + buf.write("g\2\u0473\u0472\3\2\2\2\u0473\u0474\3\2\2\2\u0474\u0475") + buf.write("\3\2\2\2\u0475\u0476\7!\2\2\u0476\u0478\3\2\2\2\u0477") + buf.write("\u044b\3\2\2\2\u0477\u044d\3\2\2\2\u0477\u044e\3\2\2\2") + buf.write("\u0477\u0450\3\2\2\2\u0477\u0462\3\2\2\2\u0477\u0464\3") + buf.write("\2\2\2\u0477\u0466\3\2\2\2\u0477\u0467\3\2\2\2\u0477\u0470") + buf.write("\3\2\2\2\u0478\u04c9\3\2\2\2\u0479\u047a\f\23\2\2\u047a") + buf.write("\u047b\t\7\2\2\u047b\u04c8\5\u00a8U\24\u047c\u047d\f\22") + buf.write("\2\2\u047d\u047e\t\b\2\2\u047e\u04c8\5\u00a8U\23\u047f") + buf.write("\u0487\f\21\2\2\u0480\u0481\7J\2\2\u0481\u0488\7J\2\2") + buf.write("\u0482\u0483\7I\2\2\u0483\u0484\7I\2\2\u0484\u0488\7I") + buf.write("\2\2\u0485\u0486\7I\2\2\u0486\u0488\7I\2\2\u0487\u0480") + buf.write("\3\2\2\2\u0487\u0482\3\2\2\2\u0487\u0485\3\2\2\2\u0488") + buf.write("\u0489\3\2\2\2\u0489\u04c8\5\u00a8U\22\u048a\u048b\f\20") + buf.write("\2\2\u048b\u048c\t\t\2\2\u048c\u04c8\5\u00a8U\21\u048d") + buf.write("\u048e\f\16\2\2\u048e\u048f\t\n\2\2\u048f\u04c8\5\u00a8") + buf.write("U\17\u0490\u0491\f\r\2\2\u0491\u0492\7[\2\2\u0492\u04c8") + buf.write("\5\u00a8U\16\u0493\u0494\f\f\2\2\u0494\u0495\7]\2\2\u0495") + buf.write("\u04c8\5\u00a8U\r\u0496\u0497\f\13\2\2\u0497\u0498\7\\") + buf.write("\2\2\u0498\u04c8\5\u00a8U\f\u0499\u049a\f\n\2\2\u049a") + buf.write("\u049b\7S\2\2\u049b\u04c8\5\u00a8U\13\u049c\u049d\f\t") + buf.write("\2\2\u049d\u049e\7T\2\2\u049e\u04c8\5\u00a8U\n\u049f\u04a0") + buf.write("\f\b\2\2\u04a0\u04a1\7M\2\2\u04a1\u04a2\5\u00a8U\2\u04a2") + buf.write("\u04a3\7N\2\2\u04a3\u04a4\5\u00a8U\b\u04a4\u04c8\3\2\2") + buf.write("\2\u04a5\u04a6\f\7\2\2\u04a6\u04a7\t\13\2\2\u04a7\u04c8") + buf.write("\5\u00a8U\7\u04a8\u04a9\f\33\2\2\u04a9\u04b5\7G\2\2\u04aa") + buf.write("\u04b6\7q\2\2\u04ab\u04b6\5\u00a6T\2\u04ac\u04b6\7-\2") + buf.write("\2\u04ad\u04af\7!\2\2\u04ae\u04b0\5\u00c4c\2\u04af\u04ae") + buf.write("\3\2\2\2\u04af\u04b0\3\2\2\2\u04b0\u04b1\3\2\2\2\u04b1") + buf.write("\u04b6\5\u00b8]\2\u04b2\u04b3\7*\2\2\u04b3\u04b6\5\u00ce") + buf.write("h\2\u04b4\u04b6\5\u00be`\2\u04b5\u04aa\3\2\2\2\u04b5\u04ab") + buf.write("\3\2\2\2\u04b5\u04ac\3\2\2\2\u04b5\u04ad\3\2\2\2\u04b5") + buf.write("\u04b2\3\2\2\2\u04b5\u04b4\3\2\2\2\u04b6\u04c8\3\2\2\2") + buf.write("\u04b7\u04b8\f\32\2\2\u04b8\u04b9\7C\2\2\u04b9\u04ba\5") + buf.write("\u00a8U\2\u04ba\u04bb\7D\2\2\u04bb\u04c8\3\2\2\2\u04bc") + buf.write("\u04bd\f\26\2\2\u04bd\u04c8\t\f\2\2\u04be\u04bf\f\17\2") + buf.write("\2\u04bf\u04c0\7\34\2\2\u04c0\u04c8\5\u00c8e\2\u04c1\u04c2") + buf.write("\f\5\2\2\u04c2\u04c4\7k\2\2\u04c3\u04c5\5\u00ccg\2\u04c4") + buf.write("\u04c3\3\2\2\2\u04c4\u04c5\3\2\2\2\u04c5\u04c6\3\2\2\2") + buf.write("\u04c6\u04c8\7q\2\2\u04c7\u0479\3\2\2\2\u04c7\u047c\3") + buf.write("\2\2\2\u04c7\u047f\3\2\2\2\u04c7\u048a\3\2\2\2\u04c7\u048d") + buf.write("\3\2\2\2\u04c7\u0490\3\2\2\2\u04c7\u0493\3\2\2\2\u04c7") + buf.write("\u0496\3\2\2\2\u04c7\u0499\3\2\2\2\u04c7\u049c\3\2\2\2") + buf.write("\u04c7\u049f\3\2\2\2\u04c7\u04a5\3\2\2\2\u04c7\u04a8\3") + buf.write("\2\2\2\u04c7\u04b7\3\2\2\2\u04c7\u04bc\3\2\2\2\u04c7\u04be") + buf.write("\3\2\2\2\u04c7\u04c1\3\2\2\2\u04c8\u04cb\3\2\2\2\u04c9") + buf.write("\u04c7\3\2\2\2\u04c9\u04ca\3\2\2\2\u04ca\u00a9\3\2\2\2") + buf.write("\u04cb\u04c9\3\2\2\2\u04cc\u04cd\5\u00acW\2\u04cd\u04ce") + buf.write("\7j\2\2\u04ce\u04cf\5\u00aeX\2\u04cf\u00ab\3\2\2\2\u04d0") + buf.write("\u04e1\7q\2\2\u04d1\u04d3\7?\2\2\u04d2\u04d4\5X-\2\u04d3") + buf.write("\u04d2\3\2\2\2\u04d3\u04d4\3\2\2\2\u04d4\u04d5\3\2\2\2") + buf.write("\u04d5\u04e1\7@\2\2\u04d6\u04d7\7?\2\2\u04d7\u04dc\7q") + buf.write("\2\2\u04d8\u04d9\7F\2\2\u04d9\u04db\7q\2\2\u04da\u04d8") + buf.write("\3\2\2\2\u04db\u04de\3\2\2\2\u04dc\u04da\3\2\2\2\u04dc") + buf.write("\u04dd\3\2\2\2\u04dd\u04df\3\2\2\2\u04de\u04dc\3\2\2\2") + buf.write("\u04df\u04e1\7@\2\2\u04e0\u04d0\3\2\2\2\u04e0\u04d1\3") + buf.write("\2\2\2\u04e0\u04d6\3\2\2\2\u04e1\u00ad\3\2\2\2\u04e2\u04e5") + buf.write("\5\u00a8U\2\u04e3\u04e5\5\u0082B\2\u04e4\u04e2\3\2\2\2") + buf.write("\u04e4\u04e3\3\2\2\2\u04e5\u00af\3\2\2\2\u04e6\u04e7\7") + buf.write("?\2\2\u04e7\u04e8\5\u00a8U\2\u04e8\u04e9\7@\2\2\u04e9") + buf.write("\u04f9\3\2\2\2\u04ea\u04f9\7-\2\2\u04eb\u04f9\7*\2\2\u04ec") + buf.write("\u04f9\5`\61\2\u04ed\u04f9\7q\2\2\u04ee\u04ef\5.\30\2") + buf.write("\u04ef\u04f0\7G\2\2\u04f0\u04f1\7\13\2\2\u04f1\u04f9\3") + buf.write("\2\2\2\u04f2\u04f6\5\u00c4c\2\u04f3\u04f7\5\u00d0i\2\u04f4") + buf.write("\u04f5\7-\2\2\u04f5\u04f7\5\u00d2j\2\u04f6\u04f3\3\2\2") + buf.write("\2\u04f6\u04f4\3\2\2\2\u04f7\u04f9\3\2\2\2\u04f8\u04e6") + buf.write("\3\2\2\2\u04f8\u04ea\3\2\2\2\u04f8\u04eb\3\2\2\2\u04f8") + buf.write("\u04ec\3\2\2\2\u04f8\u04ed\3\2\2\2\u04f8\u04ee\3\2\2\2") + buf.write("\u04f8\u04f2\3\2\2\2\u04f9\u00b1\3\2\2\2\u04fa\u04fb\5") + buf.write("P)\2\u04fb\u04fc\7G\2\2\u04fc\u04fe\3\2\2\2\u04fd\u04fa") + buf.write("\3\2\2\2\u04fd\u04fe\3\2\2\2\u04fe\u0502\3\2\2\2\u04ff") + buf.write("\u0501\5h\65\2\u0500\u04ff\3\2\2\2\u0501\u0504\3\2\2\2") + buf.write("\u0502\u0500\3\2\2\2\u0502\u0503\3\2\2\2\u0503\u0505\3") + buf.write("\2\2\2\u0504\u0502\3\2\2\2\u0505\u0507\7q\2\2\u0506\u0508") + buf.write("\5\u00ccg\2\u0507\u0506\3\2\2\2\u0507\u0508\3\2\2\2\u0508") + buf.write("\u00b3\3\2\2\2\u0509\u050a\5\u00c4c\2\u050a\u050b\5\u00b6") + buf.write("\\\2\u050b\u050c\5\u00bc_\2\u050c\u0513\3\2\2\2\u050d") + buf.write("\u0510\5\u00b6\\\2\u050e\u0511\5\u00ba^\2\u050f\u0511") + buf.write("\5\u00bc_\2\u0510\u050e\3\2\2\2\u0510\u050f\3\2\2\2\u0511") + buf.write("\u0513\3\2\2\2\u0512\u0509\3\2\2\2\u0512\u050d\3\2\2\2") + buf.write("\u0513\u00b5\3\2\2\2\u0514\u0516\7q\2\2\u0515\u0517\5") + buf.write("\u00c0a\2\u0516\u0515\3\2\2\2\u0516\u0517\3\2\2\2\u0517") + buf.write("\u051f\3\2\2\2\u0518\u0519\7G\2\2\u0519\u051b\7q\2\2\u051a") + buf.write("\u051c\5\u00c0a\2\u051b\u051a\3\2\2\2\u051b\u051c\3\2") + buf.write("\2\2\u051c\u051e\3\2\2\2\u051d\u0518\3\2\2\2\u051e\u0521") + buf.write("\3\2\2\2\u051f\u051d\3\2\2\2\u051f\u0520\3\2\2\2\u0520") + buf.write("\u0524\3\2\2\2\u0521\u051f\3\2\2\2\u0522\u0524\5\u00ca") + buf.write("f\2\u0523\u0514\3\2\2\2\u0523\u0522\3\2\2\2\u0524\u00b7") + buf.write("\3\2\2\2\u0525\u0527\7q\2\2\u0526\u0528\5\u00c2b\2\u0527") + buf.write("\u0526\3\2\2\2\u0527\u0528\3\2\2\2\u0528\u0529\3\2\2\2") + buf.write("\u0529\u052a\5\u00bc_\2\u052a\u00b9\3\2\2\2\u052b\u0547") + buf.write("\7C\2\2\u052c\u0531\7D\2\2\u052d\u052e\7C\2\2\u052e\u0530") + buf.write("\7D\2\2\u052f\u052d\3\2\2\2\u0530\u0533\3\2\2\2\u0531") + buf.write("\u052f\3\2\2\2\u0531\u0532\3\2\2\2\u0532\u0534\3\2\2\2") + buf.write("\u0533\u0531\3\2\2\2\u0534\u0548\5N(\2\u0535\u0536\5\u00a8") + buf.write("U\2\u0536\u053d\7D\2\2\u0537\u0538\7C\2\2\u0538\u0539") + buf.write("\5\u00a8U\2\u0539\u053a\7D\2\2\u053a\u053c\3\2\2\2\u053b") + buf.write("\u0537\3\2\2\2\u053c\u053f\3\2\2\2\u053d\u053b\3\2\2\2") + buf.write("\u053d\u053e\3\2\2\2\u053e\u0544\3\2\2\2\u053f\u053d\3") + buf.write("\2\2\2\u0540\u0541\7C\2\2\u0541\u0543\7D\2\2\u0542\u0540") + buf.write("\3\2\2\2\u0543\u0546\3\2\2\2\u0544\u0542\3\2\2\2\u0544") + buf.write("\u0545\3\2\2\2\u0545\u0548\3\2\2\2\u0546\u0544\3\2\2\2") + buf.write("\u0547\u052c\3\2\2\2\u0547\u0535\3\2\2\2\u0548\u00bb\3") + buf.write("\2\2\2\u0549\u054b\5\u00d2j\2\u054a\u054c\5\"\22\2\u054b") + buf.write("\u054a\3\2\2\2\u054b\u054c\3\2\2\2\u054c\u00bd\3\2\2\2") + buf.write("\u054d\u054e\5\u00c4c\2\u054e\u054f\5\u00d0i\2\u054f\u00bf") + buf.write("\3\2\2\2\u0550\u0551\7J\2\2\u0551\u0554\7I\2\2\u0552\u0554") + buf.write("\5\u00ccg\2\u0553\u0550\3\2\2\2\u0553\u0552\3\2\2\2\u0554") + buf.write("\u00c1\3\2\2\2\u0555\u0556\7J\2\2\u0556\u0559\7I\2\2\u0557") + buf.write("\u0559\5\u00c4c\2\u0558\u0555\3\2\2\2\u0558\u0557\3\2") + buf.write("\2\2\u0559\u00c3\3\2\2\2\u055a\u055b\7J\2\2\u055b\u055c") + buf.write("\5\u00c6d\2\u055c\u055d\7I\2\2\u055d\u00c5\3\2\2\2\u055e") + buf.write("\u0563\5\u00c8e\2\u055f\u0560\7F\2\2\u0560\u0562\5\u00c8") + buf.write("e\2\u0561\u055f\3\2\2\2\u0562\u0565\3\2\2\2\u0563\u0561") + buf.write("\3\2\2\2\u0563\u0564\3\2\2\2\u0564\u00c7\3\2\2\2\u0565") + buf.write("\u0563\3\2\2\2\u0566\u0568\5h\65\2\u0567\u0566\3\2\2\2") + buf.write("\u0568\u056b\3\2\2\2\u0569\u0567\3\2\2\2\u0569\u056a\3") + buf.write("\2\2\2\u056a\u056e\3\2\2\2\u056b\u0569\3\2\2\2\u056c\u056f") + buf.write("\5P)\2\u056d\u056f\5\u00caf\2\u056e\u056c\3\2\2\2\u056e") + buf.write("\u056d\3\2\2\2\u056f\u057a\3\2\2\2\u0570\u0572\5h\65\2") + buf.write("\u0571\u0570\3\2\2\2\u0572\u0575\3\2\2\2\u0573\u0571\3") + buf.write("\2\2\2\u0573\u0574\3\2\2\2\u0574\u0576\3\2\2\2\u0575\u0573") + buf.write("\3\2\2\2\u0576\u0577\7C\2\2\u0577\u0579\7D\2\2\u0578\u0573") + buf.write("\3\2\2\2\u0579\u057c\3\2\2\2\u057a\u0578\3\2\2\2\u057a") + buf.write("\u057b\3\2\2\2\u057b\u00c9\3\2\2\2\u057c\u057a\3\2\2\2") + buf.write("\u057d\u057e\t\r\2\2\u057e\u00cb\3\2\2\2\u057f\u0580\7") + buf.write("J\2\2\u0580\u0585\5R*\2\u0581\u0582\7F\2\2\u0582\u0584") + buf.write("\5R*\2\u0583\u0581\3\2\2\2\u0584\u0587\3\2\2\2\u0585\u0583") + buf.write("\3\2\2\2\u0585\u0586\3\2\2\2\u0586\u0588\3\2\2\2\u0587") + buf.write("\u0585\3\2\2\2\u0588\u0589\7I\2\2\u0589\u00cd\3\2\2\2") + buf.write("\u058a\u0591\5\u00d2j\2\u058b\u058c\7G\2\2\u058c\u058e") + buf.write("\7q\2\2\u058d\u058f\5\u00d2j\2\u058e\u058d\3\2\2\2\u058e") + buf.write("\u058f\3\2\2\2\u058f\u0591\3\2\2\2\u0590\u058a\3\2\2\2") + buf.write("\u0590\u058b\3\2\2\2\u0591\u00cf\3\2\2\2\u0592\u0593\7") + buf.write("*\2\2\u0593\u0597\5\u00ceh\2\u0594\u0595\7q\2\2\u0595") + buf.write("\u0597\5\u00d2j\2\u0596\u0592\3\2\2\2\u0596\u0594\3\2") + buf.write("\2\2\u0597\u00d1\3\2\2\2\u0598\u059a\7?\2\2\u0599\u059b") + buf.write("\5\u00a4S\2\u059a\u0599\3\2\2\2\u059a\u059b\3\2\2\2\u059b") + buf.write("\u059c\3\2\2\2\u059c\u059d\7@\2\2\u059d\u00d3\3\2\2\2") + buf.write("\u00b5\u00d5\u00da\u00e0\u00e8\u00f1\u00f6\u00fd\u0104") + buf.write("\u0107\u010e\u0118\u011c\u0121\u0125\u0129\u0133\u013b") + buf.write("\u0143\u0147\u014e\u0155\u0159\u015c\u015f\u0168\u016e") + buf.write("\u0173\u0176\u017c\u0182\u0186\u018e\u0197\u019e\u01a4") + buf.write("\u01a8\u01b3\u01bc\u01c1\u01c7\u01cb\u01d7\u01e2\u01e7") + buf.write("\u01f0\u01f8\u0202\u020b\u0213\u0218\u0220\u0225\u022f") + buf.write("\u0239\u023f\u0246\u024b\u0253\u0257\u0259\u025f\u0264") + buf.write("\u0268\u026f\u0275\u0277\u027e\u0283\u028c\u0291\u0294") + buf.write("\u0299\u02a2\u02a9\u02b4\u02bd\u02c7\u02d0\u02d5\u02d8") + buf.write("\u02df\u02e9\u02f1\u02f4\u02f7\u0304\u030c\u0311\u0319") + buf.write("\u031d\u0321\u0325\u0327\u032b\u0331\u033c\u0346\u034b") + buf.write("\u0354\u0359\u035c\u0363\u036c\u0383\u0386\u0389\u0391") + buf.write("\u0395\u039d\u03a3\u03ae\u03b7\u03bc\u03c6\u03cd\u03da") + buf.write("\u03e3\u03ec\u03f2\u03fd\u0402\u0407\u040c\u0410\u0414") + buf.write("\u0418\u041a\u041e\u0423\u0434\u043a\u0440\u0446\u0449") + buf.write("\u0454\u045c\u046a\u046e\u0473\u0477\u0487\u04af\u04b5") + buf.write("\u04c4\u04c7\u04c9\u04d3\u04dc\u04e0\u04e4\u04f6\u04f8") + buf.write("\u04fd\u0502\u0507\u0510\u0512\u0516\u051b\u051f\u0523") + buf.write("\u0527\u0531\u053d\u0544\u0547\u054b\u0553\u0558\u0563") + buf.write("\u0569\u056e\u0573\u057a\u0585\u058e\u0590\u0596\u059a") + return buf.getvalue() + + +class JavaParser ( Parser ): + + grammarFileName = "JavaParser.g4" + + atn = ATNDeserializer().deserialize(serializedATN()) + + decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ] + + sharedContextCache = PredictionContextCache() + + literalNames = [ "", "'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'", "'('", "')'", "'{'", "'}'", + "'['", "']'", "';'", "','", "'.'", "'='", "'>'", "'<'", + "'!'", "'~'", "'?'", "':'", "'=='", "'<='", "'>='", + "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", "'-'", + "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", + "'*='", "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", + "'>>='", "'>>>='", "'->'", "'::'", "'@'", "'...'" ] + + symbolicNames = [ "", "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", "DECIMAL_LITERAL", "HEX_LITERAL", "OCT_LITERAL", + "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", + "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", + "NULL_LITERAL", "LPAREN", "RPAREN", "LBRACE", "RBRACE", + "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", "ASSIGN", + "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", + "EQUAL", "LE", "GE", "NOTEQUAL", "AND", "OR", "INC", + "DEC", "ADD", "SUB", "MUL", "DIV", "BITAND", "BITOR", + "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN", "MUL_ASSIGN", + "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", + "MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", + "ARROW", "COLONCOLON", "AT", "ELLIPSIS", "WS", "COMMENT", + "LINE_COMMENT", "IDENTIFIER" ] + + RULE_compilationUnit = 0 + RULE_packageDeclaration = 1 + RULE_importDeclaration = 2 + RULE_typeDeclaration = 3 + RULE_modifier = 4 + RULE_classOrInterfaceModifier = 5 + RULE_variableModifier = 6 + RULE_classDeclaration = 7 + RULE_typeParameters = 8 + RULE_typeParameter = 9 + RULE_typeBound = 10 + RULE_enumDeclaration = 11 + RULE_enumConstants = 12 + RULE_enumConstant = 13 + RULE_enumBodyDeclarations = 14 + RULE_interfaceDeclaration = 15 + RULE_classBody = 16 + RULE_interfaceBody = 17 + RULE_classBodyDeclaration = 18 + RULE_memberDeclaration = 19 + RULE_methodDeclaration = 20 + RULE_methodBody = 21 + RULE_typeTypeOrVoid = 22 + RULE_genericMethodDeclaration = 23 + RULE_genericConstructorDeclaration = 24 + RULE_constructorDeclaration = 25 + RULE_fieldDeclaration = 26 + RULE_interfaceBodyDeclaration = 27 + RULE_interfaceMemberDeclaration = 28 + RULE_constDeclaration = 29 + RULE_constantDeclarator = 30 + RULE_interfaceMethodDeclaration = 31 + RULE_interfaceMethodModifier = 32 + RULE_genericInterfaceMethodDeclaration = 33 + RULE_variableDeclarators = 34 + RULE_variableDeclarator = 35 + RULE_variableDeclaratorId = 36 + RULE_variableInitializer = 37 + RULE_arrayInitializer = 38 + RULE_classOrInterfaceType = 39 + RULE_typeArgument = 40 + RULE_qualifiedNameList = 41 + RULE_formalParameters = 42 + RULE_formalParameterList = 43 + RULE_formalParameter = 44 + RULE_lastFormalParameter = 45 + RULE_qualifiedName = 46 + RULE_literal = 47 + RULE_integerLiteral = 48 + RULE_floatLiteral = 49 + RULE_altAnnotationQualifiedName = 50 + RULE_annotation = 51 + RULE_elementValuePairs = 52 + RULE_elementValuePair = 53 + RULE_elementValue = 54 + RULE_elementValueArrayInitializer = 55 + RULE_annotationTypeDeclaration = 56 + RULE_annotationTypeBody = 57 + RULE_annotationTypeElementDeclaration = 58 + RULE_annotationTypeElementRest = 59 + RULE_annotationMethodOrConstantRest = 60 + RULE_annotationMethodRest = 61 + RULE_annotationConstantRest = 62 + RULE_defaultValue = 63 + RULE_block = 64 + RULE_blockStatement = 65 + RULE_localVariableDeclaration = 66 + RULE_localTypeDeclaration = 67 + RULE_statement = 68 + RULE_catchClause = 69 + RULE_catchType = 70 + RULE_finallyBlock = 71 + RULE_resourceSpecification = 72 + RULE_resources = 73 + RULE_resource = 74 + RULE_switchBlockStatementGroup = 75 + RULE_switchLabel = 76 + RULE_forControl = 77 + RULE_forInit = 78 + RULE_enhancedForControl = 79 + RULE_parExpression = 80 + RULE_expressionList = 81 + RULE_methodCall = 82 + RULE_expression = 83 + RULE_lambdaExpression = 84 + RULE_lambdaParameters = 85 + RULE_lambdaBody = 86 + RULE_primary = 87 + RULE_classType = 88 + RULE_creator = 89 + RULE_createdName = 90 + RULE_innerCreator = 91 + RULE_arrayCreatorRest = 92 + RULE_classCreatorRest = 93 + RULE_explicitGenericInvocation = 94 + RULE_typeArgumentsOrDiamond = 95 + RULE_nonWildcardTypeArgumentsOrDiamond = 96 + RULE_nonWildcardTypeArguments = 97 + RULE_typeList = 98 + RULE_typeType = 99 + RULE_primitiveType = 100 + RULE_typeArguments = 101 + RULE_superSuffix = 102 + RULE_explicitGenericInvocationSuffix = 103 + RULE_arguments = 104 + + ruleNames = [ "compilationUnit", "packageDeclaration", "importDeclaration", + "typeDeclaration", "modifier", "classOrInterfaceModifier", + "variableModifier", "classDeclaration", "typeParameters", + "typeParameter", "typeBound", "enumDeclaration", "enumConstants", + "enumConstant", "enumBodyDeclarations", "interfaceDeclaration", + "classBody", "interfaceBody", "classBodyDeclaration", + "memberDeclaration", "methodDeclaration", "methodBody", + "typeTypeOrVoid", "genericMethodDeclaration", "genericConstructorDeclaration", + "constructorDeclaration", "fieldDeclaration", "interfaceBodyDeclaration", + "interfaceMemberDeclaration", "constDeclaration", "constantDeclarator", + "interfaceMethodDeclaration", "interfaceMethodModifier", + "genericInterfaceMethodDeclaration", "variableDeclarators", + "variableDeclarator", "variableDeclaratorId", "variableInitializer", + "arrayInitializer", "classOrInterfaceType", "typeArgument", + "qualifiedNameList", "formalParameters", "formalParameterList", + "formalParameter", "lastFormalParameter", "qualifiedName", + "literal", "integerLiteral", "floatLiteral", "altAnnotationQualifiedName", + "annotation", "elementValuePairs", "elementValuePair", + "elementValue", "elementValueArrayInitializer", "annotationTypeDeclaration", + "annotationTypeBody", "annotationTypeElementDeclaration", + "annotationTypeElementRest", "annotationMethodOrConstantRest", + "annotationMethodRest", "annotationConstantRest", "defaultValue", + "block", "blockStatement", "localVariableDeclaration", + "localTypeDeclaration", "statement", "catchClause", "catchType", + "finallyBlock", "resourceSpecification", "resources", + "resource", "switchBlockStatementGroup", "switchLabel", + "forControl", "forInit", "enhancedForControl", "parExpression", + "expressionList", "methodCall", "expression", "lambdaExpression", + "lambdaParameters", "lambdaBody", "primary", "classType", + "creator", "createdName", "innerCreator", "arrayCreatorRest", + "classCreatorRest", "explicitGenericInvocation", "typeArgumentsOrDiamond", + "nonWildcardTypeArgumentsOrDiamond", "nonWildcardTypeArguments", + "typeList", "typeType", "primitiveType", "typeArguments", + "superSuffix", "explicitGenericInvocationSuffix", "arguments" ] + + EOF = Token.EOF + 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 + DECIMAL_LITERAL=51 + HEX_LITERAL=52 + OCT_LITERAL=53 + BINARY_LITERAL=54 + FLOAT_LITERAL=55 + HEX_FLOAT_LITERAL=56 + BOOL_LITERAL=57 + CHAR_LITERAL=58 + STRING_LITERAL=59 + NULL_LITERAL=60 + LPAREN=61 + RPAREN=62 + LBRACE=63 + RBRACE=64 + LBRACK=65 + RBRACK=66 + SEMI=67 + COMMA=68 + DOT=69 + ASSIGN=70 + GT=71 + LT=72 + BANG=73 + TILDE=74 + QUESTION=75 + COLON=76 + EQUAL=77 + LE=78 + GE=79 + NOTEQUAL=80 + AND=81 + OR=82 + INC=83 + DEC=84 + ADD=85 + SUB=86 + MUL=87 + DIV=88 + BITAND=89 + BITOR=90 + CARET=91 + MOD=92 + ADD_ASSIGN=93 + SUB_ASSIGN=94 + MUL_ASSIGN=95 + DIV_ASSIGN=96 + AND_ASSIGN=97 + OR_ASSIGN=98 + XOR_ASSIGN=99 + MOD_ASSIGN=100 + LSHIFT_ASSIGN=101 + RSHIFT_ASSIGN=102 + URSHIFT_ASSIGN=103 + ARROW=104 + COLONCOLON=105 + AT=106 + ELLIPSIS=107 + WS=108 + COMMENT=109 + LINE_COMMENT=110 + IDENTIFIER=111 + + def __init__(self, input:TokenStream, output:TextIO = sys.stdout): + super().__init__(input, output) + self.checkVersion("4.7.2") + self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) + self._predicates = None + + + + class CompilationUnitContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def EOF(self): + return self.getToken(JavaParser.EOF, 0) + + def packageDeclaration(self): + return self.getTypedRuleContext(JavaParser.PackageDeclarationContext,0) + + + def importDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ImportDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.ImportDeclarationContext,i) + + + def typeDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.TypeDeclarationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_compilationUnit + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCompilationUnit" ): + listener.enterCompilationUnit(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCompilationUnit" ): + listener.exitCompilationUnit(self) + + + + + def compilationUnit(self): + + localctx = JavaParser.CompilationUnitContext(self, self._ctx, self.state) + self.enterRule(localctx, 0, self.RULE_compilationUnit) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 211 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,0,self._ctx) + if la_ == 1: + self.state = 210 + self.packageDeclaration() + + + self.state = 216 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.IMPORT: + self.state = 213 + self.importDeclaration() + self.state = 218 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 222 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.CLASS) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 219 + self.typeDeclaration() + self.state = 224 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 225 + self.match(JavaParser.EOF) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PackageDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def PACKAGE(self): + return self.getToken(JavaParser.PACKAGE, 0) + + def qualifiedName(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,0) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_packageDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPackageDeclaration" ): + listener.enterPackageDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPackageDeclaration" ): + listener.exitPackageDeclaration(self) + + + + + def packageDeclaration(self): + + localctx = JavaParser.PackageDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 2, self.RULE_packageDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 230 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 227 + self.annotation() + self.state = 232 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 233 + self.match(JavaParser.PACKAGE) + self.state = 234 + self.qualifiedName() + self.state = 235 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ImportDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IMPORT(self): + return self.getToken(JavaParser.IMPORT, 0) + + def qualifiedName(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,0) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) + + def DOT(self): + return self.getToken(JavaParser.DOT, 0) + + def MUL(self): + return self.getToken(JavaParser.MUL, 0) + + def getRuleIndex(self): + return JavaParser.RULE_importDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterImportDeclaration" ): + listener.enterImportDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitImportDeclaration" ): + listener.exitImportDeclaration(self) + + + + + def importDeclaration(self): + + localctx = JavaParser.ImportDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 4, self.RULE_importDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 237 + self.match(JavaParser.IMPORT) + self.state = 239 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.STATIC: + self.state = 238 + self.match(JavaParser.STATIC) + + + self.state = 241 + self.qualifiedName() + self.state = 244 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.DOT: + self.state = 242 + self.match(JavaParser.DOT) + self.state = 243 + self.match(JavaParser.MUL) + + + self.state = 246 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) + + + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) + + + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) + + + def classOrInterfaceModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassOrInterfaceModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceModifierContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_typeDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeDeclaration" ): + listener.enterTypeDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeDeclaration" ): + listener.exitTypeDeclaration(self) + + + + + def typeDeclaration(self): + + localctx = JavaParser.TypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 6, self.RULE_typeDeclaration) + try: + self.state = 261 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.CLASS, JavaParser.ENUM, JavaParser.FINAL, JavaParser.INTERFACE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 251 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 248 + self.classOrInterfaceModifier() + self.state = 253 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,6,self._ctx) + + self.state = 258 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CLASS]: + self.state = 254 + self.classDeclaration() + pass + elif token in [JavaParser.ENUM]: + self.state = 255 + self.enumDeclaration() + pass + elif token in [JavaParser.INTERFACE]: + self.state = 256 + self.interfaceDeclaration() + pass + elif token in [JavaParser.AT]: + self.state = 257 + self.annotationTypeDeclaration() + pass + else: + raise NoViableAltException(self) + + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 260 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classOrInterfaceModifier(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceModifierContext,0) + + + def NATIVE(self): + return self.getToken(JavaParser.NATIVE, 0) + + def SYNCHRONIZED(self): + return self.getToken(JavaParser.SYNCHRONIZED, 0) + + def TRANSIENT(self): + return self.getToken(JavaParser.TRANSIENT, 0) + + def VOLATILE(self): + return self.getToken(JavaParser.VOLATILE, 0) + + def getRuleIndex(self): + return JavaParser.RULE_modifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterModifier" ): + listener.enterModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitModifier" ): + listener.exitModifier(self) + + + + + def modifier(self): + + localctx = JavaParser.ModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 8, self.RULE_modifier) + try: + self.state = 268 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.FINAL, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 263 + self.classOrInterfaceModifier() + pass + elif token in [JavaParser.NATIVE]: + self.enterOuterAlt(localctx, 2) + self.state = 264 + self.match(JavaParser.NATIVE) + pass + elif token in [JavaParser.SYNCHRONIZED]: + self.enterOuterAlt(localctx, 3) + self.state = 265 + self.match(JavaParser.SYNCHRONIZED) + pass + elif token in [JavaParser.TRANSIENT]: + self.enterOuterAlt(localctx, 4) + self.state = 266 + self.match(JavaParser.TRANSIENT) + pass + elif token in [JavaParser.VOLATILE]: + self.enterOuterAlt(localctx, 5) + self.state = 267 + self.match(JavaParser.VOLATILE) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassOrInterfaceModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(JavaParser.PUBLIC, 0) + + def PROTECTED(self): + return self.getToken(JavaParser.PROTECTED, 0) + + def PRIVATE(self): + return self.getToken(JavaParser.PRIVATE, 0) + + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) + + def ABSTRACT(self): + return self.getToken(JavaParser.ABSTRACT, 0) + + def FINAL(self): + return self.getToken(JavaParser.FINAL, 0) + + def STRICTFP(self): + return self.getToken(JavaParser.STRICTFP, 0) + + def getRuleIndex(self): + return JavaParser.RULE_classOrInterfaceModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassOrInterfaceModifier" ): + listener.enterClassOrInterfaceModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassOrInterfaceModifier" ): + listener.exitClassOrInterfaceModifier(self) + + + + + def classOrInterfaceModifier(self): + + localctx = JavaParser.ClassOrInterfaceModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 10, self.RULE_classOrInterfaceModifier) + try: + self.state = 278 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 270 + self.annotation() + pass + elif token in [JavaParser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 271 + self.match(JavaParser.PUBLIC) + pass + elif token in [JavaParser.PROTECTED]: + self.enterOuterAlt(localctx, 3) + self.state = 272 + self.match(JavaParser.PROTECTED) + pass + elif token in [JavaParser.PRIVATE]: + self.enterOuterAlt(localctx, 4) + self.state = 273 + self.match(JavaParser.PRIVATE) + pass + elif token in [JavaParser.STATIC]: + self.enterOuterAlt(localctx, 5) + self.state = 274 + self.match(JavaParser.STATIC) + pass + elif token in [JavaParser.ABSTRACT]: + self.enterOuterAlt(localctx, 6) + self.state = 275 + self.match(JavaParser.ABSTRACT) + pass + elif token in [JavaParser.FINAL]: + self.enterOuterAlt(localctx, 7) + self.state = 276 + self.match(JavaParser.FINAL) + pass + elif token in [JavaParser.STRICTFP]: + self.enterOuterAlt(localctx, 8) + self.state = 277 + self.match(JavaParser.STRICTFP) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FINAL(self): + return self.getToken(JavaParser.FINAL, 0) + + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_variableModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableModifier" ): + listener.enterVariableModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableModifier" ): + listener.exitVariableModifier(self) + + + + + def variableModifier(self): + + localctx = JavaParser.VariableModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 12, self.RULE_variableModifier) + try: + self.state = 282 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.FINAL]: + self.enterOuterAlt(localctx, 1) + self.state = 280 + self.match(JavaParser.FINAL) + pass + elif token in [JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 281 + self.annotation() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def CLASS(self): + return self.getToken(JavaParser.CLASS, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def classBody(self): + return self.getTypedRuleContext(JavaParser.ClassBodyContext,0) + + + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) + + + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def IMPLEMENTS(self): + return self.getToken(JavaParser.IMPLEMENTS, 0) + + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_classDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassDeclaration" ): + listener.enterClassDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassDeclaration" ): + listener.exitClassDeclaration(self) + + + + + def classDeclaration(self): + + localctx = JavaParser.ClassDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 14, self.RULE_classDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 284 + self.match(JavaParser.CLASS) + self.state = 285 + self.match(JavaParser.IDENTIFIER) + self.state = 287 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 286 + self.typeParameters() + + + self.state = 291 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS: + self.state = 289 + self.match(JavaParser.EXTENDS) + self.state = 290 + self.typeType() + + + self.state = 295 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IMPLEMENTS: + self.state = 293 + self.match(JavaParser.IMPLEMENTS) + self.state = 294 + self.typeList() + + + self.state = 297 + self.classBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeParametersContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LT(self): + return self.getToken(JavaParser.LT, 0) + + def typeParameter(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeParameterContext) + else: + return self.getTypedRuleContext(JavaParser.TypeParameterContext,i) + + + def GT(self): + return self.getToken(JavaParser.GT, 0) + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameters" ): + listener.enterTypeParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameters" ): + listener.exitTypeParameters(self) + + + + + def typeParameters(self): + + localctx = JavaParser.TypeParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 16, self.RULE_typeParameters) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 299 + self.match(JavaParser.LT) + self.state = 300 + self.typeParameter() + self.state = 305 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 301 + self.match(JavaParser.COMMA) + self.state = 302 + self.typeParameter() + self.state = 307 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 308 + self.match(JavaParser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) + + def typeBound(self): + return self.getTypedRuleContext(JavaParser.TypeBoundContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_typeParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeParameter" ): + listener.enterTypeParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeParameter" ): + listener.exitTypeParameter(self) + + + + + def typeParameter(self): + + localctx = JavaParser.TypeParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 18, self.RULE_typeParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 313 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 310 + self.annotation() + self.state = 315 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,16,self._ctx) + + self.state = 316 + self.match(JavaParser.IDENTIFIER) + self.state = 325 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS: + self.state = 317 + self.match(JavaParser.EXTENDS) + self.state = 321 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,17,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 318 + self.annotation() + self.state = 323 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,17,self._ctx) + + self.state = 324 + self.typeBound() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeBoundContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeTypeContext) + else: + return self.getTypedRuleContext(JavaParser.TypeTypeContext,i) + + + def BITAND(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.BITAND) + else: + return self.getToken(JavaParser.BITAND, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeBound + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeBound" ): + listener.enterTypeBound(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeBound" ): + listener.exitTypeBound(self) + + + + + def typeBound(self): + + localctx = JavaParser.TypeBoundContext(self, self._ctx, self.state) + self.enterRule(localctx, 20, self.RULE_typeBound) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 327 + self.typeType() + self.state = 332 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.BITAND: + self.state = 328 + self.match(JavaParser.BITAND) + self.state = 329 + self.typeType() + self.state = 334 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def ENUM(self): + return self.getToken(JavaParser.ENUM, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def IMPLEMENTS(self): + return self.getToken(JavaParser.IMPLEMENTS, 0) + + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) + + + def enumConstants(self): + return self.getTypedRuleContext(JavaParser.EnumConstantsContext,0) + + + def COMMA(self): + return self.getToken(JavaParser.COMMA, 0) + + def enumBodyDeclarations(self): + return self.getTypedRuleContext(JavaParser.EnumBodyDeclarationsContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_enumDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumDeclaration" ): + listener.enterEnumDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumDeclaration" ): + listener.exitEnumDeclaration(self) + + + + + def enumDeclaration(self): + + localctx = JavaParser.EnumDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 22, self.RULE_enumDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 335 + self.match(JavaParser.ENUM) + self.state = 336 + self.match(JavaParser.IDENTIFIER) + self.state = 339 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IMPLEMENTS: + self.state = 337 + self.match(JavaParser.IMPLEMENTS) + self.state = 338 + self.typeList() + + + self.state = 341 + self.match(JavaParser.LBRACE) + self.state = 343 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 342 + self.enumConstants() + + + self.state = 346 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 345 + self.match(JavaParser.COMMA) + + + self.state = 349 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.SEMI: + self.state = 348 + self.enumBodyDeclarations() + + + self.state = 351 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumConstantsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def enumConstant(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.EnumConstantContext) + else: + return self.getTypedRuleContext(JavaParser.EnumConstantContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_enumConstants + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstants" ): + listener.enterEnumConstants(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstants" ): + listener.exitEnumConstants(self) + + + + + def enumConstants(self): + + localctx = JavaParser.EnumConstantsContext(self, self._ctx, self.state) + self.enterRule(localctx, 24, self.RULE_enumConstants) + try: + self.enterOuterAlt(localctx, 1) + self.state = 353 + self.enumConstant() + self.state = 358 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,24,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 354 + self.match(JavaParser.COMMA) + self.state = 355 + self.enumConstant() + self.state = 360 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,24,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumConstantContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + + + def classBody(self): + return self.getTypedRuleContext(JavaParser.ClassBodyContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_enumConstant + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumConstant" ): + listener.enterEnumConstant(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumConstant" ): + listener.exitEnumConstant(self) + + + + + def enumConstant(self): + + localctx = JavaParser.EnumConstantContext(self, self._ctx, self.state) + self.enterRule(localctx, 26, self.RULE_enumConstant) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 364 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,25,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 361 + self.annotation() + self.state = 366 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,25,self._ctx) + + self.state = 367 + self.match(JavaParser.IDENTIFIER) + self.state = 369 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LPAREN: + self.state = 368 + self.arguments() + + + self.state = 372 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LBRACE: + self.state = 371 + self.classBody() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnumBodyDeclarationsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def classBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassBodyDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.ClassBodyDeclarationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_enumBodyDeclarations + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnumBodyDeclarations" ): + listener.enterEnumBodyDeclarations(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnumBodyDeclarations" ): + listener.exitEnumBodyDeclarations(self) + + + + + def enumBodyDeclarations(self): + + localctx = JavaParser.EnumBodyDeclarationsContext(self, self._ctx, self.state) + self.enterRule(localctx, 28, self.RULE_enumBodyDeclarations) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 374 + self.match(JavaParser.SEMI) + self.state = 378 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOID) | (1 << JavaParser.VOLATILE) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 375 + self.classBodyDeclaration() + self.state = 380 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def INTERFACE(self): + return self.getToken(JavaParser.INTERFACE, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def interfaceBody(self): + return self.getTypedRuleContext(JavaParser.InterfaceBodyContext,0) + + + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) + + + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) + + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_interfaceDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceDeclaration" ): + listener.enterInterfaceDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceDeclaration" ): + listener.exitInterfaceDeclaration(self) + + + + + def interfaceDeclaration(self): + + localctx = JavaParser.InterfaceDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 30, self.RULE_interfaceDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 381 + self.match(JavaParser.INTERFACE) + self.state = 382 + self.match(JavaParser.IDENTIFIER) + self.state = 384 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 383 + self.typeParameters() + + + self.state = 388 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS: + self.state = 386 + self.match(JavaParser.EXTENDS) + self.state = 387 + self.typeList() + + + self.state = 390 + self.interfaceBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def classBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassBodyDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.ClassBodyDeclarationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_classBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassBody" ): + listener.enterClassBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassBody" ): + listener.exitClassBody(self) + + + + + def classBody(self): + + localctx = JavaParser.ClassBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 32, self.RULE_classBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 392 + self.match(JavaParser.LBRACE) + self.state = 396 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOID) | (1 << JavaParser.VOLATILE) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 393 + self.classBodyDeclaration() + self.state = 398 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 399 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def interfaceBodyDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.InterfaceBodyDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.InterfaceBodyDeclarationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_interfaceBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceBody" ): + listener.enterInterfaceBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceBody" ): + listener.exitInterfaceBody(self) + + + + + def interfaceBody(self): + + localctx = JavaParser.InterfaceBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 34, self.RULE_interfaceBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 401 + self.match(JavaParser.LBRACE) + self.state = 405 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DEFAULT) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOID) | (1 << JavaParser.VOLATILE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 402 + self.interfaceBodyDeclaration() + self.state = 407 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 408 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassBodyDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + + + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) + + def memberDeclaration(self): + return self.getTypedRuleContext(JavaParser.MemberDeclarationContext,0) + + + def modifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ModifierContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_classBodyDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassBodyDeclaration" ): + listener.enterClassBodyDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassBodyDeclaration" ): + listener.exitClassBodyDeclaration(self) + + + + + def classBodyDeclaration(self): + + localctx = JavaParser.ClassBodyDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 36, self.RULE_classBodyDeclaration) + self._la = 0 # Token type + try: + self.state = 422 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,35,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 410 + self.match(JavaParser.SEMI) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 412 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.STATIC: + self.state = 411 + self.match(JavaParser.STATIC) + + + self.state = 414 + self.block() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 418 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 415 + self.modifier() + self.state = 420 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) + + self.state = 421 + self.memberDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MemberDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def methodDeclaration(self): + return self.getTypedRuleContext(JavaParser.MethodDeclarationContext,0) + + + def genericMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.GenericMethodDeclarationContext,0) + + + def fieldDeclaration(self): + return self.getTypedRuleContext(JavaParser.FieldDeclarationContext,0) + + + def constructorDeclaration(self): + return self.getTypedRuleContext(JavaParser.ConstructorDeclarationContext,0) + + + def genericConstructorDeclaration(self): + return self.getTypedRuleContext(JavaParser.GenericConstructorDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) + + + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) + + + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) + + + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_memberDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMemberDeclaration" ): + listener.enterMemberDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMemberDeclaration" ): + listener.exitMemberDeclaration(self) + + + + + def memberDeclaration(self): + + localctx = JavaParser.MemberDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 38, self.RULE_memberDeclaration) + try: + self.state = 433 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,36,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 424 + self.methodDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 425 + self.genericMethodDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 426 + self.fieldDeclaration() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 427 + self.constructorDeclaration() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 428 + self.genericConstructorDeclaration() + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 429 + self.interfaceDeclaration() + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 430 + self.annotationTypeDeclaration() + pass + + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 431 + self.classDeclaration() + pass + + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 432 + self.enumDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeTypeOrVoid(self): + return self.getTypedRuleContext(JavaParser.TypeTypeOrVoidContext,0) + + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def formalParameters(self): + return self.getTypedRuleContext(JavaParser.FormalParametersContext,0) + + + def methodBody(self): + return self.getTypedRuleContext(JavaParser.MethodBodyContext,0) + + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def THROWS(self): + return self.getToken(JavaParser.THROWS, 0) + + def qualifiedNameList(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_methodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodDeclaration" ): + listener.enterMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodDeclaration" ): + listener.exitMethodDeclaration(self) + + + + + def methodDeclaration(self): + + localctx = JavaParser.MethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 40, self.RULE_methodDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 435 + self.typeTypeOrVoid() + self.state = 436 + self.match(JavaParser.IDENTIFIER) + self.state = 437 + self.formalParameters() + self.state = 442 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 438 + self.match(JavaParser.LBRACK) + self.state = 439 + self.match(JavaParser.RBRACK) + self.state = 444 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 447 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.THROWS: + self.state = 445 + self.match(JavaParser.THROWS) + self.state = 446 + self.qualifiedNameList() + + + self.state = 449 + self.methodBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_methodBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodBody" ): + listener.enterMethodBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodBody" ): + listener.exitMethodBody(self) + + + + + def methodBody(self): + + localctx = JavaParser.MethodBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 42, self.RULE_methodBody) + try: + self.state = 453 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LBRACE]: + self.enterOuterAlt(localctx, 1) + self.state = 451 + self.block() + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 452 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeTypeOrVoidContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def VOID(self): + return self.getToken(JavaParser.VOID, 0) + + def getRuleIndex(self): + return JavaParser.RULE_typeTypeOrVoid + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeTypeOrVoid" ): + listener.enterTypeTypeOrVoid(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeTypeOrVoid" ): + listener.exitTypeTypeOrVoid(self) + + + + + def typeTypeOrVoid(self): + + localctx = JavaParser.TypeTypeOrVoidContext(self, self._ctx, self.state) + self.enterRule(localctx, 44, self.RULE_typeTypeOrVoid) + try: + self.state = 457 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 455 + self.typeType() + pass + elif token in [JavaParser.VOID]: + self.enterOuterAlt(localctx, 2) + self.state = 456 + self.match(JavaParser.VOID) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class GenericMethodDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) + + + def methodDeclaration(self): + return self.getTypedRuleContext(JavaParser.MethodDeclarationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_genericMethodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterGenericMethodDeclaration" ): + listener.enterGenericMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitGenericMethodDeclaration" ): + listener.exitGenericMethodDeclaration(self) + + + + + def genericMethodDeclaration(self): + + localctx = JavaParser.GenericMethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 46, self.RULE_genericMethodDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 459 + self.typeParameters() + self.state = 460 + self.methodDeclaration() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class GenericConstructorDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) + + + def constructorDeclaration(self): + return self.getTypedRuleContext(JavaParser.ConstructorDeclarationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_genericConstructorDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterGenericConstructorDeclaration" ): + listener.enterGenericConstructorDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitGenericConstructorDeclaration" ): + listener.exitGenericConstructorDeclaration(self) + + + + + def genericConstructorDeclaration(self): + + localctx = JavaParser.GenericConstructorDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 48, self.RULE_genericConstructorDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 462 + self.typeParameters() + self.state = 463 + self.constructorDeclaration() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstructorDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.constructorBody = None # BlockContext + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def formalParameters(self): + return self.getTypedRuleContext(JavaParser.FormalParametersContext,0) + + + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + + + def THROWS(self): + return self.getToken(JavaParser.THROWS, 0) + + def qualifiedNameList(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_constructorDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstructorDeclaration" ): + listener.enterConstructorDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstructorDeclaration" ): + listener.exitConstructorDeclaration(self) + + + + + def constructorDeclaration(self): + + localctx = JavaParser.ConstructorDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 50, self.RULE_constructorDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 465 + self.match(JavaParser.IDENTIFIER) + self.state = 466 + self.formalParameters() + self.state = 469 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.THROWS: + self.state = 467 + self.match(JavaParser.THROWS) + self.state = 468 + self.qualifiedNameList() + + + self.state = 471 + localctx.constructorBody = self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FieldDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def variableDeclarators(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorsContext,0) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_fieldDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFieldDeclaration" ): + listener.enterFieldDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFieldDeclaration" ): + listener.exitFieldDeclaration(self) + + + + + def fieldDeclaration(self): + + localctx = JavaParser.FieldDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 52, self.RULE_fieldDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 473 + self.typeType() + self.state = 474 + self.variableDeclarators() + self.state = 475 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceBodyDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def interfaceMemberDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceMemberDeclarationContext,0) + + + def modifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ModifierContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_interfaceBodyDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceBodyDeclaration" ): + listener.enterInterfaceBodyDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceBodyDeclaration" ): + listener.exitInterfaceBodyDeclaration(self) + + + + + def interfaceBodyDeclaration(self): + + localctx = JavaParser.InterfaceBodyDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 54, self.RULE_interfaceBodyDeclaration) + try: + self.state = 485 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.CLASS, JavaParser.DEFAULT, JavaParser.DOUBLE, JavaParser.ENUM, JavaParser.FINAL, JavaParser.FLOAT, JavaParser.INT, JavaParser.INTERFACE, JavaParser.LONG, JavaParser.NATIVE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.SHORT, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.SYNCHRONIZED, JavaParser.TRANSIENT, JavaParser.VOID, JavaParser.VOLATILE, JavaParser.LT, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 480 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,42,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 477 + self.modifier() + self.state = 482 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,42,self._ctx) + + self.state = 483 + self.interfaceMemberDeclaration() + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 484 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceMemberDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def constDeclaration(self): + return self.getTypedRuleContext(JavaParser.ConstDeclarationContext,0) + + + def interfaceMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceMethodDeclarationContext,0) + + + def genericInterfaceMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.GenericInterfaceMethodDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) + + + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) + + + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) + + + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_interfaceMemberDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMemberDeclaration" ): + listener.enterInterfaceMemberDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMemberDeclaration" ): + listener.exitInterfaceMemberDeclaration(self) + + + + + def interfaceMemberDeclaration(self): + + localctx = JavaParser.InterfaceMemberDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 56, self.RULE_interfaceMemberDeclaration) + try: + self.state = 494 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,44,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 487 + self.constDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 488 + self.interfaceMethodDeclaration() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 489 + self.genericInterfaceMethodDeclaration() + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 490 + self.interfaceDeclaration() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 491 + self.annotationTypeDeclaration() + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 492 + self.classDeclaration() + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 493 + self.enumDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def constantDeclarator(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ConstantDeclaratorContext) + else: + return self.getTypedRuleContext(JavaParser.ConstantDeclaratorContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_constDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstDeclaration" ): + listener.enterConstDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstDeclaration" ): + listener.exitConstDeclaration(self) + + + + + def constDeclaration(self): + + localctx = JavaParser.ConstDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 58, self.RULE_constDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 496 + self.typeType() + self.state = 497 + self.constantDeclarator() + self.state = 502 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 498 + self.match(JavaParser.COMMA) + self.state = 499 + self.constantDeclarator() + self.state = 504 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 505 + self.match(JavaParser.SEMI) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ConstantDeclaratorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) + + def variableInitializer(self): + return self.getTypedRuleContext(JavaParser.VariableInitializerContext,0) + + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def getRuleIndex(self): + return JavaParser.RULE_constantDeclarator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterConstantDeclarator" ): + listener.enterConstantDeclarator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitConstantDeclarator" ): + listener.exitConstantDeclarator(self) + + + + + def constantDeclarator(self): + + localctx = JavaParser.ConstantDeclaratorContext(self, self._ctx, self.state) + self.enterRule(localctx, 60, self.RULE_constantDeclarator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 507 + self.match(JavaParser.IDENTIFIER) + self.state = 512 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 508 + self.match(JavaParser.LBRACK) + self.state = 509 + self.match(JavaParser.RBRACK) + self.state = 514 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 515 + self.match(JavaParser.ASSIGN) + self.state = 516 + self.variableInitializer() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceMethodDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def formalParameters(self): + return self.getTypedRuleContext(JavaParser.FormalParametersContext,0) + + + def methodBody(self): + return self.getTypedRuleContext(JavaParser.MethodBodyContext,0) + + + def typeTypeOrVoid(self): + return self.getTypedRuleContext(JavaParser.TypeTypeOrVoidContext,0) + + + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) + + + def interfaceMethodModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.InterfaceMethodModifierContext) + else: + return self.getTypedRuleContext(JavaParser.InterfaceMethodModifierContext,i) + + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def THROWS(self): + return self.getToken(JavaParser.THROWS, 0) + + def qualifiedNameList(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameListContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_interfaceMethodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMethodDeclaration" ): + listener.enterInterfaceMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMethodDeclaration" ): + listener.exitInterfaceMethodDeclaration(self) + + + + + def interfaceMethodDeclaration(self): + + localctx = JavaParser.InterfaceMethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 62, self.RULE_interfaceMethodDeclaration) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 521 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,47,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 518 + self.interfaceMethodModifier() + self.state = 523 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,47,self._ctx) + + self.state = 534 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT, JavaParser.VOID, JavaParser.AT, JavaParser.IDENTIFIER]: + self.state = 524 + self.typeTypeOrVoid() + pass + elif token in [JavaParser.LT]: + self.state = 525 + self.typeParameters() + self.state = 529 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,48,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 526 + self.annotation() + self.state = 531 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,48,self._ctx) + + self.state = 532 + self.typeTypeOrVoid() + pass + else: + raise NoViableAltException(self) + + self.state = 536 + self.match(JavaParser.IDENTIFIER) + self.state = 537 + self.formalParameters() + self.state = 542 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 538 + self.match(JavaParser.LBRACK) + self.state = 539 + self.match(JavaParser.RBRACK) + self.state = 544 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 547 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.THROWS: + self.state = 545 + self.match(JavaParser.THROWS) + self.state = 546 + self.qualifiedNameList() + + + self.state = 549 + self.methodBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InterfaceMethodModifierContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) + + + def PUBLIC(self): + return self.getToken(JavaParser.PUBLIC, 0) + + def ABSTRACT(self): + return self.getToken(JavaParser.ABSTRACT, 0) + + def DEFAULT(self): + return self.getToken(JavaParser.DEFAULT, 0) + + def STATIC(self): + return self.getToken(JavaParser.STATIC, 0) + + def STRICTFP(self): + return self.getToken(JavaParser.STRICTFP, 0) + + def getRuleIndex(self): + return JavaParser.RULE_interfaceMethodModifier + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInterfaceMethodModifier" ): + listener.enterInterfaceMethodModifier(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInterfaceMethodModifier" ): + listener.exitInterfaceMethodModifier(self) + + + + + def interfaceMethodModifier(self): + + localctx = JavaParser.InterfaceMethodModifierContext(self, self._ctx, self.state) + self.enterRule(localctx, 64, self.RULE_interfaceMethodModifier) + try: + self.state = 557 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 551 + self.annotation() + pass + elif token in [JavaParser.PUBLIC]: + self.enterOuterAlt(localctx, 2) + self.state = 552 + self.match(JavaParser.PUBLIC) + pass + elif token in [JavaParser.ABSTRACT]: + self.enterOuterAlt(localctx, 3) + self.state = 553 + self.match(JavaParser.ABSTRACT) + pass + elif token in [JavaParser.DEFAULT]: + self.enterOuterAlt(localctx, 4) + self.state = 554 + self.match(JavaParser.DEFAULT) + pass + elif token in [JavaParser.STATIC]: + self.enterOuterAlt(localctx, 5) + self.state = 555 + self.match(JavaParser.STATIC) + pass + elif token in [JavaParser.STRICTFP]: + self.enterOuterAlt(localctx, 6) + self.state = 556 + self.match(JavaParser.STRICTFP) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class GenericInterfaceMethodDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeParameters(self): + return self.getTypedRuleContext(JavaParser.TypeParametersContext,0) + + + def interfaceMethodDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceMethodDeclarationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_genericInterfaceMethodDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterGenericInterfaceMethodDeclaration" ): + listener.enterGenericInterfaceMethodDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitGenericInterfaceMethodDeclaration" ): + listener.exitGenericInterfaceMethodDeclaration(self) + + + + + def genericInterfaceMethodDeclaration(self): + + localctx = JavaParser.GenericInterfaceMethodDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 66, self.RULE_genericInterfaceMethodDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 559 + self.typeParameters() + self.state = 560 + self.interfaceMethodDeclaration() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableDeclaratorsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def variableDeclarator(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableDeclaratorContext) + else: + return self.getTypedRuleContext(JavaParser.VariableDeclaratorContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_variableDeclarators + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclarators" ): + listener.enterVariableDeclarators(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclarators" ): + listener.exitVariableDeclarators(self) + + + + + def variableDeclarators(self): + + localctx = JavaParser.VariableDeclaratorsContext(self, self._ctx, self.state) + self.enterRule(localctx, 68, self.RULE_variableDeclarators) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 562 + self.variableDeclarator() + self.state = 567 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 563 + self.match(JavaParser.COMMA) + self.state = 564 + self.variableDeclarator() + self.state = 569 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableDeclaratorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) + + + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) + + def variableInitializer(self): + return self.getTypedRuleContext(JavaParser.VariableInitializerContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_variableDeclarator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclarator" ): + listener.enterVariableDeclarator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclarator" ): + listener.exitVariableDeclarator(self) + + + + + def variableDeclarator(self): + + localctx = JavaParser.VariableDeclaratorContext(self, self._ctx, self.state) + self.enterRule(localctx, 70, self.RULE_variableDeclarator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 570 + self.variableDeclaratorId() + self.state = 573 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.ASSIGN: + self.state = 571 + self.match(JavaParser.ASSIGN) + self.state = 572 + self.variableInitializer() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableDeclaratorIdContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def getRuleIndex(self): + return JavaParser.RULE_variableDeclaratorId + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableDeclaratorId" ): + listener.enterVariableDeclaratorId(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableDeclaratorId" ): + listener.exitVariableDeclaratorId(self) + + + + + def variableDeclaratorId(self): + + localctx = JavaParser.VariableDeclaratorIdContext(self, self._ctx, self.state) + self.enterRule(localctx, 72, self.RULE_variableDeclaratorId) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 575 + self.match(JavaParser.IDENTIFIER) + self.state = 580 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 576 + self.match(JavaParser.LBRACK) + self.state = 577 + self.match(JavaParser.RBRACK) + self.state = 582 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class VariableInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def arrayInitializer(self): + return self.getTypedRuleContext(JavaParser.ArrayInitializerContext,0) + + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_variableInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterVariableInitializer" ): + listener.enterVariableInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitVariableInitializer" ): + listener.exitVariableInitializer(self) + + + + + def variableInitializer(self): + + localctx = JavaParser.VariableInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 74, self.RULE_variableInitializer) + try: + self.state = 585 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LBRACE]: + self.enterOuterAlt(localctx, 1) + self.state = 583 + self.arrayInitializer() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.NEW, JavaParser.SHORT, JavaParser.SUPER, JavaParser.THIS, JavaParser.VOID, JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL, JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL, JavaParser.BOOL_LITERAL, JavaParser.CHAR_LITERAL, JavaParser.STRING_LITERAL, JavaParser.NULL_LITERAL, JavaParser.LPAREN, JavaParser.LT, JavaParser.BANG, JavaParser.TILDE, JavaParser.INC, JavaParser.DEC, JavaParser.ADD, JavaParser.SUB, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 584 + self.expression(0) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def variableInitializer(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableInitializerContext) + else: + return self.getTypedRuleContext(JavaParser.VariableInitializerContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_arrayInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayInitializer" ): + listener.enterArrayInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayInitializer" ): + listener.exitArrayInitializer(self) + + + + + def arrayInitializer(self): + + localctx = JavaParser.ArrayInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 76, self.RULE_arrayInitializer) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 587 + self.match(JavaParser.LBRACE) + self.state = 599 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 588 + self.variableInitializer() + self.state = 593 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,57,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 589 + self.match(JavaParser.COMMA) + self.state = 590 + self.variableInitializer() + self.state = 595 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,57,self._ctx) + + self.state = 597 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 596 + self.match(JavaParser.COMMA) + + + + + self.state = 601 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassOrInterfaceTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) + + def typeArguments(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeArgumentsContext) + else: + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,i) + + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) + + def getRuleIndex(self): + return JavaParser.RULE_classOrInterfaceType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassOrInterfaceType" ): + listener.enterClassOrInterfaceType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassOrInterfaceType" ): + listener.exitClassOrInterfaceType(self) + + + + + def classOrInterfaceType(self): + + localctx = JavaParser.ClassOrInterfaceTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 78, self.RULE_classOrInterfaceType) + try: + self.enterOuterAlt(localctx, 1) + self.state = 603 + self.match(JavaParser.IDENTIFIER) + self.state = 605 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,60,self._ctx) + if la_ == 1: + self.state = 604 + self.typeArguments() + + + self.state = 614 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,62,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 607 + self.match(JavaParser.DOT) + self.state = 608 + self.match(JavaParser.IDENTIFIER) + self.state = 610 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,61,self._ctx) + if la_ == 1: + self.state = 609 + self.typeArguments() + + + self.state = 616 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,62,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeArgumentContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def QUESTION(self): + return self.getToken(JavaParser.QUESTION, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def EXTENDS(self): + return self.getToken(JavaParser.EXTENDS, 0) + + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) + + def getRuleIndex(self): + return JavaParser.RULE_typeArgument + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArgument" ): + listener.enterTypeArgument(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArgument" ): + listener.exitTypeArgument(self) + + + + + def typeArgument(self): + + localctx = JavaParser.TypeArgumentContext(self, self._ctx, self.state) + self.enterRule(localctx, 80, self.RULE_typeArgument) + self._la = 0 # Token type + try: + self.state = 629 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,65,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 617 + self.typeType() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 621 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 618 + self.annotation() + self.state = 623 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 624 + self.match(JavaParser.QUESTION) + self.state = 627 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.EXTENDS or _la==JavaParser.SUPER: + self.state = 625 + _la = self._input.LA(1) + if not(_la==JavaParser.EXTENDS or _la==JavaParser.SUPER): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 626 + self.typeType() + + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class QualifiedNameListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def qualifiedName(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.QualifiedNameContext) + else: + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_qualifiedNameList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterQualifiedNameList" ): + listener.enterQualifiedNameList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitQualifiedNameList" ): + listener.exitQualifiedNameList(self) + + + + + def qualifiedNameList(self): + + localctx = JavaParser.QualifiedNameListContext(self, self._ctx, self.state) + self.enterRule(localctx, 82, self.RULE_qualifiedNameList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 631 + self.qualifiedName() + self.state = 636 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 632 + self.match(JavaParser.COMMA) + self.state = 633 + self.qualifiedName() + self.state = 638 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FormalParametersContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def formalParameterList(self): + return self.getTypedRuleContext(JavaParser.FormalParameterListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_formalParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameters" ): + listener.enterFormalParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameters" ): + listener.exitFormalParameters(self) + + + + + def formalParameters(self): + + localctx = JavaParser.FormalParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 84, self.RULE_formalParameters) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 639 + self.match(JavaParser.LPAREN) + self.state = 641 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.SHORT))) != 0) or _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 640 + self.formalParameterList() + + + self.state = 643 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FormalParameterListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def formalParameter(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.FormalParameterContext) + else: + return self.getTypedRuleContext(JavaParser.FormalParameterContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def lastFormalParameter(self): + return self.getTypedRuleContext(JavaParser.LastFormalParameterContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_formalParameterList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameterList" ): + listener.enterFormalParameterList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameterList" ): + listener.exitFormalParameterList(self) + + + + + def formalParameterList(self): + + localctx = JavaParser.FormalParameterListContext(self, self._ctx, self.state) + self.enterRule(localctx, 86, self.RULE_formalParameterList) + self._la = 0 # Token type + try: + self.state = 658 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,70,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 645 + self.formalParameter() + self.state = 650 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,68,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 646 + self.match(JavaParser.COMMA) + self.state = 647 + self.formalParameter() + self.state = 652 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,68,self._ctx) + + self.state = 655 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 653 + self.match(JavaParser.COMMA) + self.state = 654 + self.lastFormalParameter() + + + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 657 + self.lastFormalParameter() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FormalParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_formalParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFormalParameter" ): + listener.enterFormalParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFormalParameter" ): + listener.exitFormalParameter(self) + + + + + def formalParameter(self): + + localctx = JavaParser.FormalParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 88, self.RULE_formalParameter) + try: + self.enterOuterAlt(localctx, 1) + self.state = 663 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,71,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 660 + self.variableModifier() + self.state = 665 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,71,self._ctx) + + self.state = 666 + self.typeType() + self.state = 667 + self.variableDeclaratorId() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LastFormalParameterContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def ELLIPSIS(self): + return self.getToken(JavaParser.ELLIPSIS, 0) + + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_lastFormalParameter + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLastFormalParameter" ): + listener.enterLastFormalParameter(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLastFormalParameter" ): + listener.exitLastFormalParameter(self) + + + + + def lastFormalParameter(self): + + localctx = JavaParser.LastFormalParameterContext(self, self._ctx, self.state) + self.enterRule(localctx, 90, self.RULE_lastFormalParameter) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 672 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,72,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 669 + self.variableModifier() + self.state = 674 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,72,self._ctx) + + self.state = 675 + self.typeType() + self.state = 679 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 676 + self.annotation() + self.state = 681 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 682 + self.match(JavaParser.ELLIPSIS) + self.state = 683 + self.variableDeclaratorId() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class QualifiedNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) + + def getRuleIndex(self): + return JavaParser.RULE_qualifiedName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterQualifiedName" ): + listener.enterQualifiedName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitQualifiedName" ): + listener.exitQualifiedName(self) + + + + + def qualifiedName(self): + + localctx = JavaParser.QualifiedNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 92, self.RULE_qualifiedName) + try: + self.enterOuterAlt(localctx, 1) + self.state = 685 + self.match(JavaParser.IDENTIFIER) + self.state = 690 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,74,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 686 + self.match(JavaParser.DOT) + self.state = 687 + self.match(JavaParser.IDENTIFIER) + self.state = 692 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,74,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LiteralContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def integerLiteral(self): + return self.getTypedRuleContext(JavaParser.IntegerLiteralContext,0) + + + def floatLiteral(self): + return self.getTypedRuleContext(JavaParser.FloatLiteralContext,0) + + + def CHAR_LITERAL(self): + return self.getToken(JavaParser.CHAR_LITERAL, 0) + + def STRING_LITERAL(self): + return self.getToken(JavaParser.STRING_LITERAL, 0) + + def BOOL_LITERAL(self): + return self.getToken(JavaParser.BOOL_LITERAL, 0) + + def NULL_LITERAL(self): + return self.getToken(JavaParser.NULL_LITERAL, 0) + + def getRuleIndex(self): + return JavaParser.RULE_literal + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLiteral" ): + listener.enterLiteral(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLiteral" ): + listener.exitLiteral(self) + + + + + def literal(self): + + localctx = JavaParser.LiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 94, self.RULE_literal) + try: + self.state = 699 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL]: + self.enterOuterAlt(localctx, 1) + self.state = 693 + self.integerLiteral() + pass + elif token in [JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL]: + self.enterOuterAlt(localctx, 2) + self.state = 694 + self.floatLiteral() + pass + elif token in [JavaParser.CHAR_LITERAL]: + self.enterOuterAlt(localctx, 3) + self.state = 695 + self.match(JavaParser.CHAR_LITERAL) + pass + elif token in [JavaParser.STRING_LITERAL]: + self.enterOuterAlt(localctx, 4) + self.state = 696 + self.match(JavaParser.STRING_LITERAL) + pass + elif token in [JavaParser.BOOL_LITERAL]: + self.enterOuterAlt(localctx, 5) + self.state = 697 + self.match(JavaParser.BOOL_LITERAL) + pass + elif token in [JavaParser.NULL_LITERAL]: + self.enterOuterAlt(localctx, 6) + self.state = 698 + self.match(JavaParser.NULL_LITERAL) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class IntegerLiteralContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DECIMAL_LITERAL(self): + return self.getToken(JavaParser.DECIMAL_LITERAL, 0) + + def HEX_LITERAL(self): + return self.getToken(JavaParser.HEX_LITERAL, 0) + + def OCT_LITERAL(self): + return self.getToken(JavaParser.OCT_LITERAL, 0) + + def BINARY_LITERAL(self): + return self.getToken(JavaParser.BINARY_LITERAL, 0) + + def getRuleIndex(self): + return JavaParser.RULE_integerLiteral + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterIntegerLiteral" ): + listener.enterIntegerLiteral(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitIntegerLiteral" ): + listener.exitIntegerLiteral(self) + + + + + def integerLiteral(self): + + localctx = JavaParser.IntegerLiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 96, self.RULE_integerLiteral) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 701 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FloatLiteralContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FLOAT_LITERAL(self): + return self.getToken(JavaParser.FLOAT_LITERAL, 0) + + def HEX_FLOAT_LITERAL(self): + return self.getToken(JavaParser.HEX_FLOAT_LITERAL, 0) + + def getRuleIndex(self): + return JavaParser.RULE_floatLiteral + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFloatLiteral" ): + listener.enterFloatLiteral(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFloatLiteral" ): + listener.exitFloatLiteral(self) + + + + + def floatLiteral(self): + + localctx = JavaParser.FloatLiteralContext(self, self._ctx, self.state) + self.enterRule(localctx, 98, self.RULE_floatLiteral) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 703 + _la = self._input.LA(1) + if not(_la==JavaParser.FLOAT_LITERAL or _la==JavaParser.HEX_FLOAT_LITERAL): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AltAnnotationQualifiedNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(JavaParser.AT, 0) + + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) + + def getRuleIndex(self): + return JavaParser.RULE_altAnnotationQualifiedName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAltAnnotationQualifiedName" ): + listener.enterAltAnnotationQualifiedName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAltAnnotationQualifiedName" ): + listener.exitAltAnnotationQualifiedName(self) + + + + + def altAnnotationQualifiedName(self): + + localctx = JavaParser.AltAnnotationQualifiedNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 100, self.RULE_altAnnotationQualifiedName) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 709 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.IDENTIFIER: + self.state = 705 + self.match(JavaParser.IDENTIFIER) + self.state = 706 + self.match(JavaParser.DOT) + self.state = 711 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 712 + self.match(JavaParser.AT) + self.state = 713 + self.match(JavaParser.IDENTIFIER) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(JavaParser.AT, 0) + + def qualifiedName(self): + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,0) + + + def altAnnotationQualifiedName(self): + return self.getTypedRuleContext(JavaParser.AltAnnotationQualifiedNameContext,0) + + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def elementValuePairs(self): + return self.getTypedRuleContext(JavaParser.ElementValuePairsContext,0) + + + def elementValue(self): + return self.getTypedRuleContext(JavaParser.ElementValueContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_annotation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotation" ): + listener.enterAnnotation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotation" ): + listener.exitAnnotation(self) + + + + + def annotation(self): + + localctx = JavaParser.AnnotationContext(self, self._ctx, self.state) + self.enterRule(localctx, 102, self.RULE_annotation) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 718 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,77,self._ctx) + if la_ == 1: + self.state = 715 + self.match(JavaParser.AT) + self.state = 716 + self.qualifiedName() + pass + + elif la_ == 2: + self.state = 717 + self.altAnnotationQualifiedName() + pass + + + self.state = 726 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LPAREN: + self.state = 720 + self.match(JavaParser.LPAREN) + self.state = 723 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,78,self._ctx) + if la_ == 1: + self.state = 721 + self.elementValuePairs() + + elif la_ == 2: + self.state = 722 + self.elementValue() + + + self.state = 725 + self.match(JavaParser.RPAREN) + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValuePairsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def elementValuePair(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ElementValuePairContext) + else: + return self.getTypedRuleContext(JavaParser.ElementValuePairContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_elementValuePairs + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValuePairs" ): + listener.enterElementValuePairs(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValuePairs" ): + listener.exitElementValuePairs(self) + + + + + def elementValuePairs(self): + + localctx = JavaParser.ElementValuePairsContext(self, self._ctx, self.state) + self.enterRule(localctx, 104, self.RULE_elementValuePairs) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 728 + self.elementValuePair() + self.state = 733 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 729 + self.match(JavaParser.COMMA) + self.state = 730 + self.elementValuePair() + self.state = 735 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValuePairContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) + + def elementValue(self): + return self.getTypedRuleContext(JavaParser.ElementValueContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_elementValuePair + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValuePair" ): + listener.enterElementValuePair(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValuePair" ): + listener.exitElementValuePair(self) + + + + + def elementValuePair(self): + + localctx = JavaParser.ElementValuePairContext(self, self._ctx, self.state) + self.enterRule(localctx, 106, self.RULE_elementValuePair) + try: + self.enterOuterAlt(localctx, 1) + self.state = 736 + self.match(JavaParser.IDENTIFIER) + self.state = 737 + self.match(JavaParser.ASSIGN) + self.state = 738 + self.elementValue() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValueContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def annotation(self): + return self.getTypedRuleContext(JavaParser.AnnotationContext,0) + + + def elementValueArrayInitializer(self): + return self.getTypedRuleContext(JavaParser.ElementValueArrayInitializerContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_elementValue + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValue" ): + listener.enterElementValue(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValue" ): + listener.exitElementValue(self) + + + + + def elementValue(self): + + localctx = JavaParser.ElementValueContext(self, self._ctx, self.state) + self.enterRule(localctx, 108, self.RULE_elementValue) + try: + self.state = 743 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,81,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 740 + self.expression(0) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 741 + self.annotation() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 742 + self.elementValueArrayInitializer() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ElementValueArrayInitializerContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def elementValue(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ElementValueContext) + else: + return self.getTypedRuleContext(JavaParser.ElementValueContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_elementValueArrayInitializer + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterElementValueArrayInitializer" ): + listener.enterElementValueArrayInitializer(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitElementValueArrayInitializer" ): + listener.exitElementValueArrayInitializer(self) + + + + + def elementValueArrayInitializer(self): + + localctx = JavaParser.ElementValueArrayInitializerContext(self, self._ctx, self.state) + self.enterRule(localctx, 110, self.RULE_elementValueArrayInitializer) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 745 + self.match(JavaParser.LBRACE) + self.state = 754 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 746 + self.elementValue() + self.state = 751 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,82,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 747 + self.match(JavaParser.COMMA) + self.state = 748 + self.elementValue() + self.state = 753 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,82,self._ctx) + + + + self.state = 757 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COMMA: + self.state = 756 + self.match(JavaParser.COMMA) + + + self.state = 759 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def AT(self): + return self.getToken(JavaParser.AT, 0) + + def INTERFACE(self): + return self.getToken(JavaParser.INTERFACE, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def annotationTypeBody(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeBodyContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeDeclaration" ): + listener.enterAnnotationTypeDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeDeclaration" ): + listener.exitAnnotationTypeDeclaration(self) + + + + + def annotationTypeDeclaration(self): + + localctx = JavaParser.AnnotationTypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 112, self.RULE_annotationTypeDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 761 + self.match(JavaParser.AT) + self.state = 762 + self.match(JavaParser.INTERFACE) + self.state = 763 + self.match(JavaParser.IDENTIFIER) + self.state = 764 + self.annotationTypeBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def annotationTypeElementDeclaration(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationTypeElementDeclarationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationTypeElementDeclarationContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeBody" ): + listener.enterAnnotationTypeBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeBody" ): + listener.exitAnnotationTypeBody(self) + + + + + def annotationTypeBody(self): + + localctx = JavaParser.AnnotationTypeBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 114, self.RULE_annotationTypeBody) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 766 + self.match(JavaParser.LBRACE) + self.state = 770 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.ENUM) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NATIVE) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.TRANSIENT) | (1 << JavaParser.VOLATILE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 767 + self.annotationTypeElementDeclaration() + self.state = 772 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 773 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeElementDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotationTypeElementRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeElementRestContext,0) + + + def modifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ModifierContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeElementDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeElementDeclaration" ): + listener.enterAnnotationTypeElementDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeElementDeclaration" ): + listener.exitAnnotationTypeElementDeclaration(self) + + + + + def annotationTypeElementDeclaration(self): + + localctx = JavaParser.AnnotationTypeElementDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 116, self.RULE_annotationTypeElementDeclaration) + try: + self.state = 783 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.CLASS, JavaParser.DOUBLE, JavaParser.ENUM, JavaParser.FINAL, JavaParser.FLOAT, JavaParser.INT, JavaParser.INTERFACE, JavaParser.LONG, JavaParser.NATIVE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.SHORT, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.SYNCHRONIZED, JavaParser.TRANSIENT, JavaParser.VOLATILE, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 778 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,86,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 775 + self.modifier() + self.state = 780 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,86,self._ctx) + + self.state = 781 + self.annotationTypeElementRest() + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 782 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationTypeElementRestContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def annotationMethodOrConstantRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationMethodOrConstantRestContext,0) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) + + + def enumDeclaration(self): + return self.getTypedRuleContext(JavaParser.EnumDeclarationContext,0) + + + def annotationTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.AnnotationTypeDeclarationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_annotationTypeElementRest + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationTypeElementRest" ): + listener.enterAnnotationTypeElementRest(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationTypeElementRest" ): + listener.exitAnnotationTypeElementRest(self) + + + + + def annotationTypeElementRest(self): + + localctx = JavaParser.AnnotationTypeElementRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 118, self.RULE_annotationTypeElementRest) + try: + self.state = 805 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,92,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 785 + self.typeType() + self.state = 786 + self.annotationMethodOrConstantRest() + self.state = 787 + self.match(JavaParser.SEMI) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 789 + self.classDeclaration() + self.state = 791 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,88,self._ctx) + if la_ == 1: + self.state = 790 + self.match(JavaParser.SEMI) + + + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 793 + self.interfaceDeclaration() + self.state = 795 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,89,self._ctx) + if la_ == 1: + self.state = 794 + self.match(JavaParser.SEMI) + + + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 797 + self.enumDeclaration() + self.state = 799 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,90,self._ctx) + if la_ == 1: + self.state = 798 + self.match(JavaParser.SEMI) + + + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 801 + self.annotationTypeDeclaration() + self.state = 803 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,91,self._ctx) + if la_ == 1: + self.state = 802 + self.match(JavaParser.SEMI) + + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationMethodOrConstantRestContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def annotationMethodRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationMethodRestContext,0) + + + def annotationConstantRest(self): + return self.getTypedRuleContext(JavaParser.AnnotationConstantRestContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_annotationMethodOrConstantRest + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationMethodOrConstantRest" ): + listener.enterAnnotationMethodOrConstantRest(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationMethodOrConstantRest" ): + listener.exitAnnotationMethodOrConstantRest(self) + + + + + def annotationMethodOrConstantRest(self): + + localctx = JavaParser.AnnotationMethodOrConstantRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 120, self.RULE_annotationMethodOrConstantRest) + try: + self.state = 809 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,93,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 807 + self.annotationMethodRest() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 808 + self.annotationConstantRest() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationMethodRestContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def defaultValue(self): + return self.getTypedRuleContext(JavaParser.DefaultValueContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_annotationMethodRest + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationMethodRest" ): + listener.enterAnnotationMethodRest(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationMethodRest" ): + listener.exitAnnotationMethodRest(self) + + + + + def annotationMethodRest(self): + + localctx = JavaParser.AnnotationMethodRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 122, self.RULE_annotationMethodRest) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 811 + self.match(JavaParser.IDENTIFIER) + self.state = 812 + self.match(JavaParser.LPAREN) + self.state = 813 + self.match(JavaParser.RPAREN) + self.state = 815 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.DEFAULT: + self.state = 814 + self.defaultValue() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class AnnotationConstantRestContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def variableDeclarators(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorsContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_annotationConstantRest + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterAnnotationConstantRest" ): + listener.enterAnnotationConstantRest(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitAnnotationConstantRest" ): + listener.exitAnnotationConstantRest(self) + + + + + def annotationConstantRest(self): + + localctx = JavaParser.AnnotationConstantRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 124, self.RULE_annotationConstantRest) + try: + self.enterOuterAlt(localctx, 1) + self.state = 817 + self.variableDeclarators() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class DefaultValueContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def DEFAULT(self): + return self.getToken(JavaParser.DEFAULT, 0) + + def elementValue(self): + return self.getTypedRuleContext(JavaParser.ElementValueContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_defaultValue + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterDefaultValue" ): + listener.enterDefaultValue(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitDefaultValue" ): + listener.exitDefaultValue(self) + + + + + def defaultValue(self): + + localctx = JavaParser.DefaultValueContext(self, self._ctx, self.state) + self.enterRule(localctx, 126, self.RULE_defaultValue) + try: + self.enterOuterAlt(localctx, 1) + self.state = 819 + self.match(JavaParser.DEFAULT) + self.state = 820 + self.elementValue() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def blockStatement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.BlockStatementContext) + else: + return self.getTypedRuleContext(JavaParser.BlockStatementContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_block + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlock" ): + listener.enterBlock(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlock" ): + listener.exitBlock(self) + + + + + def block(self): + + localctx = JavaParser.BlockContext(self, self._ctx, self.state) + self.enterRule(localctx, 128, self.RULE_block) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 822 + self.match(JavaParser.LBRACE) + self.state = 826 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.ASSERT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BREAK) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.CONTINUE) | (1 << JavaParser.DO) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.FOR) | (1 << JavaParser.IF) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.RETURN) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SUPER) | (1 << JavaParser.SWITCH) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.THIS) | (1 << JavaParser.THROW) | (1 << JavaParser.TRY) | (1 << JavaParser.VOID) | (1 << JavaParser.WHILE) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.BANG - 67)) | (1 << (JavaParser.TILDE - 67)) | (1 << (JavaParser.INC - 67)) | (1 << (JavaParser.DEC - 67)) | (1 << (JavaParser.ADD - 67)) | (1 << (JavaParser.SUB - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0): + self.state = 823 + self.blockStatement() + self.state = 828 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 829 + self.match(JavaParser.RBRACE) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class BlockStatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def localVariableDeclaration(self): + return self.getTypedRuleContext(JavaParser.LocalVariableDeclarationContext,0) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def statement(self): + return self.getTypedRuleContext(JavaParser.StatementContext,0) + + + def localTypeDeclaration(self): + return self.getTypedRuleContext(JavaParser.LocalTypeDeclarationContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_blockStatement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterBlockStatement" ): + listener.enterBlockStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitBlockStatement" ): + listener.exitBlockStatement(self) + + + + + def blockStatement(self): + + localctx = JavaParser.BlockStatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 130, self.RULE_blockStatement) + try: + self.state = 836 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,96,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 831 + self.localVariableDeclaration() + self.state = 832 + self.match(JavaParser.SEMI) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 834 + self.statement() + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 835 + self.localTypeDeclaration() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LocalVariableDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def variableDeclarators(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorsContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_localVariableDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLocalVariableDeclaration" ): + listener.enterLocalVariableDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLocalVariableDeclaration" ): + listener.exitLocalVariableDeclaration(self) + + + + + def localVariableDeclaration(self): + + localctx = JavaParser.LocalVariableDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 132, self.RULE_localVariableDeclaration) + try: + self.enterOuterAlt(localctx, 1) + self.state = 841 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,97,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 838 + self.variableModifier() + self.state = 843 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,97,self._ctx) + + self.state = 844 + self.typeType() + self.state = 845 + self.variableDeclarators() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LocalTypeDeclarationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classDeclaration(self): + return self.getTypedRuleContext(JavaParser.ClassDeclarationContext,0) + + + def interfaceDeclaration(self): + return self.getTypedRuleContext(JavaParser.InterfaceDeclarationContext,0) + + + def classOrInterfaceModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ClassOrInterfaceModifierContext) + else: + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceModifierContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_localTypeDeclaration + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLocalTypeDeclaration" ): + listener.enterLocalTypeDeclaration(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLocalTypeDeclaration" ): + listener.exitLocalTypeDeclaration(self) + + + + + def localTypeDeclaration(self): + + localctx = JavaParser.LocalTypeDeclarationContext(self, self._ctx, self.state) + self.enterRule(localctx, 134, self.RULE_localTypeDeclaration) + self._la = 0 # Token type + try: + self.state = 858 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.ABSTRACT, JavaParser.CLASS, JavaParser.FINAL, JavaParser.INTERFACE, JavaParser.PRIVATE, JavaParser.PROTECTED, JavaParser.PUBLIC, JavaParser.STATIC, JavaParser.STRICTFP, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 850 + self._errHandler.sync(self) + _la = self._input.LA(1) + while (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.FINAL) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP))) != 0) or _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 847 + self.classOrInterfaceModifier() + self.state = 852 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 855 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CLASS]: + self.state = 853 + self.classDeclaration() + pass + elif token in [JavaParser.INTERFACE]: + self.state = 854 + self.interfaceDeclaration() + pass + else: + raise NoViableAltException(self) + + pass + elif token in [JavaParser.SEMI]: + self.enterOuterAlt(localctx, 2) + self.state = 857 + self.match(JavaParser.SEMI) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class StatementContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.blockLabel = None # BlockContext + self.statementExpression = None # ExpressionContext + self.identifierLabel = None # Token + + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + + + def ASSERT(self): + return self.getToken(JavaParser.ASSERT, 0) + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) + + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def COLON(self): + return self.getToken(JavaParser.COLON, 0) + + def IF(self): + return self.getToken(JavaParser.IF, 0) + + def parExpression(self): + return self.getTypedRuleContext(JavaParser.ParExpressionContext,0) + + + def statement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.StatementContext) + else: + return self.getTypedRuleContext(JavaParser.StatementContext,i) + + + def ELSE(self): + return self.getToken(JavaParser.ELSE, 0) + + def FOR(self): + return self.getToken(JavaParser.FOR, 0) + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def forControl(self): + return self.getTypedRuleContext(JavaParser.ForControlContext,0) + + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def WHILE(self): + return self.getToken(JavaParser.WHILE, 0) + + def DO(self): + return self.getToken(JavaParser.DO, 0) + + def TRY(self): + return self.getToken(JavaParser.TRY, 0) + + def finallyBlock(self): + return self.getTypedRuleContext(JavaParser.FinallyBlockContext,0) + + + def catchClause(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.CatchClauseContext) + else: + return self.getTypedRuleContext(JavaParser.CatchClauseContext,i) + + + def resourceSpecification(self): + return self.getTypedRuleContext(JavaParser.ResourceSpecificationContext,0) + + + def SWITCH(self): + return self.getToken(JavaParser.SWITCH, 0) + + def LBRACE(self): + return self.getToken(JavaParser.LBRACE, 0) + + def RBRACE(self): + return self.getToken(JavaParser.RBRACE, 0) + + def switchBlockStatementGroup(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.SwitchBlockStatementGroupContext) + else: + return self.getTypedRuleContext(JavaParser.SwitchBlockStatementGroupContext,i) + + + def switchLabel(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.SwitchLabelContext) + else: + return self.getTypedRuleContext(JavaParser.SwitchLabelContext,i) + + + def SYNCHRONIZED(self): + return self.getToken(JavaParser.SYNCHRONIZED, 0) + + def RETURN(self): + return self.getToken(JavaParser.RETURN, 0) + + def THROW(self): + return self.getToken(JavaParser.THROW, 0) + + def BREAK(self): + return self.getToken(JavaParser.BREAK, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def CONTINUE(self): + return self.getToken(JavaParser.CONTINUE, 0) + + def getRuleIndex(self): + return JavaParser.RULE_statement + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterStatement" ): + listener.enterStatement(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitStatement" ): + listener.exitStatement(self) + + + + + def statement(self): + + localctx = JavaParser.StatementContext(self, self._ctx, self.state) + self.enterRule(localctx, 136, self.RULE_statement) + self._la = 0 # Token type + try: + self.state = 964 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,113,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 860 + localctx.blockLabel = self.block() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 861 + self.match(JavaParser.ASSERT) + self.state = 862 + self.expression(0) + self.state = 865 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.COLON: + self.state = 863 + self.match(JavaParser.COLON) + self.state = 864 + self.expression(0) + + + self.state = 867 + self.match(JavaParser.SEMI) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 869 + self.match(JavaParser.IF) + self.state = 870 + self.parExpression() + self.state = 871 + self.statement() + self.state = 874 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,102,self._ctx) + if la_ == 1: + self.state = 872 + self.match(JavaParser.ELSE) + self.state = 873 + self.statement() + + + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 876 + self.match(JavaParser.FOR) + self.state = 877 + self.match(JavaParser.LPAREN) + self.state = 878 + self.forControl() + self.state = 879 + self.match(JavaParser.RPAREN) + self.state = 880 + self.statement() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 882 + self.match(JavaParser.WHILE) + self.state = 883 + self.parExpression() + self.state = 884 + self.statement() + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 886 + self.match(JavaParser.DO) + self.state = 887 + self.statement() + self.state = 888 + self.match(JavaParser.WHILE) + self.state = 889 + self.parExpression() + self.state = 890 + self.match(JavaParser.SEMI) + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 892 + self.match(JavaParser.TRY) + self.state = 893 + self.block() + self.state = 903 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CATCH]: + self.state = 895 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 894 + self.catchClause() + self.state = 897 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavaParser.CATCH): + break + + self.state = 900 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.FINALLY: + self.state = 899 + self.finallyBlock() + + + pass + elif token in [JavaParser.FINALLY]: + self.state = 902 + self.finallyBlock() + pass + else: + raise NoViableAltException(self) + + pass + + elif la_ == 8: + self.enterOuterAlt(localctx, 8) + self.state = 905 + self.match(JavaParser.TRY) + self.state = 906 + self.resourceSpecification() + self.state = 907 + self.block() + self.state = 911 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.CATCH: + self.state = 908 + self.catchClause() + self.state = 913 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 915 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.FINALLY: + self.state = 914 + self.finallyBlock() + + + pass + + elif la_ == 9: + self.enterOuterAlt(localctx, 9) + self.state = 917 + self.match(JavaParser.SWITCH) + self.state = 918 + self.parExpression() + self.state = 919 + self.match(JavaParser.LBRACE) + self.state = 923 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,108,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 920 + self.switchBlockStatementGroup() + self.state = 925 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,108,self._ctx) + + self.state = 929 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.CASE or _la==JavaParser.DEFAULT: + self.state = 926 + self.switchLabel() + self.state = 931 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 932 + self.match(JavaParser.RBRACE) + pass + + elif la_ == 10: + self.enterOuterAlt(localctx, 10) + self.state = 934 + self.match(JavaParser.SYNCHRONIZED) + self.state = 935 + self.parExpression() + self.state = 936 + self.block() + pass + + elif la_ == 11: + self.enterOuterAlt(localctx, 11) + self.state = 938 + self.match(JavaParser.RETURN) + self.state = 940 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 939 + self.expression(0) + + + self.state = 942 + self.match(JavaParser.SEMI) + pass + + elif la_ == 12: + self.enterOuterAlt(localctx, 12) + self.state = 943 + self.match(JavaParser.THROW) + self.state = 944 + self.expression(0) + self.state = 945 + self.match(JavaParser.SEMI) + pass + + elif la_ == 13: + self.enterOuterAlt(localctx, 13) + self.state = 947 + self.match(JavaParser.BREAK) + self.state = 949 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IDENTIFIER: + self.state = 948 + self.match(JavaParser.IDENTIFIER) + + + self.state = 951 + self.match(JavaParser.SEMI) + pass + + elif la_ == 14: + self.enterOuterAlt(localctx, 14) + self.state = 952 + self.match(JavaParser.CONTINUE) + self.state = 954 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.IDENTIFIER: + self.state = 953 + self.match(JavaParser.IDENTIFIER) + + + self.state = 956 + self.match(JavaParser.SEMI) + pass + + elif la_ == 15: + self.enterOuterAlt(localctx, 15) + self.state = 957 + self.match(JavaParser.SEMI) + pass + + elif la_ == 16: + self.enterOuterAlt(localctx, 16) + self.state = 958 + localctx.statementExpression = self.expression(0) + self.state = 959 + self.match(JavaParser.SEMI) + pass + + elif la_ == 17: + self.enterOuterAlt(localctx, 17) + self.state = 961 + localctx.identifierLabel = self.match(JavaParser.IDENTIFIER) + self.state = 962 + self.match(JavaParser.COLON) + self.state = 963 + self.statement() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CatchClauseContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def CATCH(self): + return self.getToken(JavaParser.CATCH, 0) + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def catchType(self): + return self.getTypedRuleContext(JavaParser.CatchTypeContext,0) + + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_catchClause + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatchClause" ): + listener.enterCatchClause(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatchClause" ): + listener.exitCatchClause(self) + + + + + def catchClause(self): + + localctx = JavaParser.CatchClauseContext(self, self._ctx, self.state) + self.enterRule(localctx, 138, self.RULE_catchClause) + try: + self.enterOuterAlt(localctx, 1) + self.state = 966 + self.match(JavaParser.CATCH) + self.state = 967 + self.match(JavaParser.LPAREN) + self.state = 971 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,114,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 968 + self.variableModifier() + self.state = 973 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,114,self._ctx) + + self.state = 974 + self.catchType() + self.state = 975 + self.match(JavaParser.IDENTIFIER) + self.state = 976 + self.match(JavaParser.RPAREN) + self.state = 977 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CatchTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def qualifiedName(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.QualifiedNameContext) + else: + return self.getTypedRuleContext(JavaParser.QualifiedNameContext,i) + + + def BITOR(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.BITOR) + else: + return self.getToken(JavaParser.BITOR, i) + + def getRuleIndex(self): + return JavaParser.RULE_catchType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCatchType" ): + listener.enterCatchType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCatchType" ): + listener.exitCatchType(self) + + + + + def catchType(self): + + localctx = JavaParser.CatchTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 140, self.RULE_catchType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 979 + self.qualifiedName() + self.state = 984 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.BITOR: + self.state = 980 + self.match(JavaParser.BITOR) + self.state = 981 + self.qualifiedName() + self.state = 986 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class FinallyBlockContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def FINALLY(self): + return self.getToken(JavaParser.FINALLY, 0) + + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_finallyBlock + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFinallyBlock" ): + listener.enterFinallyBlock(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFinallyBlock" ): + listener.exitFinallyBlock(self) + + + + + def finallyBlock(self): + + localctx = JavaParser.FinallyBlockContext(self, self._ctx, self.state) + self.enterRule(localctx, 142, self.RULE_finallyBlock) + try: + self.enterOuterAlt(localctx, 1) + self.state = 987 + self.match(JavaParser.FINALLY) + self.state = 988 + self.block() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ResourceSpecificationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def resources(self): + return self.getTypedRuleContext(JavaParser.ResourcesContext,0) + + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def SEMI(self): + return self.getToken(JavaParser.SEMI, 0) + + def getRuleIndex(self): + return JavaParser.RULE_resourceSpecification + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResourceSpecification" ): + listener.enterResourceSpecification(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResourceSpecification" ): + listener.exitResourceSpecification(self) + + + + + def resourceSpecification(self): + + localctx = JavaParser.ResourceSpecificationContext(self, self._ctx, self.state) + self.enterRule(localctx, 144, self.RULE_resourceSpecification) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 990 + self.match(JavaParser.LPAREN) + self.state = 991 + self.resources() + self.state = 993 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.SEMI: + self.state = 992 + self.match(JavaParser.SEMI) + + + self.state = 995 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ResourcesContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def resource(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ResourceContext) + else: + return self.getTypedRuleContext(JavaParser.ResourceContext,i) + + + def SEMI(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.SEMI) + else: + return self.getToken(JavaParser.SEMI, i) + + def getRuleIndex(self): + return JavaParser.RULE_resources + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResources" ): + listener.enterResources(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResources" ): + listener.exitResources(self) + + + + + def resources(self): + + localctx = JavaParser.ResourcesContext(self, self._ctx, self.state) + self.enterRule(localctx, 146, self.RULE_resources) + try: + self.enterOuterAlt(localctx, 1) + self.state = 997 + self.resource() + self.state = 1002 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,117,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 998 + self.match(JavaParser.SEMI) + self.state = 999 + self.resource() + self.state = 1004 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,117,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ResourceContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classOrInterfaceType(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) + + + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_resource + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterResource" ): + listener.enterResource(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitResource" ): + listener.exitResource(self) + + + + + def resource(self): + + localctx = JavaParser.ResourceContext(self, self._ctx, self.state) + self.enterRule(localctx, 148, self.RULE_resource) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1008 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,118,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1005 + self.variableModifier() + self.state = 1010 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,118,self._ctx) + + self.state = 1011 + self.classOrInterfaceType() + self.state = 1012 + self.variableDeclaratorId() + self.state = 1013 + self.match(JavaParser.ASSIGN) + self.state = 1014 + self.expression(0) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SwitchBlockStatementGroupContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def switchLabel(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.SwitchLabelContext) + else: + return self.getTypedRuleContext(JavaParser.SwitchLabelContext,i) + + + def blockStatement(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.BlockStatementContext) + else: + return self.getTypedRuleContext(JavaParser.BlockStatementContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_switchBlockStatementGroup + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchBlockStatementGroup" ): + listener.enterSwitchBlockStatementGroup(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchBlockStatementGroup" ): + listener.exitSwitchBlockStatementGroup(self) + + + + + def switchBlockStatementGroup(self): + + localctx = JavaParser.SwitchBlockStatementGroupContext(self, self._ctx, self.state) + self.enterRule(localctx, 150, self.RULE_switchBlockStatementGroup) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1017 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1016 + self.switchLabel() + self.state = 1019 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not (_la==JavaParser.CASE or _la==JavaParser.DEFAULT): + break + + self.state = 1022 + self._errHandler.sync(self) + _la = self._input.LA(1) + while True: + self.state = 1021 + self.blockStatement() + self.state = 1024 + self._errHandler.sync(self) + _la = self._input.LA(1) + if not ((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.ABSTRACT) | (1 << JavaParser.ASSERT) | (1 << JavaParser.BOOLEAN) | (1 << JavaParser.BREAK) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.CLASS) | (1 << JavaParser.CONTINUE) | (1 << JavaParser.DO) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.FOR) | (1 << JavaParser.IF) | (1 << JavaParser.INT) | (1 << JavaParser.INTERFACE) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.PRIVATE) | (1 << JavaParser.PROTECTED) | (1 << JavaParser.PUBLIC) | (1 << JavaParser.RETURN) | (1 << JavaParser.SHORT) | (1 << JavaParser.STATIC) | (1 << JavaParser.STRICTFP) | (1 << JavaParser.SUPER) | (1 << JavaParser.SWITCH) | (1 << JavaParser.SYNCHRONIZED) | (1 << JavaParser.THIS) | (1 << JavaParser.THROW) | (1 << JavaParser.TRY) | (1 << JavaParser.VOID) | (1 << JavaParser.WHILE) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN) | (1 << JavaParser.LBRACE))) != 0) or ((((_la - 67)) & ~0x3f) == 0 and ((1 << (_la - 67)) & ((1 << (JavaParser.SEMI - 67)) | (1 << (JavaParser.LT - 67)) | (1 << (JavaParser.BANG - 67)) | (1 << (JavaParser.TILDE - 67)) | (1 << (JavaParser.INC - 67)) | (1 << (JavaParser.DEC - 67)) | (1 << (JavaParser.ADD - 67)) | (1 << (JavaParser.SUB - 67)) | (1 << (JavaParser.AT - 67)) | (1 << (JavaParser.IDENTIFIER - 67)))) != 0)): + break + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SwitchLabelContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.constantExpression = None # ExpressionContext + self.enumConstantName = None # Token + + def CASE(self): + return self.getToken(JavaParser.CASE, 0) + + def COLON(self): + return self.getToken(JavaParser.COLON, 0) + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def DEFAULT(self): + return self.getToken(JavaParser.DEFAULT, 0) + + def getRuleIndex(self): + return JavaParser.RULE_switchLabel + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSwitchLabel" ): + listener.enterSwitchLabel(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSwitchLabel" ): + listener.exitSwitchLabel(self) + + + + + def switchLabel(self): + + localctx = JavaParser.SwitchLabelContext(self, self._ctx, self.state) + self.enterRule(localctx, 152, self.RULE_switchLabel) + try: + self.state = 1034 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.CASE]: + self.enterOuterAlt(localctx, 1) + self.state = 1026 + self.match(JavaParser.CASE) + self.state = 1029 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,121,self._ctx) + if la_ == 1: + self.state = 1027 + localctx.constantExpression = self.expression(0) + pass + + elif la_ == 2: + self.state = 1028 + localctx.enumConstantName = self.match(JavaParser.IDENTIFIER) + pass + + + self.state = 1031 + self.match(JavaParser.COLON) + pass + elif token in [JavaParser.DEFAULT]: + self.enterOuterAlt(localctx, 2) + self.state = 1032 + self.match(JavaParser.DEFAULT) + self.state = 1033 + self.match(JavaParser.COLON) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ForControlContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.forUpdate = None # ExpressionListContext + + def enhancedForControl(self): + return self.getTypedRuleContext(JavaParser.EnhancedForControlContext,0) + + + def SEMI(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.SEMI) + else: + return self.getToken(JavaParser.SEMI, i) + + def forInit(self): + return self.getTypedRuleContext(JavaParser.ForInitContext,0) + + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_forControl + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForControl" ): + listener.enterForControl(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForControl" ): + listener.exitForControl(self) + + + + + def forControl(self): + + localctx = JavaParser.ForControlContext(self, self._ctx, self.state) + self.enterRule(localctx, 154, self.RULE_forControl) + self._la = 0 # Token type + try: + self.state = 1048 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,126,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1036 + self.enhancedForControl() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1038 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1037 + self.forInit() + + + self.state = 1040 + self.match(JavaParser.SEMI) + self.state = 1042 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1041 + self.expression(0) + + + self.state = 1044 + self.match(JavaParser.SEMI) + self.state = 1046 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1045 + localctx.forUpdate = self.expressionList() + + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ForInitContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def localVariableDeclaration(self): + return self.getTypedRuleContext(JavaParser.LocalVariableDeclarationContext,0) + + + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_forInit + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterForInit" ): + listener.enterForInit(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitForInit" ): + listener.exitForInit(self) + + + + + def forInit(self): + + localctx = JavaParser.ForInitContext(self, self._ctx, self.state) + self.enterRule(localctx, 156, self.RULE_forInit) + try: + self.state = 1052 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,127,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1050 + self.localVariableDeclaration() + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1051 + self.expressionList() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class EnhancedForControlContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self): + return self.getTypedRuleContext(JavaParser.TypeTypeContext,0) + + + def variableDeclaratorId(self): + return self.getTypedRuleContext(JavaParser.VariableDeclaratorIdContext,0) + + + def COLON(self): + return self.getToken(JavaParser.COLON, 0) + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def variableModifier(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.VariableModifierContext) + else: + return self.getTypedRuleContext(JavaParser.VariableModifierContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_enhancedForControl + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterEnhancedForControl" ): + listener.enterEnhancedForControl(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitEnhancedForControl" ): + listener.exitEnhancedForControl(self) + + + + + def enhancedForControl(self): + + localctx = JavaParser.EnhancedForControlContext(self, self._ctx, self.state) + self.enterRule(localctx, 158, self.RULE_enhancedForControl) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1057 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,128,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1054 + self.variableModifier() + self.state = 1059 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,128,self._ctx) + + self.state = 1060 + self.typeType() + self.state = 1061 + self.variableDeclaratorId() + self.state = 1062 + self.match(JavaParser.COLON) + self.state = 1063 + self.expression(0) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ParExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def getRuleIndex(self): + return JavaParser.RULE_parExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterParExpression" ): + listener.enterParExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitParExpression" ): + listener.exitParExpression(self) + + + + + def parExpression(self): + + localctx = JavaParser.ParExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 160, self.RULE_parExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1065 + self.match(JavaParser.LPAREN) + self.state = 1066 + self.expression(0) + self.state = 1067 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExpressionListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_expressionList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExpressionList" ): + listener.enterExpressionList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExpressionList" ): + listener.exitExpressionList(self) + + + + + def expressionList(self): + + localctx = JavaParser.ExpressionListContext(self, self._ctx, self.state) + self.enterRule(localctx, 162, self.RULE_expressionList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1069 + self.expression(0) + self.state = 1074 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1070 + self.match(JavaParser.COMMA) + self.state = 1071 + self.expression(0) + self.state = 1076 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class MethodCallContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) + + + def THIS(self): + return self.getToken(JavaParser.THIS, 0) + + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) + + def getRuleIndex(self): + return JavaParser.RULE_methodCall + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterMethodCall" ): + listener.enterMethodCall(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitMethodCall" ): + listener.exitMethodCall(self) + + + + + def methodCall(self): + + localctx = JavaParser.MethodCallContext(self, self._ctx, self.state) + self.enterRule(localctx, 164, self.RULE_methodCall) + self._la = 0 # Token type + try: + self.state = 1095 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 1077 + self.match(JavaParser.IDENTIFIER) + self.state = 1078 + self.match(JavaParser.LPAREN) + self.state = 1080 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1079 + self.expressionList() + + + self.state = 1082 + self.match(JavaParser.RPAREN) + pass + elif token in [JavaParser.THIS]: + self.enterOuterAlt(localctx, 2) + self.state = 1083 + self.match(JavaParser.THIS) + self.state = 1084 + self.match(JavaParser.LPAREN) + self.state = 1086 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1085 + self.expressionList() + + + self.state = 1088 + self.match(JavaParser.RPAREN) + pass + elif token in [JavaParser.SUPER]: + self.enterOuterAlt(localctx, 3) + self.state = 1089 + self.match(JavaParser.SUPER) + self.state = 1090 + self.match(JavaParser.LPAREN) + self.state = 1092 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1091 + self.expressionList() + + + self.state = 1094 + self.match(JavaParser.RPAREN) + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + self.prefix = None # Token + self.bop = None # Token + self.postfix = None # Token + + def primary(self): + return self.getTypedRuleContext(JavaParser.PrimaryContext,0) + + + def methodCall(self): + return self.getTypedRuleContext(JavaParser.MethodCallContext,0) + + + def NEW(self): + return self.getToken(JavaParser.NEW, 0) + + def creator(self): + return self.getTypedRuleContext(JavaParser.CreatorContext,0) + + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def typeType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeTypeContext) + else: + return self.getTypedRuleContext(JavaParser.TypeTypeContext,i) + + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def BITAND(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.BITAND) + else: + return self.getToken(JavaParser.BITAND, i) + + def ADD(self): + return self.getToken(JavaParser.ADD, 0) + + def SUB(self): + return self.getToken(JavaParser.SUB, 0) + + def INC(self): + return self.getToken(JavaParser.INC, 0) + + def DEC(self): + return self.getToken(JavaParser.DEC, 0) + + def TILDE(self): + return self.getToken(JavaParser.TILDE, 0) + + def BANG(self): + return self.getToken(JavaParser.BANG, 0) + + def lambdaExpression(self): + return self.getTypedRuleContext(JavaParser.LambdaExpressionContext,0) + + + def COLONCOLON(self): + return self.getToken(JavaParser.COLONCOLON, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def typeArguments(self): + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,0) + + + def classType(self): + return self.getTypedRuleContext(JavaParser.ClassTypeContext,0) + + + def MUL(self): + return self.getToken(JavaParser.MUL, 0) + + def DIV(self): + return self.getToken(JavaParser.DIV, 0) + + def MOD(self): + return self.getToken(JavaParser.MOD, 0) + + def LT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LT) + else: + return self.getToken(JavaParser.LT, i) + + def GT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.GT) + else: + return self.getToken(JavaParser.GT, i) + + def LE(self): + return self.getToken(JavaParser.LE, 0) + + def GE(self): + return self.getToken(JavaParser.GE, 0) + + def EQUAL(self): + return self.getToken(JavaParser.EQUAL, 0) + + def NOTEQUAL(self): + return self.getToken(JavaParser.NOTEQUAL, 0) + + def CARET(self): + return self.getToken(JavaParser.CARET, 0) + + def BITOR(self): + return self.getToken(JavaParser.BITOR, 0) + + def AND(self): + return self.getToken(JavaParser.AND, 0) + + def OR(self): + return self.getToken(JavaParser.OR, 0) + + def COLON(self): + return self.getToken(JavaParser.COLON, 0) + + def QUESTION(self): + return self.getToken(JavaParser.QUESTION, 0) + + def ASSIGN(self): + return self.getToken(JavaParser.ASSIGN, 0) + + def ADD_ASSIGN(self): + return self.getToken(JavaParser.ADD_ASSIGN, 0) + + def SUB_ASSIGN(self): + return self.getToken(JavaParser.SUB_ASSIGN, 0) + + def MUL_ASSIGN(self): + return self.getToken(JavaParser.MUL_ASSIGN, 0) + + def DIV_ASSIGN(self): + return self.getToken(JavaParser.DIV_ASSIGN, 0) + + def AND_ASSIGN(self): + return self.getToken(JavaParser.AND_ASSIGN, 0) + + def OR_ASSIGN(self): + return self.getToken(JavaParser.OR_ASSIGN, 0) + + def XOR_ASSIGN(self): + return self.getToken(JavaParser.XOR_ASSIGN, 0) + + def RSHIFT_ASSIGN(self): + return self.getToken(JavaParser.RSHIFT_ASSIGN, 0) + + def URSHIFT_ASSIGN(self): + return self.getToken(JavaParser.URSHIFT_ASSIGN, 0) + + def LSHIFT_ASSIGN(self): + return self.getToken(JavaParser.LSHIFT_ASSIGN, 0) + + def MOD_ASSIGN(self): + return self.getToken(JavaParser.MOD_ASSIGN, 0) + + def DOT(self): + return self.getToken(JavaParser.DOT, 0) + + def THIS(self): + return self.getToken(JavaParser.THIS, 0) + + def innerCreator(self): + return self.getTypedRuleContext(JavaParser.InnerCreatorContext,0) + + + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) + + def superSuffix(self): + return self.getTypedRuleContext(JavaParser.SuperSuffixContext,0) + + + def explicitGenericInvocation(self): + return self.getTypedRuleContext(JavaParser.ExplicitGenericInvocationContext,0) + + + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) + + + def LBRACK(self): + return self.getToken(JavaParser.LBRACK, 0) + + def RBRACK(self): + return self.getToken(JavaParser.RBRACK, 0) + + def INSTANCEOF(self): + return self.getToken(JavaParser.INSTANCEOF, 0) + + def getRuleIndex(self): + return JavaParser.RULE_expression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExpression" ): + listener.enterExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExpression" ): + listener.exitExpression(self) + + + + def expression(self, _p:int=0): + _parentctx = self._ctx + _parentState = self.state + localctx = JavaParser.ExpressionContext(self, self._ctx, _parentState) + _prevctx = localctx + _startState = 166 + self.enterRecursionRule(localctx, 166, self.RULE_expression, _p) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1141 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,139,self._ctx) + if la_ == 1: + self.state = 1098 + self.primary() + pass + + elif la_ == 2: + self.state = 1099 + self.methodCall() + pass + + elif la_ == 3: + self.state = 1100 + self.match(JavaParser.NEW) + self.state = 1101 + self.creator() + pass + + elif la_ == 4: + self.state = 1102 + self.match(JavaParser.LPAREN) + self.state = 1106 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,134,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1103 + self.annotation() + self.state = 1108 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,134,self._ctx) + + self.state = 1109 + self.typeType() + self.state = 1114 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.BITAND: + self.state = 1110 + self.match(JavaParser.BITAND) + self.state = 1111 + self.typeType() + self.state = 1116 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1117 + self.match(JavaParser.RPAREN) + self.state = 1118 + self.expression(21) + pass + + elif la_ == 5: + self.state = 1120 + localctx.prefix = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 83)) & ~0x3f) == 0 and ((1 << (_la - 83)) & ((1 << (JavaParser.INC - 83)) | (1 << (JavaParser.DEC - 83)) | (1 << (JavaParser.ADD - 83)) | (1 << (JavaParser.SUB - 83)))) != 0)): + localctx.prefix = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1121 + self.expression(19) + pass + + elif la_ == 6: + self.state = 1122 + localctx.prefix = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.BANG or _la==JavaParser.TILDE): + localctx.prefix = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1123 + self.expression(18) + pass + + elif la_ == 7: + self.state = 1124 + self.lambdaExpression() + pass + + elif la_ == 8: + self.state = 1125 + self.typeType() + self.state = 1126 + self.match(JavaParser.COLONCOLON) + self.state = 1132 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LT, JavaParser.IDENTIFIER]: + self.state = 1128 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1127 + self.typeArguments() + + + self.state = 1130 + self.match(JavaParser.IDENTIFIER) + pass + elif token in [JavaParser.NEW]: + self.state = 1131 + self.match(JavaParser.NEW) + pass + else: + raise NoViableAltException(self) + + pass + + elif la_ == 9: + self.state = 1134 + self.classType() + self.state = 1135 + self.match(JavaParser.COLONCOLON) + self.state = 1137 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1136 + self.typeArguments() + + + self.state = 1139 + self.match(JavaParser.NEW) + pass + + + self._ctx.stop = self._input.LT(-1) + self.state = 1223 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,145,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + if self._parseListeners is not None: + self.triggerExitRuleEvent() + _prevctx = localctx + self.state = 1221 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,144,self._ctx) + if la_ == 1: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1143 + if not self.precpred(self._ctx, 17): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 17)") + self.state = 1144 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 87)) & ~0x3f) == 0 and ((1 << (_la - 87)) & ((1 << (JavaParser.MUL - 87)) | (1 << (JavaParser.DIV - 87)) | (1 << (JavaParser.MOD - 87)))) != 0)): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1145 + self.expression(18) + pass + + elif la_ == 2: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1146 + if not self.precpred(self._ctx, 16): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 16)") + self.state = 1147 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.ADD or _la==JavaParser.SUB): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1148 + self.expression(17) + pass + + elif la_ == 3: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1149 + if not self.precpred(self._ctx, 15): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 15)") + self.state = 1157 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,140,self._ctx) + if la_ == 1: + self.state = 1150 + self.match(JavaParser.LT) + self.state = 1151 + self.match(JavaParser.LT) + pass + + elif la_ == 2: + self.state = 1152 + self.match(JavaParser.GT) + self.state = 1153 + self.match(JavaParser.GT) + self.state = 1154 + self.match(JavaParser.GT) + pass + + elif la_ == 3: + self.state = 1155 + self.match(JavaParser.GT) + self.state = 1156 + self.match(JavaParser.GT) + pass + + + self.state = 1159 + self.expression(16) + pass + + elif la_ == 4: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1160 + if not self.precpred(self._ctx, 14): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 14)") + self.state = 1161 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 71)) & ~0x3f) == 0 and ((1 << (_la - 71)) & ((1 << (JavaParser.GT - 71)) | (1 << (JavaParser.LT - 71)) | (1 << (JavaParser.LE - 71)) | (1 << (JavaParser.GE - 71)))) != 0)): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1162 + self.expression(15) + pass + + elif la_ == 5: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1163 + if not self.precpred(self._ctx, 12): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 12)") + self.state = 1164 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.EQUAL or _la==JavaParser.NOTEQUAL): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1165 + self.expression(13) + pass + + elif la_ == 6: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1166 + if not self.precpred(self._ctx, 11): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 11)") + self.state = 1167 + localctx.bop = self.match(JavaParser.BITAND) + self.state = 1168 + self.expression(12) + pass + + elif la_ == 7: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1169 + if not self.precpred(self._ctx, 10): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 10)") + self.state = 1170 + localctx.bop = self.match(JavaParser.CARET) + self.state = 1171 + self.expression(11) + pass + + elif la_ == 8: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1172 + if not self.precpred(self._ctx, 9): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 9)") + self.state = 1173 + localctx.bop = self.match(JavaParser.BITOR) + self.state = 1174 + self.expression(10) + pass + + elif la_ == 9: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1175 + if not self.precpred(self._ctx, 8): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 8)") + self.state = 1176 + localctx.bop = self.match(JavaParser.AND) + self.state = 1177 + self.expression(9) + pass + + elif la_ == 10: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1178 + if not self.precpred(self._ctx, 7): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 7)") + self.state = 1179 + localctx.bop = self.match(JavaParser.OR) + self.state = 1180 + self.expression(8) + pass + + elif la_ == 11: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1181 + if not self.precpred(self._ctx, 6): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 6)") + self.state = 1182 + localctx.bop = self.match(JavaParser.QUESTION) + self.state = 1183 + self.expression(0) + self.state = 1184 + self.match(JavaParser.COLON) + self.state = 1185 + self.expression(6) + pass + + elif la_ == 12: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1187 + if not self.precpred(self._ctx, 5): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 5)") + self.state = 1188 + localctx.bop = self._input.LT(1) + _la = self._input.LA(1) + if not(((((_la - 70)) & ~0x3f) == 0 and ((1 << (_la - 70)) & ((1 << (JavaParser.ASSIGN - 70)) | (1 << (JavaParser.ADD_ASSIGN - 70)) | (1 << (JavaParser.SUB_ASSIGN - 70)) | (1 << (JavaParser.MUL_ASSIGN - 70)) | (1 << (JavaParser.DIV_ASSIGN - 70)) | (1 << (JavaParser.AND_ASSIGN - 70)) | (1 << (JavaParser.OR_ASSIGN - 70)) | (1 << (JavaParser.XOR_ASSIGN - 70)) | (1 << (JavaParser.MOD_ASSIGN - 70)) | (1 << (JavaParser.LSHIFT_ASSIGN - 70)) | (1 << (JavaParser.RSHIFT_ASSIGN - 70)) | (1 << (JavaParser.URSHIFT_ASSIGN - 70)))) != 0)): + localctx.bop = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + self.state = 1189 + self.expression(5) + pass + + elif la_ == 13: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1190 + if not self.precpred(self._ctx, 25): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 25)") + self.state = 1191 + localctx.bop = self.match(JavaParser.DOT) + self.state = 1203 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,142,self._ctx) + if la_ == 1: + self.state = 1192 + self.match(JavaParser.IDENTIFIER) + pass + + elif la_ == 2: + self.state = 1193 + self.methodCall() + pass + + elif la_ == 3: + self.state = 1194 + self.match(JavaParser.THIS) + pass + + elif la_ == 4: + self.state = 1195 + self.match(JavaParser.NEW) + self.state = 1197 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1196 + self.nonWildcardTypeArguments() + + + self.state = 1199 + self.innerCreator() + pass + + elif la_ == 5: + self.state = 1200 + self.match(JavaParser.SUPER) + self.state = 1201 + self.superSuffix() + pass + + elif la_ == 6: + self.state = 1202 + self.explicitGenericInvocation() + pass + + + pass + + elif la_ == 14: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1205 + if not self.precpred(self._ctx, 24): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 24)") + self.state = 1206 + self.match(JavaParser.LBRACK) + self.state = 1207 + self.expression(0) + self.state = 1208 + self.match(JavaParser.RBRACK) + pass + + elif la_ == 15: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1210 + if not self.precpred(self._ctx, 20): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 20)") + self.state = 1211 + localctx.postfix = self._input.LT(1) + _la = self._input.LA(1) + if not(_la==JavaParser.INC or _la==JavaParser.DEC): + localctx.postfix = self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + pass + + elif la_ == 16: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1212 + if not self.precpred(self._ctx, 13): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 13)") + self.state = 1213 + localctx.bop = self.match(JavaParser.INSTANCEOF) + self.state = 1214 + self.typeType() + pass + + elif la_ == 17: + localctx = JavaParser.ExpressionContext(self, _parentctx, _parentState) + self.pushNewRecursionContext(localctx, _startState, self.RULE_expression) + self.state = 1215 + if not self.precpred(self._ctx, 3): + from antlr4.error.Errors import FailedPredicateException + raise FailedPredicateException(self, "self.precpred(self._ctx, 3)") + self.state = 1216 + self.match(JavaParser.COLONCOLON) + self.state = 1218 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1217 + self.typeArguments() + + + self.state = 1220 + self.match(JavaParser.IDENTIFIER) + pass + + + self.state = 1225 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,145,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.unrollRecursionContexts(_parentctx) + return localctx + + class LambdaExpressionContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def lambdaParameters(self): + return self.getTypedRuleContext(JavaParser.LambdaParametersContext,0) + + + def ARROW(self): + return self.getToken(JavaParser.ARROW, 0) + + def lambdaBody(self): + return self.getTypedRuleContext(JavaParser.LambdaBodyContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_lambdaExpression + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaExpression" ): + listener.enterLambdaExpression(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaExpression" ): + listener.exitLambdaExpression(self) + + + + + def lambdaExpression(self): + + localctx = JavaParser.LambdaExpressionContext(self, self._ctx, self.state) + self.enterRule(localctx, 168, self.RULE_lambdaExpression) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1226 + self.lambdaParameters() + self.state = 1227 + self.match(JavaParser.ARROW) + self.state = 1228 + self.lambdaBody() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LambdaParametersContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def formalParameterList(self): + return self.getTypedRuleContext(JavaParser.FormalParameterListContext,0) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_lambdaParameters + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaParameters" ): + listener.enterLambdaParameters(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaParameters" ): + listener.exitLambdaParameters(self) + + + + + def lambdaParameters(self): + + localctx = JavaParser.LambdaParametersContext(self, self._ctx, self.state) + self.enterRule(localctx, 170, self.RULE_lambdaParameters) + self._la = 0 # Token type + try: + self.state = 1246 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,148,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1230 + self.match(JavaParser.IDENTIFIER) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1231 + self.match(JavaParser.LPAREN) + self.state = 1233 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FINAL) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.SHORT))) != 0) or _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 1232 + self.formalParameterList() + + + self.state = 1235 + self.match(JavaParser.RPAREN) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1236 + self.match(JavaParser.LPAREN) + self.state = 1237 + self.match(JavaParser.IDENTIFIER) + self.state = 1242 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1238 + self.match(JavaParser.COMMA) + self.state = 1239 + self.match(JavaParser.IDENTIFIER) + self.state = 1244 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1245 + self.match(JavaParser.RPAREN) + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class LambdaBodyContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def block(self): + return self.getTypedRuleContext(JavaParser.BlockContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_lambdaBody + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterLambdaBody" ): + listener.enterLambdaBody(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitLambdaBody" ): + listener.exitLambdaBody(self) + + + + + def lambdaBody(self): + + localctx = JavaParser.LambdaBodyContext(self, self._ctx, self.state) + self.enterRule(localctx, 172, self.RULE_lambdaBody) + try: + self.state = 1250 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.NEW, JavaParser.SHORT, JavaParser.SUPER, JavaParser.THIS, JavaParser.VOID, JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL, JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL, JavaParser.BOOL_LITERAL, JavaParser.CHAR_LITERAL, JavaParser.STRING_LITERAL, JavaParser.NULL_LITERAL, JavaParser.LPAREN, JavaParser.LT, JavaParser.BANG, JavaParser.TILDE, JavaParser.INC, JavaParser.DEC, JavaParser.ADD, JavaParser.SUB, JavaParser.AT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 1248 + self.expression(0) + pass + elif token in [JavaParser.LBRACE]: + self.enterOuterAlt(localctx, 2) + self.state = 1249 + self.block() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimaryContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def expression(self): + return self.getTypedRuleContext(JavaParser.ExpressionContext,0) + + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def THIS(self): + return self.getToken(JavaParser.THIS, 0) + + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) + + def literal(self): + return self.getTypedRuleContext(JavaParser.LiteralContext,0) + + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def typeTypeOrVoid(self): + return self.getTypedRuleContext(JavaParser.TypeTypeOrVoidContext,0) + + + def DOT(self): + return self.getToken(JavaParser.DOT, 0) + + def CLASS(self): + return self.getToken(JavaParser.CLASS, 0) + + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) + + + def explicitGenericInvocationSuffix(self): + return self.getTypedRuleContext(JavaParser.ExplicitGenericInvocationSuffixContext,0) + + + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_primary + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimary" ): + listener.enterPrimary(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimary" ): + listener.exitPrimary(self) + + + + + def primary(self): + + localctx = JavaParser.PrimaryContext(self, self._ctx, self.state) + self.enterRule(localctx, 174, self.RULE_primary) + try: + self.state = 1270 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,151,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1252 + self.match(JavaParser.LPAREN) + self.state = 1253 + self.expression(0) + self.state = 1254 + self.match(JavaParser.RPAREN) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1256 + self.match(JavaParser.THIS) + pass + + elif la_ == 3: + self.enterOuterAlt(localctx, 3) + self.state = 1257 + self.match(JavaParser.SUPER) + pass + + elif la_ == 4: + self.enterOuterAlt(localctx, 4) + self.state = 1258 + self.literal() + pass + + elif la_ == 5: + self.enterOuterAlt(localctx, 5) + self.state = 1259 + self.match(JavaParser.IDENTIFIER) + pass + + elif la_ == 6: + self.enterOuterAlt(localctx, 6) + self.state = 1260 + self.typeTypeOrVoid() + self.state = 1261 + self.match(JavaParser.DOT) + self.state = 1262 + self.match(JavaParser.CLASS) + pass + + elif la_ == 7: + self.enterOuterAlt(localctx, 7) + self.state = 1264 + self.nonWildcardTypeArguments() + self.state = 1268 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.SUPER, JavaParser.IDENTIFIER]: + self.state = 1265 + self.explicitGenericInvocationSuffix() + pass + elif token in [JavaParser.THIS]: + self.state = 1266 + self.match(JavaParser.THIS) + self.state = 1267 + self.arguments() + pass + else: + raise NoViableAltException(self) + + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def classOrInterfaceType(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceTypeContext,0) + + + def DOT(self): + return self.getToken(JavaParser.DOT, 0) + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def typeArguments(self): + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_classType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassType" ): + listener.enterClassType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassType" ): + listener.exitClassType(self) + + + + + def classType(self): + + localctx = JavaParser.ClassTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 176, self.RULE_classType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1275 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,152,self._ctx) + if la_ == 1: + self.state = 1272 + self.classOrInterfaceType() + self.state = 1273 + self.match(JavaParser.DOT) + + + self.state = 1280 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,153,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1277 + self.annotation() + self.state = 1282 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,153,self._ctx) + + self.state = 1283 + self.match(JavaParser.IDENTIFIER) + self.state = 1285 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1284 + self.typeArguments() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CreatorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) + + + def createdName(self): + return self.getTypedRuleContext(JavaParser.CreatedNameContext,0) + + + def classCreatorRest(self): + return self.getTypedRuleContext(JavaParser.ClassCreatorRestContext,0) + + + def arrayCreatorRest(self): + return self.getTypedRuleContext(JavaParser.ArrayCreatorRestContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_creator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCreator" ): + listener.enterCreator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCreator" ): + listener.exitCreator(self) + + + + + def creator(self): + + localctx = JavaParser.CreatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 178, self.RULE_creator) + try: + self.state = 1296 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LT]: + self.enterOuterAlt(localctx, 1) + self.state = 1287 + self.nonWildcardTypeArguments() + self.state = 1288 + self.createdName() + self.state = 1289 + self.classCreatorRest() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT, JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 1291 + self.createdName() + self.state = 1294 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LBRACK]: + self.state = 1292 + self.arrayCreatorRest() + pass + elif token in [JavaParser.LPAREN]: + self.state = 1293 + self.classCreatorRest() + pass + else: + raise NoViableAltException(self) + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class CreatedNameContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.IDENTIFIER) + else: + return self.getToken(JavaParser.IDENTIFIER, i) + + def typeArgumentsOrDiamond(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeArgumentsOrDiamondContext) + else: + return self.getTypedRuleContext(JavaParser.TypeArgumentsOrDiamondContext,i) + + + def DOT(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.DOT) + else: + return self.getToken(JavaParser.DOT, i) + + def primitiveType(self): + return self.getTypedRuleContext(JavaParser.PrimitiveTypeContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_createdName + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterCreatedName" ): + listener.enterCreatedName(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitCreatedName" ): + listener.exitCreatedName(self) + + + + + def createdName(self): + + localctx = JavaParser.CreatedNameContext(self, self._ctx, self.state) + self.enterRule(localctx, 180, self.RULE_createdName) + self._la = 0 # Token type + try: + self.state = 1313 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 1) + self.state = 1298 + self.match(JavaParser.IDENTIFIER) + self.state = 1300 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1299 + self.typeArgumentsOrDiamond() + + + self.state = 1309 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.DOT: + self.state = 1302 + self.match(JavaParser.DOT) + self.state = 1303 + self.match(JavaParser.IDENTIFIER) + self.state = 1305 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1304 + self.typeArgumentsOrDiamond() + + + self.state = 1311 + self._errHandler.sync(self) + _la = self._input.LA(1) + + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT]: + self.enterOuterAlt(localctx, 2) + self.state = 1312 + self.primitiveType() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class InnerCreatorContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def classCreatorRest(self): + return self.getTypedRuleContext(JavaParser.ClassCreatorRestContext,0) + + + def nonWildcardTypeArgumentsOrDiamond(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsOrDiamondContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_innerCreator + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterInnerCreator" ): + listener.enterInnerCreator(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitInnerCreator" ): + listener.exitInnerCreator(self) + + + + + def innerCreator(self): + + localctx = JavaParser.InnerCreatorContext(self, self._ctx, self.state) + self.enterRule(localctx, 182, self.RULE_innerCreator) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1315 + self.match(JavaParser.IDENTIFIER) + self.state = 1317 + self._errHandler.sync(self) + _la = self._input.LA(1) + if _la==JavaParser.LT: + self.state = 1316 + self.nonWildcardTypeArgumentsOrDiamond() + + + self.state = 1319 + self.classCreatorRest() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArrayCreatorRestContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def arrayInitializer(self): + return self.getTypedRuleContext(JavaParser.ArrayInitializerContext,0) + + + def expression(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.ExpressionContext) + else: + return self.getTypedRuleContext(JavaParser.ExpressionContext,i) + + + def getRuleIndex(self): + return JavaParser.RULE_arrayCreatorRest + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArrayCreatorRest" ): + listener.enterArrayCreatorRest(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArrayCreatorRest" ): + listener.exitArrayCreatorRest(self) + + + + + def arrayCreatorRest(self): + + localctx = JavaParser.ArrayCreatorRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 184, self.RULE_arrayCreatorRest) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1321 + self.match(JavaParser.LBRACK) + self.state = 1349 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.RBRACK]: + self.state = 1322 + self.match(JavaParser.RBRACK) + self.state = 1327 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.LBRACK: + self.state = 1323 + self.match(JavaParser.LBRACK) + self.state = 1324 + self.match(JavaParser.RBRACK) + self.state = 1329 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1330 + self.arrayInitializer() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.NEW, JavaParser.SHORT, JavaParser.SUPER, JavaParser.THIS, JavaParser.VOID, JavaParser.DECIMAL_LITERAL, JavaParser.HEX_LITERAL, JavaParser.OCT_LITERAL, JavaParser.BINARY_LITERAL, JavaParser.FLOAT_LITERAL, JavaParser.HEX_FLOAT_LITERAL, JavaParser.BOOL_LITERAL, JavaParser.CHAR_LITERAL, JavaParser.STRING_LITERAL, JavaParser.NULL_LITERAL, JavaParser.LPAREN, JavaParser.LT, JavaParser.BANG, JavaParser.TILDE, JavaParser.INC, JavaParser.DEC, JavaParser.ADD, JavaParser.SUB, JavaParser.AT, JavaParser.IDENTIFIER]: + self.state = 1331 + self.expression(0) + self.state = 1332 + self.match(JavaParser.RBRACK) + self.state = 1339 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,163,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1333 + self.match(JavaParser.LBRACK) + self.state = 1334 + self.expression(0) + self.state = 1335 + self.match(JavaParser.RBRACK) + self.state = 1341 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,163,self._ctx) + + self.state = 1346 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,164,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1342 + self.match(JavaParser.LBRACK) + self.state = 1343 + self.match(JavaParser.RBRACK) + self.state = 1348 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,164,self._ctx) + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ClassCreatorRestContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + + + def classBody(self): + return self.getTypedRuleContext(JavaParser.ClassBodyContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_classCreatorRest + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterClassCreatorRest" ): + listener.enterClassCreatorRest(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitClassCreatorRest" ): + listener.exitClassCreatorRest(self) + + + + + def classCreatorRest(self): + + localctx = JavaParser.ClassCreatorRestContext(self, self._ctx, self.state) + self.enterRule(localctx, 186, self.RULE_classCreatorRest) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1351 + self.arguments() + self.state = 1353 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,166,self._ctx) + if la_ == 1: + self.state = 1352 + self.classBody() + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExplicitGenericInvocationContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) + + + def explicitGenericInvocationSuffix(self): + return self.getTypedRuleContext(JavaParser.ExplicitGenericInvocationSuffixContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_explicitGenericInvocation + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExplicitGenericInvocation" ): + listener.enterExplicitGenericInvocation(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExplicitGenericInvocation" ): + listener.exitExplicitGenericInvocation(self) + + + + + def explicitGenericInvocation(self): + + localctx = JavaParser.ExplicitGenericInvocationContext(self, self._ctx, self.state) + self.enterRule(localctx, 188, self.RULE_explicitGenericInvocation) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1355 + self.nonWildcardTypeArguments() + self.state = 1356 + self.explicitGenericInvocationSuffix() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeArgumentsOrDiamondContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LT(self): + return self.getToken(JavaParser.LT, 0) + + def GT(self): + return self.getToken(JavaParser.GT, 0) + + def typeArguments(self): + return self.getTypedRuleContext(JavaParser.TypeArgumentsContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_typeArgumentsOrDiamond + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArgumentsOrDiamond" ): + listener.enterTypeArgumentsOrDiamond(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArgumentsOrDiamond" ): + listener.exitTypeArgumentsOrDiamond(self) + + + + + def typeArgumentsOrDiamond(self): + + localctx = JavaParser.TypeArgumentsOrDiamondContext(self, self._ctx, self.state) + self.enterRule(localctx, 190, self.RULE_typeArgumentsOrDiamond) + try: + self.state = 1361 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,167,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1358 + self.match(JavaParser.LT) + self.state = 1359 + self.match(JavaParser.GT) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1360 + self.typeArguments() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class NonWildcardTypeArgumentsOrDiamondContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LT(self): + return self.getToken(JavaParser.LT, 0) + + def GT(self): + return self.getToken(JavaParser.GT, 0) + + def nonWildcardTypeArguments(self): + return self.getTypedRuleContext(JavaParser.NonWildcardTypeArgumentsContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_nonWildcardTypeArgumentsOrDiamond + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNonWildcardTypeArgumentsOrDiamond" ): + listener.enterNonWildcardTypeArgumentsOrDiamond(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNonWildcardTypeArgumentsOrDiamond" ): + listener.exitNonWildcardTypeArgumentsOrDiamond(self) + + + + + def nonWildcardTypeArgumentsOrDiamond(self): + + localctx = JavaParser.NonWildcardTypeArgumentsOrDiamondContext(self, self._ctx, self.state) + self.enterRule(localctx, 192, self.RULE_nonWildcardTypeArgumentsOrDiamond) + try: + self.state = 1366 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,168,self._ctx) + if la_ == 1: + self.enterOuterAlt(localctx, 1) + self.state = 1363 + self.match(JavaParser.LT) + self.state = 1364 + self.match(JavaParser.GT) + pass + + elif la_ == 2: + self.enterOuterAlt(localctx, 2) + self.state = 1365 + self.nonWildcardTypeArguments() + pass + + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class NonWildcardTypeArgumentsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LT(self): + return self.getToken(JavaParser.LT, 0) + + def typeList(self): + return self.getTypedRuleContext(JavaParser.TypeListContext,0) + + + def GT(self): + return self.getToken(JavaParser.GT, 0) + + def getRuleIndex(self): + return JavaParser.RULE_nonWildcardTypeArguments + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterNonWildcardTypeArguments" ): + listener.enterNonWildcardTypeArguments(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitNonWildcardTypeArguments" ): + listener.exitNonWildcardTypeArguments(self) + + + + + def nonWildcardTypeArguments(self): + + localctx = JavaParser.NonWildcardTypeArgumentsContext(self, self._ctx, self.state) + self.enterRule(localctx, 194, self.RULE_nonWildcardTypeArguments) + try: + self.enterOuterAlt(localctx, 1) + self.state = 1368 + self.match(JavaParser.LT) + self.state = 1369 + self.typeList() + self.state = 1370 + self.match(JavaParser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeListContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def typeType(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeTypeContext) + else: + return self.getTypedRuleContext(JavaParser.TypeTypeContext,i) + + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeList + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeList" ): + listener.enterTypeList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeList" ): + listener.exitTypeList(self) + + + + + def typeList(self): + + localctx = JavaParser.TypeListContext(self, self._ctx, self.state) + self.enterRule(localctx, 196, self.RULE_typeList) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1372 + self.typeType() + self.state = 1377 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1373 + self.match(JavaParser.COMMA) + self.state = 1374 + self.typeType() + self.state = 1379 + self._errHandler.sync(self) + _la = self._input.LA(1) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def classOrInterfaceType(self): + return self.getTypedRuleContext(JavaParser.ClassOrInterfaceTypeContext,0) + + + def primitiveType(self): + return self.getTypedRuleContext(JavaParser.PrimitiveTypeContext,0) + + + def annotation(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.AnnotationContext) + else: + return self.getTypedRuleContext(JavaParser.AnnotationContext,i) + + + def LBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.LBRACK) + else: + return self.getToken(JavaParser.LBRACK, i) + + def RBRACK(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.RBRACK) + else: + return self.getToken(JavaParser.RBRACK, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeType" ): + listener.enterTypeType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeType" ): + listener.exitTypeType(self) + + + + + def typeType(self): + + localctx = JavaParser.TypeTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 198, self.RULE_typeType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1383 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,170,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1380 + self.annotation() + self.state = 1385 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,170,self._ctx) + + self.state = 1388 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.IDENTIFIER]: + self.state = 1386 + self.classOrInterfaceType() + pass + elif token in [JavaParser.BOOLEAN, JavaParser.BYTE, JavaParser.CHAR, JavaParser.DOUBLE, JavaParser.FLOAT, JavaParser.INT, JavaParser.LONG, JavaParser.SHORT]: + self.state = 1387 + self.primitiveType() + pass + else: + raise NoViableAltException(self) + + self.state = 1400 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,173,self._ctx) + while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: + if _alt==1: + self.state = 1393 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.AT or _la==JavaParser.IDENTIFIER: + self.state = 1390 + self.annotation() + self.state = 1395 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1396 + self.match(JavaParser.LBRACK) + self.state = 1397 + self.match(JavaParser.RBRACK) + self.state = 1402 + self._errHandler.sync(self) + _alt = self._interp.adaptivePredict(self._input,173,self._ctx) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class PrimitiveTypeContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def BOOLEAN(self): + return self.getToken(JavaParser.BOOLEAN, 0) + + def CHAR(self): + return self.getToken(JavaParser.CHAR, 0) + + def BYTE(self): + return self.getToken(JavaParser.BYTE, 0) + + def SHORT(self): + return self.getToken(JavaParser.SHORT, 0) + + def INT(self): + return self.getToken(JavaParser.INT, 0) + + def LONG(self): + return self.getToken(JavaParser.LONG, 0) + + def FLOAT(self): + return self.getToken(JavaParser.FLOAT, 0) + + def DOUBLE(self): + return self.getToken(JavaParser.DOUBLE, 0) + + def getRuleIndex(self): + return JavaParser.RULE_primitiveType + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrimitiveType" ): + listener.enterPrimitiveType(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrimitiveType" ): + listener.exitPrimitiveType(self) + + + + + def primitiveType(self): + + localctx = JavaParser.PrimitiveTypeContext(self, self._ctx, self.state) + self.enterRule(localctx, 200, self.RULE_primitiveType) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1403 + _la = self._input.LA(1) + if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.SHORT))) != 0)): + self._errHandler.recoverInline(self) + else: + self._errHandler.reportMatch(self) + self.consume() + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class TypeArgumentsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LT(self): + return self.getToken(JavaParser.LT, 0) + + def typeArgument(self, i:int=None): + if i is None: + return self.getTypedRuleContexts(JavaParser.TypeArgumentContext) + else: + return self.getTypedRuleContext(JavaParser.TypeArgumentContext,i) + + + def GT(self): + return self.getToken(JavaParser.GT, 0) + + def COMMA(self, i:int=None): + if i is None: + return self.getTokens(JavaParser.COMMA) + else: + return self.getToken(JavaParser.COMMA, i) + + def getRuleIndex(self): + return JavaParser.RULE_typeArguments + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterTypeArguments" ): + listener.enterTypeArguments(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitTypeArguments" ): + listener.exitTypeArguments(self) + + + + + def typeArguments(self): + + localctx = JavaParser.TypeArgumentsContext(self, self._ctx, self.state) + self.enterRule(localctx, 202, self.RULE_typeArguments) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1405 + self.match(JavaParser.LT) + self.state = 1406 + self.typeArgument() + self.state = 1411 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==JavaParser.COMMA: + self.state = 1407 + self.match(JavaParser.COMMA) + self.state = 1408 + self.typeArgument() + self.state = 1413 + self._errHandler.sync(self) + _la = self._input.LA(1) + + self.state = 1414 + self.match(JavaParser.GT) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class SuperSuffixContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + + + def DOT(self): + return self.getToken(JavaParser.DOT, 0) + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def getRuleIndex(self): + return JavaParser.RULE_superSuffix + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterSuperSuffix" ): + listener.enterSuperSuffix(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitSuperSuffix" ): + listener.exitSuperSuffix(self) + + + + + def superSuffix(self): + + localctx = JavaParser.SuperSuffixContext(self, self._ctx, self.state) + self.enterRule(localctx, 204, self.RULE_superSuffix) + try: + self.state = 1422 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.LPAREN]: + self.enterOuterAlt(localctx, 1) + self.state = 1416 + self.arguments() + pass + elif token in [JavaParser.DOT]: + self.enterOuterAlt(localctx, 2) + self.state = 1417 + self.match(JavaParser.DOT) + self.state = 1418 + self.match(JavaParser.IDENTIFIER) + self.state = 1420 + self._errHandler.sync(self) + la_ = self._interp.adaptivePredict(self._input,175,self._ctx) + if la_ == 1: + self.state = 1419 + self.arguments() + + + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ExplicitGenericInvocationSuffixContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def SUPER(self): + return self.getToken(JavaParser.SUPER, 0) + + def superSuffix(self): + return self.getTypedRuleContext(JavaParser.SuperSuffixContext,0) + + + def IDENTIFIER(self): + return self.getToken(JavaParser.IDENTIFIER, 0) + + def arguments(self): + return self.getTypedRuleContext(JavaParser.ArgumentsContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_explicitGenericInvocationSuffix + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterExplicitGenericInvocationSuffix" ): + listener.enterExplicitGenericInvocationSuffix(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitExplicitGenericInvocationSuffix" ): + listener.exitExplicitGenericInvocationSuffix(self) + + + + + def explicitGenericInvocationSuffix(self): + + localctx = JavaParser.ExplicitGenericInvocationSuffixContext(self, self._ctx, self.state) + self.enterRule(localctx, 206, self.RULE_explicitGenericInvocationSuffix) + try: + self.state = 1428 + self._errHandler.sync(self) + token = self._input.LA(1) + if token in [JavaParser.SUPER]: + self.enterOuterAlt(localctx, 1) + self.state = 1424 + self.match(JavaParser.SUPER) + self.state = 1425 + self.superSuffix() + pass + elif token in [JavaParser.IDENTIFIER]: + self.enterOuterAlt(localctx, 2) + self.state = 1426 + self.match(JavaParser.IDENTIFIER) + self.state = 1427 + self.arguments() + pass + else: + raise NoViableAltException(self) + + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + class ArgumentsContext(ParserRuleContext): + + def __init__(self, parser, parent:ParserRuleContext=None, invokingState:int=-1): + super().__init__(parent, invokingState) + self.parser = parser + + def LPAREN(self): + return self.getToken(JavaParser.LPAREN, 0) + + def RPAREN(self): + return self.getToken(JavaParser.RPAREN, 0) + + def expressionList(self): + return self.getTypedRuleContext(JavaParser.ExpressionListContext,0) + + + def getRuleIndex(self): + return JavaParser.RULE_arguments + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterArguments" ): + listener.enterArguments(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitArguments" ): + listener.exitArguments(self) + + + + + def arguments(self): + + localctx = JavaParser.ArgumentsContext(self, self._ctx, self.state) + self.enterRule(localctx, 208, self.RULE_arguments) + self._la = 0 # Token type + try: + self.enterOuterAlt(localctx, 1) + self.state = 1430 + self.match(JavaParser.LPAREN) + self.state = 1432 + self._errHandler.sync(self) + _la = self._input.LA(1) + if (((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << JavaParser.BOOLEAN) | (1 << JavaParser.BYTE) | (1 << JavaParser.CHAR) | (1 << JavaParser.DOUBLE) | (1 << JavaParser.FLOAT) | (1 << JavaParser.INT) | (1 << JavaParser.LONG) | (1 << JavaParser.NEW) | (1 << JavaParser.SHORT) | (1 << JavaParser.SUPER) | (1 << JavaParser.THIS) | (1 << JavaParser.VOID) | (1 << JavaParser.DECIMAL_LITERAL) | (1 << JavaParser.HEX_LITERAL) | (1 << JavaParser.OCT_LITERAL) | (1 << JavaParser.BINARY_LITERAL) | (1 << JavaParser.FLOAT_LITERAL) | (1 << JavaParser.HEX_FLOAT_LITERAL) | (1 << JavaParser.BOOL_LITERAL) | (1 << JavaParser.CHAR_LITERAL) | (1 << JavaParser.STRING_LITERAL) | (1 << JavaParser.NULL_LITERAL) | (1 << JavaParser.LPAREN))) != 0) or ((((_la - 72)) & ~0x3f) == 0 and ((1 << (_la - 72)) & ((1 << (JavaParser.LT - 72)) | (1 << (JavaParser.BANG - 72)) | (1 << (JavaParser.TILDE - 72)) | (1 << (JavaParser.INC - 72)) | (1 << (JavaParser.DEC - 72)) | (1 << (JavaParser.ADD - 72)) | (1 << (JavaParser.SUB - 72)) | (1 << (JavaParser.AT - 72)) | (1 << (JavaParser.IDENTIFIER - 72)))) != 0): + self.state = 1431 + self.expressionList() + + + self.state = 1434 + self.match(JavaParser.RPAREN) + except RecognitionException as re: + localctx.exception = re + self._errHandler.reportError(self, re) + self._errHandler.recover(self, re) + finally: + self.exitRule() + return localctx + + + + def sempred(self, localctx:RuleContext, ruleIndex:int, predIndex:int): + if self._predicates == None: + self._predicates = dict() + self._predicates[83] = self.expression_sempred + pred = self._predicates.get(ruleIndex, None) + if pred is None: + raise Exception("No predicate with index:" + str(ruleIndex)) + else: + return pred(localctx, predIndex) + + def expression_sempred(self, localctx:ExpressionContext, predIndex:int): + if predIndex == 0: + return self.precpred(self._ctx, 17) + + + if predIndex == 1: + return self.precpred(self._ctx, 16) + + + if predIndex == 2: + return self.precpred(self._ctx, 15) + + + if predIndex == 3: + return self.precpred(self._ctx, 14) + + + if predIndex == 4: + return self.precpred(self._ctx, 12) + + + if predIndex == 5: + return self.precpred(self._ctx, 11) + + + if predIndex == 6: + return self.precpred(self._ctx, 10) + + + if predIndex == 7: + return self.precpred(self._ctx, 9) + + + if predIndex == 8: + return self.precpred(self._ctx, 8) + + + if predIndex == 9: + return self.precpred(self._ctx, 7) + + + if predIndex == 10: + return self.precpred(self._ctx, 6) + + + if predIndex == 11: + return self.precpred(self._ctx, 5) + + + if predIndex == 12: + return self.precpred(self._ctx, 25) + + + if predIndex == 13: + return self.precpred(self._ctx, 24) + + + if predIndex == 14: + return self.precpred(self._ctx, 20) + + + if predIndex == 15: + return self.precpred(self._ctx, 13) + + + if predIndex == 16: + return self.precpred(self._ctx, 3) + + + + + diff --git a/java2python/lang/JavaParser.tokens b/java2python/lang/JavaParser.tokens new file mode 100644 index 0000000..c648b8c --- /dev/null +++ b/java2python/lang/JavaParser.tokens @@ -0,0 +1,209 @@ +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 +DECIMAL_LITERAL=51 +HEX_LITERAL=52 +OCT_LITERAL=53 +BINARY_LITERAL=54 +FLOAT_LITERAL=55 +HEX_FLOAT_LITERAL=56 +BOOL_LITERAL=57 +CHAR_LITERAL=58 +STRING_LITERAL=59 +NULL_LITERAL=60 +LPAREN=61 +RPAREN=62 +LBRACE=63 +RBRACE=64 +LBRACK=65 +RBRACK=66 +SEMI=67 +COMMA=68 +DOT=69 +ASSIGN=70 +GT=71 +LT=72 +BANG=73 +TILDE=74 +QUESTION=75 +COLON=76 +EQUAL=77 +LE=78 +GE=79 +NOTEQUAL=80 +AND=81 +OR=82 +INC=83 +DEC=84 +ADD=85 +SUB=86 +MUL=87 +DIV=88 +BITAND=89 +BITOR=90 +CARET=91 +MOD=92 +ADD_ASSIGN=93 +SUB_ASSIGN=94 +MUL_ASSIGN=95 +DIV_ASSIGN=96 +AND_ASSIGN=97 +OR_ASSIGN=98 +XOR_ASSIGN=99 +MOD_ASSIGN=100 +LSHIFT_ASSIGN=101 +RSHIFT_ASSIGN=102 +URSHIFT_ASSIGN=103 +ARROW=104 +COLONCOLON=105 +AT=106 +ELLIPSIS=107 +WS=108 +COMMENT=109 +LINE_COMMENT=110 +IDENTIFIER=111 +'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'=60 +'('=61 +')'=62 +'{'=63 +'}'=64 +'['=65 +']'=66 +';'=67 +','=68 +'.'=69 +'='=70 +'>'=71 +'<'=72 +'!'=73 +'~'=74 +'?'=75 +':'=76 +'=='=77 +'<='=78 +'>='=79 +'!='=80 +'&&'=81 +'||'=82 +'++'=83 +'--'=84 +'+'=85 +'-'=86 +'*'=87 +'/'=88 +'&'=89 +'|'=90 +'^'=91 +'%'=92 +'+='=93 +'-='=94 +'*='=95 +'/='=96 +'&='=97 +'|='=98 +'^='=99 +'%='=100 +'<<='=101 +'>>='=102 +'>>>='=103 +'->'=104 +'::'=105 +'@'=106 +'...'=107 diff --git a/java2python/lang/JavaParserListener.py b/java2python/lang/JavaParserListener.py new file mode 100644 index 0000000..2261ea6 --- /dev/null +++ b/java2python/lang/JavaParserListener.py @@ -0,0 +1,955 @@ +# Generated from JavaParser.g4 by ANTLR 4.7.2 +from antlr4 import * +if __name__ is not None and "." in __name__: + from .JavaParser import JavaParser +else: + from JavaParser import JavaParser + +# This class defines a complete listener for a parse tree produced by JavaParser. +class JavaParserListener(ParseTreeListener): + + # Enter a parse tree produced by JavaParser#compilationUnit. + def enterCompilationUnit(self, ctx:JavaParser.CompilationUnitContext): + pass + + # Exit a parse tree produced by JavaParser#compilationUnit. + def exitCompilationUnit(self, ctx:JavaParser.CompilationUnitContext): + pass + + + # Enter a parse tree produced by JavaParser#packageDeclaration. + def enterPackageDeclaration(self, ctx:JavaParser.PackageDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#packageDeclaration. + def exitPackageDeclaration(self, ctx:JavaParser.PackageDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#importDeclaration. + def enterImportDeclaration(self, ctx:JavaParser.ImportDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#importDeclaration. + def exitImportDeclaration(self, ctx:JavaParser.ImportDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#typeDeclaration. + def enterTypeDeclaration(self, ctx:JavaParser.TypeDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#typeDeclaration. + def exitTypeDeclaration(self, ctx:JavaParser.TypeDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#modifier. + def enterModifier(self, ctx:JavaParser.ModifierContext): + pass + + # Exit a parse tree produced by JavaParser#modifier. + def exitModifier(self, ctx:JavaParser.ModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#classOrInterfaceModifier. + def enterClassOrInterfaceModifier(self, ctx:JavaParser.ClassOrInterfaceModifierContext): + pass + + # Exit a parse tree produced by JavaParser#classOrInterfaceModifier. + def exitClassOrInterfaceModifier(self, ctx:JavaParser.ClassOrInterfaceModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#variableModifier. + def enterVariableModifier(self, ctx:JavaParser.VariableModifierContext): + pass + + # Exit a parse tree produced by JavaParser#variableModifier. + def exitVariableModifier(self, ctx:JavaParser.VariableModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#classDeclaration. + def enterClassDeclaration(self, ctx:JavaParser.ClassDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#classDeclaration. + def exitClassDeclaration(self, ctx:JavaParser.ClassDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#typeParameters. + def enterTypeParameters(self, ctx:JavaParser.TypeParametersContext): + pass + + # Exit a parse tree produced by JavaParser#typeParameters. + def exitTypeParameters(self, ctx:JavaParser.TypeParametersContext): + pass + + + # Enter a parse tree produced by JavaParser#typeParameter. + def enterTypeParameter(self, ctx:JavaParser.TypeParameterContext): + pass + + # Exit a parse tree produced by JavaParser#typeParameter. + def exitTypeParameter(self, ctx:JavaParser.TypeParameterContext): + pass + + + # Enter a parse tree produced by JavaParser#typeBound. + def enterTypeBound(self, ctx:JavaParser.TypeBoundContext): + pass + + # Exit a parse tree produced by JavaParser#typeBound. + def exitTypeBound(self, ctx:JavaParser.TypeBoundContext): + pass + + + # Enter a parse tree produced by JavaParser#enumDeclaration. + def enterEnumDeclaration(self, ctx:JavaParser.EnumDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#enumDeclaration. + def exitEnumDeclaration(self, ctx:JavaParser.EnumDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#enumConstants. + def enterEnumConstants(self, ctx:JavaParser.EnumConstantsContext): + pass + + # Exit a parse tree produced by JavaParser#enumConstants. + def exitEnumConstants(self, ctx:JavaParser.EnumConstantsContext): + pass + + + # Enter a parse tree produced by JavaParser#enumConstant. + def enterEnumConstant(self, ctx:JavaParser.EnumConstantContext): + pass + + # Exit a parse tree produced by JavaParser#enumConstant. + def exitEnumConstant(self, ctx:JavaParser.EnumConstantContext): + pass + + + # Enter a parse tree produced by JavaParser#enumBodyDeclarations. + def enterEnumBodyDeclarations(self, ctx:JavaParser.EnumBodyDeclarationsContext): + pass + + # Exit a parse tree produced by JavaParser#enumBodyDeclarations. + def exitEnumBodyDeclarations(self, ctx:JavaParser.EnumBodyDeclarationsContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceDeclaration. + def enterInterfaceDeclaration(self, ctx:JavaParser.InterfaceDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceDeclaration. + def exitInterfaceDeclaration(self, ctx:JavaParser.InterfaceDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#classBody. + def enterClassBody(self, ctx:JavaParser.ClassBodyContext): + pass + + # Exit a parse tree produced by JavaParser#classBody. + def exitClassBody(self, ctx:JavaParser.ClassBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceBody. + def enterInterfaceBody(self, ctx:JavaParser.InterfaceBodyContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceBody. + def exitInterfaceBody(self, ctx:JavaParser.InterfaceBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#classBodyDeclaration. + def enterClassBodyDeclaration(self, ctx:JavaParser.ClassBodyDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#classBodyDeclaration. + def exitClassBodyDeclaration(self, ctx:JavaParser.ClassBodyDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#memberDeclaration. + def enterMemberDeclaration(self, ctx:JavaParser.MemberDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#memberDeclaration. + def exitMemberDeclaration(self, ctx:JavaParser.MemberDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#methodDeclaration. + def enterMethodDeclaration(self, ctx:JavaParser.MethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#methodDeclaration. + def exitMethodDeclaration(self, ctx:JavaParser.MethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#methodBody. + def enterMethodBody(self, ctx:JavaParser.MethodBodyContext): + pass + + # Exit a parse tree produced by JavaParser#methodBody. + def exitMethodBody(self, ctx:JavaParser.MethodBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#typeTypeOrVoid. + def enterTypeTypeOrVoid(self, ctx:JavaParser.TypeTypeOrVoidContext): + pass + + # Exit a parse tree produced by JavaParser#typeTypeOrVoid. + def exitTypeTypeOrVoid(self, ctx:JavaParser.TypeTypeOrVoidContext): + pass + + + # Enter a parse tree produced by JavaParser#genericMethodDeclaration. + def enterGenericMethodDeclaration(self, ctx:JavaParser.GenericMethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#genericMethodDeclaration. + def exitGenericMethodDeclaration(self, ctx:JavaParser.GenericMethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#genericConstructorDeclaration. + def enterGenericConstructorDeclaration(self, ctx:JavaParser.GenericConstructorDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#genericConstructorDeclaration. + def exitGenericConstructorDeclaration(self, ctx:JavaParser.GenericConstructorDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#constructorDeclaration. + def enterConstructorDeclaration(self, ctx:JavaParser.ConstructorDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#constructorDeclaration. + def exitConstructorDeclaration(self, ctx:JavaParser.ConstructorDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#fieldDeclaration. + def enterFieldDeclaration(self, ctx:JavaParser.FieldDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#fieldDeclaration. + def exitFieldDeclaration(self, ctx:JavaParser.FieldDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceBodyDeclaration. + def enterInterfaceBodyDeclaration(self, ctx:JavaParser.InterfaceBodyDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceBodyDeclaration. + def exitInterfaceBodyDeclaration(self, ctx:JavaParser.InterfaceBodyDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceMemberDeclaration. + def enterInterfaceMemberDeclaration(self, ctx:JavaParser.InterfaceMemberDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceMemberDeclaration. + def exitInterfaceMemberDeclaration(self, ctx:JavaParser.InterfaceMemberDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#constDeclaration. + def enterConstDeclaration(self, ctx:JavaParser.ConstDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#constDeclaration. + def exitConstDeclaration(self, ctx:JavaParser.ConstDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#constantDeclarator. + def enterConstantDeclarator(self, ctx:JavaParser.ConstantDeclaratorContext): + pass + + # Exit a parse tree produced by JavaParser#constantDeclarator. + def exitConstantDeclarator(self, ctx:JavaParser.ConstantDeclaratorContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceMethodDeclaration. + def enterInterfaceMethodDeclaration(self, ctx:JavaParser.InterfaceMethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceMethodDeclaration. + def exitInterfaceMethodDeclaration(self, ctx:JavaParser.InterfaceMethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#interfaceMethodModifier. + def enterInterfaceMethodModifier(self, ctx:JavaParser.InterfaceMethodModifierContext): + pass + + # Exit a parse tree produced by JavaParser#interfaceMethodModifier. + def exitInterfaceMethodModifier(self, ctx:JavaParser.InterfaceMethodModifierContext): + pass + + + # Enter a parse tree produced by JavaParser#genericInterfaceMethodDeclaration. + def enterGenericInterfaceMethodDeclaration(self, ctx:JavaParser.GenericInterfaceMethodDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#genericInterfaceMethodDeclaration. + def exitGenericInterfaceMethodDeclaration(self, ctx:JavaParser.GenericInterfaceMethodDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#variableDeclarators. + def enterVariableDeclarators(self, ctx:JavaParser.VariableDeclaratorsContext): + pass + + # Exit a parse tree produced by JavaParser#variableDeclarators. + def exitVariableDeclarators(self, ctx:JavaParser.VariableDeclaratorsContext): + pass + + + # Enter a parse tree produced by JavaParser#variableDeclarator. + def enterVariableDeclarator(self, ctx:JavaParser.VariableDeclaratorContext): + pass + + # Exit a parse tree produced by JavaParser#variableDeclarator. + def exitVariableDeclarator(self, ctx:JavaParser.VariableDeclaratorContext): + pass + + + # Enter a parse tree produced by JavaParser#variableDeclaratorId. + def enterVariableDeclaratorId(self, ctx:JavaParser.VariableDeclaratorIdContext): + pass + + # Exit a parse tree produced by JavaParser#variableDeclaratorId. + def exitVariableDeclaratorId(self, ctx:JavaParser.VariableDeclaratorIdContext): + pass + + + # Enter a parse tree produced by JavaParser#variableInitializer. + def enterVariableInitializer(self, ctx:JavaParser.VariableInitializerContext): + pass + + # Exit a parse tree produced by JavaParser#variableInitializer. + def exitVariableInitializer(self, ctx:JavaParser.VariableInitializerContext): + pass + + + # Enter a parse tree produced by JavaParser#arrayInitializer. + def enterArrayInitializer(self, ctx:JavaParser.ArrayInitializerContext): + pass + + # Exit a parse tree produced by JavaParser#arrayInitializer. + def exitArrayInitializer(self, ctx:JavaParser.ArrayInitializerContext): + pass + + + # Enter a parse tree produced by JavaParser#classOrInterfaceType. + def enterClassOrInterfaceType(self, ctx:JavaParser.ClassOrInterfaceTypeContext): + pass + + # Exit a parse tree produced by JavaParser#classOrInterfaceType. + def exitClassOrInterfaceType(self, ctx:JavaParser.ClassOrInterfaceTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#typeArgument. + def enterTypeArgument(self, ctx:JavaParser.TypeArgumentContext): + pass + + # Exit a parse tree produced by JavaParser#typeArgument. + def exitTypeArgument(self, ctx:JavaParser.TypeArgumentContext): + pass + + + # Enter a parse tree produced by JavaParser#qualifiedNameList. + def enterQualifiedNameList(self, ctx:JavaParser.QualifiedNameListContext): + pass + + # Exit a parse tree produced by JavaParser#qualifiedNameList. + def exitQualifiedNameList(self, ctx:JavaParser.QualifiedNameListContext): + pass + + + # Enter a parse tree produced by JavaParser#formalParameters. + def enterFormalParameters(self, ctx:JavaParser.FormalParametersContext): + pass + + # Exit a parse tree produced by JavaParser#formalParameters. + def exitFormalParameters(self, ctx:JavaParser.FormalParametersContext): + pass + + + # Enter a parse tree produced by JavaParser#formalParameterList. + def enterFormalParameterList(self, ctx:JavaParser.FormalParameterListContext): + pass + + # Exit a parse tree produced by JavaParser#formalParameterList. + def exitFormalParameterList(self, ctx:JavaParser.FormalParameterListContext): + pass + + + # Enter a parse tree produced by JavaParser#formalParameter. + def enterFormalParameter(self, ctx:JavaParser.FormalParameterContext): + pass + + # Exit a parse tree produced by JavaParser#formalParameter. + def exitFormalParameter(self, ctx:JavaParser.FormalParameterContext): + pass + + + # Enter a parse tree produced by JavaParser#lastFormalParameter. + def enterLastFormalParameter(self, ctx:JavaParser.LastFormalParameterContext): + pass + + # Exit a parse tree produced by JavaParser#lastFormalParameter. + def exitLastFormalParameter(self, ctx:JavaParser.LastFormalParameterContext): + pass + + + # Enter a parse tree produced by JavaParser#qualifiedName. + def enterQualifiedName(self, ctx:JavaParser.QualifiedNameContext): + pass + + # Exit a parse tree produced by JavaParser#qualifiedName. + def exitQualifiedName(self, ctx:JavaParser.QualifiedNameContext): + pass + + + # Enter a parse tree produced by JavaParser#literal. + def enterLiteral(self, ctx:JavaParser.LiteralContext): + pass + + # Exit a parse tree produced by JavaParser#literal. + def exitLiteral(self, ctx:JavaParser.LiteralContext): + pass + + + # Enter a parse tree produced by JavaParser#integerLiteral. + def enterIntegerLiteral(self, ctx:JavaParser.IntegerLiteralContext): + pass + + # Exit a parse tree produced by JavaParser#integerLiteral. + def exitIntegerLiteral(self, ctx:JavaParser.IntegerLiteralContext): + pass + + + # Enter a parse tree produced by JavaParser#floatLiteral. + def enterFloatLiteral(self, ctx:JavaParser.FloatLiteralContext): + pass + + # Exit a parse tree produced by JavaParser#floatLiteral. + def exitFloatLiteral(self, ctx:JavaParser.FloatLiteralContext): + pass + + + # Enter a parse tree produced by JavaParser#altAnnotationQualifiedName. + def enterAltAnnotationQualifiedName(self, ctx:JavaParser.AltAnnotationQualifiedNameContext): + pass + + # Exit a parse tree produced by JavaParser#altAnnotationQualifiedName. + def exitAltAnnotationQualifiedName(self, ctx:JavaParser.AltAnnotationQualifiedNameContext): + pass + + + # Enter a parse tree produced by JavaParser#annotation. + def enterAnnotation(self, ctx:JavaParser.AnnotationContext): + pass + + # Exit a parse tree produced by JavaParser#annotation. + def exitAnnotation(self, ctx:JavaParser.AnnotationContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValuePairs. + def enterElementValuePairs(self, ctx:JavaParser.ElementValuePairsContext): + pass + + # Exit a parse tree produced by JavaParser#elementValuePairs. + def exitElementValuePairs(self, ctx:JavaParser.ElementValuePairsContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValuePair. + def enterElementValuePair(self, ctx:JavaParser.ElementValuePairContext): + pass + + # Exit a parse tree produced by JavaParser#elementValuePair. + def exitElementValuePair(self, ctx:JavaParser.ElementValuePairContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValue. + def enterElementValue(self, ctx:JavaParser.ElementValueContext): + pass + + # Exit a parse tree produced by JavaParser#elementValue. + def exitElementValue(self, ctx:JavaParser.ElementValueContext): + pass + + + # Enter a parse tree produced by JavaParser#elementValueArrayInitializer. + def enterElementValueArrayInitializer(self, ctx:JavaParser.ElementValueArrayInitializerContext): + pass + + # Exit a parse tree produced by JavaParser#elementValueArrayInitializer. + def exitElementValueArrayInitializer(self, ctx:JavaParser.ElementValueArrayInitializerContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeDeclaration. + def enterAnnotationTypeDeclaration(self, ctx:JavaParser.AnnotationTypeDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeDeclaration. + def exitAnnotationTypeDeclaration(self, ctx:JavaParser.AnnotationTypeDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeBody. + def enterAnnotationTypeBody(self, ctx:JavaParser.AnnotationTypeBodyContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeBody. + def exitAnnotationTypeBody(self, ctx:JavaParser.AnnotationTypeBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeElementDeclaration. + def enterAnnotationTypeElementDeclaration(self, ctx:JavaParser.AnnotationTypeElementDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeElementDeclaration. + def exitAnnotationTypeElementDeclaration(self, ctx:JavaParser.AnnotationTypeElementDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationTypeElementRest. + def enterAnnotationTypeElementRest(self, ctx:JavaParser.AnnotationTypeElementRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationTypeElementRest. + def exitAnnotationTypeElementRest(self, ctx:JavaParser.AnnotationTypeElementRestContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationMethodOrConstantRest. + def enterAnnotationMethodOrConstantRest(self, ctx:JavaParser.AnnotationMethodOrConstantRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationMethodOrConstantRest. + def exitAnnotationMethodOrConstantRest(self, ctx:JavaParser.AnnotationMethodOrConstantRestContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationMethodRest. + def enterAnnotationMethodRest(self, ctx:JavaParser.AnnotationMethodRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationMethodRest. + def exitAnnotationMethodRest(self, ctx:JavaParser.AnnotationMethodRestContext): + pass + + + # Enter a parse tree produced by JavaParser#annotationConstantRest. + def enterAnnotationConstantRest(self, ctx:JavaParser.AnnotationConstantRestContext): + pass + + # Exit a parse tree produced by JavaParser#annotationConstantRest. + def exitAnnotationConstantRest(self, ctx:JavaParser.AnnotationConstantRestContext): + pass + + + # Enter a parse tree produced by JavaParser#defaultValue. + def enterDefaultValue(self, ctx:JavaParser.DefaultValueContext): + pass + + # Exit a parse tree produced by JavaParser#defaultValue. + def exitDefaultValue(self, ctx:JavaParser.DefaultValueContext): + pass + + + # Enter a parse tree produced by JavaParser#block. + def enterBlock(self, ctx:JavaParser.BlockContext): + pass + + # Exit a parse tree produced by JavaParser#block. + def exitBlock(self, ctx:JavaParser.BlockContext): + pass + + + # Enter a parse tree produced by JavaParser#blockStatement. + def enterBlockStatement(self, ctx:JavaParser.BlockStatementContext): + pass + + # Exit a parse tree produced by JavaParser#blockStatement. + def exitBlockStatement(self, ctx:JavaParser.BlockStatementContext): + pass + + + # Enter a parse tree produced by JavaParser#localVariableDeclaration. + def enterLocalVariableDeclaration(self, ctx:JavaParser.LocalVariableDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#localVariableDeclaration. + def exitLocalVariableDeclaration(self, ctx:JavaParser.LocalVariableDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#localTypeDeclaration. + def enterLocalTypeDeclaration(self, ctx:JavaParser.LocalTypeDeclarationContext): + pass + + # Exit a parse tree produced by JavaParser#localTypeDeclaration. + def exitLocalTypeDeclaration(self, ctx:JavaParser.LocalTypeDeclarationContext): + pass + + + # Enter a parse tree produced by JavaParser#statement. + def enterStatement(self, ctx:JavaParser.StatementContext): + pass + + # Exit a parse tree produced by JavaParser#statement. + def exitStatement(self, ctx:JavaParser.StatementContext): + pass + + + # Enter a parse tree produced by JavaParser#catchClause. + def enterCatchClause(self, ctx:JavaParser.CatchClauseContext): + pass + + # Exit a parse tree produced by JavaParser#catchClause. + def exitCatchClause(self, ctx:JavaParser.CatchClauseContext): + pass + + + # Enter a parse tree produced by JavaParser#catchType. + def enterCatchType(self, ctx:JavaParser.CatchTypeContext): + pass + + # Exit a parse tree produced by JavaParser#catchType. + def exitCatchType(self, ctx:JavaParser.CatchTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#finallyBlock. + def enterFinallyBlock(self, ctx:JavaParser.FinallyBlockContext): + pass + + # Exit a parse tree produced by JavaParser#finallyBlock. + def exitFinallyBlock(self, ctx:JavaParser.FinallyBlockContext): + pass + + + # Enter a parse tree produced by JavaParser#resourceSpecification. + def enterResourceSpecification(self, ctx:JavaParser.ResourceSpecificationContext): + pass + + # Exit a parse tree produced by JavaParser#resourceSpecification. + def exitResourceSpecification(self, ctx:JavaParser.ResourceSpecificationContext): + pass + + + # Enter a parse tree produced by JavaParser#resources. + def enterResources(self, ctx:JavaParser.ResourcesContext): + pass + + # Exit a parse tree produced by JavaParser#resources. + def exitResources(self, ctx:JavaParser.ResourcesContext): + pass + + + # Enter a parse tree produced by JavaParser#resource. + def enterResource(self, ctx:JavaParser.ResourceContext): + pass + + # Exit a parse tree produced by JavaParser#resource. + def exitResource(self, ctx:JavaParser.ResourceContext): + pass + + + # Enter a parse tree produced by JavaParser#switchBlockStatementGroup. + def enterSwitchBlockStatementGroup(self, ctx:JavaParser.SwitchBlockStatementGroupContext): + pass + + # Exit a parse tree produced by JavaParser#switchBlockStatementGroup. + def exitSwitchBlockStatementGroup(self, ctx:JavaParser.SwitchBlockStatementGroupContext): + pass + + + # Enter a parse tree produced by JavaParser#switchLabel. + def enterSwitchLabel(self, ctx:JavaParser.SwitchLabelContext): + pass + + # Exit a parse tree produced by JavaParser#switchLabel. + def exitSwitchLabel(self, ctx:JavaParser.SwitchLabelContext): + pass + + + # Enter a parse tree produced by JavaParser#forControl. + def enterForControl(self, ctx:JavaParser.ForControlContext): + pass + + # Exit a parse tree produced by JavaParser#forControl. + def exitForControl(self, ctx:JavaParser.ForControlContext): + pass + + + # Enter a parse tree produced by JavaParser#forInit. + def enterForInit(self, ctx:JavaParser.ForInitContext): + pass + + # Exit a parse tree produced by JavaParser#forInit. + def exitForInit(self, ctx:JavaParser.ForInitContext): + pass + + + # Enter a parse tree produced by JavaParser#enhancedForControl. + def enterEnhancedForControl(self, ctx:JavaParser.EnhancedForControlContext): + pass + + # Exit a parse tree produced by JavaParser#enhancedForControl. + def exitEnhancedForControl(self, ctx:JavaParser.EnhancedForControlContext): + pass + + + # Enter a parse tree produced by JavaParser#parExpression. + def enterParExpression(self, ctx:JavaParser.ParExpressionContext): + pass + + # Exit a parse tree produced by JavaParser#parExpression. + def exitParExpression(self, ctx:JavaParser.ParExpressionContext): + pass + + + # Enter a parse tree produced by JavaParser#expressionList. + def enterExpressionList(self, ctx:JavaParser.ExpressionListContext): + pass + + # Exit a parse tree produced by JavaParser#expressionList. + def exitExpressionList(self, ctx:JavaParser.ExpressionListContext): + pass + + + # Enter a parse tree produced by JavaParser#methodCall. + def enterMethodCall(self, ctx:JavaParser.MethodCallContext): + pass + + # Exit a parse tree produced by JavaParser#methodCall. + def exitMethodCall(self, ctx:JavaParser.MethodCallContext): + pass + + + # Enter a parse tree produced by JavaParser#expression. + def enterExpression(self, ctx:JavaParser.ExpressionContext): + pass + + # Exit a parse tree produced by JavaParser#expression. + def exitExpression(self, ctx:JavaParser.ExpressionContext): + pass + + + # Enter a parse tree produced by JavaParser#lambdaExpression. + def enterLambdaExpression(self, ctx:JavaParser.LambdaExpressionContext): + pass + + # Exit a parse tree produced by JavaParser#lambdaExpression. + def exitLambdaExpression(self, ctx:JavaParser.LambdaExpressionContext): + pass + + + # Enter a parse tree produced by JavaParser#lambdaParameters. + def enterLambdaParameters(self, ctx:JavaParser.LambdaParametersContext): + pass + + # Exit a parse tree produced by JavaParser#lambdaParameters. + def exitLambdaParameters(self, ctx:JavaParser.LambdaParametersContext): + pass + + + # Enter a parse tree produced by JavaParser#lambdaBody. + def enterLambdaBody(self, ctx:JavaParser.LambdaBodyContext): + pass + + # Exit a parse tree produced by JavaParser#lambdaBody. + def exitLambdaBody(self, ctx:JavaParser.LambdaBodyContext): + pass + + + # Enter a parse tree produced by JavaParser#primary. + def enterPrimary(self, ctx:JavaParser.PrimaryContext): + pass + + # Exit a parse tree produced by JavaParser#primary. + def exitPrimary(self, ctx:JavaParser.PrimaryContext): + pass + + + # Enter a parse tree produced by JavaParser#classType. + def enterClassType(self, ctx:JavaParser.ClassTypeContext): + pass + + # Exit a parse tree produced by JavaParser#classType. + def exitClassType(self, ctx:JavaParser.ClassTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#creator. + def enterCreator(self, ctx:JavaParser.CreatorContext): + pass + + # Exit a parse tree produced by JavaParser#creator. + def exitCreator(self, ctx:JavaParser.CreatorContext): + pass + + + # Enter a parse tree produced by JavaParser#createdName. + def enterCreatedName(self, ctx:JavaParser.CreatedNameContext): + pass + + # Exit a parse tree produced by JavaParser#createdName. + def exitCreatedName(self, ctx:JavaParser.CreatedNameContext): + pass + + + # Enter a parse tree produced by JavaParser#innerCreator. + def enterInnerCreator(self, ctx:JavaParser.InnerCreatorContext): + pass + + # Exit a parse tree produced by JavaParser#innerCreator. + def exitInnerCreator(self, ctx:JavaParser.InnerCreatorContext): + pass + + + # Enter a parse tree produced by JavaParser#arrayCreatorRest. + def enterArrayCreatorRest(self, ctx:JavaParser.ArrayCreatorRestContext): + pass + + # Exit a parse tree produced by JavaParser#arrayCreatorRest. + def exitArrayCreatorRest(self, ctx:JavaParser.ArrayCreatorRestContext): + pass + + + # Enter a parse tree produced by JavaParser#classCreatorRest. + def enterClassCreatorRest(self, ctx:JavaParser.ClassCreatorRestContext): + pass + + # Exit a parse tree produced by JavaParser#classCreatorRest. + def exitClassCreatorRest(self, ctx:JavaParser.ClassCreatorRestContext): + pass + + + # Enter a parse tree produced by JavaParser#explicitGenericInvocation. + def enterExplicitGenericInvocation(self, ctx:JavaParser.ExplicitGenericInvocationContext): + pass + + # Exit a parse tree produced by JavaParser#explicitGenericInvocation. + def exitExplicitGenericInvocation(self, ctx:JavaParser.ExplicitGenericInvocationContext): + pass + + + # Enter a parse tree produced by JavaParser#typeArgumentsOrDiamond. + def enterTypeArgumentsOrDiamond(self, ctx:JavaParser.TypeArgumentsOrDiamondContext): + pass + + # Exit a parse tree produced by JavaParser#typeArgumentsOrDiamond. + def exitTypeArgumentsOrDiamond(self, ctx:JavaParser.TypeArgumentsOrDiamondContext): + pass + + + # Enter a parse tree produced by JavaParser#nonWildcardTypeArgumentsOrDiamond. + def enterNonWildcardTypeArgumentsOrDiamond(self, ctx:JavaParser.NonWildcardTypeArgumentsOrDiamondContext): + pass + + # Exit a parse tree produced by JavaParser#nonWildcardTypeArgumentsOrDiamond. + def exitNonWildcardTypeArgumentsOrDiamond(self, ctx:JavaParser.NonWildcardTypeArgumentsOrDiamondContext): + pass + + + # Enter a parse tree produced by JavaParser#nonWildcardTypeArguments. + def enterNonWildcardTypeArguments(self, ctx:JavaParser.NonWildcardTypeArgumentsContext): + pass + + # Exit a parse tree produced by JavaParser#nonWildcardTypeArguments. + def exitNonWildcardTypeArguments(self, ctx:JavaParser.NonWildcardTypeArgumentsContext): + pass + + + # Enter a parse tree produced by JavaParser#typeList. + def enterTypeList(self, ctx:JavaParser.TypeListContext): + pass + + # Exit a parse tree produced by JavaParser#typeList. + def exitTypeList(self, ctx:JavaParser.TypeListContext): + pass + + + # Enter a parse tree produced by JavaParser#typeType. + def enterTypeType(self, ctx:JavaParser.TypeTypeContext): + pass + + # Exit a parse tree produced by JavaParser#typeType. + def exitTypeType(self, ctx:JavaParser.TypeTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#primitiveType. + def enterPrimitiveType(self, ctx:JavaParser.PrimitiveTypeContext): + pass + + # Exit a parse tree produced by JavaParser#primitiveType. + def exitPrimitiveType(self, ctx:JavaParser.PrimitiveTypeContext): + pass + + + # Enter a parse tree produced by JavaParser#typeArguments. + def enterTypeArguments(self, ctx:JavaParser.TypeArgumentsContext): + pass + + # Exit a parse tree produced by JavaParser#typeArguments. + def exitTypeArguments(self, ctx:JavaParser.TypeArgumentsContext): + pass + + + # Enter a parse tree produced by JavaParser#superSuffix. + def enterSuperSuffix(self, ctx:JavaParser.SuperSuffixContext): + pass + + # Exit a parse tree produced by JavaParser#superSuffix. + def exitSuperSuffix(self, ctx:JavaParser.SuperSuffixContext): + pass + + + # Enter a parse tree produced by JavaParser#explicitGenericInvocationSuffix. + def enterExplicitGenericInvocationSuffix(self, ctx:JavaParser.ExplicitGenericInvocationSuffixContext): + pass + + # Exit a parse tree produced by JavaParser#explicitGenericInvocationSuffix. + def exitExplicitGenericInvocationSuffix(self, ctx:JavaParser.ExplicitGenericInvocationSuffixContext): + pass + + + # Enter a parse tree produced by JavaParser#arguments. + def enterArguments(self, ctx:JavaParser.ArgumentsContext): + pass + + # Exit a parse tree produced by JavaParser#arguments. + def exitArguments(self, ctx:JavaParser.ArgumentsContext): + pass + + diff --git a/java2python/lang/__init__.py b/java2python/lang/__init__.py index db86dda..6e37576 100644 --- a/java2python/lang/__init__.py +++ b/java2python/lang/__init__.py @@ -4,6 +4,6 @@ # # Clients should import values from this module instead of our submodules. -from java2python.lang.Java9Lexer import Java9Lexer as Lexer -from java2python.lang.Java9Parser import JavaParser as Parser +from java2python.lang.JavaLexer import JavaLexer as Lexer +from java2python.lang.JavaParser import JavaParser as Parser from java2python.lang.base import StringStream, TokenStream, TreeAdaptor, tokens diff --git a/java2python/lang/base.py b/java2python/lang/base.py index c5df6d0..3aede4b 100644 --- a/java2python/lang/base.py +++ b/java2python/lang/base.py @@ -99,7 +99,7 @@ def module(self): module = self.parserModule if module: return module - import java2python.lang.Java9Parser as module + import java2python.lang.JavaParser as module self.parserModule = module return module From 0078f83c697d53091033a4f95d005247760a323b Mon Sep 17 00:00:00 2001 From: Arun Sharma Date: Mon, 9 Aug 2021 23:31:19 -0700 Subject: [PATCH 5/5] Remove concepts not in antlr4 --- java2python/compiler/__init__.py | 4 +- java2python/lang/__init__.py | 2 +- java2python/lang/base.py | 171 +------------------------------ 3 files changed, 3 insertions(+), 174 deletions(-) diff --git a/java2python/compiler/__init__.py b/java2python/compiler/__init__.py index 940510b..5ab69cd 100644 --- a/java2python/compiler/__init__.py +++ b/java2python/compiler/__init__.py @@ -7,15 +7,13 @@ # instead of using directly referencing items within the subpackage. from java2python.compiler.block import Module -from java2python.lang import Lexer, Parser, StringStream, TokenStream, TreeAdaptor +from java2python.lang import Lexer, Parser, StringStream, TokenStream def buildAST(source): """ Returns an AST for the given source. """ lexer = Lexer(StringStream(source)) parser = Parser(TokenStream(lexer)) - adapter = TreeAdaptor(lexer, parser) - parser.setTreeAdaptor(adapter) scope = parser.javaSource() return scope.tree diff --git a/java2python/lang/__init__.py b/java2python/lang/__init__.py index 6e37576..c4a9ebe 100644 --- a/java2python/lang/__init__.py +++ b/java2python/lang/__init__.py @@ -6,4 +6,4 @@ from java2python.lang.JavaLexer import JavaLexer as Lexer from java2python.lang.JavaParser import JavaParser as Parser -from java2python.lang.base import StringStream, TokenStream, TreeAdaptor, tokens +from java2python.lang.base import TokenStream, tokens diff --git a/java2python/lang/base.py b/java2python/lang/base.py index 3aede4b..3c193b3 100644 --- a/java2python/lang/base.py +++ b/java2python/lang/base.py @@ -9,18 +9,6 @@ # This class is used to create the single `token` instance in this # module. It is used to map between parser tokens and their ids and # vice-versa. -# -# * `TreeAdaptor` -# -# This class is used by `java2python.compiler.tool`, where the -# `buildAST` function associates an instance of it to a parser. The -# `TreeAdaptor` class creates `LocalTree` instances. -# -# * `LocalTree` -# -# This class provides a slew of extra utility methods that are useful -# when inspecting and printing tree nodes. -# # ANTLR notes: @@ -49,8 +37,7 @@ from io import StringIO -from antlr3 import ANTLRStringStream as StringStream, CommonTokenStream as TokenStream -from antlr3.tree import CommonTreeAdaptor, CommonTree +from antlr4 import CommonTokenStream as TokenStream from java2python.lib import colors @@ -111,159 +98,3 @@ def title(name): ## sometimes you really do only need one. tokens = Tokens() - - -class TreeAdaptor(CommonTreeAdaptor): - """ TreeAdaptor -> defered tree node creator (for parsers). """ - - def __init__(self, lexer, parser): - # CommonTreeAdaptor doesn't need to be __init__'ed - self.lexer, self.parser = lexer, parser - - def createWithPayload(self, payload): - """ Returns a new tree for the calling parser. """ - return LocalTree(payload, self.lexer, self.parser) - - -class LocalTree(CommonTree): - """ LocalTree -> like CommonTree, but with more stuff. """ - colorTypeMap = { - 'CLASS' : colors.green, - 'JAVA_SOURCE' : colors.green, - 'VOID_METHOD_DECL' : colors.green, - 'IDENT' : colors.yellow, - 'TYPE' : colors.magenta, - 'EXPR' : colors.blue, - 'TRUE' : colors.yellow, - 'FALSE' : colors.yellow, - 'NULL' : colors.yellow, - } - - def __init__(self, payload, lexer=None, parser=None): - super(LocalTree, self).__init__(payload) - self.lexer, self.parser = lexer, parser - - def childrenOfType(self, type): - """ Returns a generator yielding children of this tree of the given type. """ - return (c for c in self.children if c.type==type) - - def colorType(self, tokenType): - """ Returns a color suitable for the given token type. """ - return self.colorTypeMap.get(tokenType, colors.white)(tokenType) - - def colorText(self, tokenType, tokenText): - """ Returns a colorized string from the given token type and text. """ - return self.colorTypeMap.get(tokenType, colors.white)(tokenText) - - def colorComments(self, token): - """ Formats, colors, and returns the comment text from the given token. """ - ttyp = tokens.map.get(token.type) - text = token.text.replace('\n', '\\n').replace('\r', '\\r').replace('\t', '\\t') - item = '{0} [{1}:{2}] {3}'.format(ttyp, token.start, token.stop, text) - yield colors.black(item) - - def dump(self, fd, level=0): - """ Writes a debug representation of this tree to the given file. """ - extras = lambda x, y:x and (x != y) - seen, nform = set(), '{0}{1}{2}{3}' - def innerDump(root, offset): - token, indent = root.token, ' ' * offset - start, stop = root.tokenStartIndex, root.tokenStopIndex - idxes, ttyp = '', tokens.map.get(token.type, '?') - line = token.line - if start and stop and start == stop: - idxes = 'start={}'.format(start) - elif start and stop: - idxes = 'start={}, stop={}'.format(start, stop) - if line: - idxes = 'line={}{}{}'.format(line, ', ' if idxes else '', idxes) - idxes = ' [{}]'.format(idxes) if idxes else '' - idxes = colors.black(idxes) - args = [indent, self.colorType(ttyp), '', idxes, ''] - if extras(token.text, ttyp): - args[2] = ' ' + self.colorText(ttyp, token.text) - for com in self.selectComments(start, seen): - for line in self.colorComments(com): - print('{0}{1}'.format(indent, line), file=fd) - print(nform.format(*args), file=fd) - for child in root.getChildren(): - innerDump(child, offset+1) - for com in self.selectComments(root.tokenStopIndex, seen): - for line in self.colorComments(com): - print('{0}{1}'.format(indent, line), file=fd) - innerDump(self, level) - - def dumps(self, level=0): - """ Dump this token to a string. """ - fd = StringIO() - self.dump(fd, level) - return fd.getvalue() - - def dupNode(self): - """ Called by the parser to create a duplicate of this tree. """ - get = lambda v:getattr(self, v, None) - return LocalTree(self, get('lexer'), get('parser')) - - def findChildren(self, pred=lambda c:True): - """ Depth-first search that yields nodes meeting the predicate. """ - for child in self.children: - if pred(child): - yield child - for sub in child.findChildren(pred): - yield sub - - def findChildrenOfType(self, type): - """ Depth-first search that yields nodes of the given type. """ - return self.findChildren(lambda c:c.type==type) - - def firstChild(self, default=None): - """ Returns the first child of this tree or the default. """ - try: - return self.children[0] - except (IndexError, ): - return default - - def firstChildOfType(self, type, default=None): - """ Returns the first child of this tree that matches the given type. """ - for child in self.children: - if child.type == type: - return child - return default - - @property - def isJavaSource(self): - """ True if this tree is the outer most type. """ - return self.token.type == tokens.JAVA_SOURCE - - @property - def parentType(self): - """ Returns the type of the parent tree. """ - return self.parent.type - - def parents(self, pred=lambda v:True): - """ Yield each parent in the family tree. """ - while self: - if pred(self): - yield self - self = self.parent - - @property - def parserTokens(self): - """ Returns the sequence of tokens used to create this tree. """ - return self.parser.input.tokens[self.tokenStartIndex:self.tokenStopIndex] - - def selectComments(self, stop, memo): - """ Returns the comment tokens for this tree up to the given index. """ - pred = lambda k:k.type in tokens.commentTypes and k.index not in memo - ctoks = [t for t in self.parser.input.tokens[0:stop] if pred(t)] - memo.update(t.index for t in ctoks) - return ctoks - - @property - def withinExpr(self): - """ True if this tree is contained within an expression. """ - self = getattr(self.parent, 'parent', None) # skip first expr - while self: - if self.type in (tokens.EXPR, ): - return True - self = self.parent