diff --git a/gen/Java17Lexer.interp b/gen/Java17Lexer.interp new file mode 100644 index 00000000..da9550c6 --- /dev/null +++ b/gen/Java17Lexer.interp @@ -0,0 +1,408 @@ +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' +'module' +'open' +'requires' +'exports' +'opens' +'to' +'uses' +'provides' +'with' +'transitive' +'var' +'yield' +'record' +'sealed' +'permits' +'non-sealed' +null +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 +MODULE +OPEN +REQUIRES +EXPORTS +OPENS +TO +USES +PROVIDES +WITH +TRANSITIVE +VAR +YIELD +RECORD +SEALED +PERMITS +NON_SEALED +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +TEXT_BLOCK +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 +MODULE +OPEN +REQUIRES +EXPORTS +OPENS +TO +USES +PROVIDES +WITH +TRANSITIVE +VAR +YIELD +RECORD +SEALED +PERMITS +NON_SEALED +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +TEXT_BLOCK +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: +[4, 0, 128, 1112, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 3, 66, 725, 8, 66, 1, 66, 4, 66, 728, 8, 66, 11, 66, 12, 66, 729, 1, 66, 3, 66, 733, 8, 66, 3, 66, 735, 8, 66, 1, 66, 3, 66, 738, 8, 66, 1, 67, 1, 67, 1, 67, 1, 67, 5, 67, 744, 8, 67, 10, 67, 12, 67, 747, 9, 67, 1, 67, 3, 67, 750, 8, 67, 1, 67, 3, 67, 753, 8, 67, 1, 68, 1, 68, 5, 68, 757, 8, 68, 10, 68, 12, 68, 760, 9, 68, 1, 68, 1, 68, 5, 68, 764, 8, 68, 10, 68, 12, 68, 767, 9, 68, 1, 68, 3, 68, 770, 8, 68, 1, 68, 3, 68, 773, 8, 68, 1, 69, 1, 69, 1, 69, 1, 69, 5, 69, 779, 8, 69, 10, 69, 12, 69, 782, 9, 69, 1, 69, 3, 69, 785, 8, 69, 1, 69, 3, 69, 788, 8, 69, 1, 70, 1, 70, 1, 70, 3, 70, 793, 8, 70, 1, 70, 1, 70, 3, 70, 797, 8, 70, 1, 70, 3, 70, 800, 8, 70, 1, 70, 3, 70, 803, 8, 70, 1, 70, 1, 70, 1, 70, 3, 70, 808, 8, 70, 1, 70, 3, 70, 811, 8, 70, 3, 70, 813, 8, 70, 1, 71, 1, 71, 1, 71, 1, 71, 3, 71, 819, 8, 71, 1, 71, 3, 71, 822, 8, 71, 1, 71, 1, 71, 3, 71, 826, 8, 71, 1, 71, 1, 71, 3, 71, 830, 8, 71, 1, 71, 1, 71, 3, 71, 834, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 845, 8, 72, 1, 73, 1, 73, 1, 73, 3, 73, 850, 8, 73, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 5, 74, 857, 8, 74, 10, 74, 12, 74, 860, 9, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 5, 75, 869, 8, 75, 10, 75, 12, 75, 872, 9, 75, 1, 75, 1, 75, 1, 75, 5, 75, 877, 8, 75, 10, 75, 12, 75, 880, 9, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 78, 1, 78, 1, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 1, 82, 1, 82, 1, 83, 1, 83, 1, 84, 1, 84, 1, 85, 1, 85, 1, 86, 1, 86, 1, 87, 1, 87, 1, 88, 1, 88, 1, 89, 1, 89, 1, 90, 1, 90, 1, 91, 1, 91, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, 100, 1, 101, 1, 101, 1, 102, 1, 102, 1, 103, 1, 103, 1, 104, 1, 104, 1, 105, 1, 105, 1, 106, 1, 106, 1, 107, 1, 107, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 4, 124, 1013, 8, 124, 11, 124, 12, 124, 1014, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 5, 125, 1023, 8, 125, 10, 125, 12, 125, 1026, 9, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 5, 126, 1037, 8, 126, 10, 126, 12, 126, 1040, 9, 126, 1, 126, 1, 126, 1, 127, 1, 127, 5, 127, 1046, 8, 127, 10, 127, 12, 127, 1049, 9, 127, 1, 128, 1, 128, 3, 128, 1053, 8, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 1061, 8, 129, 1, 129, 3, 129, 1064, 8, 129, 1, 129, 1, 129, 1, 129, 4, 129, 1069, 8, 129, 11, 129, 12, 129, 1070, 1, 129, 1, 129, 1, 129, 1, 129, 1, 129, 3, 129, 1078, 8, 129, 1, 130, 1, 130, 1, 130, 5, 130, 1083, 8, 130, 10, 130, 12, 130, 1086, 9, 130, 1, 130, 3, 130, 1089, 8, 130, 1, 131, 1, 131, 1, 132, 1, 132, 5, 132, 1095, 8, 132, 10, 132, 12, 132, 1098, 9, 132, 1, 132, 3, 132, 1101, 8, 132, 1, 133, 1, 133, 3, 133, 1105, 8, 133, 1, 134, 1, 134, 1, 134, 1, 134, 3, 134, 1111, 8, 134, 2, 878, 1024, 0, 135, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, 255, 128, 257, 0, 259, 0, 261, 0, 263, 0, 265, 0, 267, 0, 269, 0, 1, 0, 27, 1, 0, 49, 57, 2, 0, 76, 76, 108, 108, 2, 0, 88, 88, 120, 120, 3, 0, 48, 57, 65, 70, 97, 102, 4, 0, 48, 57, 65, 70, 95, 95, 97, 102, 1, 0, 48, 55, 2, 0, 48, 55, 95, 95, 2, 0, 66, 66, 98, 98, 1, 0, 48, 49, 2, 0, 48, 49, 95, 95, 4, 0, 68, 68, 70, 70, 100, 100, 102, 102, 2, 0, 80, 80, 112, 112, 2, 0, 43, 43, 45, 45, 4, 0, 10, 10, 13, 13, 39, 39, 92, 92, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 2, 0, 9, 9, 32, 32, 2, 0, 10, 10, 13, 13, 3, 0, 9, 10, 12, 13, 32, 32, 2, 0, 69, 69, 101, 101, 8, 0, 34, 34, 39, 39, 92, 92, 98, 98, 102, 102, 110, 110, 114, 114, 116, 116, 1, 0, 48, 51, 1, 0, 48, 57, 2, 0, 48, 57, 95, 95, 4, 0, 36, 36, 65, 90, 95, 95, 97, 122, 2, 0, 0, 127, 55296, 56319, 1, 0, 55296, 56319, 1, 0, 56320, 57343, 1156, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 1, 271, 1, 0, 0, 0, 3, 280, 1, 0, 0, 0, 5, 287, 1, 0, 0, 0, 7, 295, 1, 0, 0, 0, 9, 301, 1, 0, 0, 0, 11, 306, 1, 0, 0, 0, 13, 311, 1, 0, 0, 0, 15, 317, 1, 0, 0, 0, 17, 322, 1, 0, 0, 0, 19, 328, 1, 0, 0, 0, 21, 334, 1, 0, 0, 0, 23, 343, 1, 0, 0, 0, 25, 351, 1, 0, 0, 0, 27, 354, 1, 0, 0, 0, 29, 361, 1, 0, 0, 0, 31, 366, 1, 0, 0, 0, 33, 371, 1, 0, 0, 0, 35, 379, 1, 0, 0, 0, 37, 385, 1, 0, 0, 0, 39, 393, 1, 0, 0, 0, 41, 399, 1, 0, 0, 0, 43, 403, 1, 0, 0, 0, 45, 406, 1, 0, 0, 0, 47, 411, 1, 0, 0, 0, 49, 422, 1, 0, 0, 0, 51, 429, 1, 0, 0, 0, 53, 440, 1, 0, 0, 0, 55, 444, 1, 0, 0, 0, 57, 454, 1, 0, 0, 0, 59, 459, 1, 0, 0, 0, 61, 466, 1, 0, 0, 0, 63, 470, 1, 0, 0, 0, 65, 478, 1, 0, 0, 0, 67, 486, 1, 0, 0, 0, 69, 496, 1, 0, 0, 0, 71, 503, 1, 0, 0, 0, 73, 510, 1, 0, 0, 0, 75, 516, 1, 0, 0, 0, 77, 523, 1, 0, 0, 0, 79, 532, 1, 0, 0, 0, 81, 538, 1, 0, 0, 0, 83, 545, 1, 0, 0, 0, 85, 558, 1, 0, 0, 0, 87, 563, 1, 0, 0, 0, 89, 569, 1, 0, 0, 0, 91, 576, 1, 0, 0, 0, 93, 586, 1, 0, 0, 0, 95, 590, 1, 0, 0, 0, 97, 595, 1, 0, 0, 0, 99, 604, 1, 0, 0, 0, 101, 610, 1, 0, 0, 0, 103, 617, 1, 0, 0, 0, 105, 622, 1, 0, 0, 0, 107, 631, 1, 0, 0, 0, 109, 639, 1, 0, 0, 0, 111, 645, 1, 0, 0, 0, 113, 648, 1, 0, 0, 0, 115, 653, 1, 0, 0, 0, 117, 662, 1, 0, 0, 0, 119, 667, 1, 0, 0, 0, 121, 678, 1, 0, 0, 0, 123, 682, 1, 0, 0, 0, 125, 688, 1, 0, 0, 0, 127, 695, 1, 0, 0, 0, 129, 702, 1, 0, 0, 0, 131, 710, 1, 0, 0, 0, 133, 734, 1, 0, 0, 0, 135, 739, 1, 0, 0, 0, 137, 754, 1, 0, 0, 0, 139, 774, 1, 0, 0, 0, 141, 812, 1, 0, 0, 0, 143, 814, 1, 0, 0, 0, 145, 844, 1, 0, 0, 0, 147, 846, 1, 0, 0, 0, 149, 853, 1, 0, 0, 0, 151, 863, 1, 0, 0, 0, 153, 885, 1, 0, 0, 0, 155, 890, 1, 0, 0, 0, 157, 892, 1, 0, 0, 0, 159, 894, 1, 0, 0, 0, 161, 896, 1, 0, 0, 0, 163, 898, 1, 0, 0, 0, 165, 900, 1, 0, 0, 0, 167, 902, 1, 0, 0, 0, 169, 904, 1, 0, 0, 0, 171, 906, 1, 0, 0, 0, 173, 908, 1, 0, 0, 0, 175, 910, 1, 0, 0, 0, 177, 912, 1, 0, 0, 0, 179, 914, 1, 0, 0, 0, 181, 916, 1, 0, 0, 0, 183, 918, 1, 0, 0, 0, 185, 920, 1, 0, 0, 0, 187, 922, 1, 0, 0, 0, 189, 925, 1, 0, 0, 0, 191, 928, 1, 0, 0, 0, 193, 931, 1, 0, 0, 0, 195, 934, 1, 0, 0, 0, 197, 937, 1, 0, 0, 0, 199, 940, 1, 0, 0, 0, 201, 943, 1, 0, 0, 0, 203, 946, 1, 0, 0, 0, 205, 948, 1, 0, 0, 0, 207, 950, 1, 0, 0, 0, 209, 952, 1, 0, 0, 0, 211, 954, 1, 0, 0, 0, 213, 956, 1, 0, 0, 0, 215, 958, 1, 0, 0, 0, 217, 960, 1, 0, 0, 0, 219, 962, 1, 0, 0, 0, 221, 965, 1, 0, 0, 0, 223, 968, 1, 0, 0, 0, 225, 971, 1, 0, 0, 0, 227, 974, 1, 0, 0, 0, 229, 977, 1, 0, 0, 0, 231, 980, 1, 0, 0, 0, 233, 983, 1, 0, 0, 0, 235, 986, 1, 0, 0, 0, 237, 990, 1, 0, 0, 0, 239, 994, 1, 0, 0, 0, 241, 999, 1, 0, 0, 0, 243, 1002, 1, 0, 0, 0, 245, 1005, 1, 0, 0, 0, 247, 1007, 1, 0, 0, 0, 249, 1012, 1, 0, 0, 0, 251, 1018, 1, 0, 0, 0, 253, 1032, 1, 0, 0, 0, 255, 1043, 1, 0, 0, 0, 257, 1050, 1, 0, 0, 0, 259, 1077, 1, 0, 0, 0, 261, 1079, 1, 0, 0, 0, 263, 1090, 1, 0, 0, 0, 265, 1092, 1, 0, 0, 0, 267, 1104, 1, 0, 0, 0, 269, 1110, 1, 0, 0, 0, 271, 272, 5, 97, 0, 0, 272, 273, 5, 98, 0, 0, 273, 274, 5, 115, 0, 0, 274, 275, 5, 116, 0, 0, 275, 276, 5, 114, 0, 0, 276, 277, 5, 97, 0, 0, 277, 278, 5, 99, 0, 0, 278, 279, 5, 116, 0, 0, 279, 2, 1, 0, 0, 0, 280, 281, 5, 97, 0, 0, 281, 282, 5, 115, 0, 0, 282, 283, 5, 115, 0, 0, 283, 284, 5, 101, 0, 0, 284, 285, 5, 114, 0, 0, 285, 286, 5, 116, 0, 0, 286, 4, 1, 0, 0, 0, 287, 288, 5, 98, 0, 0, 288, 289, 5, 111, 0, 0, 289, 290, 5, 111, 0, 0, 290, 291, 5, 108, 0, 0, 291, 292, 5, 101, 0, 0, 292, 293, 5, 97, 0, 0, 293, 294, 5, 110, 0, 0, 294, 6, 1, 0, 0, 0, 295, 296, 5, 98, 0, 0, 296, 297, 5, 114, 0, 0, 297, 298, 5, 101, 0, 0, 298, 299, 5, 97, 0, 0, 299, 300, 5, 107, 0, 0, 300, 8, 1, 0, 0, 0, 301, 302, 5, 98, 0, 0, 302, 303, 5, 121, 0, 0, 303, 304, 5, 116, 0, 0, 304, 305, 5, 101, 0, 0, 305, 10, 1, 0, 0, 0, 306, 307, 5, 99, 0, 0, 307, 308, 5, 97, 0, 0, 308, 309, 5, 115, 0, 0, 309, 310, 5, 101, 0, 0, 310, 12, 1, 0, 0, 0, 311, 312, 5, 99, 0, 0, 312, 313, 5, 97, 0, 0, 313, 314, 5, 116, 0, 0, 314, 315, 5, 99, 0, 0, 315, 316, 5, 104, 0, 0, 316, 14, 1, 0, 0, 0, 317, 318, 5, 99, 0, 0, 318, 319, 5, 104, 0, 0, 319, 320, 5, 97, 0, 0, 320, 321, 5, 114, 0, 0, 321, 16, 1, 0, 0, 0, 322, 323, 5, 99, 0, 0, 323, 324, 5, 108, 0, 0, 324, 325, 5, 97, 0, 0, 325, 326, 5, 115, 0, 0, 326, 327, 5, 115, 0, 0, 327, 18, 1, 0, 0, 0, 328, 329, 5, 99, 0, 0, 329, 330, 5, 111, 0, 0, 330, 331, 5, 110, 0, 0, 331, 332, 5, 115, 0, 0, 332, 333, 5, 116, 0, 0, 333, 20, 1, 0, 0, 0, 334, 335, 5, 99, 0, 0, 335, 336, 5, 111, 0, 0, 336, 337, 5, 110, 0, 0, 337, 338, 5, 116, 0, 0, 338, 339, 5, 105, 0, 0, 339, 340, 5, 110, 0, 0, 340, 341, 5, 117, 0, 0, 341, 342, 5, 101, 0, 0, 342, 22, 1, 0, 0, 0, 343, 344, 5, 100, 0, 0, 344, 345, 5, 101, 0, 0, 345, 346, 5, 102, 0, 0, 346, 347, 5, 97, 0, 0, 347, 348, 5, 117, 0, 0, 348, 349, 5, 108, 0, 0, 349, 350, 5, 116, 0, 0, 350, 24, 1, 0, 0, 0, 351, 352, 5, 100, 0, 0, 352, 353, 5, 111, 0, 0, 353, 26, 1, 0, 0, 0, 354, 355, 5, 100, 0, 0, 355, 356, 5, 111, 0, 0, 356, 357, 5, 117, 0, 0, 357, 358, 5, 98, 0, 0, 358, 359, 5, 108, 0, 0, 359, 360, 5, 101, 0, 0, 360, 28, 1, 0, 0, 0, 361, 362, 5, 101, 0, 0, 362, 363, 5, 108, 0, 0, 363, 364, 5, 115, 0, 0, 364, 365, 5, 101, 0, 0, 365, 30, 1, 0, 0, 0, 366, 367, 5, 101, 0, 0, 367, 368, 5, 110, 0, 0, 368, 369, 5, 117, 0, 0, 369, 370, 5, 109, 0, 0, 370, 32, 1, 0, 0, 0, 371, 372, 5, 101, 0, 0, 372, 373, 5, 120, 0, 0, 373, 374, 5, 116, 0, 0, 374, 375, 5, 101, 0, 0, 375, 376, 5, 110, 0, 0, 376, 377, 5, 100, 0, 0, 377, 378, 5, 115, 0, 0, 378, 34, 1, 0, 0, 0, 379, 380, 5, 102, 0, 0, 380, 381, 5, 105, 0, 0, 381, 382, 5, 110, 0, 0, 382, 383, 5, 97, 0, 0, 383, 384, 5, 108, 0, 0, 384, 36, 1, 0, 0, 0, 385, 386, 5, 102, 0, 0, 386, 387, 5, 105, 0, 0, 387, 388, 5, 110, 0, 0, 388, 389, 5, 97, 0, 0, 389, 390, 5, 108, 0, 0, 390, 391, 5, 108, 0, 0, 391, 392, 5, 121, 0, 0, 392, 38, 1, 0, 0, 0, 393, 394, 5, 102, 0, 0, 394, 395, 5, 108, 0, 0, 395, 396, 5, 111, 0, 0, 396, 397, 5, 97, 0, 0, 397, 398, 5, 116, 0, 0, 398, 40, 1, 0, 0, 0, 399, 400, 5, 102, 0, 0, 400, 401, 5, 111, 0, 0, 401, 402, 5, 114, 0, 0, 402, 42, 1, 0, 0, 0, 403, 404, 5, 105, 0, 0, 404, 405, 5, 102, 0, 0, 405, 44, 1, 0, 0, 0, 406, 407, 5, 103, 0, 0, 407, 408, 5, 111, 0, 0, 408, 409, 5, 116, 0, 0, 409, 410, 5, 111, 0, 0, 410, 46, 1, 0, 0, 0, 411, 412, 5, 105, 0, 0, 412, 413, 5, 109, 0, 0, 413, 414, 5, 112, 0, 0, 414, 415, 5, 108, 0, 0, 415, 416, 5, 101, 0, 0, 416, 417, 5, 109, 0, 0, 417, 418, 5, 101, 0, 0, 418, 419, 5, 110, 0, 0, 419, 420, 5, 116, 0, 0, 420, 421, 5, 115, 0, 0, 421, 48, 1, 0, 0, 0, 422, 423, 5, 105, 0, 0, 423, 424, 5, 109, 0, 0, 424, 425, 5, 112, 0, 0, 425, 426, 5, 111, 0, 0, 426, 427, 5, 114, 0, 0, 427, 428, 5, 116, 0, 0, 428, 50, 1, 0, 0, 0, 429, 430, 5, 105, 0, 0, 430, 431, 5, 110, 0, 0, 431, 432, 5, 115, 0, 0, 432, 433, 5, 116, 0, 0, 433, 434, 5, 97, 0, 0, 434, 435, 5, 110, 0, 0, 435, 436, 5, 99, 0, 0, 436, 437, 5, 101, 0, 0, 437, 438, 5, 111, 0, 0, 438, 439, 5, 102, 0, 0, 439, 52, 1, 0, 0, 0, 440, 441, 5, 105, 0, 0, 441, 442, 5, 110, 0, 0, 442, 443, 5, 116, 0, 0, 443, 54, 1, 0, 0, 0, 444, 445, 5, 105, 0, 0, 445, 446, 5, 110, 0, 0, 446, 447, 5, 116, 0, 0, 447, 448, 5, 101, 0, 0, 448, 449, 5, 114, 0, 0, 449, 450, 5, 102, 0, 0, 450, 451, 5, 97, 0, 0, 451, 452, 5, 99, 0, 0, 452, 453, 5, 101, 0, 0, 453, 56, 1, 0, 0, 0, 454, 455, 5, 108, 0, 0, 455, 456, 5, 111, 0, 0, 456, 457, 5, 110, 0, 0, 457, 458, 5, 103, 0, 0, 458, 58, 1, 0, 0, 0, 459, 460, 5, 110, 0, 0, 460, 461, 5, 97, 0, 0, 461, 462, 5, 116, 0, 0, 462, 463, 5, 105, 0, 0, 463, 464, 5, 118, 0, 0, 464, 465, 5, 101, 0, 0, 465, 60, 1, 0, 0, 0, 466, 467, 5, 110, 0, 0, 467, 468, 5, 101, 0, 0, 468, 469, 5, 119, 0, 0, 469, 62, 1, 0, 0, 0, 470, 471, 5, 112, 0, 0, 471, 472, 5, 97, 0, 0, 472, 473, 5, 99, 0, 0, 473, 474, 5, 107, 0, 0, 474, 475, 5, 97, 0, 0, 475, 476, 5, 103, 0, 0, 476, 477, 5, 101, 0, 0, 477, 64, 1, 0, 0, 0, 478, 479, 5, 112, 0, 0, 479, 480, 5, 114, 0, 0, 480, 481, 5, 105, 0, 0, 481, 482, 5, 118, 0, 0, 482, 483, 5, 97, 0, 0, 483, 484, 5, 116, 0, 0, 484, 485, 5, 101, 0, 0, 485, 66, 1, 0, 0, 0, 486, 487, 5, 112, 0, 0, 487, 488, 5, 114, 0, 0, 488, 489, 5, 111, 0, 0, 489, 490, 5, 116, 0, 0, 490, 491, 5, 101, 0, 0, 491, 492, 5, 99, 0, 0, 492, 493, 5, 116, 0, 0, 493, 494, 5, 101, 0, 0, 494, 495, 5, 100, 0, 0, 495, 68, 1, 0, 0, 0, 496, 497, 5, 112, 0, 0, 497, 498, 5, 117, 0, 0, 498, 499, 5, 98, 0, 0, 499, 500, 5, 108, 0, 0, 500, 501, 5, 105, 0, 0, 501, 502, 5, 99, 0, 0, 502, 70, 1, 0, 0, 0, 503, 504, 5, 114, 0, 0, 504, 505, 5, 101, 0, 0, 505, 506, 5, 116, 0, 0, 506, 507, 5, 117, 0, 0, 507, 508, 5, 114, 0, 0, 508, 509, 5, 110, 0, 0, 509, 72, 1, 0, 0, 0, 510, 511, 5, 115, 0, 0, 511, 512, 5, 104, 0, 0, 512, 513, 5, 111, 0, 0, 513, 514, 5, 114, 0, 0, 514, 515, 5, 116, 0, 0, 515, 74, 1, 0, 0, 0, 516, 517, 5, 115, 0, 0, 517, 518, 5, 116, 0, 0, 518, 519, 5, 97, 0, 0, 519, 520, 5, 116, 0, 0, 520, 521, 5, 105, 0, 0, 521, 522, 5, 99, 0, 0, 522, 76, 1, 0, 0, 0, 523, 524, 5, 115, 0, 0, 524, 525, 5, 116, 0, 0, 525, 526, 5, 114, 0, 0, 526, 527, 5, 105, 0, 0, 527, 528, 5, 99, 0, 0, 528, 529, 5, 116, 0, 0, 529, 530, 5, 102, 0, 0, 530, 531, 5, 112, 0, 0, 531, 78, 1, 0, 0, 0, 532, 533, 5, 115, 0, 0, 533, 534, 5, 117, 0, 0, 534, 535, 5, 112, 0, 0, 535, 536, 5, 101, 0, 0, 536, 537, 5, 114, 0, 0, 537, 80, 1, 0, 0, 0, 538, 539, 5, 115, 0, 0, 539, 540, 5, 119, 0, 0, 540, 541, 5, 105, 0, 0, 541, 542, 5, 116, 0, 0, 542, 543, 5, 99, 0, 0, 543, 544, 5, 104, 0, 0, 544, 82, 1, 0, 0, 0, 545, 546, 5, 115, 0, 0, 546, 547, 5, 121, 0, 0, 547, 548, 5, 110, 0, 0, 548, 549, 5, 99, 0, 0, 549, 550, 5, 104, 0, 0, 550, 551, 5, 114, 0, 0, 551, 552, 5, 111, 0, 0, 552, 553, 5, 110, 0, 0, 553, 554, 5, 105, 0, 0, 554, 555, 5, 122, 0, 0, 555, 556, 5, 101, 0, 0, 556, 557, 5, 100, 0, 0, 557, 84, 1, 0, 0, 0, 558, 559, 5, 116, 0, 0, 559, 560, 5, 104, 0, 0, 560, 561, 5, 105, 0, 0, 561, 562, 5, 115, 0, 0, 562, 86, 1, 0, 0, 0, 563, 564, 5, 116, 0, 0, 564, 565, 5, 104, 0, 0, 565, 566, 5, 114, 0, 0, 566, 567, 5, 111, 0, 0, 567, 568, 5, 119, 0, 0, 568, 88, 1, 0, 0, 0, 569, 570, 5, 116, 0, 0, 570, 571, 5, 104, 0, 0, 571, 572, 5, 114, 0, 0, 572, 573, 5, 111, 0, 0, 573, 574, 5, 119, 0, 0, 574, 575, 5, 115, 0, 0, 575, 90, 1, 0, 0, 0, 576, 577, 5, 116, 0, 0, 577, 578, 5, 114, 0, 0, 578, 579, 5, 97, 0, 0, 579, 580, 5, 110, 0, 0, 580, 581, 5, 115, 0, 0, 581, 582, 5, 105, 0, 0, 582, 583, 5, 101, 0, 0, 583, 584, 5, 110, 0, 0, 584, 585, 5, 116, 0, 0, 585, 92, 1, 0, 0, 0, 586, 587, 5, 116, 0, 0, 587, 588, 5, 114, 0, 0, 588, 589, 5, 121, 0, 0, 589, 94, 1, 0, 0, 0, 590, 591, 5, 118, 0, 0, 591, 592, 5, 111, 0, 0, 592, 593, 5, 105, 0, 0, 593, 594, 5, 100, 0, 0, 594, 96, 1, 0, 0, 0, 595, 596, 5, 118, 0, 0, 596, 597, 5, 111, 0, 0, 597, 598, 5, 108, 0, 0, 598, 599, 5, 97, 0, 0, 599, 600, 5, 116, 0, 0, 600, 601, 5, 105, 0, 0, 601, 602, 5, 108, 0, 0, 602, 603, 5, 101, 0, 0, 603, 98, 1, 0, 0, 0, 604, 605, 5, 119, 0, 0, 605, 606, 5, 104, 0, 0, 606, 607, 5, 105, 0, 0, 607, 608, 5, 108, 0, 0, 608, 609, 5, 101, 0, 0, 609, 100, 1, 0, 0, 0, 610, 611, 5, 109, 0, 0, 611, 612, 5, 111, 0, 0, 612, 613, 5, 100, 0, 0, 613, 614, 5, 117, 0, 0, 614, 615, 5, 108, 0, 0, 615, 616, 5, 101, 0, 0, 616, 102, 1, 0, 0, 0, 617, 618, 5, 111, 0, 0, 618, 619, 5, 112, 0, 0, 619, 620, 5, 101, 0, 0, 620, 621, 5, 110, 0, 0, 621, 104, 1, 0, 0, 0, 622, 623, 5, 114, 0, 0, 623, 624, 5, 101, 0, 0, 624, 625, 5, 113, 0, 0, 625, 626, 5, 117, 0, 0, 626, 627, 5, 105, 0, 0, 627, 628, 5, 114, 0, 0, 628, 629, 5, 101, 0, 0, 629, 630, 5, 115, 0, 0, 630, 106, 1, 0, 0, 0, 631, 632, 5, 101, 0, 0, 632, 633, 5, 120, 0, 0, 633, 634, 5, 112, 0, 0, 634, 635, 5, 111, 0, 0, 635, 636, 5, 114, 0, 0, 636, 637, 5, 116, 0, 0, 637, 638, 5, 115, 0, 0, 638, 108, 1, 0, 0, 0, 639, 640, 5, 111, 0, 0, 640, 641, 5, 112, 0, 0, 641, 642, 5, 101, 0, 0, 642, 643, 5, 110, 0, 0, 643, 644, 5, 115, 0, 0, 644, 110, 1, 0, 0, 0, 645, 646, 5, 116, 0, 0, 646, 647, 5, 111, 0, 0, 647, 112, 1, 0, 0, 0, 648, 649, 5, 117, 0, 0, 649, 650, 5, 115, 0, 0, 650, 651, 5, 101, 0, 0, 651, 652, 5, 115, 0, 0, 652, 114, 1, 0, 0, 0, 653, 654, 5, 112, 0, 0, 654, 655, 5, 114, 0, 0, 655, 656, 5, 111, 0, 0, 656, 657, 5, 118, 0, 0, 657, 658, 5, 105, 0, 0, 658, 659, 5, 100, 0, 0, 659, 660, 5, 101, 0, 0, 660, 661, 5, 115, 0, 0, 661, 116, 1, 0, 0, 0, 662, 663, 5, 119, 0, 0, 663, 664, 5, 105, 0, 0, 664, 665, 5, 116, 0, 0, 665, 666, 5, 104, 0, 0, 666, 118, 1, 0, 0, 0, 667, 668, 5, 116, 0, 0, 668, 669, 5, 114, 0, 0, 669, 670, 5, 97, 0, 0, 670, 671, 5, 110, 0, 0, 671, 672, 5, 115, 0, 0, 672, 673, 5, 105, 0, 0, 673, 674, 5, 116, 0, 0, 674, 675, 5, 105, 0, 0, 675, 676, 5, 118, 0, 0, 676, 677, 5, 101, 0, 0, 677, 120, 1, 0, 0, 0, 678, 679, 5, 118, 0, 0, 679, 680, 5, 97, 0, 0, 680, 681, 5, 114, 0, 0, 681, 122, 1, 0, 0, 0, 682, 683, 5, 121, 0, 0, 683, 684, 5, 105, 0, 0, 684, 685, 5, 101, 0, 0, 685, 686, 5, 108, 0, 0, 686, 687, 5, 100, 0, 0, 687, 124, 1, 0, 0, 0, 688, 689, 5, 114, 0, 0, 689, 690, 5, 101, 0, 0, 690, 691, 5, 99, 0, 0, 691, 692, 5, 111, 0, 0, 692, 693, 5, 114, 0, 0, 693, 694, 5, 100, 0, 0, 694, 126, 1, 0, 0, 0, 695, 696, 5, 115, 0, 0, 696, 697, 5, 101, 0, 0, 697, 698, 5, 97, 0, 0, 698, 699, 5, 108, 0, 0, 699, 700, 5, 101, 0, 0, 700, 701, 5, 100, 0, 0, 701, 128, 1, 0, 0, 0, 702, 703, 5, 112, 0, 0, 703, 704, 5, 101, 0, 0, 704, 705, 5, 114, 0, 0, 705, 706, 5, 109, 0, 0, 706, 707, 5, 105, 0, 0, 707, 708, 5, 116, 0, 0, 708, 709, 5, 115, 0, 0, 709, 130, 1, 0, 0, 0, 710, 711, 5, 110, 0, 0, 711, 712, 5, 111, 0, 0, 712, 713, 5, 110, 0, 0, 713, 714, 5, 45, 0, 0, 714, 715, 5, 115, 0, 0, 715, 716, 5, 101, 0, 0, 716, 717, 5, 97, 0, 0, 717, 718, 5, 108, 0, 0, 718, 719, 5, 101, 0, 0, 719, 720, 5, 100, 0, 0, 720, 132, 1, 0, 0, 0, 721, 735, 5, 48, 0, 0, 722, 732, 7, 0, 0, 0, 723, 725, 3, 265, 132, 0, 724, 723, 1, 0, 0, 0, 724, 725, 1, 0, 0, 0, 725, 733, 1, 0, 0, 0, 726, 728, 5, 95, 0, 0, 727, 726, 1, 0, 0, 0, 728, 729, 1, 0, 0, 0, 729, 727, 1, 0, 0, 0, 729, 730, 1, 0, 0, 0, 730, 731, 1, 0, 0, 0, 731, 733, 3, 265, 132, 0, 732, 724, 1, 0, 0, 0, 732, 727, 1, 0, 0, 0, 733, 735, 1, 0, 0, 0, 734, 721, 1, 0, 0, 0, 734, 722, 1, 0, 0, 0, 735, 737, 1, 0, 0, 0, 736, 738, 7, 1, 0, 0, 737, 736, 1, 0, 0, 0, 737, 738, 1, 0, 0, 0, 738, 134, 1, 0, 0, 0, 739, 740, 5, 48, 0, 0, 740, 741, 7, 2, 0, 0, 741, 749, 7, 3, 0, 0, 742, 744, 7, 4, 0, 0, 743, 742, 1, 0, 0, 0, 744, 747, 1, 0, 0, 0, 745, 743, 1, 0, 0, 0, 745, 746, 1, 0, 0, 0, 746, 748, 1, 0, 0, 0, 747, 745, 1, 0, 0, 0, 748, 750, 7, 3, 0, 0, 749, 745, 1, 0, 0, 0, 749, 750, 1, 0, 0, 0, 750, 752, 1, 0, 0, 0, 751, 753, 7, 1, 0, 0, 752, 751, 1, 0, 0, 0, 752, 753, 1, 0, 0, 0, 753, 136, 1, 0, 0, 0, 754, 758, 5, 48, 0, 0, 755, 757, 5, 95, 0, 0, 756, 755, 1, 0, 0, 0, 757, 760, 1, 0, 0, 0, 758, 756, 1, 0, 0, 0, 758, 759, 1, 0, 0, 0, 759, 761, 1, 0, 0, 0, 760, 758, 1, 0, 0, 0, 761, 769, 7, 5, 0, 0, 762, 764, 7, 6, 0, 0, 763, 762, 1, 0, 0, 0, 764, 767, 1, 0, 0, 0, 765, 763, 1, 0, 0, 0, 765, 766, 1, 0, 0, 0, 766, 768, 1, 0, 0, 0, 767, 765, 1, 0, 0, 0, 768, 770, 7, 5, 0, 0, 769, 765, 1, 0, 0, 0, 769, 770, 1, 0, 0, 0, 770, 772, 1, 0, 0, 0, 771, 773, 7, 1, 0, 0, 772, 771, 1, 0, 0, 0, 772, 773, 1, 0, 0, 0, 773, 138, 1, 0, 0, 0, 774, 775, 5, 48, 0, 0, 775, 776, 7, 7, 0, 0, 776, 784, 7, 8, 0, 0, 777, 779, 7, 9, 0, 0, 778, 777, 1, 0, 0, 0, 779, 782, 1, 0, 0, 0, 780, 778, 1, 0, 0, 0, 780, 781, 1, 0, 0, 0, 781, 783, 1, 0, 0, 0, 782, 780, 1, 0, 0, 0, 783, 785, 7, 8, 0, 0, 784, 780, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 787, 1, 0, 0, 0, 786, 788, 7, 1, 0, 0, 787, 786, 1, 0, 0, 0, 787, 788, 1, 0, 0, 0, 788, 140, 1, 0, 0, 0, 789, 790, 3, 265, 132, 0, 790, 792, 5, 46, 0, 0, 791, 793, 3, 265, 132, 0, 792, 791, 1, 0, 0, 0, 792, 793, 1, 0, 0, 0, 793, 797, 1, 0, 0, 0, 794, 795, 5, 46, 0, 0, 795, 797, 3, 265, 132, 0, 796, 789, 1, 0, 0, 0, 796, 794, 1, 0, 0, 0, 797, 799, 1, 0, 0, 0, 798, 800, 3, 257, 128, 0, 799, 798, 1, 0, 0, 0, 799, 800, 1, 0, 0, 0, 800, 802, 1, 0, 0, 0, 801, 803, 7, 10, 0, 0, 802, 801, 1, 0, 0, 0, 802, 803, 1, 0, 0, 0, 803, 813, 1, 0, 0, 0, 804, 810, 3, 265, 132, 0, 805, 807, 3, 257, 128, 0, 806, 808, 7, 10, 0, 0, 807, 806, 1, 0, 0, 0, 807, 808, 1, 0, 0, 0, 808, 811, 1, 0, 0, 0, 809, 811, 7, 10, 0, 0, 810, 805, 1, 0, 0, 0, 810, 809, 1, 0, 0, 0, 811, 813, 1, 0, 0, 0, 812, 796, 1, 0, 0, 0, 812, 804, 1, 0, 0, 0, 813, 142, 1, 0, 0, 0, 814, 815, 5, 48, 0, 0, 815, 825, 7, 2, 0, 0, 816, 818, 3, 261, 130, 0, 817, 819, 5, 46, 0, 0, 818, 817, 1, 0, 0, 0, 818, 819, 1, 0, 0, 0, 819, 826, 1, 0, 0, 0, 820, 822, 3, 261, 130, 0, 821, 820, 1, 0, 0, 0, 821, 822, 1, 0, 0, 0, 822, 823, 1, 0, 0, 0, 823, 824, 5, 46, 0, 0, 824, 826, 3, 261, 130, 0, 825, 816, 1, 0, 0, 0, 825, 821, 1, 0, 0, 0, 826, 827, 1, 0, 0, 0, 827, 829, 7, 11, 0, 0, 828, 830, 7, 12, 0, 0, 829, 828, 1, 0, 0, 0, 829, 830, 1, 0, 0, 0, 830, 831, 1, 0, 0, 0, 831, 833, 3, 265, 132, 0, 832, 834, 7, 10, 0, 0, 833, 832, 1, 0, 0, 0, 833, 834, 1, 0, 0, 0, 834, 144, 1, 0, 0, 0, 835, 836, 5, 116, 0, 0, 836, 837, 5, 114, 0, 0, 837, 838, 5, 117, 0, 0, 838, 845, 5, 101, 0, 0, 839, 840, 5, 102, 0, 0, 840, 841, 5, 97, 0, 0, 841, 842, 5, 108, 0, 0, 842, 843, 5, 115, 0, 0, 843, 845, 5, 101, 0, 0, 844, 835, 1, 0, 0, 0, 844, 839, 1, 0, 0, 0, 845, 146, 1, 0, 0, 0, 846, 849, 5, 39, 0, 0, 847, 850, 8, 13, 0, 0, 848, 850, 3, 259, 129, 0, 849, 847, 1, 0, 0, 0, 849, 848, 1, 0, 0, 0, 850, 851, 1, 0, 0, 0, 851, 852, 5, 39, 0, 0, 852, 148, 1, 0, 0, 0, 853, 858, 5, 34, 0, 0, 854, 857, 8, 14, 0, 0, 855, 857, 3, 259, 129, 0, 856, 854, 1, 0, 0, 0, 856, 855, 1, 0, 0, 0, 857, 860, 1, 0, 0, 0, 858, 856, 1, 0, 0, 0, 858, 859, 1, 0, 0, 0, 859, 861, 1, 0, 0, 0, 860, 858, 1, 0, 0, 0, 861, 862, 5, 34, 0, 0, 862, 150, 1, 0, 0, 0, 863, 864, 5, 34, 0, 0, 864, 865, 5, 34, 0, 0, 865, 866, 5, 34, 0, 0, 866, 870, 1, 0, 0, 0, 867, 869, 7, 15, 0, 0, 868, 867, 1, 0, 0, 0, 869, 872, 1, 0, 0, 0, 870, 868, 1, 0, 0, 0, 870, 871, 1, 0, 0, 0, 871, 873, 1, 0, 0, 0, 872, 870, 1, 0, 0, 0, 873, 878, 7, 16, 0, 0, 874, 877, 9, 0, 0, 0, 875, 877, 3, 259, 129, 0, 876, 874, 1, 0, 0, 0, 876, 875, 1, 0, 0, 0, 877, 880, 1, 0, 0, 0, 878, 879, 1, 0, 0, 0, 878, 876, 1, 0, 0, 0, 879, 881, 1, 0, 0, 0, 880, 878, 1, 0, 0, 0, 881, 882, 5, 34, 0, 0, 882, 883, 5, 34, 0, 0, 883, 884, 5, 34, 0, 0, 884, 152, 1, 0, 0, 0, 885, 886, 5, 110, 0, 0, 886, 887, 5, 117, 0, 0, 887, 888, 5, 108, 0, 0, 888, 889, 5, 108, 0, 0, 889, 154, 1, 0, 0, 0, 890, 891, 5, 40, 0, 0, 891, 156, 1, 0, 0, 0, 892, 893, 5, 41, 0, 0, 893, 158, 1, 0, 0, 0, 894, 895, 5, 123, 0, 0, 895, 160, 1, 0, 0, 0, 896, 897, 5, 125, 0, 0, 897, 162, 1, 0, 0, 0, 898, 899, 5, 91, 0, 0, 899, 164, 1, 0, 0, 0, 900, 901, 5, 93, 0, 0, 901, 166, 1, 0, 0, 0, 902, 903, 5, 59, 0, 0, 903, 168, 1, 0, 0, 0, 904, 905, 5, 44, 0, 0, 905, 170, 1, 0, 0, 0, 906, 907, 5, 46, 0, 0, 907, 172, 1, 0, 0, 0, 908, 909, 5, 61, 0, 0, 909, 174, 1, 0, 0, 0, 910, 911, 5, 62, 0, 0, 911, 176, 1, 0, 0, 0, 912, 913, 5, 60, 0, 0, 913, 178, 1, 0, 0, 0, 914, 915, 5, 33, 0, 0, 915, 180, 1, 0, 0, 0, 916, 917, 5, 126, 0, 0, 917, 182, 1, 0, 0, 0, 918, 919, 5, 63, 0, 0, 919, 184, 1, 0, 0, 0, 920, 921, 5, 58, 0, 0, 921, 186, 1, 0, 0, 0, 922, 923, 5, 61, 0, 0, 923, 924, 5, 61, 0, 0, 924, 188, 1, 0, 0, 0, 925, 926, 5, 60, 0, 0, 926, 927, 5, 61, 0, 0, 927, 190, 1, 0, 0, 0, 928, 929, 5, 62, 0, 0, 929, 930, 5, 61, 0, 0, 930, 192, 1, 0, 0, 0, 931, 932, 5, 33, 0, 0, 932, 933, 5, 61, 0, 0, 933, 194, 1, 0, 0, 0, 934, 935, 5, 38, 0, 0, 935, 936, 5, 38, 0, 0, 936, 196, 1, 0, 0, 0, 937, 938, 5, 124, 0, 0, 938, 939, 5, 124, 0, 0, 939, 198, 1, 0, 0, 0, 940, 941, 5, 43, 0, 0, 941, 942, 5, 43, 0, 0, 942, 200, 1, 0, 0, 0, 943, 944, 5, 45, 0, 0, 944, 945, 5, 45, 0, 0, 945, 202, 1, 0, 0, 0, 946, 947, 5, 43, 0, 0, 947, 204, 1, 0, 0, 0, 948, 949, 5, 45, 0, 0, 949, 206, 1, 0, 0, 0, 950, 951, 5, 42, 0, 0, 951, 208, 1, 0, 0, 0, 952, 953, 5, 47, 0, 0, 953, 210, 1, 0, 0, 0, 954, 955, 5, 38, 0, 0, 955, 212, 1, 0, 0, 0, 956, 957, 5, 124, 0, 0, 957, 214, 1, 0, 0, 0, 958, 959, 5, 94, 0, 0, 959, 216, 1, 0, 0, 0, 960, 961, 5, 37, 0, 0, 961, 218, 1, 0, 0, 0, 962, 963, 5, 43, 0, 0, 963, 964, 5, 61, 0, 0, 964, 220, 1, 0, 0, 0, 965, 966, 5, 45, 0, 0, 966, 967, 5, 61, 0, 0, 967, 222, 1, 0, 0, 0, 968, 969, 5, 42, 0, 0, 969, 970, 5, 61, 0, 0, 970, 224, 1, 0, 0, 0, 971, 972, 5, 47, 0, 0, 972, 973, 5, 61, 0, 0, 973, 226, 1, 0, 0, 0, 974, 975, 5, 38, 0, 0, 975, 976, 5, 61, 0, 0, 976, 228, 1, 0, 0, 0, 977, 978, 5, 124, 0, 0, 978, 979, 5, 61, 0, 0, 979, 230, 1, 0, 0, 0, 980, 981, 5, 94, 0, 0, 981, 982, 5, 61, 0, 0, 982, 232, 1, 0, 0, 0, 983, 984, 5, 37, 0, 0, 984, 985, 5, 61, 0, 0, 985, 234, 1, 0, 0, 0, 986, 987, 5, 60, 0, 0, 987, 988, 5, 60, 0, 0, 988, 989, 5, 61, 0, 0, 989, 236, 1, 0, 0, 0, 990, 991, 5, 62, 0, 0, 991, 992, 5, 62, 0, 0, 992, 993, 5, 61, 0, 0, 993, 238, 1, 0, 0, 0, 994, 995, 5, 62, 0, 0, 995, 996, 5, 62, 0, 0, 996, 997, 5, 62, 0, 0, 997, 998, 5, 61, 0, 0, 998, 240, 1, 0, 0, 0, 999, 1000, 5, 45, 0, 0, 1000, 1001, 5, 62, 0, 0, 1001, 242, 1, 0, 0, 0, 1002, 1003, 5, 58, 0, 0, 1003, 1004, 5, 58, 0, 0, 1004, 244, 1, 0, 0, 0, 1005, 1006, 5, 64, 0, 0, 1006, 246, 1, 0, 0, 0, 1007, 1008, 5, 46, 0, 0, 1008, 1009, 5, 46, 0, 0, 1009, 1010, 5, 46, 0, 0, 1010, 248, 1, 0, 0, 0, 1011, 1013, 7, 17, 0, 0, 1012, 1011, 1, 0, 0, 0, 1013, 1014, 1, 0, 0, 0, 1014, 1012, 1, 0, 0, 0, 1014, 1015, 1, 0, 0, 0, 1015, 1016, 1, 0, 0, 0, 1016, 1017, 6, 124, 0, 0, 1017, 250, 1, 0, 0, 0, 1018, 1019, 5, 47, 0, 0, 1019, 1020, 5, 42, 0, 0, 1020, 1024, 1, 0, 0, 0, 1021, 1023, 9, 0, 0, 0, 1022, 1021, 1, 0, 0, 0, 1023, 1026, 1, 0, 0, 0, 1024, 1025, 1, 0, 0, 0, 1024, 1022, 1, 0, 0, 0, 1025, 1027, 1, 0, 0, 0, 1026, 1024, 1, 0, 0, 0, 1027, 1028, 5, 42, 0, 0, 1028, 1029, 5, 47, 0, 0, 1029, 1030, 1, 0, 0, 0, 1030, 1031, 6, 125, 0, 0, 1031, 252, 1, 0, 0, 0, 1032, 1033, 5, 47, 0, 0, 1033, 1034, 5, 47, 0, 0, 1034, 1038, 1, 0, 0, 0, 1035, 1037, 8, 16, 0, 0, 1036, 1035, 1, 0, 0, 0, 1037, 1040, 1, 0, 0, 0, 1038, 1036, 1, 0, 0, 0, 1038, 1039, 1, 0, 0, 0, 1039, 1041, 1, 0, 0, 0, 1040, 1038, 1, 0, 0, 0, 1041, 1042, 6, 126, 0, 0, 1042, 254, 1, 0, 0, 0, 1043, 1047, 3, 269, 134, 0, 1044, 1046, 3, 267, 133, 0, 1045, 1044, 1, 0, 0, 0, 1046, 1049, 1, 0, 0, 0, 1047, 1045, 1, 0, 0, 0, 1047, 1048, 1, 0, 0, 0, 1048, 256, 1, 0, 0, 0, 1049, 1047, 1, 0, 0, 0, 1050, 1052, 7, 18, 0, 0, 1051, 1053, 7, 12, 0, 0, 1052, 1051, 1, 0, 0, 0, 1052, 1053, 1, 0, 0, 0, 1053, 1054, 1, 0, 0, 0, 1054, 1055, 3, 265, 132, 0, 1055, 258, 1, 0, 0, 0, 1056, 1057, 5, 92, 0, 0, 1057, 1078, 7, 19, 0, 0, 1058, 1063, 5, 92, 0, 0, 1059, 1061, 7, 20, 0, 0, 1060, 1059, 1, 0, 0, 0, 1060, 1061, 1, 0, 0, 0, 1061, 1062, 1, 0, 0, 0, 1062, 1064, 7, 5, 0, 0, 1063, 1060, 1, 0, 0, 0, 1063, 1064, 1, 0, 0, 0, 1064, 1065, 1, 0, 0, 0, 1065, 1078, 7, 5, 0, 0, 1066, 1068, 5, 92, 0, 0, 1067, 1069, 5, 117, 0, 0, 1068, 1067, 1, 0, 0, 0, 1069, 1070, 1, 0, 0, 0, 1070, 1068, 1, 0, 0, 0, 1070, 1071, 1, 0, 0, 0, 1071, 1072, 1, 0, 0, 0, 1072, 1073, 3, 263, 131, 0, 1073, 1074, 3, 263, 131, 0, 1074, 1075, 3, 263, 131, 0, 1075, 1076, 3, 263, 131, 0, 1076, 1078, 1, 0, 0, 0, 1077, 1056, 1, 0, 0, 0, 1077, 1058, 1, 0, 0, 0, 1077, 1066, 1, 0, 0, 0, 1078, 260, 1, 0, 0, 0, 1079, 1088, 3, 263, 131, 0, 1080, 1083, 3, 263, 131, 0, 1081, 1083, 5, 95, 0, 0, 1082, 1080, 1, 0, 0, 0, 1082, 1081, 1, 0, 0, 0, 1083, 1086, 1, 0, 0, 0, 1084, 1082, 1, 0, 0, 0, 1084, 1085, 1, 0, 0, 0, 1085, 1087, 1, 0, 0, 0, 1086, 1084, 1, 0, 0, 0, 1087, 1089, 3, 263, 131, 0, 1088, 1084, 1, 0, 0, 0, 1088, 1089, 1, 0, 0, 0, 1089, 262, 1, 0, 0, 0, 1090, 1091, 7, 3, 0, 0, 1091, 264, 1, 0, 0, 0, 1092, 1100, 7, 21, 0, 0, 1093, 1095, 7, 22, 0, 0, 1094, 1093, 1, 0, 0, 0, 1095, 1098, 1, 0, 0, 0, 1096, 1094, 1, 0, 0, 0, 1096, 1097, 1, 0, 0, 0, 1097, 1099, 1, 0, 0, 0, 1098, 1096, 1, 0, 0, 0, 1099, 1101, 7, 21, 0, 0, 1100, 1096, 1, 0, 0, 0, 1100, 1101, 1, 0, 0, 0, 1101, 266, 1, 0, 0, 0, 1102, 1105, 3, 269, 134, 0, 1103, 1105, 7, 21, 0, 0, 1104, 1102, 1, 0, 0, 0, 1104, 1103, 1, 0, 0, 0, 1105, 268, 1, 0, 0, 0, 1106, 1111, 7, 23, 0, 0, 1107, 1111, 8, 24, 0, 0, 1108, 1109, 7, 25, 0, 0, 1109, 1111, 7, 26, 0, 0, 1110, 1106, 1, 0, 0, 0, 1110, 1107, 1, 0, 0, 0, 1110, 1108, 1, 0, 0, 0, 1111, 270, 1, 0, 0, 0, 51, 0, 724, 729, 732, 734, 737, 745, 749, 752, 758, 765, 769, 772, 780, 784, 787, 792, 796, 799, 802, 807, 810, 812, 818, 821, 825, 829, 833, 844, 849, 856, 858, 870, 876, 878, 1014, 1024, 1038, 1047, 1052, 1060, 1063, 1070, 1077, 1082, 1084, 1088, 1096, 1100, 1104, 1110, 1, 0, 1, 0] \ No newline at end of file diff --git a/gen/Java17Lexer.java b/gen/Java17Lexer.java new file mode 100644 index 00000000..97734471 --- /dev/null +++ b/gen/Java17Lexer.java @@ -0,0 +1,873 @@ +// Generated from C:/Users/ruben/IdeaProjects/JavaCompilerCore/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java17Lexer.g4 by ANTLR 4.13.1 +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Token; +import org.antlr.v4.runtime.TokenStream; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.misc.*; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue", "this-escape"}) +public class Java17Lexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, + CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, + ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, + IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, + NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, + SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, + THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, + WHILE=50, MODULE=51, OPEN=52, REQUIRES=53, EXPORTS=54, OPENS=55, TO=56, + USES=57, PROVIDES=58, WITH=59, TRANSITIVE=60, VAR=61, YIELD=62, RECORD=63, + SEALED=64, PERMITS=65, NON_SEALED=66, DECIMAL_LITERAL=67, HEX_LITERAL=68, + OCT_LITERAL=69, BINARY_LITERAL=70, FLOAT_LITERAL=71, HEX_FLOAT_LITERAL=72, + BOOL_LITERAL=73, CHAR_LITERAL=74, STRING_LITERAL=75, TEXT_BLOCK=76, NULL_LITERAL=77, + LPAREN=78, RPAREN=79, LBRACE=80, RBRACE=81, LBRACK=82, RBRACK=83, SEMI=84, + COMMA=85, DOT=86, ASSIGN=87, GT=88, LT=89, BANG=90, TILDE=91, QUESTION=92, + COLON=93, EQUAL=94, LE=95, GE=96, NOTEQUAL=97, AND=98, OR=99, INC=100, + DEC=101, ADD=102, SUB=103, MUL=104, DIV=105, BITAND=106, BITOR=107, CARET=108, + MOD=109, ADD_ASSIGN=110, SUB_ASSIGN=111, MUL_ASSIGN=112, DIV_ASSIGN=113, + AND_ASSIGN=114, OR_ASSIGN=115, XOR_ASSIGN=116, MOD_ASSIGN=117, LSHIFT_ASSIGN=118, + RSHIFT_ASSIGN=119, URSHIFT_ASSIGN=120, ARROW=121, COLONCOLON=122, AT=123, + ELLIPSIS=124, WS=125, COMMENT=126, LINE_COMMENT=127, IDENTIFIER=128; + public static String[] channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" + }; + + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + private static String[] makeRuleNames() { + return new String[] { + "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR", + "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM", + "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS", + "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW", + "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC", + "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS", + "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "MODULE", "OPEN", "REQUIRES", + "EXPORTS", "OPENS", "TO", "USES", "PROVIDES", "WITH", "TRANSITIVE", "VAR", + "YIELD", "RECORD", "SEALED", "PERMITS", "NON_SEALED", "DECIMAL_LITERAL", + "HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", + "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "TEXT_BLOCK", "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" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", + "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", + "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", + "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", + "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", + "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", + "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", + "'transient'", "'try'", "'void'", "'volatile'", "'while'", "'module'", + "'open'", "'requires'", "'exports'", "'opens'", "'to'", "'uses'", "'provides'", + "'with'", "'transitive'", "'var'", "'yield'", "'record'", "'sealed'", + "'permits'", "'non-sealed'", null, null, null, null, null, null, null, + null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", + "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", + "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", + "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", + "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", "'>>>='", "'->'", + "'::'", "'@'", "'...'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", + "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", + "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", + "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", + "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", + "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", + "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "MODULE", + "OPEN", "REQUIRES", "EXPORTS", "OPENS", "TO", "USES", "PROVIDES", "WITH", + "TRANSITIVE", "VAR", "YIELD", "RECORD", "SEALED", "PERMITS", "NON_SEALED", + "DECIMAL_LITERAL", "HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", + "HEX_FLOAT_LITERAL", "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", + "TEXT_BLOCK", "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" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public Java17Lexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "Java17Lexer.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getChannelNames() { return channelNames; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\u0004\u0000\u0080\u0458\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002"+ + "\u0001\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002"+ + "\u0004\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002"+ + "\u0007\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002"+ + "\u000b\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e"+ + "\u0002\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011"+ + "\u0002\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014"+ + "\u0002\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017"+ + "\u0002\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a"+ + "\u0002\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d"+ + "\u0002\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!"+ + "\u0007!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002"+ + "&\u0007&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002"+ + "+\u0007+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u0002"+ + "0\u00070\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u0002"+ + "5\u00075\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002"+ + ":\u0007:\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002"+ + "?\u0007?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002"+ + "D\u0007D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002"+ + "I\u0007I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002"+ + "N\u0007N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002"+ + "S\u0007S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002"+ + "X\u0007X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002"+ + "]\u0007]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002"+ + "b\u0007b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002"+ + "g\u0007g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002"+ + "l\u0007l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002"+ + "q\u0007q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002"+ + "v\u0007v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002"+ + "{\u0007{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f"+ + "\u0002\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082"+ + "\u0002\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085"+ + "\u0002\u0086\u0007\u0086\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+ + "\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0001"+ + "\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+ + "\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005"+ + "\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006"+ + "\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001"+ + "\b\u0001\b\u0001\b\u0001\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001"+ + "\t\u0001\t\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001"+ + "\n\u0001\n\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\r\u0001"+ + "\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001"+ + "\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001"+ + "\u000f\u0001\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001"+ + "\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001"+ + "\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001"+ + "\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+ + "\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001"+ + "\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001"+ + "\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001"+ + "\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001"+ + "\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001"+ + "\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+ + "\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001"+ + "\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001"+ + "\u001a\u0001\u001a\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001b\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001"+ + "\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001"+ + "\u001d\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001"+ + "\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+ + "\u001f\u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001 \u0001!"+ + "\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+ + "\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001\"\u0001#\u0001#\u0001"+ + "#\u0001#\u0001#\u0001#\u0001#\u0001$\u0001$\u0001$\u0001$\u0001$\u0001"+ + "$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001&\u0001&\u0001"+ + "&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001"+ + "\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+ + ")\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001"+ + ")\u0001)\u0001)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001"+ + "+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001"+ + ",\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001"+ + "-\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001/\u0001/\u0001/\u0001"+ + "0\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u00010\u00011\u0001"+ + "1\u00011\u00011\u00011\u00011\u00012\u00012\u00012\u00012\u00012\u0001"+ + "2\u00012\u00013\u00013\u00013\u00013\u00013\u00014\u00014\u00014\u0001"+ + "4\u00014\u00014\u00014\u00014\u00014\u00015\u00015\u00015\u00015\u0001"+ + "5\u00015\u00015\u00015\u00016\u00016\u00016\u00016\u00016\u00016\u0001"+ + "7\u00017\u00017\u00018\u00018\u00018\u00018\u00018\u00019\u00019\u0001"+ + "9\u00019\u00019\u00019\u00019\u00019\u00019\u0001:\u0001:\u0001:\u0001"+ + ":\u0001:\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001;\u0001"+ + ";\u0001;\u0001;\u0001<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001=\u0001"+ + "=\u0001=\u0001=\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001>\u0001"+ + "?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001?\u0001@\u0001@\u0001@\u0001"+ + "@\u0001@\u0001@\u0001@\u0001@\u0001A\u0001A\u0001A\u0001A\u0001A\u0001"+ + "A\u0001A\u0001A\u0001A\u0001A\u0001A\u0001B\u0001B\u0001B\u0003B\u02d5"+ + "\bB\u0001B\u0004B\u02d8\bB\u000bB\fB\u02d9\u0001B\u0003B\u02dd\bB\u0003"+ + "B\u02df\bB\u0001B\u0003B\u02e2\bB\u0001C\u0001C\u0001C\u0001C\u0005C\u02e8"+ + "\bC\nC\fC\u02eb\tC\u0001C\u0003C\u02ee\bC\u0001C\u0003C\u02f1\bC\u0001"+ + "D\u0001D\u0005D\u02f5\bD\nD\fD\u02f8\tD\u0001D\u0001D\u0005D\u02fc\bD"+ + "\nD\fD\u02ff\tD\u0001D\u0003D\u0302\bD\u0001D\u0003D\u0305\bD\u0001E\u0001"+ + "E\u0001E\u0001E\u0005E\u030b\bE\nE\fE\u030e\tE\u0001E\u0003E\u0311\bE"+ + "\u0001E\u0003E\u0314\bE\u0001F\u0001F\u0001F\u0003F\u0319\bF\u0001F\u0001"+ + "F\u0003F\u031d\bF\u0001F\u0003F\u0320\bF\u0001F\u0003F\u0323\bF\u0001"+ + "F\u0001F\u0001F\u0003F\u0328\bF\u0001F\u0003F\u032b\bF\u0003F\u032d\b"+ + "F\u0001G\u0001G\u0001G\u0001G\u0003G\u0333\bG\u0001G\u0003G\u0336\bG\u0001"+ + "G\u0001G\u0003G\u033a\bG\u0001G\u0001G\u0003G\u033e\bG\u0001G\u0001G\u0003"+ + "G\u0342\bG\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001H\u0001"+ + "H\u0003H\u034d\bH\u0001I\u0001I\u0001I\u0003I\u0352\bI\u0001I\u0001I\u0001"+ + "J\u0001J\u0001J\u0005J\u0359\bJ\nJ\fJ\u035c\tJ\u0001J\u0001J\u0001K\u0001"+ + "K\u0001K\u0001K\u0001K\u0005K\u0365\bK\nK\fK\u0368\tK\u0001K\u0001K\u0001"+ + "K\u0005K\u036d\bK\nK\fK\u0370\tK\u0001K\u0001K\u0001K\u0001K\u0001L\u0001"+ + "L\u0001L\u0001L\u0001L\u0001M\u0001M\u0001N\u0001N\u0001O\u0001O\u0001"+ + "P\u0001P\u0001Q\u0001Q\u0001R\u0001R\u0001S\u0001S\u0001T\u0001T\u0001"+ + "U\u0001U\u0001V\u0001V\u0001W\u0001W\u0001X\u0001X\u0001Y\u0001Y\u0001"+ + "Z\u0001Z\u0001[\u0001[\u0001\\\u0001\\\u0001]\u0001]\u0001]\u0001^\u0001"+ + "^\u0001^\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001a\u0001a\u0001"+ + "a\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001"+ + "e\u0001e\u0001f\u0001f\u0001g\u0001g\u0001h\u0001h\u0001i\u0001i\u0001"+ + "j\u0001j\u0001k\u0001k\u0001l\u0001l\u0001m\u0001m\u0001m\u0001n\u0001"+ + "n\u0001n\u0001o\u0001o\u0001o\u0001p\u0001p\u0001p\u0001q\u0001q\u0001"+ + "q\u0001r\u0001r\u0001r\u0001s\u0001s\u0001s\u0001t\u0001t\u0001t\u0001"+ + "u\u0001u\u0001u\u0001u\u0001v\u0001v\u0001v\u0001v\u0001w\u0001w\u0001"+ + "w\u0001w\u0001w\u0001x\u0001x\u0001x\u0001y\u0001y\u0001y\u0001z\u0001"+ + "z\u0001{\u0001{\u0001{\u0001{\u0001|\u0004|\u03f5\b|\u000b|\f|\u03f6\u0001"+ + "|\u0001|\u0001}\u0001}\u0001}\u0001}\u0005}\u03ff\b}\n}\f}\u0402\t}\u0001"+ + "}\u0001}\u0001}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001~\u0005~\u040d"+ + "\b~\n~\f~\u0410\t~\u0001~\u0001~\u0001\u007f\u0001\u007f\u0005\u007f\u0416"+ + "\b\u007f\n\u007f\f\u007f\u0419\t\u007f\u0001\u0080\u0001\u0080\u0003\u0080"+ + "\u041d\b\u0080\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081"+ + "\u0001\u0081\u0003\u0081\u0425\b\u0081\u0001\u0081\u0003\u0081\u0428\b"+ + "\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0004\u0081\u042d\b\u0081\u000b"+ + "\u0081\f\u0081\u042e\u0001\u0081\u0001\u0081\u0001\u0081\u0001\u0081\u0001"+ + "\u0081\u0003\u0081\u0436\b\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0005"+ + "\u0082\u043b\b\u0082\n\u0082\f\u0082\u043e\t\u0082\u0001\u0082\u0003\u0082"+ + "\u0441\b\u0082\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0005\u0084"+ + "\u0447\b\u0084\n\u0084\f\u0084\u044a\t\u0084\u0001\u0084\u0003\u0084\u044d"+ + "\b\u0084\u0001\u0085\u0001\u0085\u0003\u0085\u0451\b\u0085\u0001\u0086"+ + "\u0001\u0086\u0001\u0086\u0001\u0086\u0003\u0086\u0457\b\u0086\u0002\u036e"+ + "\u0400\u0000\u0087\u0001\u0001\u0003\u0002\u0005\u0003\u0007\u0004\t\u0005"+ + "\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015\u000b\u0017\f\u0019"+ + "\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011#\u0012%\u0013\'\u0014)\u0015"+ + "+\u0016-\u0017/\u00181\u00193\u001a5\u001b7\u001c9\u001d;\u001e=\u001f"+ + "? A!C\"E#G$I%K&M\'O(Q)S*U+W,Y-[.]/_0a1c2e3g4i5k6m7o8q9s:u;w}?\u007f"+ + "@\u0081A\u0083B\u0085C\u0087D\u0089E\u008bF\u008dG\u008fH\u0091I\u0093"+ + "J\u0095K\u0097L\u0099M\u009bN\u009dO\u009fP\u00a1Q\u00a3R\u00a5S\u00a7"+ + "T\u00a9U\u00abV\u00adW\u00afX\u00b1Y\u00b3Z\u00b5[\u00b7\\\u00b9]\u00bb"+ + "^\u00bd_\u00bf`\u00c1a\u00c3b\u00c5c\u00c7d\u00c9e\u00cbf\u00cdg\u00cf"+ + "h\u00d1i\u00d3j\u00d5k\u00d7l\u00d9m\u00dbn\u00ddo\u00dfp\u00e1q\u00e3"+ + "r\u00e5s\u00e7t\u00e9u\u00ebv\u00edw\u00efx\u00f1y\u00f3z\u00f5{\u00f7"+ + "|\u00f9}\u00fb~\u00fd\u007f\u00ff\u0080\u0101\u0000\u0103\u0000\u0105"+ + "\u0000\u0107\u0000\u0109\u0000\u010b\u0000\u010d\u0000\u0001\u0000\u001b"+ + "\u0001\u000019\u0002\u0000LLll\u0002\u0000XXxx\u0003\u000009AFaf\u0004"+ + "\u000009AF__af\u0001\u000007\u0002\u000007__\u0002\u0000BBbb\u0001\u0000"+ + "01\u0002\u000001__\u0004\u0000DDFFddff\u0002\u0000PPpp\u0002\u0000++-"+ + "-\u0004\u0000\n\n\r\r\'\'\\\\\u0004\u0000\n\n\r\r\"\"\\\\\u0002\u0000"+ + "\t\t \u0002\u0000\n\n\r\r\u0003\u0000\t\n\f\r \u0002\u0000EEee\b\u0000"+ + "\"\"\'\'\\\\bbffnnrrtt\u0001\u000003\u0001\u000009\u0002\u000009__\u0004"+ + "\u0000$$AZ__az\u0002\u0000\u0000\u007f\u8000\ud800\u8000\udbff\u0001\u0000"+ + "\u8000\ud800\u8000\udbff\u0001\u0000\u8000\udc00\u8000\udfff\u0484\u0000"+ + "\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000\u0000\u0000"+ + "\u0005\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000\u0000\u0000"+ + "\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000\u0000\r"+ + "\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0000\u0011"+ + "\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000\u0015"+ + "\u0001\u0000\u0000\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000\u0019"+ + "\u0001\u0000\u0000\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000\u001d"+ + "\u0001\u0000\u0000\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000!\u0001"+ + "\u0000\u0000\u0000\u0000#\u0001\u0000\u0000\u0000\u0000%\u0001\u0000\u0000"+ + "\u0000\u0000\'\u0001\u0000\u0000\u0000\u0000)\u0001\u0000\u0000\u0000"+ + "\u0000+\u0001\u0000\u0000\u0000\u0000-\u0001\u0000\u0000\u0000\u0000/"+ + "\u0001\u0000\u0000\u0000\u00001\u0001\u0000\u0000\u0000\u00003\u0001\u0000"+ + "\u0000\u0000\u00005\u0001\u0000\u0000\u0000\u00007\u0001\u0000\u0000\u0000"+ + "\u00009\u0001\u0000\u0000\u0000\u0000;\u0001\u0000\u0000\u0000\u0000="+ + "\u0001\u0000\u0000\u0000\u0000?\u0001\u0000\u0000\u0000\u0000A\u0001\u0000"+ + "\u0000\u0000\u0000C\u0001\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000"+ + "\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K"+ + "\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000"+ + "\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000"+ + "\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000Y"+ + "\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]\u0001\u0000"+ + "\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000\u0000\u0000"+ + "\u0000c\u0001\u0000\u0000\u0000\u0000e\u0001\u0000\u0000\u0000\u0000g"+ + "\u0001\u0000\u0000\u0000\u0000i\u0001\u0000\u0000\u0000\u0000k\u0001\u0000"+ + "\u0000\u0000\u0000m\u0001\u0000\u0000\u0000\u0000o\u0001\u0000\u0000\u0000"+ + "\u0000q\u0001\u0000\u0000\u0000\u0000s\u0001\u0000\u0000\u0000\u0000u"+ + "\u0001\u0000\u0000\u0000\u0000w\u0001\u0000\u0000\u0000\u0000y\u0001\u0000"+ + "\u0000\u0000\u0000{\u0001\u0000\u0000\u0000\u0000}\u0001\u0000\u0000\u0000"+ + "\u0000\u007f\u0001\u0000\u0000\u0000\u0000\u0081\u0001\u0000\u0000\u0000"+ + "\u0000\u0083\u0001\u0000\u0000\u0000\u0000\u0085\u0001\u0000\u0000\u0000"+ + "\u0000\u0087\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000\u0000\u0000"+ + "\u0000\u008b\u0001\u0000\u0000\u0000\u0000\u008d\u0001\u0000\u0000\u0000"+ + "\u0000\u008f\u0001\u0000\u0000\u0000\u0000\u0091\u0001\u0000\u0000\u0000"+ + "\u0000\u0093\u0001\u0000\u0000\u0000\u0000\u0095\u0001\u0000\u0000\u0000"+ + "\u0000\u0097\u0001\u0000\u0000\u0000\u0000\u0099\u0001\u0000\u0000\u0000"+ + "\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009d\u0001\u0000\u0000\u0000"+ + "\u0000\u009f\u0001\u0000\u0000\u0000\u0000\u00a1\u0001\u0000\u0000\u0000"+ + "\u0000\u00a3\u0001\u0000\u0000\u0000\u0000\u00a5\u0001\u0000\u0000\u0000"+ + "\u0000\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9\u0001\u0000\u0000\u0000"+ + "\u0000\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad\u0001\u0000\u0000\u0000"+ + "\u0000\u00af\u0001\u0000\u0000\u0000\u0000\u00b1\u0001\u0000\u0000\u0000"+ + "\u0000\u00b3\u0001\u0000\u0000\u0000\u0000\u00b5\u0001\u0000\u0000\u0000"+ + "\u0000\u00b7\u0001\u0000\u0000\u0000\u0000\u00b9\u0001\u0000\u0000\u0000"+ + "\u0000\u00bb\u0001\u0000\u0000\u0000\u0000\u00bd\u0001\u0000\u0000\u0000"+ + "\u0000\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1\u0001\u0000\u0000\u0000"+ + "\u0000\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5\u0001\u0000\u0000\u0000"+ + "\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9\u0001\u0000\u0000\u0000"+ + "\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd\u0001\u0000\u0000\u0000"+ + "\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1\u0001\u0000\u0000\u0000"+ + "\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5\u0001\u0000\u0000\u0000"+ + "\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9\u0001\u0000\u0000\u0000"+ + "\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd\u0001\u0000\u0000\u0000"+ + "\u0000\u00df\u0001\u0000\u0000\u0000\u0000\u00e1\u0001\u0000\u0000\u0000"+ + "\u0000\u00e3\u0001\u0000\u0000\u0000\u0000\u00e5\u0001\u0000\u0000\u0000"+ + "\u0000\u00e7\u0001\u0000\u0000\u0000\u0000\u00e9\u0001\u0000\u0000\u0000"+ + "\u0000\u00eb\u0001\u0000\u0000\u0000\u0000\u00ed\u0001\u0000\u0000\u0000"+ + "\u0000\u00ef\u0001\u0000\u0000\u0000\u0000\u00f1\u0001\u0000\u0000\u0000"+ + "\u0000\u00f3\u0001\u0000\u0000\u0000\u0000\u00f5\u0001\u0000\u0000\u0000"+ + "\u0000\u00f7\u0001\u0000\u0000\u0000\u0000\u00f9\u0001\u0000\u0000\u0000"+ + "\u0000\u00fb\u0001\u0000\u0000\u0000\u0000\u00fd\u0001\u0000\u0000\u0000"+ + "\u0000\u00ff\u0001\u0000\u0000\u0000\u0001\u010f\u0001\u0000\u0000\u0000"+ + "\u0003\u0118\u0001\u0000\u0000\u0000\u0005\u011f\u0001\u0000\u0000\u0000"+ + "\u0007\u0127\u0001\u0000\u0000\u0000\t\u012d\u0001\u0000\u0000\u0000\u000b"+ + "\u0132\u0001\u0000\u0000\u0000\r\u0137\u0001\u0000\u0000\u0000\u000f\u013d"+ + "\u0001\u0000\u0000\u0000\u0011\u0142\u0001\u0000\u0000\u0000\u0013\u0148"+ + "\u0001\u0000\u0000\u0000\u0015\u014e\u0001\u0000\u0000\u0000\u0017\u0157"+ + "\u0001\u0000\u0000\u0000\u0019\u015f\u0001\u0000\u0000\u0000\u001b\u0162"+ + "\u0001\u0000\u0000\u0000\u001d\u0169\u0001\u0000\u0000\u0000\u001f\u016e"+ + "\u0001\u0000\u0000\u0000!\u0173\u0001\u0000\u0000\u0000#\u017b\u0001\u0000"+ + "\u0000\u0000%\u0181\u0001\u0000\u0000\u0000\'\u0189\u0001\u0000\u0000"+ + "\u0000)\u018f\u0001\u0000\u0000\u0000+\u0193\u0001\u0000\u0000\u0000-"+ + "\u0196\u0001\u0000\u0000\u0000/\u019b\u0001\u0000\u0000\u00001\u01a6\u0001"+ + "\u0000\u0000\u00003\u01ad\u0001\u0000\u0000\u00005\u01b8\u0001\u0000\u0000"+ + "\u00007\u01bc\u0001\u0000\u0000\u00009\u01c6\u0001\u0000\u0000\u0000;"+ + "\u01cb\u0001\u0000\u0000\u0000=\u01d2\u0001\u0000\u0000\u0000?\u01d6\u0001"+ + "\u0000\u0000\u0000A\u01de\u0001\u0000\u0000\u0000C\u01e6\u0001\u0000\u0000"+ + "\u0000E\u01f0\u0001\u0000\u0000\u0000G\u01f7\u0001\u0000\u0000\u0000I"+ + "\u01fe\u0001\u0000\u0000\u0000K\u0204\u0001\u0000\u0000\u0000M\u020b\u0001"+ + "\u0000\u0000\u0000O\u0214\u0001\u0000\u0000\u0000Q\u021a\u0001\u0000\u0000"+ + "\u0000S\u0221\u0001\u0000\u0000\u0000U\u022e\u0001\u0000\u0000\u0000W"+ + "\u0233\u0001\u0000\u0000\u0000Y\u0239\u0001\u0000\u0000\u0000[\u0240\u0001"+ + "\u0000\u0000\u0000]\u024a\u0001\u0000\u0000\u0000_\u024e\u0001\u0000\u0000"+ + "\u0000a\u0253\u0001\u0000\u0000\u0000c\u025c\u0001\u0000\u0000\u0000e"+ + "\u0262\u0001\u0000\u0000\u0000g\u0269\u0001\u0000\u0000\u0000i\u026e\u0001"+ + "\u0000\u0000\u0000k\u0277\u0001\u0000\u0000\u0000m\u027f\u0001\u0000\u0000"+ + "\u0000o\u0285\u0001\u0000\u0000\u0000q\u0288\u0001\u0000\u0000\u0000s"+ + "\u028d\u0001\u0000\u0000\u0000u\u0296\u0001\u0000\u0000\u0000w\u029b\u0001"+ + "\u0000\u0000\u0000y\u02a6\u0001\u0000\u0000\u0000{\u02aa\u0001\u0000\u0000"+ + "\u0000}\u02b0\u0001\u0000\u0000\u0000\u007f\u02b7\u0001\u0000\u0000\u0000"+ + "\u0081\u02be\u0001\u0000\u0000\u0000\u0083\u02c6\u0001\u0000\u0000\u0000"+ + "\u0085\u02de\u0001\u0000\u0000\u0000\u0087\u02e3\u0001\u0000\u0000\u0000"+ + "\u0089\u02f2\u0001\u0000\u0000\u0000\u008b\u0306\u0001\u0000\u0000\u0000"+ + "\u008d\u032c\u0001\u0000\u0000\u0000\u008f\u032e\u0001\u0000\u0000\u0000"+ + "\u0091\u034c\u0001\u0000\u0000\u0000\u0093\u034e\u0001\u0000\u0000\u0000"+ + "\u0095\u0355\u0001\u0000\u0000\u0000\u0097\u035f\u0001\u0000\u0000\u0000"+ + "\u0099\u0375\u0001\u0000\u0000\u0000\u009b\u037a\u0001\u0000\u0000\u0000"+ + "\u009d\u037c\u0001\u0000\u0000\u0000\u009f\u037e\u0001\u0000\u0000\u0000"+ + "\u00a1\u0380\u0001\u0000\u0000\u0000\u00a3\u0382\u0001\u0000\u0000\u0000"+ + "\u00a5\u0384\u0001\u0000\u0000\u0000\u00a7\u0386\u0001\u0000\u0000\u0000"+ + "\u00a9\u0388\u0001\u0000\u0000\u0000\u00ab\u038a\u0001\u0000\u0000\u0000"+ + "\u00ad\u038c\u0001\u0000\u0000\u0000\u00af\u038e\u0001\u0000\u0000\u0000"+ + "\u00b1\u0390\u0001\u0000\u0000\u0000\u00b3\u0392\u0001\u0000\u0000\u0000"+ + "\u00b5\u0394\u0001\u0000\u0000\u0000\u00b7\u0396\u0001\u0000\u0000\u0000"+ + "\u00b9\u0398\u0001\u0000\u0000\u0000\u00bb\u039a\u0001\u0000\u0000\u0000"+ + "\u00bd\u039d\u0001\u0000\u0000\u0000\u00bf\u03a0\u0001\u0000\u0000\u0000"+ + "\u00c1\u03a3\u0001\u0000\u0000\u0000\u00c3\u03a6\u0001\u0000\u0000\u0000"+ + "\u00c5\u03a9\u0001\u0000\u0000\u0000\u00c7\u03ac\u0001\u0000\u0000\u0000"+ + "\u00c9\u03af\u0001\u0000\u0000\u0000\u00cb\u03b2\u0001\u0000\u0000\u0000"+ + "\u00cd\u03b4\u0001\u0000\u0000\u0000\u00cf\u03b6\u0001\u0000\u0000\u0000"+ + "\u00d1\u03b8\u0001\u0000\u0000\u0000\u00d3\u03ba\u0001\u0000\u0000\u0000"+ + "\u00d5\u03bc\u0001\u0000\u0000\u0000\u00d7\u03be\u0001\u0000\u0000\u0000"+ + "\u00d9\u03c0\u0001\u0000\u0000\u0000\u00db\u03c2\u0001\u0000\u0000\u0000"+ + "\u00dd\u03c5\u0001\u0000\u0000\u0000\u00df\u03c8\u0001\u0000\u0000\u0000"+ + "\u00e1\u03cb\u0001\u0000\u0000\u0000\u00e3\u03ce\u0001\u0000\u0000\u0000"+ + "\u00e5\u03d1\u0001\u0000\u0000\u0000\u00e7\u03d4\u0001\u0000\u0000\u0000"+ + "\u00e9\u03d7\u0001\u0000\u0000\u0000\u00eb\u03da\u0001\u0000\u0000\u0000"+ + "\u00ed\u03de\u0001\u0000\u0000\u0000\u00ef\u03e2\u0001\u0000\u0000\u0000"+ + "\u00f1\u03e7\u0001\u0000\u0000\u0000\u00f3\u03ea\u0001\u0000\u0000\u0000"+ + "\u00f5\u03ed\u0001\u0000\u0000\u0000\u00f7\u03ef\u0001\u0000\u0000\u0000"+ + "\u00f9\u03f4\u0001\u0000\u0000\u0000\u00fb\u03fa\u0001\u0000\u0000\u0000"+ + "\u00fd\u0408\u0001\u0000\u0000\u0000\u00ff\u0413\u0001\u0000\u0000\u0000"+ + "\u0101\u041a\u0001\u0000\u0000\u0000\u0103\u0435\u0001\u0000\u0000\u0000"+ + "\u0105\u0437\u0001\u0000\u0000\u0000\u0107\u0442\u0001\u0000\u0000\u0000"+ + "\u0109\u0444\u0001\u0000\u0000\u0000\u010b\u0450\u0001\u0000\u0000\u0000"+ + "\u010d\u0456\u0001\u0000\u0000\u0000\u010f\u0110\u0005a\u0000\u0000\u0110"+ + "\u0111\u0005b\u0000\u0000\u0111\u0112\u0005s\u0000\u0000\u0112\u0113\u0005"+ + "t\u0000\u0000\u0113\u0114\u0005r\u0000\u0000\u0114\u0115\u0005a\u0000"+ + "\u0000\u0115\u0116\u0005c\u0000\u0000\u0116\u0117\u0005t\u0000\u0000\u0117"+ + "\u0002\u0001\u0000\u0000\u0000\u0118\u0119\u0005a\u0000\u0000\u0119\u011a"+ + "\u0005s\u0000\u0000\u011a\u011b\u0005s\u0000\u0000\u011b\u011c\u0005e"+ + "\u0000\u0000\u011c\u011d\u0005r\u0000\u0000\u011d\u011e\u0005t\u0000\u0000"+ + "\u011e\u0004\u0001\u0000\u0000\u0000\u011f\u0120\u0005b\u0000\u0000\u0120"+ + "\u0121\u0005o\u0000\u0000\u0121\u0122\u0005o\u0000\u0000\u0122\u0123\u0005"+ + "l\u0000\u0000\u0123\u0124\u0005e\u0000\u0000\u0124\u0125\u0005a\u0000"+ + "\u0000\u0125\u0126\u0005n\u0000\u0000\u0126\u0006\u0001\u0000\u0000\u0000"+ + "\u0127\u0128\u0005b\u0000\u0000\u0128\u0129\u0005r\u0000\u0000\u0129\u012a"+ + "\u0005e\u0000\u0000\u012a\u012b\u0005a\u0000\u0000\u012b\u012c\u0005k"+ + "\u0000\u0000\u012c\b\u0001\u0000\u0000\u0000\u012d\u012e\u0005b\u0000"+ + "\u0000\u012e\u012f\u0005y\u0000\u0000\u012f\u0130\u0005t\u0000\u0000\u0130"+ + "\u0131\u0005e\u0000\u0000\u0131\n\u0001\u0000\u0000\u0000\u0132\u0133"+ + "\u0005c\u0000\u0000\u0133\u0134\u0005a\u0000\u0000\u0134\u0135\u0005s"+ + "\u0000\u0000\u0135\u0136\u0005e\u0000\u0000\u0136\f\u0001\u0000\u0000"+ + "\u0000\u0137\u0138\u0005c\u0000\u0000\u0138\u0139\u0005a\u0000\u0000\u0139"+ + "\u013a\u0005t\u0000\u0000\u013a\u013b\u0005c\u0000\u0000\u013b\u013c\u0005"+ + "h\u0000\u0000\u013c\u000e\u0001\u0000\u0000\u0000\u013d\u013e\u0005c\u0000"+ + "\u0000\u013e\u013f\u0005h\u0000\u0000\u013f\u0140\u0005a\u0000\u0000\u0140"+ + "\u0141\u0005r\u0000\u0000\u0141\u0010\u0001\u0000\u0000\u0000\u0142\u0143"+ + "\u0005c\u0000\u0000\u0143\u0144\u0005l\u0000\u0000\u0144\u0145\u0005a"+ + "\u0000\u0000\u0145\u0146\u0005s\u0000\u0000\u0146\u0147\u0005s\u0000\u0000"+ + "\u0147\u0012\u0001\u0000\u0000\u0000\u0148\u0149\u0005c\u0000\u0000\u0149"+ + "\u014a\u0005o\u0000\u0000\u014a\u014b\u0005n\u0000\u0000\u014b\u014c\u0005"+ + "s\u0000\u0000\u014c\u014d\u0005t\u0000\u0000\u014d\u0014\u0001\u0000\u0000"+ + "\u0000\u014e\u014f\u0005c\u0000\u0000\u014f\u0150\u0005o\u0000\u0000\u0150"+ + "\u0151\u0005n\u0000\u0000\u0151\u0152\u0005t\u0000\u0000\u0152\u0153\u0005"+ + "i\u0000\u0000\u0153\u0154\u0005n\u0000\u0000\u0154\u0155\u0005u\u0000"+ + "\u0000\u0155\u0156\u0005e\u0000\u0000\u0156\u0016\u0001\u0000\u0000\u0000"+ + "\u0157\u0158\u0005d\u0000\u0000\u0158\u0159\u0005e\u0000\u0000\u0159\u015a"+ + "\u0005f\u0000\u0000\u015a\u015b\u0005a\u0000\u0000\u015b\u015c\u0005u"+ + "\u0000\u0000\u015c\u015d\u0005l\u0000\u0000\u015d\u015e\u0005t\u0000\u0000"+ + "\u015e\u0018\u0001\u0000\u0000\u0000\u015f\u0160\u0005d\u0000\u0000\u0160"+ + "\u0161\u0005o\u0000\u0000\u0161\u001a\u0001\u0000\u0000\u0000\u0162\u0163"+ + "\u0005d\u0000\u0000\u0163\u0164\u0005o\u0000\u0000\u0164\u0165\u0005u"+ + "\u0000\u0000\u0165\u0166\u0005b\u0000\u0000\u0166\u0167\u0005l\u0000\u0000"+ + "\u0167\u0168\u0005e\u0000\u0000\u0168\u001c\u0001\u0000\u0000\u0000\u0169"+ + "\u016a\u0005e\u0000\u0000\u016a\u016b\u0005l\u0000\u0000\u016b\u016c\u0005"+ + "s\u0000\u0000\u016c\u016d\u0005e\u0000\u0000\u016d\u001e\u0001\u0000\u0000"+ + "\u0000\u016e\u016f\u0005e\u0000\u0000\u016f\u0170\u0005n\u0000\u0000\u0170"+ + "\u0171\u0005u\u0000\u0000\u0171\u0172\u0005m\u0000\u0000\u0172 \u0001"+ + "\u0000\u0000\u0000\u0173\u0174\u0005e\u0000\u0000\u0174\u0175\u0005x\u0000"+ + "\u0000\u0175\u0176\u0005t\u0000\u0000\u0176\u0177\u0005e\u0000\u0000\u0177"+ + "\u0178\u0005n\u0000\u0000\u0178\u0179\u0005d\u0000\u0000\u0179\u017a\u0005"+ + "s\u0000\u0000\u017a\"\u0001\u0000\u0000\u0000\u017b\u017c\u0005f\u0000"+ + "\u0000\u017c\u017d\u0005i\u0000\u0000\u017d\u017e\u0005n\u0000\u0000\u017e"+ + "\u017f\u0005a\u0000\u0000\u017f\u0180\u0005l\u0000\u0000\u0180$\u0001"+ + "\u0000\u0000\u0000\u0181\u0182\u0005f\u0000\u0000\u0182\u0183\u0005i\u0000"+ + "\u0000\u0183\u0184\u0005n\u0000\u0000\u0184\u0185\u0005a\u0000\u0000\u0185"+ + "\u0186\u0005l\u0000\u0000\u0186\u0187\u0005l\u0000\u0000\u0187\u0188\u0005"+ + "y\u0000\u0000\u0188&\u0001\u0000\u0000\u0000\u0189\u018a\u0005f\u0000"+ + "\u0000\u018a\u018b\u0005l\u0000\u0000\u018b\u018c\u0005o\u0000\u0000\u018c"+ + "\u018d\u0005a\u0000\u0000\u018d\u018e\u0005t\u0000\u0000\u018e(\u0001"+ + "\u0000\u0000\u0000\u018f\u0190\u0005f\u0000\u0000\u0190\u0191\u0005o\u0000"+ + "\u0000\u0191\u0192\u0005r\u0000\u0000\u0192*\u0001\u0000\u0000\u0000\u0193"+ + "\u0194\u0005i\u0000\u0000\u0194\u0195\u0005f\u0000\u0000\u0195,\u0001"+ + "\u0000\u0000\u0000\u0196\u0197\u0005g\u0000\u0000\u0197\u0198\u0005o\u0000"+ + "\u0000\u0198\u0199\u0005t\u0000\u0000\u0199\u019a\u0005o\u0000\u0000\u019a"+ + ".\u0001\u0000\u0000\u0000\u019b\u019c\u0005i\u0000\u0000\u019c\u019d\u0005"+ + "m\u0000\u0000\u019d\u019e\u0005p\u0000\u0000\u019e\u019f\u0005l\u0000"+ + "\u0000\u019f\u01a0\u0005e\u0000\u0000\u01a0\u01a1\u0005m\u0000\u0000\u01a1"+ + "\u01a2\u0005e\u0000\u0000\u01a2\u01a3\u0005n\u0000\u0000\u01a3\u01a4\u0005"+ + "t\u0000\u0000\u01a4\u01a5\u0005s\u0000\u0000\u01a50\u0001\u0000\u0000"+ + "\u0000\u01a6\u01a7\u0005i\u0000\u0000\u01a7\u01a8\u0005m\u0000\u0000\u01a8"+ + "\u01a9\u0005p\u0000\u0000\u01a9\u01aa\u0005o\u0000\u0000\u01aa\u01ab\u0005"+ + "r\u0000\u0000\u01ab\u01ac\u0005t\u0000\u0000\u01ac2\u0001\u0000\u0000"+ + "\u0000\u01ad\u01ae\u0005i\u0000\u0000\u01ae\u01af\u0005n\u0000\u0000\u01af"+ + "\u01b0\u0005s\u0000\u0000\u01b0\u01b1\u0005t\u0000\u0000\u01b1\u01b2\u0005"+ + "a\u0000\u0000\u01b2\u01b3\u0005n\u0000\u0000\u01b3\u01b4\u0005c\u0000"+ + "\u0000\u01b4\u01b5\u0005e\u0000\u0000\u01b5\u01b6\u0005o\u0000\u0000\u01b6"+ + "\u01b7\u0005f\u0000\u0000\u01b74\u0001\u0000\u0000\u0000\u01b8\u01b9\u0005"+ + "i\u0000\u0000\u01b9\u01ba\u0005n\u0000\u0000\u01ba\u01bb\u0005t\u0000"+ + "\u0000\u01bb6\u0001\u0000\u0000\u0000\u01bc\u01bd\u0005i\u0000\u0000\u01bd"+ + "\u01be\u0005n\u0000\u0000\u01be\u01bf\u0005t\u0000\u0000\u01bf\u01c0\u0005"+ + "e\u0000\u0000\u01c0\u01c1\u0005r\u0000\u0000\u01c1\u01c2\u0005f\u0000"+ + "\u0000\u01c2\u01c3\u0005a\u0000\u0000\u01c3\u01c4\u0005c\u0000\u0000\u01c4"+ + "\u01c5\u0005e\u0000\u0000\u01c58\u0001\u0000\u0000\u0000\u01c6\u01c7\u0005"+ + "l\u0000\u0000\u01c7\u01c8\u0005o\u0000\u0000\u01c8\u01c9\u0005n\u0000"+ + "\u0000\u01c9\u01ca\u0005g\u0000\u0000\u01ca:\u0001\u0000\u0000\u0000\u01cb"+ + "\u01cc\u0005n\u0000\u0000\u01cc\u01cd\u0005a\u0000\u0000\u01cd\u01ce\u0005"+ + "t\u0000\u0000\u01ce\u01cf\u0005i\u0000\u0000\u01cf\u01d0\u0005v\u0000"+ + "\u0000\u01d0\u01d1\u0005e\u0000\u0000\u01d1<\u0001\u0000\u0000\u0000\u01d2"+ + "\u01d3\u0005n\u0000\u0000\u01d3\u01d4\u0005e\u0000\u0000\u01d4\u01d5\u0005"+ + "w\u0000\u0000\u01d5>\u0001\u0000\u0000\u0000\u01d6\u01d7\u0005p\u0000"+ + "\u0000\u01d7\u01d8\u0005a\u0000\u0000\u01d8\u01d9\u0005c\u0000\u0000\u01d9"+ + "\u01da\u0005k\u0000\u0000\u01da\u01db\u0005a\u0000\u0000\u01db\u01dc\u0005"+ + "g\u0000\u0000\u01dc\u01dd\u0005e\u0000\u0000\u01dd@\u0001\u0000\u0000"+ + "\u0000\u01de\u01df\u0005p\u0000\u0000\u01df\u01e0\u0005r\u0000\u0000\u01e0"+ + "\u01e1\u0005i\u0000\u0000\u01e1\u01e2\u0005v\u0000\u0000\u01e2\u01e3\u0005"+ + "a\u0000\u0000\u01e3\u01e4\u0005t\u0000\u0000\u01e4\u01e5\u0005e\u0000"+ + "\u0000\u01e5B\u0001\u0000\u0000\u0000\u01e6\u01e7\u0005p\u0000\u0000\u01e7"+ + "\u01e8\u0005r\u0000\u0000\u01e8\u01e9\u0005o\u0000\u0000\u01e9\u01ea\u0005"+ + "t\u0000\u0000\u01ea\u01eb\u0005e\u0000\u0000\u01eb\u01ec\u0005c\u0000"+ + "\u0000\u01ec\u01ed\u0005t\u0000\u0000\u01ed\u01ee\u0005e\u0000\u0000\u01ee"+ + "\u01ef\u0005d\u0000\u0000\u01efD\u0001\u0000\u0000\u0000\u01f0\u01f1\u0005"+ + "p\u0000\u0000\u01f1\u01f2\u0005u\u0000\u0000\u01f2\u01f3\u0005b\u0000"+ + "\u0000\u01f3\u01f4\u0005l\u0000\u0000\u01f4\u01f5\u0005i\u0000\u0000\u01f5"+ + "\u01f6\u0005c\u0000\u0000\u01f6F\u0001\u0000\u0000\u0000\u01f7\u01f8\u0005"+ + "r\u0000\u0000\u01f8\u01f9\u0005e\u0000\u0000\u01f9\u01fa\u0005t\u0000"+ + "\u0000\u01fa\u01fb\u0005u\u0000\u0000\u01fb\u01fc\u0005r\u0000\u0000\u01fc"+ + "\u01fd\u0005n\u0000\u0000\u01fdH\u0001\u0000\u0000\u0000\u01fe\u01ff\u0005"+ + "s\u0000\u0000\u01ff\u0200\u0005h\u0000\u0000\u0200\u0201\u0005o\u0000"+ + "\u0000\u0201\u0202\u0005r\u0000\u0000\u0202\u0203\u0005t\u0000\u0000\u0203"+ + "J\u0001\u0000\u0000\u0000\u0204\u0205\u0005s\u0000\u0000\u0205\u0206\u0005"+ + "t\u0000\u0000\u0206\u0207\u0005a\u0000\u0000\u0207\u0208\u0005t\u0000"+ + "\u0000\u0208\u0209\u0005i\u0000\u0000\u0209\u020a\u0005c\u0000\u0000\u020a"+ + "L\u0001\u0000\u0000\u0000\u020b\u020c\u0005s\u0000\u0000\u020c\u020d\u0005"+ + "t\u0000\u0000\u020d\u020e\u0005r\u0000\u0000\u020e\u020f\u0005i\u0000"+ + "\u0000\u020f\u0210\u0005c\u0000\u0000\u0210\u0211\u0005t\u0000\u0000\u0211"+ + "\u0212\u0005f\u0000\u0000\u0212\u0213\u0005p\u0000\u0000\u0213N\u0001"+ + "\u0000\u0000\u0000\u0214\u0215\u0005s\u0000\u0000\u0215\u0216\u0005u\u0000"+ + "\u0000\u0216\u0217\u0005p\u0000\u0000\u0217\u0218\u0005e\u0000\u0000\u0218"+ + "\u0219\u0005r\u0000\u0000\u0219P\u0001\u0000\u0000\u0000\u021a\u021b\u0005"+ + "s\u0000\u0000\u021b\u021c\u0005w\u0000\u0000\u021c\u021d\u0005i\u0000"+ + "\u0000\u021d\u021e\u0005t\u0000\u0000\u021e\u021f\u0005c\u0000\u0000\u021f"+ + "\u0220\u0005h\u0000\u0000\u0220R\u0001\u0000\u0000\u0000\u0221\u0222\u0005"+ + "s\u0000\u0000\u0222\u0223\u0005y\u0000\u0000\u0223\u0224\u0005n\u0000"+ + "\u0000\u0224\u0225\u0005c\u0000\u0000\u0225\u0226\u0005h\u0000\u0000\u0226"+ + "\u0227\u0005r\u0000\u0000\u0227\u0228\u0005o\u0000\u0000\u0228\u0229\u0005"+ + "n\u0000\u0000\u0229\u022a\u0005i\u0000\u0000\u022a\u022b\u0005z\u0000"+ + "\u0000\u022b\u022c\u0005e\u0000\u0000\u022c\u022d\u0005d\u0000\u0000\u022d"+ + "T\u0001\u0000\u0000\u0000\u022e\u022f\u0005t\u0000\u0000\u022f\u0230\u0005"+ + "h\u0000\u0000\u0230\u0231\u0005i\u0000\u0000\u0231\u0232\u0005s\u0000"+ + "\u0000\u0232V\u0001\u0000\u0000\u0000\u0233\u0234\u0005t\u0000\u0000\u0234"+ + "\u0235\u0005h\u0000\u0000\u0235\u0236\u0005r\u0000\u0000\u0236\u0237\u0005"+ + "o\u0000\u0000\u0237\u0238\u0005w\u0000\u0000\u0238X\u0001\u0000\u0000"+ + "\u0000\u0239\u023a\u0005t\u0000\u0000\u023a\u023b\u0005h\u0000\u0000\u023b"+ + "\u023c\u0005r\u0000\u0000\u023c\u023d\u0005o\u0000\u0000\u023d\u023e\u0005"+ + "w\u0000\u0000\u023e\u023f\u0005s\u0000\u0000\u023fZ\u0001\u0000\u0000"+ + "\u0000\u0240\u0241\u0005t\u0000\u0000\u0241\u0242\u0005r\u0000\u0000\u0242"+ + "\u0243\u0005a\u0000\u0000\u0243\u0244\u0005n\u0000\u0000\u0244\u0245\u0005"+ + "s\u0000\u0000\u0245\u0246\u0005i\u0000\u0000\u0246\u0247\u0005e\u0000"+ + "\u0000\u0247\u0248\u0005n\u0000\u0000\u0248\u0249\u0005t\u0000\u0000\u0249"+ + "\\\u0001\u0000\u0000\u0000\u024a\u024b\u0005t\u0000\u0000\u024b\u024c"+ + "\u0005r\u0000\u0000\u024c\u024d\u0005y\u0000\u0000\u024d^\u0001\u0000"+ + "\u0000\u0000\u024e\u024f\u0005v\u0000\u0000\u024f\u0250\u0005o\u0000\u0000"+ + "\u0250\u0251\u0005i\u0000\u0000\u0251\u0252\u0005d\u0000\u0000\u0252`"+ + "\u0001\u0000\u0000\u0000\u0253\u0254\u0005v\u0000\u0000\u0254\u0255\u0005"+ + "o\u0000\u0000\u0255\u0256\u0005l\u0000\u0000\u0256\u0257\u0005a\u0000"+ + "\u0000\u0257\u0258\u0005t\u0000\u0000\u0258\u0259\u0005i\u0000\u0000\u0259"+ + "\u025a\u0005l\u0000\u0000\u025a\u025b\u0005e\u0000\u0000\u025bb\u0001"+ + "\u0000\u0000\u0000\u025c\u025d\u0005w\u0000\u0000\u025d\u025e\u0005h\u0000"+ + "\u0000\u025e\u025f\u0005i\u0000\u0000\u025f\u0260\u0005l\u0000\u0000\u0260"+ + "\u0261\u0005e\u0000\u0000\u0261d\u0001\u0000\u0000\u0000\u0262\u0263\u0005"+ + "m\u0000\u0000\u0263\u0264\u0005o\u0000\u0000\u0264\u0265\u0005d\u0000"+ + "\u0000\u0265\u0266\u0005u\u0000\u0000\u0266\u0267\u0005l\u0000\u0000\u0267"+ + "\u0268\u0005e\u0000\u0000\u0268f\u0001\u0000\u0000\u0000\u0269\u026a\u0005"+ + "o\u0000\u0000\u026a\u026b\u0005p\u0000\u0000\u026b\u026c\u0005e\u0000"+ + "\u0000\u026c\u026d\u0005n\u0000\u0000\u026dh\u0001\u0000\u0000\u0000\u026e"+ + "\u026f\u0005r\u0000\u0000\u026f\u0270\u0005e\u0000\u0000\u0270\u0271\u0005"+ + "q\u0000\u0000\u0271\u0272\u0005u\u0000\u0000\u0272\u0273\u0005i\u0000"+ + "\u0000\u0273\u0274\u0005r\u0000\u0000\u0274\u0275\u0005e\u0000\u0000\u0275"+ + "\u0276\u0005s\u0000\u0000\u0276j\u0001\u0000\u0000\u0000\u0277\u0278\u0005"+ + "e\u0000\u0000\u0278\u0279\u0005x\u0000\u0000\u0279\u027a\u0005p\u0000"+ + "\u0000\u027a\u027b\u0005o\u0000\u0000\u027b\u027c\u0005r\u0000\u0000\u027c"+ + "\u027d\u0005t\u0000\u0000\u027d\u027e\u0005s\u0000\u0000\u027el\u0001"+ + "\u0000\u0000\u0000\u027f\u0280\u0005o\u0000\u0000\u0280\u0281\u0005p\u0000"+ + "\u0000\u0281\u0282\u0005e\u0000\u0000\u0282\u0283\u0005n\u0000\u0000\u0283"+ + "\u0284\u0005s\u0000\u0000\u0284n\u0001\u0000\u0000\u0000\u0285\u0286\u0005"+ + "t\u0000\u0000\u0286\u0287\u0005o\u0000\u0000\u0287p\u0001\u0000\u0000"+ + "\u0000\u0288\u0289\u0005u\u0000\u0000\u0289\u028a\u0005s\u0000\u0000\u028a"+ + "\u028b\u0005e\u0000\u0000\u028b\u028c\u0005s\u0000\u0000\u028cr\u0001"+ + "\u0000\u0000\u0000\u028d\u028e\u0005p\u0000\u0000\u028e\u028f\u0005r\u0000"+ + "\u0000\u028f\u0290\u0005o\u0000\u0000\u0290\u0291\u0005v\u0000\u0000\u0291"+ + "\u0292\u0005i\u0000\u0000\u0292\u0293\u0005d\u0000\u0000\u0293\u0294\u0005"+ + "e\u0000\u0000\u0294\u0295\u0005s\u0000\u0000\u0295t\u0001\u0000\u0000"+ + "\u0000\u0296\u0297\u0005w\u0000\u0000\u0297\u0298\u0005i\u0000\u0000\u0298"+ + "\u0299\u0005t\u0000\u0000\u0299\u029a\u0005h\u0000\u0000\u029av\u0001"+ + "\u0000\u0000\u0000\u029b\u029c\u0005t\u0000\u0000\u029c\u029d\u0005r\u0000"+ + "\u0000\u029d\u029e\u0005a\u0000\u0000\u029e\u029f\u0005n\u0000\u0000\u029f"+ + "\u02a0\u0005s\u0000\u0000\u02a0\u02a1\u0005i\u0000\u0000\u02a1\u02a2\u0005"+ + "t\u0000\u0000\u02a2\u02a3\u0005i\u0000\u0000\u02a3\u02a4\u0005v\u0000"+ + "\u0000\u02a4\u02a5\u0005e\u0000\u0000\u02a5x\u0001\u0000\u0000\u0000\u02a6"+ + "\u02a7\u0005v\u0000\u0000\u02a7\u02a8\u0005a\u0000\u0000\u02a8\u02a9\u0005"+ + "r\u0000\u0000\u02a9z\u0001\u0000\u0000\u0000\u02aa\u02ab\u0005y\u0000"+ + "\u0000\u02ab\u02ac\u0005i\u0000\u0000\u02ac\u02ad\u0005e\u0000\u0000\u02ad"+ + "\u02ae\u0005l\u0000\u0000\u02ae\u02af\u0005d\u0000\u0000\u02af|\u0001"+ + "\u0000\u0000\u0000\u02b0\u02b1\u0005r\u0000\u0000\u02b1\u02b2\u0005e\u0000"+ + "\u0000\u02b2\u02b3\u0005c\u0000\u0000\u02b3\u02b4\u0005o\u0000\u0000\u02b4"+ + "\u02b5\u0005r\u0000\u0000\u02b5\u02b6\u0005d\u0000\u0000\u02b6~\u0001"+ + "\u0000\u0000\u0000\u02b7\u02b8\u0005s\u0000\u0000\u02b8\u02b9\u0005e\u0000"+ + "\u0000\u02b9\u02ba\u0005a\u0000\u0000\u02ba\u02bb\u0005l\u0000\u0000\u02bb"+ + "\u02bc\u0005e\u0000\u0000\u02bc\u02bd\u0005d\u0000\u0000\u02bd\u0080\u0001"+ + "\u0000\u0000\u0000\u02be\u02bf\u0005p\u0000\u0000\u02bf\u02c0\u0005e\u0000"+ + "\u0000\u02c0\u02c1\u0005r\u0000\u0000\u02c1\u02c2\u0005m\u0000\u0000\u02c2"+ + "\u02c3\u0005i\u0000\u0000\u02c3\u02c4\u0005t\u0000\u0000\u02c4\u02c5\u0005"+ + "s\u0000\u0000\u02c5\u0082\u0001\u0000\u0000\u0000\u02c6\u02c7\u0005n\u0000"+ + "\u0000\u02c7\u02c8\u0005o\u0000\u0000\u02c8\u02c9\u0005n\u0000\u0000\u02c9"+ + "\u02ca\u0005-\u0000\u0000\u02ca\u02cb\u0005s\u0000\u0000\u02cb\u02cc\u0005"+ + "e\u0000\u0000\u02cc\u02cd\u0005a\u0000\u0000\u02cd\u02ce\u0005l\u0000"+ + "\u0000\u02ce\u02cf\u0005e\u0000\u0000\u02cf\u02d0\u0005d\u0000\u0000\u02d0"+ + "\u0084\u0001\u0000\u0000\u0000\u02d1\u02df\u00050\u0000\u0000\u02d2\u02dc"+ + "\u0007\u0000\u0000\u0000\u02d3\u02d5\u0003\u0109\u0084\u0000\u02d4\u02d3"+ + "\u0001\u0000\u0000\u0000\u02d4\u02d5\u0001\u0000\u0000\u0000\u02d5\u02dd"+ + "\u0001\u0000\u0000\u0000\u02d6\u02d8\u0005_\u0000\u0000\u02d7\u02d6\u0001"+ + "\u0000\u0000\u0000\u02d8\u02d9\u0001\u0000\u0000\u0000\u02d9\u02d7\u0001"+ + "\u0000\u0000\u0000\u02d9\u02da\u0001\u0000\u0000\u0000\u02da\u02db\u0001"+ + "\u0000\u0000\u0000\u02db\u02dd\u0003\u0109\u0084\u0000\u02dc\u02d4\u0001"+ + "\u0000\u0000\u0000\u02dc\u02d7\u0001\u0000\u0000\u0000\u02dd\u02df\u0001"+ + "\u0000\u0000\u0000\u02de\u02d1\u0001\u0000\u0000\u0000\u02de\u02d2\u0001"+ + "\u0000\u0000\u0000\u02df\u02e1\u0001\u0000\u0000\u0000\u02e0\u02e2\u0007"+ + "\u0001\u0000\u0000\u02e1\u02e0\u0001\u0000\u0000\u0000\u02e1\u02e2\u0001"+ + "\u0000\u0000\u0000\u02e2\u0086\u0001\u0000\u0000\u0000\u02e3\u02e4\u0005"+ + "0\u0000\u0000\u02e4\u02e5\u0007\u0002\u0000\u0000\u02e5\u02ed\u0007\u0003"+ + "\u0000\u0000\u02e6\u02e8\u0007\u0004\u0000\u0000\u02e7\u02e6\u0001\u0000"+ + "\u0000\u0000\u02e8\u02eb\u0001\u0000\u0000\u0000\u02e9\u02e7\u0001\u0000"+ + "\u0000\u0000\u02e9\u02ea\u0001\u0000\u0000\u0000\u02ea\u02ec\u0001\u0000"+ + "\u0000\u0000\u02eb\u02e9\u0001\u0000\u0000\u0000\u02ec\u02ee\u0007\u0003"+ + "\u0000\u0000\u02ed\u02e9\u0001\u0000\u0000\u0000\u02ed\u02ee\u0001\u0000"+ + "\u0000\u0000\u02ee\u02f0\u0001\u0000\u0000\u0000\u02ef\u02f1\u0007\u0001"+ + "\u0000\u0000\u02f0\u02ef\u0001\u0000\u0000\u0000\u02f0\u02f1\u0001\u0000"+ + "\u0000\u0000\u02f1\u0088\u0001\u0000\u0000\u0000\u02f2\u02f6\u00050\u0000"+ + "\u0000\u02f3\u02f5\u0005_\u0000\u0000\u02f4\u02f3\u0001\u0000\u0000\u0000"+ + "\u02f5\u02f8\u0001\u0000\u0000\u0000\u02f6\u02f4\u0001\u0000\u0000\u0000"+ + "\u02f6\u02f7\u0001\u0000\u0000\u0000\u02f7\u02f9\u0001\u0000\u0000\u0000"+ + "\u02f8\u02f6\u0001\u0000\u0000\u0000\u02f9\u0301\u0007\u0005\u0000\u0000"+ + "\u02fa\u02fc\u0007\u0006\u0000\u0000\u02fb\u02fa\u0001\u0000\u0000\u0000"+ + "\u02fc\u02ff\u0001\u0000\u0000\u0000\u02fd\u02fb\u0001\u0000\u0000\u0000"+ + "\u02fd\u02fe\u0001\u0000\u0000\u0000\u02fe\u0300\u0001\u0000\u0000\u0000"+ + "\u02ff\u02fd\u0001\u0000\u0000\u0000\u0300\u0302\u0007\u0005\u0000\u0000"+ + "\u0301\u02fd\u0001\u0000\u0000\u0000\u0301\u0302\u0001\u0000\u0000\u0000"+ + "\u0302\u0304\u0001\u0000\u0000\u0000\u0303\u0305\u0007\u0001\u0000\u0000"+ + "\u0304\u0303\u0001\u0000\u0000\u0000\u0304\u0305\u0001\u0000\u0000\u0000"+ + "\u0305\u008a\u0001\u0000\u0000\u0000\u0306\u0307\u00050\u0000\u0000\u0307"+ + "\u0308\u0007\u0007\u0000\u0000\u0308\u0310\u0007\b\u0000\u0000\u0309\u030b"+ + "\u0007\t\u0000\u0000\u030a\u0309\u0001\u0000\u0000\u0000\u030b\u030e\u0001"+ + "\u0000\u0000\u0000\u030c\u030a\u0001\u0000\u0000\u0000\u030c\u030d\u0001"+ + "\u0000\u0000\u0000\u030d\u030f\u0001\u0000\u0000\u0000\u030e\u030c\u0001"+ + "\u0000\u0000\u0000\u030f\u0311\u0007\b\u0000\u0000\u0310\u030c\u0001\u0000"+ + "\u0000\u0000\u0310\u0311\u0001\u0000\u0000\u0000\u0311\u0313\u0001\u0000"+ + "\u0000\u0000\u0312\u0314\u0007\u0001\u0000\u0000\u0313\u0312\u0001\u0000"+ + "\u0000\u0000\u0313\u0314\u0001\u0000\u0000\u0000\u0314\u008c\u0001\u0000"+ + "\u0000\u0000\u0315\u0316\u0003\u0109\u0084\u0000\u0316\u0318\u0005.\u0000"+ + "\u0000\u0317\u0319\u0003\u0109\u0084\u0000\u0318\u0317\u0001\u0000\u0000"+ + "\u0000\u0318\u0319\u0001\u0000\u0000\u0000\u0319\u031d\u0001\u0000\u0000"+ + "\u0000\u031a\u031b\u0005.\u0000\u0000\u031b\u031d\u0003\u0109\u0084\u0000"+ + "\u031c\u0315\u0001\u0000\u0000\u0000\u031c\u031a\u0001\u0000\u0000\u0000"+ + "\u031d\u031f\u0001\u0000\u0000\u0000\u031e\u0320\u0003\u0101\u0080\u0000"+ + "\u031f\u031e\u0001\u0000\u0000\u0000\u031f\u0320\u0001\u0000\u0000\u0000"+ + "\u0320\u0322\u0001\u0000\u0000\u0000\u0321\u0323\u0007\n\u0000\u0000\u0322"+ + "\u0321\u0001\u0000\u0000\u0000\u0322\u0323\u0001\u0000\u0000\u0000\u0323"+ + "\u032d\u0001\u0000\u0000\u0000\u0324\u032a\u0003\u0109\u0084\u0000\u0325"+ + "\u0327\u0003\u0101\u0080\u0000\u0326\u0328\u0007\n\u0000\u0000\u0327\u0326"+ + "\u0001\u0000\u0000\u0000\u0327\u0328\u0001\u0000\u0000\u0000\u0328\u032b"+ + "\u0001\u0000\u0000\u0000\u0329\u032b\u0007\n\u0000\u0000\u032a\u0325\u0001"+ + "\u0000\u0000\u0000\u032a\u0329\u0001\u0000\u0000\u0000\u032b\u032d\u0001"+ + "\u0000\u0000\u0000\u032c\u031c\u0001\u0000\u0000\u0000\u032c\u0324\u0001"+ + "\u0000\u0000\u0000\u032d\u008e\u0001\u0000\u0000\u0000\u032e\u032f\u0005"+ + "0\u0000\u0000\u032f\u0339\u0007\u0002\u0000\u0000\u0330\u0332\u0003\u0105"+ + "\u0082\u0000\u0331\u0333\u0005.\u0000\u0000\u0332\u0331\u0001\u0000\u0000"+ + "\u0000\u0332\u0333\u0001\u0000\u0000\u0000\u0333\u033a\u0001\u0000\u0000"+ + "\u0000\u0334\u0336\u0003\u0105\u0082\u0000\u0335\u0334\u0001\u0000\u0000"+ + "\u0000\u0335\u0336\u0001\u0000\u0000\u0000\u0336\u0337\u0001\u0000\u0000"+ + "\u0000\u0337\u0338\u0005.\u0000\u0000\u0338\u033a\u0003\u0105\u0082\u0000"+ + "\u0339\u0330\u0001\u0000\u0000\u0000\u0339\u0335\u0001\u0000\u0000\u0000"+ + "\u033a\u033b\u0001\u0000\u0000\u0000\u033b\u033d\u0007\u000b\u0000\u0000"+ + "\u033c\u033e\u0007\f\u0000\u0000\u033d\u033c\u0001\u0000\u0000\u0000\u033d"+ + "\u033e\u0001\u0000\u0000\u0000\u033e\u033f\u0001\u0000\u0000\u0000\u033f"+ + "\u0341\u0003\u0109\u0084\u0000\u0340\u0342\u0007\n\u0000\u0000\u0341\u0340"+ + "\u0001\u0000\u0000\u0000\u0341\u0342\u0001\u0000\u0000\u0000\u0342\u0090"+ + "\u0001\u0000\u0000\u0000\u0343\u0344\u0005t\u0000\u0000\u0344\u0345\u0005"+ + "r\u0000\u0000\u0345\u0346\u0005u\u0000\u0000\u0346\u034d\u0005e\u0000"+ + "\u0000\u0347\u0348\u0005f\u0000\u0000\u0348\u0349\u0005a\u0000\u0000\u0349"+ + "\u034a\u0005l\u0000\u0000\u034a\u034b\u0005s\u0000\u0000\u034b\u034d\u0005"+ + "e\u0000\u0000\u034c\u0343\u0001\u0000\u0000\u0000\u034c\u0347\u0001\u0000"+ + "\u0000\u0000\u034d\u0092\u0001\u0000\u0000\u0000\u034e\u0351\u0005\'\u0000"+ + "\u0000\u034f\u0352\b\r\u0000\u0000\u0350\u0352\u0003\u0103\u0081\u0000"+ + "\u0351\u034f\u0001\u0000\u0000\u0000\u0351\u0350\u0001\u0000\u0000\u0000"+ + "\u0352\u0353\u0001\u0000\u0000\u0000\u0353\u0354\u0005\'\u0000\u0000\u0354"+ + "\u0094\u0001\u0000\u0000\u0000\u0355\u035a\u0005\"\u0000\u0000\u0356\u0359"+ + "\b\u000e\u0000\u0000\u0357\u0359\u0003\u0103\u0081\u0000\u0358\u0356\u0001"+ + "\u0000\u0000\u0000\u0358\u0357\u0001\u0000\u0000\u0000\u0359\u035c\u0001"+ + "\u0000\u0000\u0000\u035a\u0358\u0001\u0000\u0000\u0000\u035a\u035b\u0001"+ + "\u0000\u0000\u0000\u035b\u035d\u0001\u0000\u0000\u0000\u035c\u035a\u0001"+ + "\u0000\u0000\u0000\u035d\u035e\u0005\"\u0000\u0000\u035e\u0096\u0001\u0000"+ + "\u0000\u0000\u035f\u0360\u0005\"\u0000\u0000\u0360\u0361\u0005\"\u0000"+ + "\u0000\u0361\u0362\u0005\"\u0000\u0000\u0362\u0366\u0001\u0000\u0000\u0000"+ + "\u0363\u0365\u0007\u000f\u0000\u0000\u0364\u0363\u0001\u0000\u0000\u0000"+ + "\u0365\u0368\u0001\u0000\u0000\u0000\u0366\u0364\u0001\u0000\u0000\u0000"+ + "\u0366\u0367\u0001\u0000\u0000\u0000\u0367\u0369\u0001\u0000\u0000\u0000"+ + "\u0368\u0366\u0001\u0000\u0000\u0000\u0369\u036e\u0007\u0010\u0000\u0000"+ + "\u036a\u036d\t\u0000\u0000\u0000\u036b\u036d\u0003\u0103\u0081\u0000\u036c"+ + "\u036a\u0001\u0000\u0000\u0000\u036c\u036b\u0001\u0000\u0000\u0000\u036d"+ + "\u0370\u0001\u0000\u0000\u0000\u036e\u036f\u0001\u0000\u0000\u0000\u036e"+ + "\u036c\u0001\u0000\u0000\u0000\u036f\u0371\u0001\u0000\u0000\u0000\u0370"+ + "\u036e\u0001\u0000\u0000\u0000\u0371\u0372\u0005\"\u0000\u0000\u0372\u0373"+ + "\u0005\"\u0000\u0000\u0373\u0374\u0005\"\u0000\u0000\u0374\u0098\u0001"+ + "\u0000\u0000\u0000\u0375\u0376\u0005n\u0000\u0000\u0376\u0377\u0005u\u0000"+ + "\u0000\u0377\u0378\u0005l\u0000\u0000\u0378\u0379\u0005l\u0000\u0000\u0379"+ + "\u009a\u0001\u0000\u0000\u0000\u037a\u037b\u0005(\u0000\u0000\u037b\u009c"+ + "\u0001\u0000\u0000\u0000\u037c\u037d\u0005)\u0000\u0000\u037d\u009e\u0001"+ + "\u0000\u0000\u0000\u037e\u037f\u0005{\u0000\u0000\u037f\u00a0\u0001\u0000"+ + "\u0000\u0000\u0380\u0381\u0005}\u0000\u0000\u0381\u00a2\u0001\u0000\u0000"+ + "\u0000\u0382\u0383\u0005[\u0000\u0000\u0383\u00a4\u0001\u0000\u0000\u0000"+ + "\u0384\u0385\u0005]\u0000\u0000\u0385\u00a6\u0001\u0000\u0000\u0000\u0386"+ + "\u0387\u0005;\u0000\u0000\u0387\u00a8\u0001\u0000\u0000\u0000\u0388\u0389"+ + "\u0005,\u0000\u0000\u0389\u00aa\u0001\u0000\u0000\u0000\u038a\u038b\u0005"+ + ".\u0000\u0000\u038b\u00ac\u0001\u0000\u0000\u0000\u038c\u038d\u0005=\u0000"+ + "\u0000\u038d\u00ae\u0001\u0000\u0000\u0000\u038e\u038f\u0005>\u0000\u0000"+ + "\u038f\u00b0\u0001\u0000\u0000\u0000\u0390\u0391\u0005<\u0000\u0000\u0391"+ + "\u00b2\u0001\u0000\u0000\u0000\u0392\u0393\u0005!\u0000\u0000\u0393\u00b4"+ + "\u0001\u0000\u0000\u0000\u0394\u0395\u0005~\u0000\u0000\u0395\u00b6\u0001"+ + "\u0000\u0000\u0000\u0396\u0397\u0005?\u0000\u0000\u0397\u00b8\u0001\u0000"+ + "\u0000\u0000\u0398\u0399\u0005:\u0000\u0000\u0399\u00ba\u0001\u0000\u0000"+ + "\u0000\u039a\u039b\u0005=\u0000\u0000\u039b\u039c\u0005=\u0000\u0000\u039c"+ + "\u00bc\u0001\u0000\u0000\u0000\u039d\u039e\u0005<\u0000\u0000\u039e\u039f"+ + "\u0005=\u0000\u0000\u039f\u00be\u0001\u0000\u0000\u0000\u03a0\u03a1\u0005"+ + ">\u0000\u0000\u03a1\u03a2\u0005=\u0000\u0000\u03a2\u00c0\u0001\u0000\u0000"+ + "\u0000\u03a3\u03a4\u0005!\u0000\u0000\u03a4\u03a5\u0005=\u0000\u0000\u03a5"+ + "\u00c2\u0001\u0000\u0000\u0000\u03a6\u03a7\u0005&\u0000\u0000\u03a7\u03a8"+ + "\u0005&\u0000\u0000\u03a8\u00c4\u0001\u0000\u0000\u0000\u03a9\u03aa\u0005"+ + "|\u0000\u0000\u03aa\u03ab\u0005|\u0000\u0000\u03ab\u00c6\u0001\u0000\u0000"+ + "\u0000\u03ac\u03ad\u0005+\u0000\u0000\u03ad\u03ae\u0005+\u0000\u0000\u03ae"+ + "\u00c8\u0001\u0000\u0000\u0000\u03af\u03b0\u0005-\u0000\u0000\u03b0\u03b1"+ + "\u0005-\u0000\u0000\u03b1\u00ca\u0001\u0000\u0000\u0000\u03b2\u03b3\u0005"+ + "+\u0000\u0000\u03b3\u00cc\u0001\u0000\u0000\u0000\u03b4\u03b5\u0005-\u0000"+ + "\u0000\u03b5\u00ce\u0001\u0000\u0000\u0000\u03b6\u03b7\u0005*\u0000\u0000"+ + "\u03b7\u00d0\u0001\u0000\u0000\u0000\u03b8\u03b9\u0005/\u0000\u0000\u03b9"+ + "\u00d2\u0001\u0000\u0000\u0000\u03ba\u03bb\u0005&\u0000\u0000\u03bb\u00d4"+ + "\u0001\u0000\u0000\u0000\u03bc\u03bd\u0005|\u0000\u0000\u03bd\u00d6\u0001"+ + "\u0000\u0000\u0000\u03be\u03bf\u0005^\u0000\u0000\u03bf\u00d8\u0001\u0000"+ + "\u0000\u0000\u03c0\u03c1\u0005%\u0000\u0000\u03c1\u00da\u0001\u0000\u0000"+ + "\u0000\u03c2\u03c3\u0005+\u0000\u0000\u03c3\u03c4\u0005=\u0000\u0000\u03c4"+ + "\u00dc\u0001\u0000\u0000\u0000\u03c5\u03c6\u0005-\u0000\u0000\u03c6\u03c7"+ + "\u0005=\u0000\u0000\u03c7\u00de\u0001\u0000\u0000\u0000\u03c8\u03c9\u0005"+ + "*\u0000\u0000\u03c9\u03ca\u0005=\u0000\u0000\u03ca\u00e0\u0001\u0000\u0000"+ + "\u0000\u03cb\u03cc\u0005/\u0000\u0000\u03cc\u03cd\u0005=\u0000\u0000\u03cd"+ + "\u00e2\u0001\u0000\u0000\u0000\u03ce\u03cf\u0005&\u0000\u0000\u03cf\u03d0"+ + "\u0005=\u0000\u0000\u03d0\u00e4\u0001\u0000\u0000\u0000\u03d1\u03d2\u0005"+ + "|\u0000\u0000\u03d2\u03d3\u0005=\u0000\u0000\u03d3\u00e6\u0001\u0000\u0000"+ + "\u0000\u03d4\u03d5\u0005^\u0000\u0000\u03d5\u03d6\u0005=\u0000\u0000\u03d6"+ + "\u00e8\u0001\u0000\u0000\u0000\u03d7\u03d8\u0005%\u0000\u0000\u03d8\u03d9"+ + "\u0005=\u0000\u0000\u03d9\u00ea\u0001\u0000\u0000\u0000\u03da\u03db\u0005"+ + "<\u0000\u0000\u03db\u03dc\u0005<\u0000\u0000\u03dc\u03dd\u0005=\u0000"+ + "\u0000\u03dd\u00ec\u0001\u0000\u0000\u0000\u03de\u03df\u0005>\u0000\u0000"+ + "\u03df\u03e0\u0005>\u0000\u0000\u03e0\u03e1\u0005=\u0000\u0000\u03e1\u00ee"+ + "\u0001\u0000\u0000\u0000\u03e2\u03e3\u0005>\u0000\u0000\u03e3\u03e4\u0005"+ + ">\u0000\u0000\u03e4\u03e5\u0005>\u0000\u0000\u03e5\u03e6\u0005=\u0000"+ + "\u0000\u03e6\u00f0\u0001\u0000\u0000\u0000\u03e7\u03e8\u0005-\u0000\u0000"+ + "\u03e8\u03e9\u0005>\u0000\u0000\u03e9\u00f2\u0001\u0000\u0000\u0000\u03ea"+ + "\u03eb\u0005:\u0000\u0000\u03eb\u03ec\u0005:\u0000\u0000\u03ec\u00f4\u0001"+ + "\u0000\u0000\u0000\u03ed\u03ee\u0005@\u0000\u0000\u03ee\u00f6\u0001\u0000"+ + "\u0000\u0000\u03ef\u03f0\u0005.\u0000\u0000\u03f0\u03f1\u0005.\u0000\u0000"+ + "\u03f1\u03f2\u0005.\u0000\u0000\u03f2\u00f8\u0001\u0000\u0000\u0000\u03f3"+ + "\u03f5\u0007\u0011\u0000\u0000\u03f4\u03f3\u0001\u0000\u0000\u0000\u03f5"+ + "\u03f6\u0001\u0000\u0000\u0000\u03f6\u03f4\u0001\u0000\u0000\u0000\u03f6"+ + "\u03f7\u0001\u0000\u0000\u0000\u03f7\u03f8\u0001\u0000\u0000\u0000\u03f8"+ + "\u03f9\u0006|\u0000\u0000\u03f9\u00fa\u0001\u0000\u0000\u0000\u03fa\u03fb"+ + "\u0005/\u0000\u0000\u03fb\u03fc\u0005*\u0000\u0000\u03fc\u0400\u0001\u0000"+ + "\u0000\u0000\u03fd\u03ff\t\u0000\u0000\u0000\u03fe\u03fd\u0001\u0000\u0000"+ + "\u0000\u03ff\u0402\u0001\u0000\u0000\u0000\u0400\u0401\u0001\u0000\u0000"+ + "\u0000\u0400\u03fe\u0001\u0000\u0000\u0000\u0401\u0403\u0001\u0000\u0000"+ + "\u0000\u0402\u0400\u0001\u0000\u0000\u0000\u0403\u0404\u0005*\u0000\u0000"+ + "\u0404\u0405\u0005/\u0000\u0000\u0405\u0406\u0001\u0000\u0000\u0000\u0406"+ + "\u0407\u0006}\u0000\u0000\u0407\u00fc\u0001\u0000\u0000\u0000\u0408\u0409"+ + "\u0005/\u0000\u0000\u0409\u040a\u0005/\u0000\u0000\u040a\u040e\u0001\u0000"+ + "\u0000\u0000\u040b\u040d\b\u0010\u0000\u0000\u040c\u040b\u0001\u0000\u0000"+ + "\u0000\u040d\u0410\u0001\u0000\u0000\u0000\u040e\u040c\u0001\u0000\u0000"+ + "\u0000\u040e\u040f\u0001\u0000\u0000\u0000\u040f\u0411\u0001\u0000\u0000"+ + "\u0000\u0410\u040e\u0001\u0000\u0000\u0000\u0411\u0412\u0006~\u0000\u0000"+ + "\u0412\u00fe\u0001\u0000\u0000\u0000\u0413\u0417\u0003\u010d\u0086\u0000"+ + "\u0414\u0416\u0003\u010b\u0085\u0000\u0415\u0414\u0001\u0000\u0000\u0000"+ + "\u0416\u0419\u0001\u0000\u0000\u0000\u0417\u0415\u0001\u0000\u0000\u0000"+ + "\u0417\u0418\u0001\u0000\u0000\u0000\u0418\u0100\u0001\u0000\u0000\u0000"+ + "\u0419\u0417\u0001\u0000\u0000\u0000\u041a\u041c\u0007\u0012\u0000\u0000"+ + "\u041b\u041d\u0007\f\u0000\u0000\u041c\u041b\u0001\u0000\u0000\u0000\u041c"+ + "\u041d\u0001\u0000\u0000\u0000\u041d\u041e\u0001\u0000\u0000\u0000\u041e"+ + "\u041f\u0003\u0109\u0084\u0000\u041f\u0102\u0001\u0000\u0000\u0000\u0420"+ + "\u0421\u0005\\\u0000\u0000\u0421\u0436\u0007\u0013\u0000\u0000\u0422\u0427"+ + "\u0005\\\u0000\u0000\u0423\u0425\u0007\u0014\u0000\u0000\u0424\u0423\u0001"+ + "\u0000\u0000\u0000\u0424\u0425\u0001\u0000\u0000\u0000\u0425\u0426\u0001"+ + "\u0000\u0000\u0000\u0426\u0428\u0007\u0005\u0000\u0000\u0427\u0424\u0001"+ + "\u0000\u0000\u0000\u0427\u0428\u0001\u0000\u0000\u0000\u0428\u0429\u0001"+ + "\u0000\u0000\u0000\u0429\u0436\u0007\u0005\u0000\u0000\u042a\u042c\u0005"+ + "\\\u0000\u0000\u042b\u042d\u0005u\u0000\u0000\u042c\u042b\u0001\u0000"+ + "\u0000\u0000\u042d\u042e\u0001\u0000\u0000\u0000\u042e\u042c\u0001\u0000"+ + "\u0000\u0000\u042e\u042f\u0001\u0000\u0000\u0000\u042f\u0430\u0001\u0000"+ + "\u0000\u0000\u0430\u0431\u0003\u0107\u0083\u0000\u0431\u0432\u0003\u0107"+ + "\u0083\u0000\u0432\u0433\u0003\u0107\u0083\u0000\u0433\u0434\u0003\u0107"+ + "\u0083\u0000\u0434\u0436\u0001\u0000\u0000\u0000\u0435\u0420\u0001\u0000"+ + "\u0000\u0000\u0435\u0422\u0001\u0000\u0000\u0000\u0435\u042a\u0001\u0000"+ + "\u0000\u0000\u0436\u0104\u0001\u0000\u0000\u0000\u0437\u0440\u0003\u0107"+ + "\u0083\u0000\u0438\u043b\u0003\u0107\u0083\u0000\u0439\u043b\u0005_\u0000"+ + "\u0000\u043a\u0438\u0001\u0000\u0000\u0000\u043a\u0439\u0001\u0000\u0000"+ + "\u0000\u043b\u043e\u0001\u0000\u0000\u0000\u043c\u043a\u0001\u0000\u0000"+ + "\u0000\u043c\u043d\u0001\u0000\u0000\u0000\u043d\u043f\u0001\u0000\u0000"+ + "\u0000\u043e\u043c\u0001\u0000\u0000\u0000\u043f\u0441\u0003\u0107\u0083"+ + "\u0000\u0440\u043c\u0001\u0000\u0000\u0000\u0440\u0441\u0001\u0000\u0000"+ + "\u0000\u0441\u0106\u0001\u0000\u0000\u0000\u0442\u0443\u0007\u0003\u0000"+ + "\u0000\u0443\u0108\u0001\u0000\u0000\u0000\u0444\u044c\u0007\u0015\u0000"+ + "\u0000\u0445\u0447\u0007\u0016\u0000\u0000\u0446\u0445\u0001\u0000\u0000"+ + "\u0000\u0447\u044a\u0001\u0000\u0000\u0000\u0448\u0446\u0001\u0000\u0000"+ + "\u0000\u0448\u0449\u0001\u0000\u0000\u0000\u0449\u044b\u0001\u0000\u0000"+ + "\u0000\u044a\u0448\u0001\u0000\u0000\u0000\u044b\u044d\u0007\u0015\u0000"+ + "\u0000\u044c\u0448\u0001\u0000\u0000\u0000\u044c\u044d\u0001\u0000\u0000"+ + "\u0000\u044d\u010a\u0001\u0000\u0000\u0000\u044e\u0451\u0003\u010d\u0086"+ + "\u0000\u044f\u0451\u0007\u0015\u0000\u0000\u0450\u044e\u0001\u0000\u0000"+ + "\u0000\u0450\u044f\u0001\u0000\u0000\u0000\u0451\u010c\u0001\u0000\u0000"+ + "\u0000\u0452\u0457\u0007\u0017\u0000\u0000\u0453\u0457\b\u0018\u0000\u0000"+ + "\u0454\u0455\u0007\u0019\u0000\u0000\u0455\u0457\u0007\u001a\u0000\u0000"+ + "\u0456\u0452\u0001\u0000\u0000\u0000\u0456\u0453\u0001\u0000\u0000\u0000"+ + "\u0456\u0454\u0001\u0000\u0000\u0000\u0457\u010e\u0001\u0000\u0000\u0000"+ + "3\u0000\u02d4\u02d9\u02dc\u02de\u02e1\u02e9\u02ed\u02f0\u02f6\u02fd\u0301"+ + "\u0304\u030c\u0310\u0313\u0318\u031c\u031f\u0322\u0327\u032a\u032c\u0332"+ + "\u0335\u0339\u033d\u0341\u034c\u0351\u0358\u035a\u0366\u036c\u036e\u03f6"+ + "\u0400\u040e\u0417\u041c\u0424\u0427\u042e\u0435\u043a\u043c\u0440\u0448"+ + "\u044c\u0450\u0456\u0001\u0000\u0001\u0000"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/gen/Java17Lexer.tokens b/gen/Java17Lexer.tokens new file mode 100644 index 00000000..f811013a --- /dev/null +++ b/gen/Java17Lexer.tokens @@ -0,0 +1,242 @@ +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 +MODULE=51 +OPEN=52 +REQUIRES=53 +EXPORTS=54 +OPENS=55 +TO=56 +USES=57 +PROVIDES=58 +WITH=59 +TRANSITIVE=60 +VAR=61 +YIELD=62 +RECORD=63 +SEALED=64 +PERMITS=65 +NON_SEALED=66 +DECIMAL_LITERAL=67 +HEX_LITERAL=68 +OCT_LITERAL=69 +BINARY_LITERAL=70 +FLOAT_LITERAL=71 +HEX_FLOAT_LITERAL=72 +BOOL_LITERAL=73 +CHAR_LITERAL=74 +STRING_LITERAL=75 +TEXT_BLOCK=76 +NULL_LITERAL=77 +LPAREN=78 +RPAREN=79 +LBRACE=80 +RBRACE=81 +LBRACK=82 +RBRACK=83 +SEMI=84 +COMMA=85 +DOT=86 +ASSIGN=87 +GT=88 +LT=89 +BANG=90 +TILDE=91 +QUESTION=92 +COLON=93 +EQUAL=94 +LE=95 +GE=96 +NOTEQUAL=97 +AND=98 +OR=99 +INC=100 +DEC=101 +ADD=102 +SUB=103 +MUL=104 +DIV=105 +BITAND=106 +BITOR=107 +CARET=108 +MOD=109 +ADD_ASSIGN=110 +SUB_ASSIGN=111 +MUL_ASSIGN=112 +DIV_ASSIGN=113 +AND_ASSIGN=114 +OR_ASSIGN=115 +XOR_ASSIGN=116 +MOD_ASSIGN=117 +LSHIFT_ASSIGN=118 +RSHIFT_ASSIGN=119 +URSHIFT_ASSIGN=120 +ARROW=121 +COLONCOLON=122 +AT=123 +ELLIPSIS=124 +WS=125 +COMMENT=126 +LINE_COMMENT=127 +IDENTIFIER=128 +'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 +'module'=51 +'open'=52 +'requires'=53 +'exports'=54 +'opens'=55 +'to'=56 +'uses'=57 +'provides'=58 +'with'=59 +'transitive'=60 +'var'=61 +'yield'=62 +'record'=63 +'sealed'=64 +'permits'=65 +'non-sealed'=66 +'null'=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 +'|='=115 +'^='=116 +'%='=117 +'<<='=118 +'>>='=119 +'>>>='=120 +'->'=121 +'::'=122 +'@'=123 +'...'=124 diff --git a/gen/Java17Parser.interp b/gen/Java17Parser.interp new file mode 100644 index 00000000..6ff094ec --- /dev/null +++ b/gen/Java17Parser.interp @@ -0,0 +1,406 @@ +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' +'module' +'open' +'requires' +'exports' +'opens' +'to' +'uses' +'provides' +'with' +'transitive' +'var' +'yield' +'record' +'sealed' +'permits' +'non-sealed' +null +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 +MODULE +OPEN +REQUIRES +EXPORTS +OPENS +TO +USES +PROVIDES +WITH +TRANSITIVE +VAR +YIELD +RECORD +SEALED +PERMITS +NON_SEALED +DECIMAL_LITERAL +HEX_LITERAL +OCT_LITERAL +BINARY_LITERAL +FLOAT_LITERAL +HEX_FLOAT_LITERAL +BOOL_LITERAL +CHAR_LITERAL +STRING_LITERAL +TEXT_BLOCK +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: +sourceFile +packageDeclaration +importDeclaration +classOrInterface +modifier +classOrInterfaceModifier +variableModifier +classDeclaration +genericDeclarationList +genericTypeVar +typeBound +enumDeclaration +enumConstants +enumConstant +enumBodyDeclarations +interfaceDeclaration +classBody +interfaceBody +classBodyDeclaration +memberDeclaration +method +methodDeclaration +methodHeader +methodBody +refType +genericMethodDeclaration +constructor +genericConstructorDeclaration +constructorDeclaration +fieldDeclaration +interfaceBodyDeclaration +interfaceMemberDeclaration +constDeclaration +constantDeclarator +interfaceMethodDeclaration +interfaceMethodModifier +genericInterfaceMethodDeclaration +interfaceCommonBodyDeclaration +variableDeclarators +variableDeclarator +variableDeclaratorId +variableInitializer +arrayInitializer +classOrInterfaceType +typeArgument +wildcardType +extendsWildcardType +superWildcardType +qualifiedNameList +exceptionList +formalParameters +receiverParameter +formalParameterList +formalParameter +lastFormalParameter +lambdaLVTIList +lambdaLVTIParameter +qualifiedName +literal +integerLiteral +floatLiteral +altAnnotationQualifiedName +annotation +elementValuePairs +elementValuePair +elementValue +elementValueArrayInitializer +annotationTypeDeclaration +annotationTypeBody +annotationTypeElementDeclaration +annotationTypeElementRest +annotationMethodOrConstantRest +annotationMethodRest +annotationConstantRest +defaultValue +moduleDeclaration +moduleBody +moduleDirective +requiresModifier +recordDeclaration +recordHeader +recordComponentList +recordComponent +recordBody +block +blockStatement +localVariableDeclaration +identifier +typeIdentifier +localTypeDeclaration +statement +catchClause +catchType +finallyBlock +resourceSpecification +resources +resource +switchBlockStatementGroup +switchLabel +forControl +forInit +enhancedForControl +parExpression +expressionList +methodCall +expression +pattern +primaryPattern +recordPattern +typePattern +recordStructurePattern +recordComponentPatternElement +recordComponentPatternList +lambdaExpression +lambdaParameters +lambdaBody +primary +switchExpression +switchLabeledRule +switchLabelCase +guardedPattern +switchRuleOutcome +classType +creator +createdName +innerCreator +arrayCreatorRest +classCreatorRest +explicitGenericInvocation +typeArgumentsOrDiamond +nonWildcardTypeArgumentsOrDiamond +nonWildcardTypeArguments +typeList +typeType +primitiveType +typeArguments +superSuffix +explicitGenericInvocationSuffix +arguments + + +atn: +[4, 1, 128, 1802, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2, 24, 7, 24, 2, 25, 7, 25, 2, 26, 7, 26, 2, 27, 7, 27, 2, 28, 7, 28, 2, 29, 7, 29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2, 36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2, 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7, 68, 2, 69, 7, 69, 2, 70, 7, 70, 2, 71, 7, 71, 2, 72, 7, 72, 2, 73, 7, 73, 2, 74, 7, 74, 2, 75, 7, 75, 2, 76, 7, 76, 2, 77, 7, 77, 2, 78, 7, 78, 2, 79, 7, 79, 2, 80, 7, 80, 2, 81, 7, 81, 2, 82, 7, 82, 2, 83, 7, 83, 2, 84, 7, 84, 2, 85, 7, 85, 2, 86, 7, 86, 2, 87, 7, 87, 2, 88, 7, 88, 2, 89, 7, 89, 2, 90, 7, 90, 2, 91, 7, 91, 2, 92, 7, 92, 2, 93, 7, 93, 2, 94, 7, 94, 2, 95, 7, 95, 2, 96, 7, 96, 2, 97, 7, 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 2, 124, 7, 124, 2, 125, 7, 125, 2, 126, 7, 126, 2, 127, 7, 127, 2, 128, 7, 128, 2, 129, 7, 129, 2, 130, 7, 130, 2, 131, 7, 131, 2, 132, 7, 132, 2, 133, 7, 133, 2, 134, 7, 134, 2, 135, 7, 135, 2, 136, 7, 136, 2, 137, 7, 137, 2, 138, 7, 138, 1, 0, 3, 0, 280, 8, 0, 1, 0, 5, 0, 283, 8, 0, 10, 0, 12, 0, 286, 9, 0, 1, 0, 5, 0, 289, 8, 0, 10, 0, 12, 0, 292, 9, 0, 1, 0, 1, 0, 1, 0, 3, 0, 297, 8, 0, 1, 1, 5, 1, 300, 8, 1, 10, 1, 12, 1, 303, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 3, 2, 311, 8, 2, 1, 2, 1, 2, 1, 2, 3, 2, 316, 8, 2, 1, 2, 1, 2, 1, 3, 5, 3, 321, 8, 3, 10, 3, 12, 3, 324, 9, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 331, 8, 3, 1, 3, 3, 3, 334, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 341, 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 353, 8, 5, 1, 6, 1, 6, 3, 6, 357, 8, 6, 1, 7, 1, 7, 1, 7, 3, 7, 362, 8, 7, 1, 7, 1, 7, 3, 7, 366, 8, 7, 1, 7, 1, 7, 3, 7, 370, 8, 7, 1, 7, 1, 7, 3, 7, 374, 8, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 382, 8, 8, 10, 8, 12, 8, 385, 9, 8, 1, 8, 1, 8, 1, 9, 5, 9, 390, 8, 9, 10, 9, 12, 9, 393, 9, 9, 1, 9, 1, 9, 1, 9, 5, 9, 398, 8, 9, 10, 9, 12, 9, 401, 9, 9, 1, 9, 3, 9, 404, 8, 9, 1, 10, 1, 10, 1, 10, 5, 10, 409, 8, 10, 10, 10, 12, 10, 412, 9, 10, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 418, 8, 11, 1, 11, 1, 11, 3, 11, 422, 8, 11, 1, 11, 3, 11, 425, 8, 11, 1, 11, 3, 11, 428, 8, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 5, 12, 435, 8, 12, 10, 12, 12, 12, 438, 9, 12, 1, 13, 5, 13, 441, 8, 13, 10, 13, 12, 13, 444, 9, 13, 1, 13, 1, 13, 3, 13, 448, 8, 13, 1, 13, 3, 13, 451, 8, 13, 1, 14, 1, 14, 5, 14, 455, 8, 14, 10, 14, 12, 14, 458, 9, 14, 1, 15, 1, 15, 1, 15, 3, 15, 463, 8, 15, 1, 15, 1, 15, 3, 15, 467, 8, 15, 1, 15, 1, 15, 3, 15, 471, 8, 15, 1, 15, 1, 15, 1, 16, 1, 16, 5, 16, 477, 8, 16, 10, 16, 12, 16, 480, 9, 16, 1, 16, 1, 16, 1, 17, 1, 17, 5, 17, 486, 8, 17, 10, 17, 12, 17, 489, 9, 17, 1, 17, 1, 17, 1, 18, 1, 18, 3, 18, 495, 8, 18, 1, 18, 1, 18, 5, 18, 499, 8, 18, 10, 18, 12, 18, 502, 9, 18, 1, 18, 3, 18, 505, 8, 18, 1, 19, 1, 19, 1, 19, 1, 19, 3, 19, 511, 8, 19, 1, 20, 1, 20, 3, 20, 515, 8, 20, 1, 21, 1, 21, 1, 21, 3, 21, 520, 8, 21, 1, 21, 1, 21, 1, 22, 3, 22, 525, 8, 22, 1, 22, 1, 22, 1, 22, 1, 22, 5, 22, 531, 8, 22, 10, 22, 12, 22, 534, 9, 22, 1, 23, 1, 23, 3, 23, 538, 8, 23, 1, 24, 1, 24, 3, 24, 542, 8, 24, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 3, 26, 549, 8, 26, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 3, 28, 558, 8, 28, 1, 28, 1, 28, 1, 29, 3, 29, 563, 8, 29, 1, 29, 1, 29, 1, 29, 1, 30, 5, 30, 569, 8, 30, 10, 30, 12, 30, 572, 9, 30, 1, 30, 1, 30, 3, 30, 576, 8, 30, 1, 31, 1, 31, 1, 31, 1, 31, 3, 31, 582, 8, 31, 1, 32, 3, 32, 585, 8, 32, 1, 32, 1, 32, 1, 32, 5, 32, 590, 8, 32, 10, 32, 12, 32, 593, 9, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 5, 33, 600, 8, 33, 10, 33, 12, 33, 603, 9, 33, 1, 33, 1, 33, 1, 33, 1, 34, 5, 34, 609, 8, 34, 10, 34, 12, 34, 612, 9, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 3, 35, 622, 8, 35, 1, 36, 5, 36, 625, 8, 36, 10, 36, 12, 36, 628, 9, 36, 1, 36, 1, 36, 1, 36, 1, 37, 5, 37, 634, 8, 37, 10, 37, 12, 37, 637, 9, 37, 1, 37, 3, 37, 640, 8, 37, 1, 37, 1, 37, 1, 37, 1, 37, 5, 37, 646, 8, 37, 10, 37, 12, 37, 649, 9, 37, 1, 37, 1, 37, 3, 37, 653, 8, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 5, 38, 660, 8, 38, 10, 38, 12, 38, 663, 9, 38, 1, 39, 1, 39, 1, 39, 3, 39, 668, 8, 39, 1, 40, 1, 40, 1, 40, 5, 40, 673, 8, 40, 10, 40, 12, 40, 676, 9, 40, 1, 41, 1, 41, 3, 41, 680, 8, 41, 1, 42, 1, 42, 1, 42, 1, 42, 5, 42, 686, 8, 42, 10, 42, 12, 42, 689, 9, 42, 1, 42, 3, 42, 692, 8, 42, 3, 42, 694, 8, 42, 1, 42, 1, 42, 1, 43, 1, 43, 3, 43, 700, 8, 43, 1, 43, 1, 43, 5, 43, 704, 8, 43, 10, 43, 12, 43, 707, 9, 43, 1, 43, 1, 43, 3, 43, 711, 8, 43, 1, 44, 1, 44, 3, 44, 715, 8, 44, 1, 45, 5, 45, 718, 8, 45, 10, 45, 12, 45, 721, 9, 45, 1, 45, 1, 45, 1, 45, 3, 45, 726, 8, 45, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 5, 48, 737, 8, 48, 10, 48, 12, 48, 740, 9, 48, 1, 49, 1, 49, 1, 50, 1, 50, 3, 50, 746, 8, 50, 1, 50, 1, 50, 1, 50, 3, 50, 751, 8, 50, 1, 50, 3, 50, 754, 8, 50, 3, 50, 756, 8, 50, 1, 50, 1, 50, 1, 51, 3, 51, 761, 8, 51, 1, 51, 1, 51, 1, 51, 5, 51, 766, 8, 51, 10, 51, 12, 51, 769, 9, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 5, 52, 776, 8, 52, 10, 52, 12, 52, 779, 9, 52, 1, 52, 1, 52, 3, 52, 783, 8, 52, 1, 52, 3, 52, 786, 8, 52, 1, 53, 5, 53, 789, 8, 53, 10, 53, 12, 53, 792, 9, 53, 1, 53, 3, 53, 795, 8, 53, 1, 53, 1, 53, 3, 53, 799, 8, 53, 1, 54, 5, 54, 802, 8, 54, 10, 54, 12, 54, 805, 9, 54, 1, 54, 3, 54, 808, 8, 54, 1, 54, 5, 54, 811, 8, 54, 10, 54, 12, 54, 814, 9, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 5, 55, 822, 8, 55, 10, 55, 12, 55, 825, 9, 55, 1, 56, 5, 56, 828, 8, 56, 10, 56, 12, 56, 831, 9, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 5, 57, 839, 8, 57, 10, 57, 12, 57, 842, 9, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 851, 8, 58, 1, 59, 1, 59, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 5, 61, 860, 8, 61, 10, 61, 12, 61, 863, 9, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 3, 62, 871, 8, 62, 1, 62, 1, 62, 1, 62, 3, 62, 876, 8, 62, 1, 62, 3, 62, 879, 8, 62, 1, 63, 1, 63, 1, 63, 5, 63, 884, 8, 63, 10, 63, 12, 63, 887, 9, 63, 1, 64, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 3, 65, 896, 8, 65, 1, 66, 1, 66, 1, 66, 1, 66, 5, 66, 902, 8, 66, 10, 66, 12, 66, 905, 9, 66, 3, 66, 907, 8, 66, 1, 66, 3, 66, 910, 8, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 5, 68, 921, 8, 68, 10, 68, 12, 68, 924, 9, 68, 1, 68, 1, 68, 1, 69, 5, 69, 929, 8, 69, 10, 69, 12, 69, 932, 9, 69, 1, 69, 1, 69, 3, 69, 936, 8, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 944, 8, 70, 3, 70, 946, 8, 70, 1, 71, 1, 71, 3, 71, 950, 8, 71, 1, 72, 1, 72, 1, 72, 1, 72, 3, 72, 956, 8, 72, 1, 73, 1, 73, 1, 74, 1, 74, 1, 74, 1, 75, 3, 75, 964, 8, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 5, 76, 972, 8, 76, 10, 76, 12, 76, 975, 9, 76, 1, 76, 1, 76, 1, 77, 1, 77, 5, 77, 981, 8, 77, 10, 77, 12, 77, 984, 9, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 3, 77, 993, 8, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 3, 77, 1001, 8, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 3, 77, 1015, 8, 77, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 3, 79, 1022, 8, 79, 1, 79, 1, 79, 1, 79, 3, 79, 1027, 8, 79, 1, 79, 1, 79, 1, 80, 1, 80, 3, 80, 1033, 8, 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 5, 81, 1040, 8, 81, 10, 81, 12, 81, 1043, 9, 81, 1, 82, 3, 82, 1046, 8, 82, 1, 82, 1, 82, 1, 83, 1, 83, 5, 83, 1052, 8, 83, 10, 83, 12, 83, 1055, 9, 83, 1, 83, 1, 83, 1, 84, 1, 84, 5, 84, 1061, 8, 84, 10, 84, 12, 84, 1064, 9, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 3, 85, 1073, 8, 85, 1, 86, 5, 86, 1076, 8, 86, 10, 86, 12, 86, 1079, 9, 86, 1, 86, 1, 86, 3, 86, 1083, 8, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 88, 1, 88, 1, 89, 5, 89, 1092, 8, 89, 10, 89, 12, 89, 1095, 9, 89, 1, 89, 1, 89, 1, 89, 3, 89, 1100, 8, 89, 1, 89, 3, 89, 1103, 8, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 1110, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 1119, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 4, 90, 1140, 8, 90, 11, 90, 12, 90, 1141, 1, 90, 3, 90, 1145, 8, 90, 1, 90, 3, 90, 1148, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 5, 90, 1154, 8, 90, 10, 90, 12, 90, 1157, 9, 90, 1, 90, 3, 90, 1160, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 5, 90, 1166, 8, 90, 10, 90, 12, 90, 1169, 9, 90, 1, 90, 5, 90, 1172, 8, 90, 10, 90, 12, 90, 1175, 9, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 1185, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 1194, 8, 90, 1, 90, 1, 90, 1, 90, 3, 90, 1199, 8, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 3, 90, 1214, 8, 90, 1, 91, 1, 91, 1, 91, 5, 91, 1219, 8, 91, 10, 91, 12, 91, 1222, 9, 91, 1, 91, 3, 91, 1225, 8, 91, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 5, 92, 1234, 8, 92, 10, 92, 12, 92, 1237, 9, 92, 1, 93, 1, 93, 1, 93, 1, 94, 1, 94, 1, 94, 3, 94, 1245, 8, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 5, 95, 1252, 8, 95, 10, 95, 12, 95, 1255, 9, 95, 1, 96, 5, 96, 1258, 8, 96, 10, 96, 12, 96, 1261, 9, 96, 1, 96, 3, 96, 1264, 8, 96, 1, 96, 1, 96, 1, 96, 3, 96, 1269, 8, 96, 1, 96, 1, 96, 1, 96, 1, 96, 3, 96, 1275, 8, 96, 1, 97, 4, 97, 1278, 8, 97, 11, 97, 12, 97, 1279, 1, 97, 4, 97, 1283, 8, 97, 11, 97, 12, 97, 1284, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 1300, 8, 98, 1, 99, 1, 99, 3, 99, 1304, 8, 99, 1, 99, 1, 99, 3, 99, 1308, 8, 99, 1, 99, 1, 99, 3, 99, 1312, 8, 99, 3, 99, 1314, 8, 99, 1, 100, 1, 100, 3, 100, 1318, 8, 100, 1, 101, 5, 101, 1321, 8, 101, 10, 101, 12, 101, 1324, 9, 101, 1, 101, 3, 101, 1327, 8, 101, 1, 101, 3, 101, 1330, 8, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 5, 103, 1343, 8, 103, 10, 103, 12, 103, 1346, 9, 103, 1, 104, 1, 104, 1, 104, 3, 104, 1351, 8, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 1358, 8, 104, 1, 104, 1, 104, 1, 104, 1, 104, 3, 104, 1364, 8, 104, 1, 104, 3, 104, 1367, 8, 104, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 5, 105, 1376, 8, 105, 10, 105, 12, 105, 1379, 9, 105, 1, 105, 1, 105, 1, 105, 5, 105, 1384, 8, 105, 10, 105, 12, 105, 1387, 9, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1399, 8, 105, 1, 105, 1, 105, 3, 105, 1403, 8, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1408, 8, 105, 1, 105, 1, 105, 3, 105, 1412, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1428, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1468, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1474, 8, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1487, 8, 105, 1, 105, 1, 105, 1, 105, 3, 105, 1492, 8, 105, 1, 105, 5, 105, 1495, 8, 105, 10, 105, 12, 105, 1498, 9, 105, 1, 106, 1, 106, 3, 106, 1502, 8, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1510, 8, 107, 1, 108, 1, 108, 1, 108, 3, 108, 1515, 8, 108, 1, 109, 5, 109, 1518, 8, 109, 10, 109, 12, 109, 1521, 9, 109, 1, 109, 1, 109, 1, 109, 1, 109, 5, 109, 1527, 8, 109, 10, 109, 12, 109, 1530, 9, 109, 1, 109, 3, 109, 1533, 8, 109, 1, 110, 1, 110, 3, 110, 1537, 8, 110, 1, 110, 1, 110, 1, 111, 1, 111, 3, 111, 1543, 8, 111, 1, 112, 1, 112, 1, 112, 5, 112, 1548, 8, 112, 10, 112, 12, 112, 1551, 9, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 3, 114, 1560, 8, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 5, 114, 1567, 8, 114, 10, 114, 12, 114, 1570, 9, 114, 1, 114, 1, 114, 1, 114, 1, 114, 3, 114, 1576, 8, 114, 1, 114, 3, 114, 1579, 8, 114, 1, 115, 1, 115, 3, 115, 1583, 8, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 3, 116, 1601, 8, 116, 3, 116, 1603, 8, 116, 1, 117, 1, 117, 1, 117, 1, 117, 5, 117, 1609, 8, 117, 10, 117, 12, 117, 1612, 9, 117, 1, 117, 1, 117, 1, 118, 1, 118, 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 3, 119, 1632, 8, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 3, 121, 1642, 8, 121, 1, 122, 1, 122, 1, 122, 3, 122, 1647, 8, 122, 1, 122, 5, 122, 1650, 8, 122, 10, 122, 12, 122, 1653, 9, 122, 1, 122, 1, 122, 3, 122, 1657, 8, 122, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 3, 123, 1666, 8, 123, 3, 123, 1668, 8, 123, 1, 124, 1, 124, 3, 124, 1672, 8, 124, 1, 124, 3, 124, 1675, 8, 124, 1, 125, 1, 125, 3, 125, 1679, 8, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, 1, 126, 5, 126, 1687, 8, 126, 10, 126, 12, 126, 1690, 9, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 5, 126, 1699, 8, 126, 10, 126, 12, 126, 1702, 9, 126, 1, 126, 1, 126, 5, 126, 1706, 8, 126, 10, 126, 12, 126, 1709, 9, 126, 3, 126, 1711, 8, 126, 1, 127, 1, 127, 3, 127, 1715, 8, 127, 1, 128, 1, 128, 1, 128, 1, 129, 1, 129, 1, 129, 3, 129, 1723, 8, 129, 1, 130, 1, 130, 1, 130, 3, 130, 1728, 8, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 5, 132, 1737, 8, 132, 10, 132, 12, 132, 1740, 9, 132, 1, 133, 5, 133, 1743, 8, 133, 10, 133, 12, 133, 1746, 9, 133, 1, 133, 1, 133, 3, 133, 1750, 8, 133, 1, 133, 5, 133, 1753, 8, 133, 10, 133, 12, 133, 1756, 9, 133, 1, 133, 1, 133, 5, 133, 1760, 8, 133, 10, 133, 12, 133, 1763, 9, 133, 1, 134, 1, 134, 1, 135, 1, 135, 1, 135, 1, 135, 5, 135, 1771, 8, 135, 10, 135, 12, 135, 1774, 9, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 3, 136, 1781, 8, 136, 1, 136, 1, 136, 3, 136, 1785, 8, 136, 3, 136, 1787, 8, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 3, 137, 1794, 8, 137, 1, 138, 1, 138, 3, 138, 1798, 8, 138, 1, 138, 1, 138, 1, 138, 0, 1, 210, 139, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 0, 15, 2, 0, 17, 17, 24, 24, 1, 0, 67, 70, 1, 0, 71, 72, 2, 0, 38, 38, 60, 60, 2, 0, 51, 65, 128, 128, 3, 0, 51, 60, 63, 65, 128, 128, 2, 0, 90, 91, 100, 103, 2, 0, 104, 105, 109, 109, 1, 0, 102, 103, 2, 0, 88, 89, 95, 96, 2, 0, 94, 94, 97, 97, 2, 0, 87, 87, 110, 120, 1, 0, 100, 101, 2, 0, 93, 93, 121, 121, 8, 0, 3, 3, 5, 5, 8, 8, 14, 14, 20, 20, 27, 27, 29, 29, 37, 37, 1981, 0, 296, 1, 0, 0, 0, 2, 301, 1, 0, 0, 0, 4, 308, 1, 0, 0, 0, 6, 333, 1, 0, 0, 0, 8, 340, 1, 0, 0, 0, 10, 352, 1, 0, 0, 0, 12, 356, 1, 0, 0, 0, 14, 358, 1, 0, 0, 0, 16, 377, 1, 0, 0, 0, 18, 391, 1, 0, 0, 0, 20, 405, 1, 0, 0, 0, 22, 413, 1, 0, 0, 0, 24, 431, 1, 0, 0, 0, 26, 442, 1, 0, 0, 0, 28, 452, 1, 0, 0, 0, 30, 459, 1, 0, 0, 0, 32, 474, 1, 0, 0, 0, 34, 483, 1, 0, 0, 0, 36, 504, 1, 0, 0, 0, 38, 510, 1, 0, 0, 0, 40, 514, 1, 0, 0, 0, 42, 516, 1, 0, 0, 0, 44, 524, 1, 0, 0, 0, 46, 537, 1, 0, 0, 0, 48, 541, 1, 0, 0, 0, 50, 543, 1, 0, 0, 0, 52, 548, 1, 0, 0, 0, 54, 550, 1, 0, 0, 0, 56, 553, 1, 0, 0, 0, 58, 562, 1, 0, 0, 0, 60, 575, 1, 0, 0, 0, 62, 581, 1, 0, 0, 0, 64, 584, 1, 0, 0, 0, 66, 596, 1, 0, 0, 0, 68, 610, 1, 0, 0, 0, 70, 621, 1, 0, 0, 0, 72, 626, 1, 0, 0, 0, 74, 635, 1, 0, 0, 0, 76, 656, 1, 0, 0, 0, 78, 664, 1, 0, 0, 0, 80, 669, 1, 0, 0, 0, 82, 679, 1, 0, 0, 0, 84, 681, 1, 0, 0, 0, 86, 705, 1, 0, 0, 0, 88, 714, 1, 0, 0, 0, 90, 719, 1, 0, 0, 0, 92, 727, 1, 0, 0, 0, 94, 730, 1, 0, 0, 0, 96, 733, 1, 0, 0, 0, 98, 741, 1, 0, 0, 0, 100, 743, 1, 0, 0, 0, 102, 760, 1, 0, 0, 0, 104, 785, 1, 0, 0, 0, 106, 798, 1, 0, 0, 0, 108, 803, 1, 0, 0, 0, 110, 818, 1, 0, 0, 0, 112, 829, 1, 0, 0, 0, 114, 835, 1, 0, 0, 0, 116, 850, 1, 0, 0, 0, 118, 852, 1, 0, 0, 0, 120, 854, 1, 0, 0, 0, 122, 861, 1, 0, 0, 0, 124, 870, 1, 0, 0, 0, 126, 880, 1, 0, 0, 0, 128, 888, 1, 0, 0, 0, 130, 895, 1, 0, 0, 0, 132, 897, 1, 0, 0, 0, 134, 913, 1, 0, 0, 0, 136, 918, 1, 0, 0, 0, 138, 935, 1, 0, 0, 0, 140, 945, 1, 0, 0, 0, 142, 949, 1, 0, 0, 0, 144, 951, 1, 0, 0, 0, 146, 957, 1, 0, 0, 0, 148, 959, 1, 0, 0, 0, 150, 963, 1, 0, 0, 0, 152, 969, 1, 0, 0, 0, 154, 1014, 1, 0, 0, 0, 156, 1016, 1, 0, 0, 0, 158, 1018, 1, 0, 0, 0, 160, 1030, 1, 0, 0, 0, 162, 1036, 1, 0, 0, 0, 164, 1045, 1, 0, 0, 0, 166, 1049, 1, 0, 0, 0, 168, 1058, 1, 0, 0, 0, 170, 1072, 1, 0, 0, 0, 172, 1077, 1, 0, 0, 0, 174, 1086, 1, 0, 0, 0, 176, 1088, 1, 0, 0, 0, 178, 1102, 1, 0, 0, 0, 180, 1213, 1, 0, 0, 0, 182, 1215, 1, 0, 0, 0, 184, 1230, 1, 0, 0, 0, 186, 1238, 1, 0, 0, 0, 188, 1241, 1, 0, 0, 0, 190, 1248, 1, 0, 0, 0, 192, 1274, 1, 0, 0, 0, 194, 1277, 1, 0, 0, 0, 196, 1299, 1, 0, 0, 0, 198, 1313, 1, 0, 0, 0, 200, 1317, 1, 0, 0, 0, 202, 1322, 1, 0, 0, 0, 204, 1335, 1, 0, 0, 0, 206, 1339, 1, 0, 0, 0, 208, 1366, 1, 0, 0, 0, 210, 1411, 1, 0, 0, 0, 212, 1501, 1, 0, 0, 0, 214, 1509, 1, 0, 0, 0, 216, 1511, 1, 0, 0, 0, 218, 1532, 1, 0, 0, 0, 220, 1534, 1, 0, 0, 0, 222, 1542, 1, 0, 0, 0, 224, 1544, 1, 0, 0, 0, 226, 1552, 1, 0, 0, 0, 228, 1578, 1, 0, 0, 0, 230, 1582, 1, 0, 0, 0, 232, 1602, 1, 0, 0, 0, 234, 1604, 1, 0, 0, 0, 236, 1615, 1, 0, 0, 0, 238, 1631, 1, 0, 0, 0, 240, 1633, 1, 0, 0, 0, 242, 1641, 1, 0, 0, 0, 244, 1646, 1, 0, 0, 0, 246, 1667, 1, 0, 0, 0, 248, 1674, 1, 0, 0, 0, 250, 1676, 1, 0, 0, 0, 252, 1682, 1, 0, 0, 0, 254, 1712, 1, 0, 0, 0, 256, 1716, 1, 0, 0, 0, 258, 1722, 1, 0, 0, 0, 260, 1727, 1, 0, 0, 0, 262, 1729, 1, 0, 0, 0, 264, 1733, 1, 0, 0, 0, 266, 1744, 1, 0, 0, 0, 268, 1764, 1, 0, 0, 0, 270, 1766, 1, 0, 0, 0, 272, 1786, 1, 0, 0, 0, 274, 1793, 1, 0, 0, 0, 276, 1795, 1, 0, 0, 0, 278, 280, 3, 2, 1, 0, 279, 278, 1, 0, 0, 0, 279, 280, 1, 0, 0, 0, 280, 284, 1, 0, 0, 0, 281, 283, 3, 4, 2, 0, 282, 281, 1, 0, 0, 0, 283, 286, 1, 0, 0, 0, 284, 282, 1, 0, 0, 0, 284, 285, 1, 0, 0, 0, 285, 290, 1, 0, 0, 0, 286, 284, 1, 0, 0, 0, 287, 289, 3, 6, 3, 0, 288, 287, 1, 0, 0, 0, 289, 292, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 290, 291, 1, 0, 0, 0, 291, 297, 1, 0, 0, 0, 292, 290, 1, 0, 0, 0, 293, 294, 3, 150, 75, 0, 294, 295, 5, 0, 0, 1, 295, 297, 1, 0, 0, 0, 296, 279, 1, 0, 0, 0, 296, 293, 1, 0, 0, 0, 297, 1, 1, 0, 0, 0, 298, 300, 3, 124, 62, 0, 299, 298, 1, 0, 0, 0, 300, 303, 1, 0, 0, 0, 301, 299, 1, 0, 0, 0, 301, 302, 1, 0, 0, 0, 302, 304, 1, 0, 0, 0, 303, 301, 1, 0, 0, 0, 304, 305, 5, 32, 0, 0, 305, 306, 3, 114, 57, 0, 306, 307, 5, 84, 0, 0, 307, 3, 1, 0, 0, 0, 308, 310, 5, 25, 0, 0, 309, 311, 5, 38, 0, 0, 310, 309, 1, 0, 0, 0, 310, 311, 1, 0, 0, 0, 311, 312, 1, 0, 0, 0, 312, 315, 3, 114, 57, 0, 313, 314, 5, 86, 0, 0, 314, 316, 5, 104, 0, 0, 315, 313, 1, 0, 0, 0, 315, 316, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 318, 5, 84, 0, 0, 318, 5, 1, 0, 0, 0, 319, 321, 3, 10, 5, 0, 320, 319, 1, 0, 0, 0, 321, 324, 1, 0, 0, 0, 322, 320, 1, 0, 0, 0, 322, 323, 1, 0, 0, 0, 323, 330, 1, 0, 0, 0, 324, 322, 1, 0, 0, 0, 325, 331, 3, 14, 7, 0, 326, 331, 3, 22, 11, 0, 327, 331, 3, 30, 15, 0, 328, 331, 3, 134, 67, 0, 329, 331, 3, 158, 79, 0, 330, 325, 1, 0, 0, 0, 330, 326, 1, 0, 0, 0, 330, 327, 1, 0, 0, 0, 330, 328, 1, 0, 0, 0, 330, 329, 1, 0, 0, 0, 331, 334, 1, 0, 0, 0, 332, 334, 5, 84, 0, 0, 333, 322, 1, 0, 0, 0, 333, 332, 1, 0, 0, 0, 334, 7, 1, 0, 0, 0, 335, 341, 3, 10, 5, 0, 336, 341, 5, 30, 0, 0, 337, 341, 5, 42, 0, 0, 338, 341, 5, 46, 0, 0, 339, 341, 5, 49, 0, 0, 340, 335, 1, 0, 0, 0, 340, 336, 1, 0, 0, 0, 340, 337, 1, 0, 0, 0, 340, 338, 1, 0, 0, 0, 340, 339, 1, 0, 0, 0, 341, 9, 1, 0, 0, 0, 342, 353, 3, 124, 62, 0, 343, 353, 5, 35, 0, 0, 344, 353, 5, 34, 0, 0, 345, 353, 5, 33, 0, 0, 346, 353, 5, 38, 0, 0, 347, 353, 5, 1, 0, 0, 348, 353, 5, 18, 0, 0, 349, 353, 5, 39, 0, 0, 350, 353, 5, 64, 0, 0, 351, 353, 5, 66, 0, 0, 352, 342, 1, 0, 0, 0, 352, 343, 1, 0, 0, 0, 352, 344, 1, 0, 0, 0, 352, 345, 1, 0, 0, 0, 352, 346, 1, 0, 0, 0, 352, 347, 1, 0, 0, 0, 352, 348, 1, 0, 0, 0, 352, 349, 1, 0, 0, 0, 352, 350, 1, 0, 0, 0, 352, 351, 1, 0, 0, 0, 353, 11, 1, 0, 0, 0, 354, 357, 5, 18, 0, 0, 355, 357, 3, 124, 62, 0, 356, 354, 1, 0, 0, 0, 356, 355, 1, 0, 0, 0, 357, 13, 1, 0, 0, 0, 358, 359, 5, 9, 0, 0, 359, 361, 3, 174, 87, 0, 360, 362, 3, 16, 8, 0, 361, 360, 1, 0, 0, 0, 361, 362, 1, 0, 0, 0, 362, 365, 1, 0, 0, 0, 363, 364, 5, 17, 0, 0, 364, 366, 3, 266, 133, 0, 365, 363, 1, 0, 0, 0, 365, 366, 1, 0, 0, 0, 366, 369, 1, 0, 0, 0, 367, 368, 5, 24, 0, 0, 368, 370, 3, 264, 132, 0, 369, 367, 1, 0, 0, 0, 369, 370, 1, 0, 0, 0, 370, 373, 1, 0, 0, 0, 371, 372, 5, 65, 0, 0, 372, 374, 3, 264, 132, 0, 373, 371, 1, 0, 0, 0, 373, 374, 1, 0, 0, 0, 374, 375, 1, 0, 0, 0, 375, 376, 3, 32, 16, 0, 376, 15, 1, 0, 0, 0, 377, 378, 5, 89, 0, 0, 378, 383, 3, 18, 9, 0, 379, 380, 5, 85, 0, 0, 380, 382, 3, 18, 9, 0, 381, 379, 1, 0, 0, 0, 382, 385, 1, 0, 0, 0, 383, 381, 1, 0, 0, 0, 383, 384, 1, 0, 0, 0, 384, 386, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 386, 387, 5, 88, 0, 0, 387, 17, 1, 0, 0, 0, 388, 390, 3, 124, 62, 0, 389, 388, 1, 0, 0, 0, 390, 393, 1, 0, 0, 0, 391, 389, 1, 0, 0, 0, 391, 392, 1, 0, 0, 0, 392, 394, 1, 0, 0, 0, 393, 391, 1, 0, 0, 0, 394, 403, 3, 174, 87, 0, 395, 399, 7, 0, 0, 0, 396, 398, 3, 124, 62, 0, 397, 396, 1, 0, 0, 0, 398, 401, 1, 0, 0, 0, 399, 397, 1, 0, 0, 0, 399, 400, 1, 0, 0, 0, 400, 402, 1, 0, 0, 0, 401, 399, 1, 0, 0, 0, 402, 404, 3, 20, 10, 0, 403, 395, 1, 0, 0, 0, 403, 404, 1, 0, 0, 0, 404, 19, 1, 0, 0, 0, 405, 410, 3, 266, 133, 0, 406, 407, 5, 106, 0, 0, 407, 409, 3, 266, 133, 0, 408, 406, 1, 0, 0, 0, 409, 412, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 410, 411, 1, 0, 0, 0, 411, 21, 1, 0, 0, 0, 412, 410, 1, 0, 0, 0, 413, 414, 5, 16, 0, 0, 414, 417, 3, 174, 87, 0, 415, 416, 5, 24, 0, 0, 416, 418, 3, 264, 132, 0, 417, 415, 1, 0, 0, 0, 417, 418, 1, 0, 0, 0, 418, 419, 1, 0, 0, 0, 419, 421, 5, 80, 0, 0, 420, 422, 3, 24, 12, 0, 421, 420, 1, 0, 0, 0, 421, 422, 1, 0, 0, 0, 422, 424, 1, 0, 0, 0, 423, 425, 5, 85, 0, 0, 424, 423, 1, 0, 0, 0, 424, 425, 1, 0, 0, 0, 425, 427, 1, 0, 0, 0, 426, 428, 3, 28, 14, 0, 427, 426, 1, 0, 0, 0, 427, 428, 1, 0, 0, 0, 428, 429, 1, 0, 0, 0, 429, 430, 5, 81, 0, 0, 430, 23, 1, 0, 0, 0, 431, 436, 3, 26, 13, 0, 432, 433, 5, 85, 0, 0, 433, 435, 3, 26, 13, 0, 434, 432, 1, 0, 0, 0, 435, 438, 1, 0, 0, 0, 436, 434, 1, 0, 0, 0, 436, 437, 1, 0, 0, 0, 437, 25, 1, 0, 0, 0, 438, 436, 1, 0, 0, 0, 439, 441, 3, 124, 62, 0, 440, 439, 1, 0, 0, 0, 441, 444, 1, 0, 0, 0, 442, 440, 1, 0, 0, 0, 442, 443, 1, 0, 0, 0, 443, 445, 1, 0, 0, 0, 444, 442, 1, 0, 0, 0, 445, 447, 3, 174, 87, 0, 446, 448, 3, 276, 138, 0, 447, 446, 1, 0, 0, 0, 447, 448, 1, 0, 0, 0, 448, 450, 1, 0, 0, 0, 449, 451, 3, 32, 16, 0, 450, 449, 1, 0, 0, 0, 450, 451, 1, 0, 0, 0, 451, 27, 1, 0, 0, 0, 452, 456, 5, 84, 0, 0, 453, 455, 3, 36, 18, 0, 454, 453, 1, 0, 0, 0, 455, 458, 1, 0, 0, 0, 456, 454, 1, 0, 0, 0, 456, 457, 1, 0, 0, 0, 457, 29, 1, 0, 0, 0, 458, 456, 1, 0, 0, 0, 459, 460, 5, 28, 0, 0, 460, 462, 3, 174, 87, 0, 461, 463, 3, 16, 8, 0, 462, 461, 1, 0, 0, 0, 462, 463, 1, 0, 0, 0, 463, 466, 1, 0, 0, 0, 464, 465, 5, 17, 0, 0, 465, 467, 3, 264, 132, 0, 466, 464, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 470, 1, 0, 0, 0, 468, 469, 5, 65, 0, 0, 469, 471, 3, 264, 132, 0, 470, 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 472, 1, 0, 0, 0, 472, 473, 3, 34, 17, 0, 473, 31, 1, 0, 0, 0, 474, 478, 5, 80, 0, 0, 475, 477, 3, 36, 18, 0, 476, 475, 1, 0, 0, 0, 477, 480, 1, 0, 0, 0, 478, 476, 1, 0, 0, 0, 478, 479, 1, 0, 0, 0, 479, 481, 1, 0, 0, 0, 480, 478, 1, 0, 0, 0, 481, 482, 5, 81, 0, 0, 482, 33, 1, 0, 0, 0, 483, 487, 5, 80, 0, 0, 484, 486, 3, 60, 30, 0, 485, 484, 1, 0, 0, 0, 486, 489, 1, 0, 0, 0, 487, 485, 1, 0, 0, 0, 487, 488, 1, 0, 0, 0, 488, 490, 1, 0, 0, 0, 489, 487, 1, 0, 0, 0, 490, 491, 5, 81, 0, 0, 491, 35, 1, 0, 0, 0, 492, 505, 5, 84, 0, 0, 493, 495, 5, 38, 0, 0, 494, 493, 1, 0, 0, 0, 494, 495, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 505, 3, 168, 84, 0, 497, 499, 3, 8, 4, 0, 498, 497, 1, 0, 0, 0, 499, 502, 1, 0, 0, 0, 500, 498, 1, 0, 0, 0, 500, 501, 1, 0, 0, 0, 501, 503, 1, 0, 0, 0, 502, 500, 1, 0, 0, 0, 503, 505, 3, 38, 19, 0, 504, 492, 1, 0, 0, 0, 504, 494, 1, 0, 0, 0, 504, 500, 1, 0, 0, 0, 505, 37, 1, 0, 0, 0, 506, 511, 3, 6, 3, 0, 507, 511, 3, 58, 29, 0, 508, 511, 3, 40, 20, 0, 509, 511, 3, 52, 26, 0, 510, 506, 1, 0, 0, 0, 510, 507, 1, 0, 0, 0, 510, 508, 1, 0, 0, 0, 510, 509, 1, 0, 0, 0, 511, 39, 1, 0, 0, 0, 512, 515, 3, 42, 21, 0, 513, 515, 3, 50, 25, 0, 514, 512, 1, 0, 0, 0, 514, 513, 1, 0, 0, 0, 515, 41, 1, 0, 0, 0, 516, 519, 3, 44, 22, 0, 517, 518, 5, 45, 0, 0, 518, 520, 3, 98, 49, 0, 519, 517, 1, 0, 0, 0, 519, 520, 1, 0, 0, 0, 520, 521, 1, 0, 0, 0, 521, 522, 3, 46, 23, 0, 522, 43, 1, 0, 0, 0, 523, 525, 3, 48, 24, 0, 524, 523, 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 526, 1, 0, 0, 0, 526, 527, 3, 174, 87, 0, 527, 532, 3, 100, 50, 0, 528, 529, 5, 82, 0, 0, 529, 531, 5, 83, 0, 0, 530, 528, 1, 0, 0, 0, 531, 534, 1, 0, 0, 0, 532, 530, 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 45, 1, 0, 0, 0, 534, 532, 1, 0, 0, 0, 535, 538, 3, 168, 84, 0, 536, 538, 5, 84, 0, 0, 537, 535, 1, 0, 0, 0, 537, 536, 1, 0, 0, 0, 538, 47, 1, 0, 0, 0, 539, 542, 3, 266, 133, 0, 540, 542, 5, 48, 0, 0, 541, 539, 1, 0, 0, 0, 541, 540, 1, 0, 0, 0, 542, 49, 1, 0, 0, 0, 543, 544, 3, 16, 8, 0, 544, 545, 3, 42, 21, 0, 545, 51, 1, 0, 0, 0, 546, 549, 3, 54, 27, 0, 547, 549, 3, 56, 28, 0, 548, 546, 1, 0, 0, 0, 548, 547, 1, 0, 0, 0, 549, 53, 1, 0, 0, 0, 550, 551, 3, 16, 8, 0, 551, 552, 3, 56, 28, 0, 552, 55, 1, 0, 0, 0, 553, 554, 3, 174, 87, 0, 554, 557, 3, 100, 50, 0, 555, 556, 5, 45, 0, 0, 556, 558, 3, 98, 49, 0, 557, 555, 1, 0, 0, 0, 557, 558, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 560, 3, 168, 84, 0, 560, 57, 1, 0, 0, 0, 561, 563, 3, 266, 133, 0, 562, 561, 1, 0, 0, 0, 562, 563, 1, 0, 0, 0, 563, 564, 1, 0, 0, 0, 564, 565, 3, 76, 38, 0, 565, 566, 5, 84, 0, 0, 566, 59, 1, 0, 0, 0, 567, 569, 3, 8, 4, 0, 568, 567, 1, 0, 0, 0, 569, 572, 1, 0, 0, 0, 570, 568, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 573, 1, 0, 0, 0, 572, 570, 1, 0, 0, 0, 573, 576, 3, 62, 31, 0, 574, 576, 5, 84, 0, 0, 575, 570, 1, 0, 0, 0, 575, 574, 1, 0, 0, 0, 576, 61, 1, 0, 0, 0, 577, 582, 3, 64, 32, 0, 578, 582, 3, 68, 34, 0, 579, 582, 3, 72, 36, 0, 580, 582, 3, 6, 3, 0, 581, 577, 1, 0, 0, 0, 581, 578, 1, 0, 0, 0, 581, 579, 1, 0, 0, 0, 581, 580, 1, 0, 0, 0, 582, 63, 1, 0, 0, 0, 583, 585, 3, 266, 133, 0, 584, 583, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 591, 3, 66, 33, 0, 587, 588, 5, 85, 0, 0, 588, 590, 3, 66, 33, 0, 589, 587, 1, 0, 0, 0, 590, 593, 1, 0, 0, 0, 591, 589, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, 592, 594, 1, 0, 0, 0, 593, 591, 1, 0, 0, 0, 594, 595, 5, 84, 0, 0, 595, 65, 1, 0, 0, 0, 596, 601, 3, 174, 87, 0, 597, 598, 5, 82, 0, 0, 598, 600, 5, 83, 0, 0, 599, 597, 1, 0, 0, 0, 600, 603, 1, 0, 0, 0, 601, 599, 1, 0, 0, 0, 601, 602, 1, 0, 0, 0, 602, 604, 1, 0, 0, 0, 603, 601, 1, 0, 0, 0, 604, 605, 5, 87, 0, 0, 605, 606, 3, 82, 41, 0, 606, 67, 1, 0, 0, 0, 607, 609, 3, 70, 35, 0, 608, 607, 1, 0, 0, 0, 609, 612, 1, 0, 0, 0, 610, 608, 1, 0, 0, 0, 610, 611, 1, 0, 0, 0, 611, 613, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 613, 614, 3, 74, 37, 0, 614, 69, 1, 0, 0, 0, 615, 622, 3, 124, 62, 0, 616, 622, 5, 35, 0, 0, 617, 622, 5, 1, 0, 0, 618, 622, 5, 12, 0, 0, 619, 622, 5, 38, 0, 0, 620, 622, 5, 39, 0, 0, 621, 615, 1, 0, 0, 0, 621, 616, 1, 0, 0, 0, 621, 617, 1, 0, 0, 0, 621, 618, 1, 0, 0, 0, 621, 619, 1, 0, 0, 0, 621, 620, 1, 0, 0, 0, 622, 71, 1, 0, 0, 0, 623, 625, 3, 70, 35, 0, 624, 623, 1, 0, 0, 0, 625, 628, 1, 0, 0, 0, 626, 624, 1, 0, 0, 0, 626, 627, 1, 0, 0, 0, 627, 629, 1, 0, 0, 0, 628, 626, 1, 0, 0, 0, 629, 630, 3, 16, 8, 0, 630, 631, 3, 74, 37, 0, 631, 73, 1, 0, 0, 0, 632, 634, 3, 124, 62, 0, 633, 632, 1, 0, 0, 0, 634, 637, 1, 0, 0, 0, 635, 633, 1, 0, 0, 0, 635, 636, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0, 638, 640, 3, 48, 24, 0, 639, 638, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, 641, 1, 0, 0, 0, 641, 642, 3, 174, 87, 0, 642, 647, 3, 100, 50, 0, 643, 644, 5, 82, 0, 0, 644, 646, 5, 83, 0, 0, 645, 643, 1, 0, 0, 0, 646, 649, 1, 0, 0, 0, 647, 645, 1, 0, 0, 0, 647, 648, 1, 0, 0, 0, 648, 652, 1, 0, 0, 0, 649, 647, 1, 0, 0, 0, 650, 651, 5, 45, 0, 0, 651, 653, 3, 98, 49, 0, 652, 650, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 655, 3, 46, 23, 0, 655, 75, 1, 0, 0, 0, 656, 661, 3, 78, 39, 0, 657, 658, 5, 85, 0, 0, 658, 660, 3, 78, 39, 0, 659, 657, 1, 0, 0, 0, 660, 663, 1, 0, 0, 0, 661, 659, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 77, 1, 0, 0, 0, 663, 661, 1, 0, 0, 0, 664, 667, 3, 80, 40, 0, 665, 666, 5, 87, 0, 0, 666, 668, 3, 82, 41, 0, 667, 665, 1, 0, 0, 0, 667, 668, 1, 0, 0, 0, 668, 79, 1, 0, 0, 0, 669, 674, 3, 174, 87, 0, 670, 671, 5, 82, 0, 0, 671, 673, 5, 83, 0, 0, 672, 670, 1, 0, 0, 0, 673, 676, 1, 0, 0, 0, 674, 672, 1, 0, 0, 0, 674, 675, 1, 0, 0, 0, 675, 81, 1, 0, 0, 0, 676, 674, 1, 0, 0, 0, 677, 680, 3, 84, 42, 0, 678, 680, 3, 210, 105, 0, 679, 677, 1, 0, 0, 0, 679, 678, 1, 0, 0, 0, 680, 83, 1, 0, 0, 0, 681, 693, 5, 80, 0, 0, 682, 687, 3, 82, 41, 0, 683, 684, 5, 85, 0, 0, 684, 686, 3, 82, 41, 0, 685, 683, 1, 0, 0, 0, 686, 689, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 687, 688, 1, 0, 0, 0, 688, 691, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 690, 692, 5, 85, 0, 0, 691, 690, 1, 0, 0, 0, 691, 692, 1, 0, 0, 0, 692, 694, 1, 0, 0, 0, 693, 682, 1, 0, 0, 0, 693, 694, 1, 0, 0, 0, 694, 695, 1, 0, 0, 0, 695, 696, 5, 81, 0, 0, 696, 85, 1, 0, 0, 0, 697, 699, 3, 174, 87, 0, 698, 700, 3, 270, 135, 0, 699, 698, 1, 0, 0, 0, 699, 700, 1, 0, 0, 0, 700, 701, 1, 0, 0, 0, 701, 702, 5, 86, 0, 0, 702, 704, 1, 0, 0, 0, 703, 697, 1, 0, 0, 0, 704, 707, 1, 0, 0, 0, 705, 703, 1, 0, 0, 0, 705, 706, 1, 0, 0, 0, 706, 708, 1, 0, 0, 0, 707, 705, 1, 0, 0, 0, 708, 710, 3, 176, 88, 0, 709, 711, 3, 270, 135, 0, 710, 709, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 87, 1, 0, 0, 0, 712, 715, 3, 266, 133, 0, 713, 715, 3, 90, 45, 0, 714, 712, 1, 0, 0, 0, 714, 713, 1, 0, 0, 0, 715, 89, 1, 0, 0, 0, 716, 718, 3, 124, 62, 0, 717, 716, 1, 0, 0, 0, 718, 721, 1, 0, 0, 0, 719, 717, 1, 0, 0, 0, 719, 720, 1, 0, 0, 0, 720, 722, 1, 0, 0, 0, 721, 719, 1, 0, 0, 0, 722, 725, 5, 92, 0, 0, 723, 726, 3, 92, 46, 0, 724, 726, 3, 94, 47, 0, 725, 723, 1, 0, 0, 0, 725, 724, 1, 0, 0, 0, 725, 726, 1, 0, 0, 0, 726, 91, 1, 0, 0, 0, 727, 728, 5, 17, 0, 0, 728, 729, 3, 266, 133, 0, 729, 93, 1, 0, 0, 0, 730, 731, 5, 40, 0, 0, 731, 732, 3, 266, 133, 0, 732, 95, 1, 0, 0, 0, 733, 738, 3, 114, 57, 0, 734, 735, 5, 85, 0, 0, 735, 737, 3, 114, 57, 0, 736, 734, 1, 0, 0, 0, 737, 740, 1, 0, 0, 0, 738, 736, 1, 0, 0, 0, 738, 739, 1, 0, 0, 0, 739, 97, 1, 0, 0, 0, 740, 738, 1, 0, 0, 0, 741, 742, 3, 96, 48, 0, 742, 99, 1, 0, 0, 0, 743, 755, 5, 78, 0, 0, 744, 746, 3, 102, 51, 0, 745, 744, 1, 0, 0, 0, 745, 746, 1, 0, 0, 0, 746, 756, 1, 0, 0, 0, 747, 750, 3, 102, 51, 0, 748, 749, 5, 85, 0, 0, 749, 751, 3, 104, 52, 0, 750, 748, 1, 0, 0, 0, 750, 751, 1, 0, 0, 0, 751, 756, 1, 0, 0, 0, 752, 754, 3, 104, 52, 0, 753, 752, 1, 0, 0, 0, 753, 754, 1, 0, 0, 0, 754, 756, 1, 0, 0, 0, 755, 745, 1, 0, 0, 0, 755, 747, 1, 0, 0, 0, 755, 753, 1, 0, 0, 0, 756, 757, 1, 0, 0, 0, 757, 758, 5, 79, 0, 0, 758, 101, 1, 0, 0, 0, 759, 761, 3, 266, 133, 0, 760, 759, 1, 0, 0, 0, 760, 761, 1, 0, 0, 0, 761, 767, 1, 0, 0, 0, 762, 763, 3, 174, 87, 0, 763, 764, 5, 86, 0, 0, 764, 766, 1, 0, 0, 0, 765, 762, 1, 0, 0, 0, 766, 769, 1, 0, 0, 0, 767, 765, 1, 0, 0, 0, 767, 768, 1, 0, 0, 0, 768, 770, 1, 0, 0, 0, 769, 767, 1, 0, 0, 0, 770, 771, 5, 43, 0, 0, 771, 103, 1, 0, 0, 0, 772, 777, 3, 106, 53, 0, 773, 774, 5, 85, 0, 0, 774, 776, 3, 106, 53, 0, 775, 773, 1, 0, 0, 0, 776, 779, 1, 0, 0, 0, 777, 775, 1, 0, 0, 0, 777, 778, 1, 0, 0, 0, 778, 782, 1, 0, 0, 0, 779, 777, 1, 0, 0, 0, 780, 781, 5, 85, 0, 0, 781, 783, 3, 108, 54, 0, 782, 780, 1, 0, 0, 0, 782, 783, 1, 0, 0, 0, 783, 786, 1, 0, 0, 0, 784, 786, 3, 108, 54, 0, 785, 772, 1, 0, 0, 0, 785, 784, 1, 0, 0, 0, 786, 105, 1, 0, 0, 0, 787, 789, 3, 12, 6, 0, 788, 787, 1, 0, 0, 0, 789, 792, 1, 0, 0, 0, 790, 788, 1, 0, 0, 0, 790, 791, 1, 0, 0, 0, 791, 794, 1, 0, 0, 0, 792, 790, 1, 0, 0, 0, 793, 795, 3, 266, 133, 0, 794, 793, 1, 0, 0, 0, 794, 795, 1, 0, 0, 0, 795, 796, 1, 0, 0, 0, 796, 799, 3, 80, 40, 0, 797, 799, 3, 212, 106, 0, 798, 790, 1, 0, 0, 0, 798, 797, 1, 0, 0, 0, 799, 107, 1, 0, 0, 0, 800, 802, 3, 12, 6, 0, 801, 800, 1, 0, 0, 0, 802, 805, 1, 0, 0, 0, 803, 801, 1, 0, 0, 0, 803, 804, 1, 0, 0, 0, 804, 807, 1, 0, 0, 0, 805, 803, 1, 0, 0, 0, 806, 808, 3, 266, 133, 0, 807, 806, 1, 0, 0, 0, 807, 808, 1, 0, 0, 0, 808, 812, 1, 0, 0, 0, 809, 811, 3, 124, 62, 0, 810, 809, 1, 0, 0, 0, 811, 814, 1, 0, 0, 0, 812, 810, 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 815, 1, 0, 0, 0, 814, 812, 1, 0, 0, 0, 815, 816, 5, 124, 0, 0, 816, 817, 3, 80, 40, 0, 817, 109, 1, 0, 0, 0, 818, 823, 3, 112, 56, 0, 819, 820, 5, 85, 0, 0, 820, 822, 3, 112, 56, 0, 821, 819, 1, 0, 0, 0, 822, 825, 1, 0, 0, 0, 823, 821, 1, 0, 0, 0, 823, 824, 1, 0, 0, 0, 824, 111, 1, 0, 0, 0, 825, 823, 1, 0, 0, 0, 826, 828, 3, 12, 6, 0, 827, 826, 1, 0, 0, 0, 828, 831, 1, 0, 0, 0, 829, 827, 1, 0, 0, 0, 829, 830, 1, 0, 0, 0, 830, 832, 1, 0, 0, 0, 831, 829, 1, 0, 0, 0, 832, 833, 5, 61, 0, 0, 833, 834, 3, 174, 87, 0, 834, 113, 1, 0, 0, 0, 835, 840, 3, 174, 87, 0, 836, 837, 5, 86, 0, 0, 837, 839, 3, 174, 87, 0, 838, 836, 1, 0, 0, 0, 839, 842, 1, 0, 0, 0, 840, 838, 1, 0, 0, 0, 840, 841, 1, 0, 0, 0, 841, 115, 1, 0, 0, 0, 842, 840, 1, 0, 0, 0, 843, 851, 3, 118, 59, 0, 844, 851, 3, 120, 60, 0, 845, 851, 5, 74, 0, 0, 846, 851, 5, 75, 0, 0, 847, 851, 5, 73, 0, 0, 848, 851, 5, 77, 0, 0, 849, 851, 5, 76, 0, 0, 850, 843, 1, 0, 0, 0, 850, 844, 1, 0, 0, 0, 850, 845, 1, 0, 0, 0, 850, 846, 1, 0, 0, 0, 850, 847, 1, 0, 0, 0, 850, 848, 1, 0, 0, 0, 850, 849, 1, 0, 0, 0, 851, 117, 1, 0, 0, 0, 852, 853, 7, 1, 0, 0, 853, 119, 1, 0, 0, 0, 854, 855, 7, 2, 0, 0, 855, 121, 1, 0, 0, 0, 856, 857, 3, 174, 87, 0, 857, 858, 5, 86, 0, 0, 858, 860, 1, 0, 0, 0, 859, 856, 1, 0, 0, 0, 860, 863, 1, 0, 0, 0, 861, 859, 1, 0, 0, 0, 861, 862, 1, 0, 0, 0, 862, 864, 1, 0, 0, 0, 863, 861, 1, 0, 0, 0, 864, 865, 5, 123, 0, 0, 865, 866, 3, 174, 87, 0, 866, 123, 1, 0, 0, 0, 867, 868, 5, 123, 0, 0, 868, 871, 3, 114, 57, 0, 869, 871, 3, 122, 61, 0, 870, 867, 1, 0, 0, 0, 870, 869, 1, 0, 0, 0, 871, 878, 1, 0, 0, 0, 872, 875, 5, 78, 0, 0, 873, 876, 3, 126, 63, 0, 874, 876, 3, 130, 65, 0, 875, 873, 1, 0, 0, 0, 875, 874, 1, 0, 0, 0, 875, 876, 1, 0, 0, 0, 876, 877, 1, 0, 0, 0, 877, 879, 5, 79, 0, 0, 878, 872, 1, 0, 0, 0, 878, 879, 1, 0, 0, 0, 879, 125, 1, 0, 0, 0, 880, 885, 3, 128, 64, 0, 881, 882, 5, 85, 0, 0, 882, 884, 3, 128, 64, 0, 883, 881, 1, 0, 0, 0, 884, 887, 1, 0, 0, 0, 885, 883, 1, 0, 0, 0, 885, 886, 1, 0, 0, 0, 886, 127, 1, 0, 0, 0, 887, 885, 1, 0, 0, 0, 888, 889, 3, 174, 87, 0, 889, 890, 5, 87, 0, 0, 890, 891, 3, 130, 65, 0, 891, 129, 1, 0, 0, 0, 892, 896, 3, 210, 105, 0, 893, 896, 3, 124, 62, 0, 894, 896, 3, 132, 66, 0, 895, 892, 1, 0, 0, 0, 895, 893, 1, 0, 0, 0, 895, 894, 1, 0, 0, 0, 896, 131, 1, 0, 0, 0, 897, 906, 5, 80, 0, 0, 898, 903, 3, 130, 65, 0, 899, 900, 5, 85, 0, 0, 900, 902, 3, 130, 65, 0, 901, 899, 1, 0, 0, 0, 902, 905, 1, 0, 0, 0, 903, 901, 1, 0, 0, 0, 903, 904, 1, 0, 0, 0, 904, 907, 1, 0, 0, 0, 905, 903, 1, 0, 0, 0, 906, 898, 1, 0, 0, 0, 906, 907, 1, 0, 0, 0, 907, 909, 1, 0, 0, 0, 908, 910, 5, 85, 0, 0, 909, 908, 1, 0, 0, 0, 909, 910, 1, 0, 0, 0, 910, 911, 1, 0, 0, 0, 911, 912, 5, 81, 0, 0, 912, 133, 1, 0, 0, 0, 913, 914, 5, 123, 0, 0, 914, 915, 5, 28, 0, 0, 915, 916, 3, 174, 87, 0, 916, 917, 3, 136, 68, 0, 917, 135, 1, 0, 0, 0, 918, 922, 5, 80, 0, 0, 919, 921, 3, 138, 69, 0, 920, 919, 1, 0, 0, 0, 921, 924, 1, 0, 0, 0, 922, 920, 1, 0, 0, 0, 922, 923, 1, 0, 0, 0, 923, 925, 1, 0, 0, 0, 924, 922, 1, 0, 0, 0, 925, 926, 5, 81, 0, 0, 926, 137, 1, 0, 0, 0, 927, 929, 3, 8, 4, 0, 928, 927, 1, 0, 0, 0, 929, 932, 1, 0, 0, 0, 930, 928, 1, 0, 0, 0, 930, 931, 1, 0, 0, 0, 931, 933, 1, 0, 0, 0, 932, 930, 1, 0, 0, 0, 933, 936, 3, 140, 70, 0, 934, 936, 5, 84, 0, 0, 935, 930, 1, 0, 0, 0, 935, 934, 1, 0, 0, 0, 936, 139, 1, 0, 0, 0, 937, 938, 3, 266, 133, 0, 938, 939, 3, 142, 71, 0, 939, 940, 5, 84, 0, 0, 940, 946, 1, 0, 0, 0, 941, 943, 3, 6, 3, 0, 942, 944, 5, 84, 0, 0, 943, 942, 1, 0, 0, 0, 943, 944, 1, 0, 0, 0, 944, 946, 1, 0, 0, 0, 945, 937, 1, 0, 0, 0, 945, 941, 1, 0, 0, 0, 946, 141, 1, 0, 0, 0, 947, 950, 3, 144, 72, 0, 948, 950, 3, 146, 73, 0, 949, 947, 1, 0, 0, 0, 949, 948, 1, 0, 0, 0, 950, 143, 1, 0, 0, 0, 951, 952, 3, 174, 87, 0, 952, 953, 5, 78, 0, 0, 953, 955, 5, 79, 0, 0, 954, 956, 3, 148, 74, 0, 955, 954, 1, 0, 0, 0, 955, 956, 1, 0, 0, 0, 956, 145, 1, 0, 0, 0, 957, 958, 3, 76, 38, 0, 958, 147, 1, 0, 0, 0, 959, 960, 5, 12, 0, 0, 960, 961, 3, 130, 65, 0, 961, 149, 1, 0, 0, 0, 962, 964, 5, 52, 0, 0, 963, 962, 1, 0, 0, 0, 963, 964, 1, 0, 0, 0, 964, 965, 1, 0, 0, 0, 965, 966, 5, 51, 0, 0, 966, 967, 3, 114, 57, 0, 967, 968, 3, 152, 76, 0, 968, 151, 1, 0, 0, 0, 969, 973, 5, 80, 0, 0, 970, 972, 3, 154, 77, 0, 971, 970, 1, 0, 0, 0, 972, 975, 1, 0, 0, 0, 973, 971, 1, 0, 0, 0, 973, 974, 1, 0, 0, 0, 974, 976, 1, 0, 0, 0, 975, 973, 1, 0, 0, 0, 976, 977, 5, 81, 0, 0, 977, 153, 1, 0, 0, 0, 978, 982, 5, 53, 0, 0, 979, 981, 3, 156, 78, 0, 980, 979, 1, 0, 0, 0, 981, 984, 1, 0, 0, 0, 982, 980, 1, 0, 0, 0, 982, 983, 1, 0, 0, 0, 983, 985, 1, 0, 0, 0, 984, 982, 1, 0, 0, 0, 985, 986, 3, 114, 57, 0, 986, 987, 5, 84, 0, 0, 987, 1015, 1, 0, 0, 0, 988, 989, 5, 54, 0, 0, 989, 992, 3, 114, 57, 0, 990, 991, 5, 56, 0, 0, 991, 993, 3, 114, 57, 0, 992, 990, 1, 0, 0, 0, 992, 993, 1, 0, 0, 0, 993, 994, 1, 0, 0, 0, 994, 995, 5, 84, 0, 0, 995, 1015, 1, 0, 0, 0, 996, 997, 5, 55, 0, 0, 997, 1000, 3, 114, 57, 0, 998, 999, 5, 56, 0, 0, 999, 1001, 3, 114, 57, 0, 1000, 998, 1, 0, 0, 0, 1000, 1001, 1, 0, 0, 0, 1001, 1002, 1, 0, 0, 0, 1002, 1003, 5, 84, 0, 0, 1003, 1015, 1, 0, 0, 0, 1004, 1005, 5, 57, 0, 0, 1005, 1006, 3, 114, 57, 0, 1006, 1007, 5, 84, 0, 0, 1007, 1015, 1, 0, 0, 0, 1008, 1009, 5, 58, 0, 0, 1009, 1010, 3, 114, 57, 0, 1010, 1011, 5, 59, 0, 0, 1011, 1012, 3, 114, 57, 0, 1012, 1013, 5, 84, 0, 0, 1013, 1015, 1, 0, 0, 0, 1014, 978, 1, 0, 0, 0, 1014, 988, 1, 0, 0, 0, 1014, 996, 1, 0, 0, 0, 1014, 1004, 1, 0, 0, 0, 1014, 1008, 1, 0, 0, 0, 1015, 155, 1, 0, 0, 0, 1016, 1017, 7, 3, 0, 0, 1017, 157, 1, 0, 0, 0, 1018, 1019, 5, 63, 0, 0, 1019, 1021, 3, 174, 87, 0, 1020, 1022, 3, 16, 8, 0, 1021, 1020, 1, 0, 0, 0, 1021, 1022, 1, 0, 0, 0, 1022, 1023, 1, 0, 0, 0, 1023, 1026, 3, 160, 80, 0, 1024, 1025, 5, 24, 0, 0, 1025, 1027, 3, 264, 132, 0, 1026, 1024, 1, 0, 0, 0, 1026, 1027, 1, 0, 0, 0, 1027, 1028, 1, 0, 0, 0, 1028, 1029, 3, 166, 83, 0, 1029, 159, 1, 0, 0, 0, 1030, 1032, 5, 78, 0, 0, 1031, 1033, 3, 162, 81, 0, 1032, 1031, 1, 0, 0, 0, 1032, 1033, 1, 0, 0, 0, 1033, 1034, 1, 0, 0, 0, 1034, 1035, 5, 79, 0, 0, 1035, 161, 1, 0, 0, 0, 1036, 1041, 3, 164, 82, 0, 1037, 1038, 5, 85, 0, 0, 1038, 1040, 3, 164, 82, 0, 1039, 1037, 1, 0, 0, 0, 1040, 1043, 1, 0, 0, 0, 1041, 1039, 1, 0, 0, 0, 1041, 1042, 1, 0, 0, 0, 1042, 163, 1, 0, 0, 0, 1043, 1041, 1, 0, 0, 0, 1044, 1046, 3, 266, 133, 0, 1045, 1044, 1, 0, 0, 0, 1045, 1046, 1, 0, 0, 0, 1046, 1047, 1, 0, 0, 0, 1047, 1048, 3, 174, 87, 0, 1048, 165, 1, 0, 0, 0, 1049, 1053, 5, 80, 0, 0, 1050, 1052, 3, 36, 18, 0, 1051, 1050, 1, 0, 0, 0, 1052, 1055, 1, 0, 0, 0, 1053, 1051, 1, 0, 0, 0, 1053, 1054, 1, 0, 0, 0, 1054, 1056, 1, 0, 0, 0, 1055, 1053, 1, 0, 0, 0, 1056, 1057, 5, 81, 0, 0, 1057, 167, 1, 0, 0, 0, 1058, 1062, 5, 80, 0, 0, 1059, 1061, 3, 170, 85, 0, 1060, 1059, 1, 0, 0, 0, 1061, 1064, 1, 0, 0, 0, 1062, 1060, 1, 0, 0, 0, 1062, 1063, 1, 0, 0, 0, 1063, 1065, 1, 0, 0, 0, 1064, 1062, 1, 0, 0, 0, 1065, 1066, 5, 81, 0, 0, 1066, 169, 1, 0, 0, 0, 1067, 1068, 3, 172, 86, 0, 1068, 1069, 5, 84, 0, 0, 1069, 1073, 1, 0, 0, 0, 1070, 1073, 3, 178, 89, 0, 1071, 1073, 3, 180, 90, 0, 1072, 1067, 1, 0, 0, 0, 1072, 1070, 1, 0, 0, 0, 1072, 1071, 1, 0, 0, 0, 1073, 171, 1, 0, 0, 0, 1074, 1076, 3, 12, 6, 0, 1075, 1074, 1, 0, 0, 0, 1076, 1079, 1, 0, 0, 0, 1077, 1075, 1, 0, 0, 0, 1077, 1078, 1, 0, 0, 0, 1078, 1082, 1, 0, 0, 0, 1079, 1077, 1, 0, 0, 0, 1080, 1083, 5, 61, 0, 0, 1081, 1083, 3, 266, 133, 0, 1082, 1080, 1, 0, 0, 0, 1082, 1081, 1, 0, 0, 0, 1083, 1084, 1, 0, 0, 0, 1084, 1085, 3, 76, 38, 0, 1085, 173, 1, 0, 0, 0, 1086, 1087, 7, 4, 0, 0, 1087, 175, 1, 0, 0, 0, 1088, 1089, 7, 5, 0, 0, 1089, 177, 1, 0, 0, 0, 1090, 1092, 3, 10, 5, 0, 1091, 1090, 1, 0, 0, 0, 1092, 1095, 1, 0, 0, 0, 1093, 1091, 1, 0, 0, 0, 1093, 1094, 1, 0, 0, 0, 1094, 1099, 1, 0, 0, 0, 1095, 1093, 1, 0, 0, 0, 1096, 1100, 3, 14, 7, 0, 1097, 1100, 3, 30, 15, 0, 1098, 1100, 3, 158, 79, 0, 1099, 1096, 1, 0, 0, 0, 1099, 1097, 1, 0, 0, 0, 1099, 1098, 1, 0, 0, 0, 1100, 1103, 1, 0, 0, 0, 1101, 1103, 5, 84, 0, 0, 1102, 1093, 1, 0, 0, 0, 1102, 1101, 1, 0, 0, 0, 1103, 179, 1, 0, 0, 0, 1104, 1214, 3, 168, 84, 0, 1105, 1106, 5, 2, 0, 0, 1106, 1109, 3, 210, 105, 0, 1107, 1108, 5, 93, 0, 0, 1108, 1110, 3, 210, 105, 0, 1109, 1107, 1, 0, 0, 0, 1109, 1110, 1, 0, 0, 0, 1110, 1111, 1, 0, 0, 0, 1111, 1112, 5, 84, 0, 0, 1112, 1214, 1, 0, 0, 0, 1113, 1114, 5, 22, 0, 0, 1114, 1115, 3, 204, 102, 0, 1115, 1118, 3, 180, 90, 0, 1116, 1117, 5, 15, 0, 0, 1117, 1119, 3, 180, 90, 0, 1118, 1116, 1, 0, 0, 0, 1118, 1119, 1, 0, 0, 0, 1119, 1214, 1, 0, 0, 0, 1120, 1121, 5, 21, 0, 0, 1121, 1122, 5, 78, 0, 0, 1122, 1123, 3, 198, 99, 0, 1123, 1124, 5, 79, 0, 0, 1124, 1125, 3, 180, 90, 0, 1125, 1214, 1, 0, 0, 0, 1126, 1127, 5, 50, 0, 0, 1127, 1128, 3, 204, 102, 0, 1128, 1129, 3, 180, 90, 0, 1129, 1214, 1, 0, 0, 0, 1130, 1131, 5, 13, 0, 0, 1131, 1132, 3, 180, 90, 0, 1132, 1133, 5, 50, 0, 0, 1133, 1134, 3, 204, 102, 0, 1134, 1135, 5, 84, 0, 0, 1135, 1214, 1, 0, 0, 0, 1136, 1137, 5, 47, 0, 0, 1137, 1147, 3, 168, 84, 0, 1138, 1140, 3, 182, 91, 0, 1139, 1138, 1, 0, 0, 0, 1140, 1141, 1, 0, 0, 0, 1141, 1139, 1, 0, 0, 0, 1141, 1142, 1, 0, 0, 0, 1142, 1144, 1, 0, 0, 0, 1143, 1145, 3, 186, 93, 0, 1144, 1143, 1, 0, 0, 0, 1144, 1145, 1, 0, 0, 0, 1145, 1148, 1, 0, 0, 0, 1146, 1148, 3, 186, 93, 0, 1147, 1139, 1, 0, 0, 0, 1147, 1146, 1, 0, 0, 0, 1148, 1214, 1, 0, 0, 0, 1149, 1150, 5, 47, 0, 0, 1150, 1151, 3, 188, 94, 0, 1151, 1155, 3, 168, 84, 0, 1152, 1154, 3, 182, 91, 0, 1153, 1152, 1, 0, 0, 0, 1154, 1157, 1, 0, 0, 0, 1155, 1153, 1, 0, 0, 0, 1155, 1156, 1, 0, 0, 0, 1156, 1159, 1, 0, 0, 0, 1157, 1155, 1, 0, 0, 0, 1158, 1160, 3, 186, 93, 0, 1159, 1158, 1, 0, 0, 0, 1159, 1160, 1, 0, 0, 0, 1160, 1214, 1, 0, 0, 0, 1161, 1162, 5, 41, 0, 0, 1162, 1163, 3, 204, 102, 0, 1163, 1167, 5, 80, 0, 0, 1164, 1166, 3, 194, 97, 0, 1165, 1164, 1, 0, 0, 0, 1166, 1169, 1, 0, 0, 0, 1167, 1165, 1, 0, 0, 0, 1167, 1168, 1, 0, 0, 0, 1168, 1173, 1, 0, 0, 0, 1169, 1167, 1, 0, 0, 0, 1170, 1172, 3, 196, 98, 0, 1171, 1170, 1, 0, 0, 0, 1172, 1175, 1, 0, 0, 0, 1173, 1171, 1, 0, 0, 0, 1173, 1174, 1, 0, 0, 0, 1174, 1176, 1, 0, 0, 0, 1175, 1173, 1, 0, 0, 0, 1176, 1177, 5, 81, 0, 0, 1177, 1214, 1, 0, 0, 0, 1178, 1179, 5, 42, 0, 0, 1179, 1180, 3, 204, 102, 0, 1180, 1181, 3, 168, 84, 0, 1181, 1214, 1, 0, 0, 0, 1182, 1184, 5, 36, 0, 0, 1183, 1185, 3, 210, 105, 0, 1184, 1183, 1, 0, 0, 0, 1184, 1185, 1, 0, 0, 0, 1185, 1186, 1, 0, 0, 0, 1186, 1214, 5, 84, 0, 0, 1187, 1188, 5, 44, 0, 0, 1188, 1189, 3, 210, 105, 0, 1189, 1190, 5, 84, 0, 0, 1190, 1214, 1, 0, 0, 0, 1191, 1193, 5, 4, 0, 0, 1192, 1194, 3, 174, 87, 0, 1193, 1192, 1, 0, 0, 0, 1193, 1194, 1, 0, 0, 0, 1194, 1195, 1, 0, 0, 0, 1195, 1214, 5, 84, 0, 0, 1196, 1198, 5, 11, 0, 0, 1197, 1199, 3, 174, 87, 0, 1198, 1197, 1, 0, 0, 0, 1198, 1199, 1, 0, 0, 0, 1199, 1200, 1, 0, 0, 0, 1200, 1214, 5, 84, 0, 0, 1201, 1202, 5, 62, 0, 0, 1202, 1203, 3, 210, 105, 0, 1203, 1204, 5, 84, 0, 0, 1204, 1214, 1, 0, 0, 0, 1205, 1214, 5, 84, 0, 0, 1206, 1207, 3, 210, 105, 0, 1207, 1208, 5, 84, 0, 0, 1208, 1214, 1, 0, 0, 0, 1209, 1210, 3, 174, 87, 0, 1210, 1211, 5, 93, 0, 0, 1211, 1212, 3, 180, 90, 0, 1212, 1214, 1, 0, 0, 0, 1213, 1104, 1, 0, 0, 0, 1213, 1105, 1, 0, 0, 0, 1213, 1113, 1, 0, 0, 0, 1213, 1120, 1, 0, 0, 0, 1213, 1126, 1, 0, 0, 0, 1213, 1130, 1, 0, 0, 0, 1213, 1136, 1, 0, 0, 0, 1213, 1149, 1, 0, 0, 0, 1213, 1161, 1, 0, 0, 0, 1213, 1178, 1, 0, 0, 0, 1213, 1182, 1, 0, 0, 0, 1213, 1187, 1, 0, 0, 0, 1213, 1191, 1, 0, 0, 0, 1213, 1196, 1, 0, 0, 0, 1213, 1201, 1, 0, 0, 0, 1213, 1205, 1, 0, 0, 0, 1213, 1206, 1, 0, 0, 0, 1213, 1209, 1, 0, 0, 0, 1214, 181, 1, 0, 0, 0, 1215, 1216, 5, 7, 0, 0, 1216, 1220, 5, 78, 0, 0, 1217, 1219, 3, 12, 6, 0, 1218, 1217, 1, 0, 0, 0, 1219, 1222, 1, 0, 0, 0, 1220, 1218, 1, 0, 0, 0, 1220, 1221, 1, 0, 0, 0, 1221, 1224, 1, 0, 0, 0, 1222, 1220, 1, 0, 0, 0, 1223, 1225, 3, 184, 92, 0, 1224, 1223, 1, 0, 0, 0, 1224, 1225, 1, 0, 0, 0, 1225, 1226, 1, 0, 0, 0, 1226, 1227, 3, 174, 87, 0, 1227, 1228, 5, 79, 0, 0, 1228, 1229, 3, 168, 84, 0, 1229, 183, 1, 0, 0, 0, 1230, 1235, 3, 114, 57, 0, 1231, 1232, 5, 107, 0, 0, 1232, 1234, 3, 114, 57, 0, 1233, 1231, 1, 0, 0, 0, 1234, 1237, 1, 0, 0, 0, 1235, 1233, 1, 0, 0, 0, 1235, 1236, 1, 0, 0, 0, 1236, 185, 1, 0, 0, 0, 1237, 1235, 1, 0, 0, 0, 1238, 1239, 5, 19, 0, 0, 1239, 1240, 3, 168, 84, 0, 1240, 187, 1, 0, 0, 0, 1241, 1242, 5, 78, 0, 0, 1242, 1244, 3, 190, 95, 0, 1243, 1245, 5, 84, 0, 0, 1244, 1243, 1, 0, 0, 0, 1244, 1245, 1, 0, 0, 0, 1245, 1246, 1, 0, 0, 0, 1246, 1247, 5, 79, 0, 0, 1247, 189, 1, 0, 0, 0, 1248, 1253, 3, 192, 96, 0, 1249, 1250, 5, 84, 0, 0, 1250, 1252, 3, 192, 96, 0, 1251, 1249, 1, 0, 0, 0, 1252, 1255, 1, 0, 0, 0, 1253, 1251, 1, 0, 0, 0, 1253, 1254, 1, 0, 0, 0, 1254, 191, 1, 0, 0, 0, 1255, 1253, 1, 0, 0, 0, 1256, 1258, 3, 12, 6, 0, 1257, 1256, 1, 0, 0, 0, 1258, 1261, 1, 0, 0, 0, 1259, 1257, 1, 0, 0, 0, 1259, 1260, 1, 0, 0, 0, 1260, 1268, 1, 0, 0, 0, 1261, 1259, 1, 0, 0, 0, 1262, 1264, 3, 86, 43, 0, 1263, 1262, 1, 0, 0, 0, 1263, 1264, 1, 0, 0, 0, 1264, 1265, 1, 0, 0, 0, 1265, 1269, 3, 80, 40, 0, 1266, 1267, 5, 61, 0, 0, 1267, 1269, 3, 174, 87, 0, 1268, 1263, 1, 0, 0, 0, 1268, 1266, 1, 0, 0, 0, 1269, 1270, 1, 0, 0, 0, 1270, 1271, 5, 87, 0, 0, 1271, 1272, 3, 210, 105, 0, 1272, 1275, 1, 0, 0, 0, 1273, 1275, 3, 174, 87, 0, 1274, 1259, 1, 0, 0, 0, 1274, 1273, 1, 0, 0, 0, 1275, 193, 1, 0, 0, 0, 1276, 1278, 3, 196, 98, 0, 1277, 1276, 1, 0, 0, 0, 1278, 1279, 1, 0, 0, 0, 1279, 1277, 1, 0, 0, 0, 1279, 1280, 1, 0, 0, 0, 1280, 1282, 1, 0, 0, 0, 1281, 1283, 3, 170, 85, 0, 1282, 1281, 1, 0, 0, 0, 1283, 1284, 1, 0, 0, 0, 1284, 1282, 1, 0, 0, 0, 1284, 1285, 1, 0, 0, 0, 1285, 195, 1, 0, 0, 0, 1286, 1287, 5, 6, 0, 0, 1287, 1288, 3, 210, 105, 0, 1288, 1289, 5, 93, 0, 0, 1289, 1300, 1, 0, 0, 0, 1290, 1291, 5, 6, 0, 0, 1291, 1292, 5, 128, 0, 0, 1292, 1300, 5, 93, 0, 0, 1293, 1294, 5, 6, 0, 0, 1294, 1295, 3, 212, 106, 0, 1295, 1296, 5, 93, 0, 0, 1296, 1300, 1, 0, 0, 0, 1297, 1298, 5, 12, 0, 0, 1298, 1300, 5, 93, 0, 0, 1299, 1286, 1, 0, 0, 0, 1299, 1290, 1, 0, 0, 0, 1299, 1293, 1, 0, 0, 0, 1299, 1297, 1, 0, 0, 0, 1300, 197, 1, 0, 0, 0, 1301, 1314, 3, 202, 101, 0, 1302, 1304, 3, 200, 100, 0, 1303, 1302, 1, 0, 0, 0, 1303, 1304, 1, 0, 0, 0, 1304, 1305, 1, 0, 0, 0, 1305, 1307, 5, 84, 0, 0, 1306, 1308, 3, 210, 105, 0, 1307, 1306, 1, 0, 0, 0, 1307, 1308, 1, 0, 0, 0, 1308, 1309, 1, 0, 0, 0, 1309, 1311, 5, 84, 0, 0, 1310, 1312, 3, 206, 103, 0, 1311, 1310, 1, 0, 0, 0, 1311, 1312, 1, 0, 0, 0, 1312, 1314, 1, 0, 0, 0, 1313, 1301, 1, 0, 0, 0, 1313, 1303, 1, 0, 0, 0, 1314, 199, 1, 0, 0, 0, 1315, 1318, 3, 172, 86, 0, 1316, 1318, 3, 206, 103, 0, 1317, 1315, 1, 0, 0, 0, 1317, 1316, 1, 0, 0, 0, 1318, 201, 1, 0, 0, 0, 1319, 1321, 3, 12, 6, 0, 1320, 1319, 1, 0, 0, 0, 1321, 1324, 1, 0, 0, 0, 1322, 1320, 1, 0, 0, 0, 1322, 1323, 1, 0, 0, 0, 1323, 1329, 1, 0, 0, 0, 1324, 1322, 1, 0, 0, 0, 1325, 1327, 3, 266, 133, 0, 1326, 1325, 1, 0, 0, 0, 1326, 1327, 1, 0, 0, 0, 1327, 1330, 1, 0, 0, 0, 1328, 1330, 5, 61, 0, 0, 1329, 1326, 1, 0, 0, 0, 1329, 1328, 1, 0, 0, 0, 1330, 1331, 1, 0, 0, 0, 1331, 1332, 3, 80, 40, 0, 1332, 1333, 5, 93, 0, 0, 1333, 1334, 3, 210, 105, 0, 1334, 203, 1, 0, 0, 0, 1335, 1336, 5, 78, 0, 0, 1336, 1337, 3, 210, 105, 0, 1337, 1338, 5, 79, 0, 0, 1338, 205, 1, 0, 0, 0, 1339, 1344, 3, 210, 105, 0, 1340, 1341, 5, 85, 0, 0, 1341, 1343, 3, 210, 105, 0, 1342, 1340, 1, 0, 0, 0, 1343, 1346, 1, 0, 0, 0, 1344, 1342, 1, 0, 0, 0, 1344, 1345, 1, 0, 0, 0, 1345, 207, 1, 0, 0, 0, 1346, 1344, 1, 0, 0, 0, 1347, 1348, 3, 174, 87, 0, 1348, 1350, 5, 78, 0, 0, 1349, 1351, 3, 206, 103, 0, 1350, 1349, 1, 0, 0, 0, 1350, 1351, 1, 0, 0, 0, 1351, 1352, 1, 0, 0, 0, 1352, 1353, 5, 79, 0, 0, 1353, 1367, 1, 0, 0, 0, 1354, 1355, 5, 43, 0, 0, 1355, 1357, 5, 78, 0, 0, 1356, 1358, 3, 206, 103, 0, 1357, 1356, 1, 0, 0, 0, 1357, 1358, 1, 0, 0, 0, 1358, 1359, 1, 0, 0, 0, 1359, 1367, 5, 79, 0, 0, 1360, 1361, 5, 40, 0, 0, 1361, 1363, 5, 78, 0, 0, 1362, 1364, 3, 206, 103, 0, 1363, 1362, 1, 0, 0, 0, 1363, 1364, 1, 0, 0, 0, 1364, 1365, 1, 0, 0, 0, 1365, 1367, 5, 79, 0, 0, 1366, 1347, 1, 0, 0, 0, 1366, 1354, 1, 0, 0, 0, 1366, 1360, 1, 0, 0, 0, 1367, 209, 1, 0, 0, 0, 1368, 1369, 6, 105, -1, 0, 1369, 1412, 3, 232, 116, 0, 1370, 1412, 3, 208, 104, 0, 1371, 1372, 5, 31, 0, 0, 1372, 1412, 3, 246, 123, 0, 1373, 1377, 5, 78, 0, 0, 1374, 1376, 3, 124, 62, 0, 1375, 1374, 1, 0, 0, 0, 1376, 1379, 1, 0, 0, 0, 1377, 1375, 1, 0, 0, 0, 1377, 1378, 1, 0, 0, 0, 1378, 1380, 1, 0, 0, 0, 1379, 1377, 1, 0, 0, 0, 1380, 1385, 3, 266, 133, 0, 1381, 1382, 5, 106, 0, 0, 1382, 1384, 3, 266, 133, 0, 1383, 1381, 1, 0, 0, 0, 1384, 1387, 1, 0, 0, 0, 1385, 1383, 1, 0, 0, 0, 1385, 1386, 1, 0, 0, 0, 1386, 1388, 1, 0, 0, 0, 1387, 1385, 1, 0, 0, 0, 1388, 1389, 5, 79, 0, 0, 1389, 1390, 3, 210, 105, 21, 1390, 1412, 1, 0, 0, 0, 1391, 1392, 7, 6, 0, 0, 1392, 1412, 3, 210, 105, 19, 1393, 1412, 3, 226, 113, 0, 1394, 1412, 3, 234, 117, 0, 1395, 1396, 3, 266, 133, 0, 1396, 1402, 5, 122, 0, 0, 1397, 1399, 3, 270, 135, 0, 1398, 1397, 1, 0, 0, 0, 1398, 1399, 1, 0, 0, 0, 1399, 1400, 1, 0, 0, 0, 1400, 1403, 3, 174, 87, 0, 1401, 1403, 5, 31, 0, 0, 1402, 1398, 1, 0, 0, 0, 1402, 1401, 1, 0, 0, 0, 1403, 1412, 1, 0, 0, 0, 1404, 1405, 3, 244, 122, 0, 1405, 1407, 5, 122, 0, 0, 1406, 1408, 3, 270, 135, 0, 1407, 1406, 1, 0, 0, 0, 1407, 1408, 1, 0, 0, 0, 1408, 1409, 1, 0, 0, 0, 1409, 1410, 5, 31, 0, 0, 1410, 1412, 1, 0, 0, 0, 1411, 1368, 1, 0, 0, 0, 1411, 1370, 1, 0, 0, 0, 1411, 1371, 1, 0, 0, 0, 1411, 1373, 1, 0, 0, 0, 1411, 1391, 1, 0, 0, 0, 1411, 1393, 1, 0, 0, 0, 1411, 1394, 1, 0, 0, 0, 1411, 1395, 1, 0, 0, 0, 1411, 1404, 1, 0, 0, 0, 1412, 1496, 1, 0, 0, 0, 1413, 1414, 10, 18, 0, 0, 1414, 1415, 7, 7, 0, 0, 1415, 1495, 3, 210, 105, 19, 1416, 1417, 10, 17, 0, 0, 1417, 1418, 7, 8, 0, 0, 1418, 1495, 3, 210, 105, 18, 1419, 1427, 10, 16, 0, 0, 1420, 1421, 5, 89, 0, 0, 1421, 1428, 5, 89, 0, 0, 1422, 1423, 5, 88, 0, 0, 1423, 1424, 5, 88, 0, 0, 1424, 1428, 5, 88, 0, 0, 1425, 1426, 5, 88, 0, 0, 1426, 1428, 5, 88, 0, 0, 1427, 1420, 1, 0, 0, 0, 1427, 1422, 1, 0, 0, 0, 1427, 1425, 1, 0, 0, 0, 1428, 1429, 1, 0, 0, 0, 1429, 1495, 3, 210, 105, 17, 1430, 1431, 10, 15, 0, 0, 1431, 1432, 7, 9, 0, 0, 1432, 1495, 3, 210, 105, 16, 1433, 1434, 10, 13, 0, 0, 1434, 1435, 7, 10, 0, 0, 1435, 1495, 3, 210, 105, 14, 1436, 1437, 10, 12, 0, 0, 1437, 1438, 5, 106, 0, 0, 1438, 1495, 3, 210, 105, 13, 1439, 1440, 10, 11, 0, 0, 1440, 1441, 5, 108, 0, 0, 1441, 1495, 3, 210, 105, 12, 1442, 1443, 10, 10, 0, 0, 1443, 1444, 5, 107, 0, 0, 1444, 1495, 3, 210, 105, 11, 1445, 1446, 10, 9, 0, 0, 1446, 1447, 5, 98, 0, 0, 1447, 1495, 3, 210, 105, 10, 1448, 1449, 10, 8, 0, 0, 1449, 1450, 5, 99, 0, 0, 1450, 1495, 3, 210, 105, 9, 1451, 1452, 10, 7, 0, 0, 1452, 1453, 5, 92, 0, 0, 1453, 1454, 3, 210, 105, 0, 1454, 1455, 5, 93, 0, 0, 1455, 1456, 3, 210, 105, 7, 1456, 1495, 1, 0, 0, 0, 1457, 1458, 10, 6, 0, 0, 1458, 1459, 7, 11, 0, 0, 1459, 1495, 3, 210, 105, 6, 1460, 1461, 10, 25, 0, 0, 1461, 1473, 5, 86, 0, 0, 1462, 1474, 3, 174, 87, 0, 1463, 1474, 3, 208, 104, 0, 1464, 1474, 5, 43, 0, 0, 1465, 1467, 5, 31, 0, 0, 1466, 1468, 3, 262, 131, 0, 1467, 1466, 1, 0, 0, 0, 1467, 1468, 1, 0, 0, 0, 1468, 1469, 1, 0, 0, 0, 1469, 1474, 3, 250, 125, 0, 1470, 1471, 5, 40, 0, 0, 1471, 1474, 3, 272, 136, 0, 1472, 1474, 3, 256, 128, 0, 1473, 1462, 1, 0, 0, 0, 1473, 1463, 1, 0, 0, 0, 1473, 1464, 1, 0, 0, 0, 1473, 1465, 1, 0, 0, 0, 1473, 1470, 1, 0, 0, 0, 1473, 1472, 1, 0, 0, 0, 1474, 1495, 1, 0, 0, 0, 1475, 1476, 10, 24, 0, 0, 1476, 1477, 5, 82, 0, 0, 1477, 1478, 3, 210, 105, 0, 1478, 1479, 5, 83, 0, 0, 1479, 1495, 1, 0, 0, 0, 1480, 1481, 10, 20, 0, 0, 1481, 1495, 7, 12, 0, 0, 1482, 1483, 10, 14, 0, 0, 1483, 1486, 5, 26, 0, 0, 1484, 1487, 3, 266, 133, 0, 1485, 1487, 3, 212, 106, 0, 1486, 1484, 1, 0, 0, 0, 1486, 1485, 1, 0, 0, 0, 1487, 1495, 1, 0, 0, 0, 1488, 1489, 10, 3, 0, 0, 1489, 1491, 5, 122, 0, 0, 1490, 1492, 3, 270, 135, 0, 1491, 1490, 1, 0, 0, 0, 1491, 1492, 1, 0, 0, 0, 1492, 1493, 1, 0, 0, 0, 1493, 1495, 3, 174, 87, 0, 1494, 1413, 1, 0, 0, 0, 1494, 1416, 1, 0, 0, 0, 1494, 1419, 1, 0, 0, 0, 1494, 1430, 1, 0, 0, 0, 1494, 1433, 1, 0, 0, 0, 1494, 1436, 1, 0, 0, 0, 1494, 1439, 1, 0, 0, 0, 1494, 1442, 1, 0, 0, 0, 1494, 1445, 1, 0, 0, 0, 1494, 1448, 1, 0, 0, 0, 1494, 1451, 1, 0, 0, 0, 1494, 1457, 1, 0, 0, 0, 1494, 1460, 1, 0, 0, 0, 1494, 1475, 1, 0, 0, 0, 1494, 1480, 1, 0, 0, 0, 1494, 1482, 1, 0, 0, 0, 1494, 1488, 1, 0, 0, 0, 1495, 1498, 1, 0, 0, 0, 1496, 1494, 1, 0, 0, 0, 1496, 1497, 1, 0, 0, 0, 1497, 211, 1, 0, 0, 0, 1498, 1496, 1, 0, 0, 0, 1499, 1502, 3, 214, 107, 0, 1500, 1502, 3, 240, 120, 0, 1501, 1499, 1, 0, 0, 0, 1501, 1500, 1, 0, 0, 0, 1502, 213, 1, 0, 0, 0, 1503, 1510, 3, 218, 109, 0, 1504, 1510, 3, 216, 108, 0, 1505, 1506, 5, 78, 0, 0, 1506, 1507, 3, 212, 106, 0, 1507, 1508, 5, 79, 0, 0, 1508, 1510, 1, 0, 0, 0, 1509, 1503, 1, 0, 0, 0, 1509, 1504, 1, 0, 0, 0, 1509, 1505, 1, 0, 0, 0, 1510, 215, 1, 0, 0, 0, 1511, 1512, 3, 266, 133, 0, 1512, 1514, 3, 220, 110, 0, 1513, 1515, 3, 174, 87, 0, 1514, 1513, 1, 0, 0, 0, 1514, 1515, 1, 0, 0, 0, 1515, 217, 1, 0, 0, 0, 1516, 1518, 3, 12, 6, 0, 1517, 1516, 1, 0, 0, 0, 1518, 1521, 1, 0, 0, 0, 1519, 1517, 1, 0, 0, 0, 1519, 1520, 1, 0, 0, 0, 1520, 1522, 1, 0, 0, 0, 1521, 1519, 1, 0, 0, 0, 1522, 1523, 3, 266, 133, 0, 1523, 1524, 3, 174, 87, 0, 1524, 1533, 1, 0, 0, 0, 1525, 1527, 3, 12, 6, 0, 1526, 1525, 1, 0, 0, 0, 1527, 1530, 1, 0, 0, 0, 1528, 1526, 1, 0, 0, 0, 1528, 1529, 1, 0, 0, 0, 1529, 1531, 1, 0, 0, 0, 1530, 1528, 1, 0, 0, 0, 1531, 1533, 3, 174, 87, 0, 1532, 1519, 1, 0, 0, 0, 1532, 1528, 1, 0, 0, 0, 1533, 219, 1, 0, 0, 0, 1534, 1536, 5, 78, 0, 0, 1535, 1537, 3, 224, 112, 0, 1536, 1535, 1, 0, 0, 0, 1536, 1537, 1, 0, 0, 0, 1537, 1538, 1, 0, 0, 0, 1538, 1539, 5, 79, 0, 0, 1539, 221, 1, 0, 0, 0, 1540, 1543, 3, 212, 106, 0, 1541, 1543, 3, 174, 87, 0, 1542, 1540, 1, 0, 0, 0, 1542, 1541, 1, 0, 0, 0, 1543, 223, 1, 0, 0, 0, 1544, 1549, 3, 212, 106, 0, 1545, 1546, 5, 85, 0, 0, 1546, 1548, 3, 212, 106, 0, 1547, 1545, 1, 0, 0, 0, 1548, 1551, 1, 0, 0, 0, 1549, 1547, 1, 0, 0, 0, 1549, 1550, 1, 0, 0, 0, 1550, 225, 1, 0, 0, 0, 1551, 1549, 1, 0, 0, 0, 1552, 1553, 3, 228, 114, 0, 1553, 1554, 5, 121, 0, 0, 1554, 1555, 3, 230, 115, 0, 1555, 227, 1, 0, 0, 0, 1556, 1579, 3, 174, 87, 0, 1557, 1559, 5, 78, 0, 0, 1558, 1560, 3, 104, 52, 0, 1559, 1558, 1, 0, 0, 0, 1559, 1560, 1, 0, 0, 0, 1560, 1561, 1, 0, 0, 0, 1561, 1579, 5, 79, 0, 0, 1562, 1563, 5, 78, 0, 0, 1563, 1568, 3, 174, 87, 0, 1564, 1565, 5, 85, 0, 0, 1565, 1567, 3, 174, 87, 0, 1566, 1564, 1, 0, 0, 0, 1567, 1570, 1, 0, 0, 0, 1568, 1566, 1, 0, 0, 0, 1568, 1569, 1, 0, 0, 0, 1569, 1571, 1, 0, 0, 0, 1570, 1568, 1, 0, 0, 0, 1571, 1572, 5, 79, 0, 0, 1572, 1579, 1, 0, 0, 0, 1573, 1575, 5, 78, 0, 0, 1574, 1576, 3, 110, 55, 0, 1575, 1574, 1, 0, 0, 0, 1575, 1576, 1, 0, 0, 0, 1576, 1577, 1, 0, 0, 0, 1577, 1579, 5, 79, 0, 0, 1578, 1556, 1, 0, 0, 0, 1578, 1557, 1, 0, 0, 0, 1578, 1562, 1, 0, 0, 0, 1578, 1573, 1, 0, 0, 0, 1579, 229, 1, 0, 0, 0, 1580, 1583, 3, 210, 105, 0, 1581, 1583, 3, 168, 84, 0, 1582, 1580, 1, 0, 0, 0, 1582, 1581, 1, 0, 0, 0, 1583, 231, 1, 0, 0, 0, 1584, 1585, 5, 78, 0, 0, 1585, 1586, 3, 210, 105, 0, 1586, 1587, 5, 79, 0, 0, 1587, 1603, 1, 0, 0, 0, 1588, 1603, 5, 43, 0, 0, 1589, 1603, 5, 40, 0, 0, 1590, 1603, 3, 116, 58, 0, 1591, 1603, 3, 174, 87, 0, 1592, 1593, 3, 48, 24, 0, 1593, 1594, 5, 86, 0, 0, 1594, 1595, 5, 9, 0, 0, 1595, 1603, 1, 0, 0, 0, 1596, 1600, 3, 262, 131, 0, 1597, 1601, 3, 274, 137, 0, 1598, 1599, 5, 43, 0, 0, 1599, 1601, 3, 276, 138, 0, 1600, 1597, 1, 0, 0, 0, 1600, 1598, 1, 0, 0, 0, 1601, 1603, 1, 0, 0, 0, 1602, 1584, 1, 0, 0, 0, 1602, 1588, 1, 0, 0, 0, 1602, 1589, 1, 0, 0, 0, 1602, 1590, 1, 0, 0, 0, 1602, 1591, 1, 0, 0, 0, 1602, 1592, 1, 0, 0, 0, 1602, 1596, 1, 0, 0, 0, 1603, 233, 1, 0, 0, 0, 1604, 1605, 5, 41, 0, 0, 1605, 1606, 3, 204, 102, 0, 1606, 1610, 5, 80, 0, 0, 1607, 1609, 3, 236, 118, 0, 1608, 1607, 1, 0, 0, 0, 1609, 1612, 1, 0, 0, 0, 1610, 1608, 1, 0, 0, 0, 1610, 1611, 1, 0, 0, 0, 1611, 1613, 1, 0, 0, 0, 1612, 1610, 1, 0, 0, 0, 1613, 1614, 5, 81, 0, 0, 1614, 235, 1, 0, 0, 0, 1615, 1616, 3, 238, 119, 0, 1616, 1617, 3, 242, 121, 0, 1617, 237, 1, 0, 0, 0, 1618, 1619, 5, 6, 0, 0, 1619, 1620, 5, 77, 0, 0, 1620, 1632, 7, 13, 0, 0, 1621, 1622, 5, 6, 0, 0, 1622, 1623, 3, 212, 106, 0, 1623, 1624, 7, 13, 0, 0, 1624, 1632, 1, 0, 0, 0, 1625, 1626, 5, 12, 0, 0, 1626, 1632, 7, 13, 0, 0, 1627, 1628, 5, 6, 0, 0, 1628, 1629, 3, 206, 103, 0, 1629, 1630, 7, 13, 0, 0, 1630, 1632, 1, 0, 0, 0, 1631, 1618, 1, 0, 0, 0, 1631, 1621, 1, 0, 0, 0, 1631, 1625, 1, 0, 0, 0, 1631, 1627, 1, 0, 0, 0, 1632, 239, 1, 0, 0, 0, 1633, 1634, 3, 214, 107, 0, 1634, 1635, 5, 59, 0, 0, 1635, 1636, 3, 210, 105, 0, 1636, 241, 1, 0, 0, 0, 1637, 1642, 3, 168, 84, 0, 1638, 1639, 3, 210, 105, 0, 1639, 1640, 5, 84, 0, 0, 1640, 1642, 1, 0, 0, 0, 1641, 1637, 1, 0, 0, 0, 1641, 1638, 1, 0, 0, 0, 1642, 243, 1, 0, 0, 0, 1643, 1644, 3, 86, 43, 0, 1644, 1645, 5, 86, 0, 0, 1645, 1647, 1, 0, 0, 0, 1646, 1643, 1, 0, 0, 0, 1646, 1647, 1, 0, 0, 0, 1647, 1651, 1, 0, 0, 0, 1648, 1650, 3, 124, 62, 0, 1649, 1648, 1, 0, 0, 0, 1650, 1653, 1, 0, 0, 0, 1651, 1649, 1, 0, 0, 0, 1651, 1652, 1, 0, 0, 0, 1652, 1654, 1, 0, 0, 0, 1653, 1651, 1, 0, 0, 0, 1654, 1656, 3, 174, 87, 0, 1655, 1657, 3, 270, 135, 0, 1656, 1655, 1, 0, 0, 0, 1656, 1657, 1, 0, 0, 0, 1657, 245, 1, 0, 0, 0, 1658, 1659, 3, 262, 131, 0, 1659, 1660, 3, 248, 124, 0, 1660, 1661, 3, 254, 127, 0, 1661, 1668, 1, 0, 0, 0, 1662, 1665, 3, 248, 124, 0, 1663, 1666, 3, 252, 126, 0, 1664, 1666, 3, 254, 127, 0, 1665, 1663, 1, 0, 0, 0, 1665, 1664, 1, 0, 0, 0, 1666, 1668, 1, 0, 0, 0, 1667, 1658, 1, 0, 0, 0, 1667, 1662, 1, 0, 0, 0, 1668, 247, 1, 0, 0, 0, 1669, 1671, 3, 174, 87, 0, 1670, 1672, 3, 258, 129, 0, 1671, 1670, 1, 0, 0, 0, 1671, 1672, 1, 0, 0, 0, 1672, 1675, 1, 0, 0, 0, 1673, 1675, 3, 268, 134, 0, 1674, 1669, 1, 0, 0, 0, 1674, 1673, 1, 0, 0, 0, 1675, 249, 1, 0, 0, 0, 1676, 1678, 3, 174, 87, 0, 1677, 1679, 3, 260, 130, 0, 1678, 1677, 1, 0, 0, 0, 1678, 1679, 1, 0, 0, 0, 1679, 1680, 1, 0, 0, 0, 1680, 1681, 3, 254, 127, 0, 1681, 251, 1, 0, 0, 0, 1682, 1710, 5, 82, 0, 0, 1683, 1688, 5, 83, 0, 0, 1684, 1685, 5, 82, 0, 0, 1685, 1687, 5, 83, 0, 0, 1686, 1684, 1, 0, 0, 0, 1687, 1690, 1, 0, 0, 0, 1688, 1686, 1, 0, 0, 0, 1688, 1689, 1, 0, 0, 0, 1689, 1691, 1, 0, 0, 0, 1690, 1688, 1, 0, 0, 0, 1691, 1711, 3, 84, 42, 0, 1692, 1693, 3, 210, 105, 0, 1693, 1700, 5, 83, 0, 0, 1694, 1695, 5, 82, 0, 0, 1695, 1696, 3, 210, 105, 0, 1696, 1697, 5, 83, 0, 0, 1697, 1699, 1, 0, 0, 0, 1698, 1694, 1, 0, 0, 0, 1699, 1702, 1, 0, 0, 0, 1700, 1698, 1, 0, 0, 0, 1700, 1701, 1, 0, 0, 0, 1701, 1707, 1, 0, 0, 0, 1702, 1700, 1, 0, 0, 0, 1703, 1704, 5, 82, 0, 0, 1704, 1706, 5, 83, 0, 0, 1705, 1703, 1, 0, 0, 0, 1706, 1709, 1, 0, 0, 0, 1707, 1705, 1, 0, 0, 0, 1707, 1708, 1, 0, 0, 0, 1708, 1711, 1, 0, 0, 0, 1709, 1707, 1, 0, 0, 0, 1710, 1683, 1, 0, 0, 0, 1710, 1692, 1, 0, 0, 0, 1711, 253, 1, 0, 0, 0, 1712, 1714, 3, 276, 138, 0, 1713, 1715, 3, 32, 16, 0, 1714, 1713, 1, 0, 0, 0, 1714, 1715, 1, 0, 0, 0, 1715, 255, 1, 0, 0, 0, 1716, 1717, 3, 262, 131, 0, 1717, 1718, 3, 274, 137, 0, 1718, 257, 1, 0, 0, 0, 1719, 1720, 5, 89, 0, 0, 1720, 1723, 5, 88, 0, 0, 1721, 1723, 3, 270, 135, 0, 1722, 1719, 1, 0, 0, 0, 1722, 1721, 1, 0, 0, 0, 1723, 259, 1, 0, 0, 0, 1724, 1725, 5, 89, 0, 0, 1725, 1728, 5, 88, 0, 0, 1726, 1728, 3, 262, 131, 0, 1727, 1724, 1, 0, 0, 0, 1727, 1726, 1, 0, 0, 0, 1728, 261, 1, 0, 0, 0, 1729, 1730, 5, 89, 0, 0, 1730, 1731, 3, 264, 132, 0, 1731, 1732, 5, 88, 0, 0, 1732, 263, 1, 0, 0, 0, 1733, 1738, 3, 266, 133, 0, 1734, 1735, 5, 85, 0, 0, 1735, 1737, 3, 266, 133, 0, 1736, 1734, 1, 0, 0, 0, 1737, 1740, 1, 0, 0, 0, 1738, 1736, 1, 0, 0, 0, 1738, 1739, 1, 0, 0, 0, 1739, 265, 1, 0, 0, 0, 1740, 1738, 1, 0, 0, 0, 1741, 1743, 3, 124, 62, 0, 1742, 1741, 1, 0, 0, 0, 1743, 1746, 1, 0, 0, 0, 1744, 1742, 1, 0, 0, 0, 1744, 1745, 1, 0, 0, 0, 1745, 1749, 1, 0, 0, 0, 1746, 1744, 1, 0, 0, 0, 1747, 1750, 3, 86, 43, 0, 1748, 1750, 3, 268, 134, 0, 1749, 1747, 1, 0, 0, 0, 1749, 1748, 1, 0, 0, 0, 1750, 1761, 1, 0, 0, 0, 1751, 1753, 3, 124, 62, 0, 1752, 1751, 1, 0, 0, 0, 1753, 1756, 1, 0, 0, 0, 1754, 1752, 1, 0, 0, 0, 1754, 1755, 1, 0, 0, 0, 1755, 1757, 1, 0, 0, 0, 1756, 1754, 1, 0, 0, 0, 1757, 1758, 5, 82, 0, 0, 1758, 1760, 5, 83, 0, 0, 1759, 1754, 1, 0, 0, 0, 1760, 1763, 1, 0, 0, 0, 1761, 1759, 1, 0, 0, 0, 1761, 1762, 1, 0, 0, 0, 1762, 267, 1, 0, 0, 0, 1763, 1761, 1, 0, 0, 0, 1764, 1765, 7, 14, 0, 0, 1765, 269, 1, 0, 0, 0, 1766, 1767, 5, 89, 0, 0, 1767, 1772, 3, 88, 44, 0, 1768, 1769, 5, 85, 0, 0, 1769, 1771, 3, 88, 44, 0, 1770, 1768, 1, 0, 0, 0, 1771, 1774, 1, 0, 0, 0, 1772, 1770, 1, 0, 0, 0, 1772, 1773, 1, 0, 0, 0, 1773, 1775, 1, 0, 0, 0, 1774, 1772, 1, 0, 0, 0, 1775, 1776, 5, 88, 0, 0, 1776, 271, 1, 0, 0, 0, 1777, 1787, 3, 276, 138, 0, 1778, 1780, 5, 86, 0, 0, 1779, 1781, 3, 270, 135, 0, 1780, 1779, 1, 0, 0, 0, 1780, 1781, 1, 0, 0, 0, 1781, 1782, 1, 0, 0, 0, 1782, 1784, 3, 174, 87, 0, 1783, 1785, 3, 276, 138, 0, 1784, 1783, 1, 0, 0, 0, 1784, 1785, 1, 0, 0, 0, 1785, 1787, 1, 0, 0, 0, 1786, 1777, 1, 0, 0, 0, 1786, 1778, 1, 0, 0, 0, 1787, 273, 1, 0, 0, 0, 1788, 1789, 5, 40, 0, 0, 1789, 1794, 3, 272, 136, 0, 1790, 1791, 3, 174, 87, 0, 1791, 1792, 3, 276, 138, 0, 1792, 1794, 1, 0, 0, 0, 1793, 1788, 1, 0, 0, 0, 1793, 1790, 1, 0, 0, 0, 1794, 275, 1, 0, 0, 0, 1795, 1797, 5, 78, 0, 0, 1796, 1798, 3, 206, 103, 0, 1797, 1796, 1, 0, 0, 0, 1797, 1798, 1, 0, 0, 0, 1798, 1799, 1, 0, 0, 0, 1799, 1800, 5, 79, 0, 0, 1800, 277, 1, 0, 0, 0, 226, 279, 284, 290, 296, 301, 310, 315, 322, 330, 333, 340, 352, 356, 361, 365, 369, 373, 383, 391, 399, 403, 410, 417, 421, 424, 427, 436, 442, 447, 450, 456, 462, 466, 470, 478, 487, 494, 500, 504, 510, 514, 519, 524, 532, 537, 541, 548, 557, 562, 570, 575, 581, 584, 591, 601, 610, 621, 626, 635, 639, 647, 652, 661, 667, 674, 679, 687, 691, 693, 699, 705, 710, 714, 719, 725, 738, 745, 750, 753, 755, 760, 767, 777, 782, 785, 790, 794, 798, 803, 807, 812, 823, 829, 840, 850, 861, 870, 875, 878, 885, 895, 903, 906, 909, 922, 930, 935, 943, 945, 949, 955, 963, 973, 982, 992, 1000, 1014, 1021, 1026, 1032, 1041, 1045, 1053, 1062, 1072, 1077, 1082, 1093, 1099, 1102, 1109, 1118, 1141, 1144, 1147, 1155, 1159, 1167, 1173, 1184, 1193, 1198, 1213, 1220, 1224, 1235, 1244, 1253, 1259, 1263, 1268, 1274, 1279, 1284, 1299, 1303, 1307, 1311, 1313, 1317, 1322, 1326, 1329, 1344, 1350, 1357, 1363, 1366, 1377, 1385, 1398, 1402, 1407, 1411, 1427, 1467, 1473, 1486, 1491, 1494, 1496, 1501, 1509, 1514, 1519, 1528, 1532, 1536, 1542, 1549, 1559, 1568, 1575, 1578, 1582, 1600, 1602, 1610, 1631, 1641, 1646, 1651, 1656, 1665, 1667, 1671, 1674, 1678, 1688, 1700, 1707, 1710, 1714, 1722, 1727, 1738, 1744, 1749, 1754, 1761, 1772, 1780, 1784, 1786, 1793, 1797] \ No newline at end of file diff --git a/gen/Java17Parser.java b/gen/Java17Parser.java new file mode 100644 index 00000000..c35b8e1d --- /dev/null +++ b/gen/Java17Parser.java @@ -0,0 +1,15625 @@ +// Generated from C:/Users/ruben/IdeaProjects/JavaCompilerCore/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java17Parser.g4 by ANTLR 4.13.1 +import org.antlr.v4.runtime.atn.*; +import org.antlr.v4.runtime.dfa.DFA; +import org.antlr.v4.runtime.*; +import org.antlr.v4.runtime.misc.*; +import org.antlr.v4.runtime.tree.*; +import java.util.List; +import java.util.Iterator; +import java.util.ArrayList; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"}) +public class Java17Parser extends Parser { + static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8, + CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15, + ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23, + IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29, + NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36, + SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42, + THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VOID=48, VOLATILE=49, + WHILE=50, MODULE=51, OPEN=52, REQUIRES=53, EXPORTS=54, OPENS=55, TO=56, + USES=57, PROVIDES=58, WITH=59, TRANSITIVE=60, VAR=61, YIELD=62, RECORD=63, + SEALED=64, PERMITS=65, NON_SEALED=66, DECIMAL_LITERAL=67, HEX_LITERAL=68, + OCT_LITERAL=69, BINARY_LITERAL=70, FLOAT_LITERAL=71, HEX_FLOAT_LITERAL=72, + BOOL_LITERAL=73, CHAR_LITERAL=74, STRING_LITERAL=75, TEXT_BLOCK=76, NULL_LITERAL=77, + LPAREN=78, RPAREN=79, LBRACE=80, RBRACE=81, LBRACK=82, RBRACK=83, SEMI=84, + COMMA=85, DOT=86, ASSIGN=87, GT=88, LT=89, BANG=90, TILDE=91, QUESTION=92, + COLON=93, EQUAL=94, LE=95, GE=96, NOTEQUAL=97, AND=98, OR=99, INC=100, + DEC=101, ADD=102, SUB=103, MUL=104, DIV=105, BITAND=106, BITOR=107, CARET=108, + MOD=109, ADD_ASSIGN=110, SUB_ASSIGN=111, MUL_ASSIGN=112, DIV_ASSIGN=113, + AND_ASSIGN=114, OR_ASSIGN=115, XOR_ASSIGN=116, MOD_ASSIGN=117, LSHIFT_ASSIGN=118, + RSHIFT_ASSIGN=119, URSHIFT_ASSIGN=120, ARROW=121, COLONCOLON=122, AT=123, + ELLIPSIS=124, WS=125, COMMENT=126, LINE_COMMENT=127, IDENTIFIER=128; + public static final int + RULE_sourceFile = 0, RULE_packageDeclaration = 1, RULE_importDeclaration = 2, + RULE_classOrInterface = 3, RULE_modifier = 4, RULE_classOrInterfaceModifier = 5, + RULE_variableModifier = 6, RULE_classDeclaration = 7, RULE_genericDeclarationList = 8, + RULE_genericTypeVar = 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_method = 20, + RULE_methodDeclaration = 21, RULE_methodHeader = 22, RULE_methodBody = 23, + RULE_refType = 24, RULE_genericMethodDeclaration = 25, RULE_constructor = 26, + RULE_genericConstructorDeclaration = 27, RULE_constructorDeclaration = 28, + RULE_fieldDeclaration = 29, RULE_interfaceBodyDeclaration = 30, RULE_interfaceMemberDeclaration = 31, + RULE_constDeclaration = 32, RULE_constantDeclarator = 33, RULE_interfaceMethodDeclaration = 34, + RULE_interfaceMethodModifier = 35, RULE_genericInterfaceMethodDeclaration = 36, + RULE_interfaceCommonBodyDeclaration = 37, RULE_variableDeclarators = 38, + RULE_variableDeclarator = 39, RULE_variableDeclaratorId = 40, RULE_variableInitializer = 41, + RULE_arrayInitializer = 42, RULE_classOrInterfaceType = 43, RULE_typeArgument = 44, + RULE_wildcardType = 45, RULE_extendsWildcardType = 46, RULE_superWildcardType = 47, + RULE_qualifiedNameList = 48, RULE_exceptionList = 49, RULE_formalParameters = 50, + RULE_receiverParameter = 51, RULE_formalParameterList = 52, RULE_formalParameter = 53, + RULE_lastFormalParameter = 54, RULE_lambdaLVTIList = 55, RULE_lambdaLVTIParameter = 56, + RULE_qualifiedName = 57, RULE_literal = 58, RULE_integerLiteral = 59, + RULE_floatLiteral = 60, RULE_altAnnotationQualifiedName = 61, RULE_annotation = 62, + RULE_elementValuePairs = 63, RULE_elementValuePair = 64, RULE_elementValue = 65, + RULE_elementValueArrayInitializer = 66, RULE_annotationTypeDeclaration = 67, + RULE_annotationTypeBody = 68, RULE_annotationTypeElementDeclaration = 69, + RULE_annotationTypeElementRest = 70, RULE_annotationMethodOrConstantRest = 71, + RULE_annotationMethodRest = 72, RULE_annotationConstantRest = 73, RULE_defaultValue = 74, + RULE_moduleDeclaration = 75, RULE_moduleBody = 76, RULE_moduleDirective = 77, + RULE_requiresModifier = 78, RULE_recordDeclaration = 79, RULE_recordHeader = 80, + RULE_recordComponentList = 81, RULE_recordComponent = 82, RULE_recordBody = 83, + RULE_block = 84, RULE_blockStatement = 85, RULE_localVariableDeclaration = 86, + RULE_identifier = 87, RULE_typeIdentifier = 88, RULE_localTypeDeclaration = 89, + RULE_statement = 90, RULE_catchClause = 91, RULE_catchType = 92, RULE_finallyBlock = 93, + RULE_resourceSpecification = 94, RULE_resources = 95, RULE_resource = 96, + RULE_switchBlockStatementGroup = 97, RULE_switchLabel = 98, RULE_forControl = 99, + RULE_forInit = 100, RULE_enhancedForControl = 101, RULE_parExpression = 102, + RULE_expressionList = 103, RULE_methodCall = 104, RULE_expression = 105, + RULE_pattern = 106, RULE_primaryPattern = 107, RULE_recordPattern = 108, + RULE_typePattern = 109, RULE_recordStructurePattern = 110, RULE_recordComponentPatternElement = 111, + RULE_recordComponentPatternList = 112, RULE_lambdaExpression = 113, RULE_lambdaParameters = 114, + RULE_lambdaBody = 115, RULE_primary = 116, RULE_switchExpression = 117, + RULE_switchLabeledRule = 118, RULE_switchLabelCase = 119, RULE_guardedPattern = 120, + RULE_switchRuleOutcome = 121, RULE_classType = 122, RULE_creator = 123, + RULE_createdName = 124, RULE_innerCreator = 125, RULE_arrayCreatorRest = 126, + RULE_classCreatorRest = 127, RULE_explicitGenericInvocation = 128, RULE_typeArgumentsOrDiamond = 129, + RULE_nonWildcardTypeArgumentsOrDiamond = 130, RULE_nonWildcardTypeArguments = 131, + RULE_typeList = 132, RULE_typeType = 133, RULE_primitiveType = 134, RULE_typeArguments = 135, + RULE_superSuffix = 136, RULE_explicitGenericInvocationSuffix = 137, RULE_arguments = 138; + private static String[] makeRuleNames() { + return new String[] { + "sourceFile", "packageDeclaration", "importDeclaration", "classOrInterface", + "modifier", "classOrInterfaceModifier", "variableModifier", "classDeclaration", + "genericDeclarationList", "genericTypeVar", "typeBound", "enumDeclaration", + "enumConstants", "enumConstant", "enumBodyDeclarations", "interfaceDeclaration", + "classBody", "interfaceBody", "classBodyDeclaration", "memberDeclaration", + "method", "methodDeclaration", "methodHeader", "methodBody", "refType", + "genericMethodDeclaration", "constructor", "genericConstructorDeclaration", + "constructorDeclaration", "fieldDeclaration", "interfaceBodyDeclaration", + "interfaceMemberDeclaration", "constDeclaration", "constantDeclarator", + "interfaceMethodDeclaration", "interfaceMethodModifier", "genericInterfaceMethodDeclaration", + "interfaceCommonBodyDeclaration", "variableDeclarators", "variableDeclarator", + "variableDeclaratorId", "variableInitializer", "arrayInitializer", "classOrInterfaceType", + "typeArgument", "wildcardType", "extendsWildcardType", "superWildcardType", + "qualifiedNameList", "exceptionList", "formalParameters", "receiverParameter", + "formalParameterList", "formalParameter", "lastFormalParameter", "lambdaLVTIList", + "lambdaLVTIParameter", "qualifiedName", "literal", "integerLiteral", + "floatLiteral", "altAnnotationQualifiedName", "annotation", "elementValuePairs", + "elementValuePair", "elementValue", "elementValueArrayInitializer", "annotationTypeDeclaration", + "annotationTypeBody", "annotationTypeElementDeclaration", "annotationTypeElementRest", + "annotationMethodOrConstantRest", "annotationMethodRest", "annotationConstantRest", + "defaultValue", "moduleDeclaration", "moduleBody", "moduleDirective", + "requiresModifier", "recordDeclaration", "recordHeader", "recordComponentList", + "recordComponent", "recordBody", "block", "blockStatement", "localVariableDeclaration", + "identifier", "typeIdentifier", "localTypeDeclaration", "statement", + "catchClause", "catchType", "finallyBlock", "resourceSpecification", + "resources", "resource", "switchBlockStatementGroup", "switchLabel", + "forControl", "forInit", "enhancedForControl", "parExpression", "expressionList", + "methodCall", "expression", "pattern", "primaryPattern", "recordPattern", + "typePattern", "recordStructurePattern", "recordComponentPatternElement", + "recordComponentPatternList", "lambdaExpression", "lambdaParameters", + "lambdaBody", "primary", "switchExpression", "switchLabeledRule", "switchLabelCase", + "guardedPattern", "switchRuleOutcome", "classType", "creator", "createdName", + "innerCreator", "arrayCreatorRest", "classCreatorRest", "explicitGenericInvocation", + "typeArgumentsOrDiamond", "nonWildcardTypeArgumentsOrDiamond", "nonWildcardTypeArguments", + "typeList", "typeType", "primitiveType", "typeArguments", "superSuffix", + "explicitGenericInvocationSuffix", "arguments" + }; + } + public static final String[] ruleNames = makeRuleNames(); + + private static String[] makeLiteralNames() { + return new String[] { + null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'", + "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'", + "'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'", + "'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'", + "'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'", + "'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'", + "'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'", + "'transient'", "'try'", "'void'", "'volatile'", "'while'", "'module'", + "'open'", "'requires'", "'exports'", "'opens'", "'to'", "'uses'", "'provides'", + "'with'", "'transitive'", "'var'", "'yield'", "'record'", "'sealed'", + "'permits'", "'non-sealed'", null, null, null, null, null, null, null, + null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['", "']'", + "';'", "','", "'.'", "'='", "'>'", "'<'", "'!'", "'~'", "'?'", "':'", + "'=='", "'<='", "'>='", "'!='", "'&&'", "'||'", "'++'", "'--'", "'+'", + "'-'", "'*'", "'/'", "'&'", "'|'", "'^'", "'%'", "'+='", "'-='", "'*='", + "'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", "'>>>='", "'->'", + "'::'", "'@'", "'...'" + }; + } + private static final String[] _LITERAL_NAMES = makeLiteralNames(); + private static String[] makeSymbolicNames() { + return new String[] { + null, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", + "CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", + "ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", + "IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", + "NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", + "STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", + "THROWS", "TRANSIENT", "TRY", "VOID", "VOLATILE", "WHILE", "MODULE", + "OPEN", "REQUIRES", "EXPORTS", "OPENS", "TO", "USES", "PROVIDES", "WITH", + "TRANSITIVE", "VAR", "YIELD", "RECORD", "SEALED", "PERMITS", "NON_SEALED", + "DECIMAL_LITERAL", "HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", + "HEX_FLOAT_LITERAL", "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", + "TEXT_BLOCK", "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" + }; + } + private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames(); + public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES); + + /** + * @deprecated Use {@link #VOCABULARY} instead. + */ + @Deprecated + public static final String[] tokenNames; + static { + tokenNames = new String[_SYMBOLIC_NAMES.length]; + for (int i = 0; i < tokenNames.length; i++) { + tokenNames[i] = VOCABULARY.getLiteralName(i); + if (tokenNames[i] == null) { + tokenNames[i] = VOCABULARY.getSymbolicName(i); + } + + if (tokenNames[i] == null) { + tokenNames[i] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "Java17Parser.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public Java17Parser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @SuppressWarnings("CheckReturnValue") + public static class SourceFileContext extends ParserRuleContext { + public SourceFileContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_sourceFile; } + + public SourceFileContext() { } + public void copyFrom(SourceFileContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SrcfileContext extends SourceFileContext { + public PackageDeclarationContext packageDeclaration() { + return getRuleContext(PackageDeclarationContext.class,0); + } + public List importDeclaration() { + return getRuleContexts(ImportDeclarationContext.class); + } + public ImportDeclarationContext importDeclaration(int i) { + return getRuleContext(ImportDeclarationContext.class,i); + } + public List classOrInterface() { + return getRuleContexts(ClassOrInterfaceContext.class); + } + public ClassOrInterfaceContext classOrInterface(int i) { + return getRuleContext(ClassOrInterfaceContext.class,i); + } + public SrcfileContext(SourceFileContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSrcfile(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSrcfile(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSrcfile(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ModuledeclContext extends SourceFileContext { + public ModuleDeclarationContext moduleDeclaration() { + return getRuleContext(ModuleDeclarationContext.class,0); + } + public TerminalNode EOF() { return getToken(Java17Parser.EOF, 0); } + public ModuledeclContext(SourceFileContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterModuledecl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitModuledecl(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitModuledecl(this); + else return visitor.visitChildren(this); + } + } + + public final SourceFileContext sourceFile() throws RecognitionException { + SourceFileContext _localctx = new SourceFileContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_sourceFile); + int _la; + try { + setState(296); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,3,_ctx) ) { + case 1: + _localctx = new SrcfileContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(279); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,0,_ctx) ) { + case 1: + { + setState(278); + packageDeclaration(); + } + break; + } + setState(284); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==IMPORT) { + { + { + setState(281); + importDeclaration(); + } + } + setState(286); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(290); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -1125457390829311L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141660702539773L) != 0)) { + { + { + setState(287); + classOrInterface(); + } + } + setState(292); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + break; + case 2: + _localctx = new ModuledeclContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(293); + moduleDeclaration(); + setState(294); + match(EOF); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PackageDeclarationContext extends ParserRuleContext { + public TerminalNode PACKAGE() { return getToken(Java17Parser.PACKAGE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public PackageDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_packageDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPackageDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPackageDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPackageDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final PackageDeclarationContext packageDeclaration() throws RecognitionException { + PackageDeclarationContext _localctx = new PackageDeclarationContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_packageDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(301); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==AT || _la==IDENTIFIER) { + { + { + setState(298); + annotation(); + } + } + setState(303); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(304); + match(PACKAGE); + setState(305); + qualifiedName(); + setState(306); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ImportDeclarationContext extends ParserRuleContext { + public TerminalNode IMPORT() { return getToken(Java17Parser.IMPORT, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public TerminalNode STATIC() { return getToken(Java17Parser.STATIC, 0); } + public TerminalNode DOT() { return getToken(Java17Parser.DOT, 0); } + public TerminalNode MUL() { return getToken(Java17Parser.MUL, 0); } + public ImportDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_importDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterImportDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitImportDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitImportDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final ImportDeclarationContext importDeclaration() throws RecognitionException { + ImportDeclarationContext _localctx = new ImportDeclarationContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_importDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(308); + match(IMPORT); + setState(310); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STATIC) { + { + setState(309); + match(STATIC); + } + } + + setState(312); + qualifiedName(); + setState(315); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DOT) { + { + setState(313); + match(DOT); + setState(314); + match(MUL); + } + } + + setState(317); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassOrInterfaceContext extends ParserRuleContext { + public ClassOrInterfaceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classOrInterface; } + + public ClassOrInterfaceContext() { } + public void copyFrom(ClassOrInterfaceContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NoclassorinterfaceContext extends ClassOrInterfaceContext { + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public NoclassorinterfaceContext(ClassOrInterfaceContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterNoclassorinterface(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitNoclassorinterface(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitNoclassorinterface(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ClassorinterfacedeclContext extends ClassOrInterfaceContext { + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public EnumDeclarationContext enumDeclaration() { + return getRuleContext(EnumDeclarationContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.class,0); + } + public AnnotationTypeDeclarationContext annotationTypeDeclaration() { + return getRuleContext(AnnotationTypeDeclarationContext.class,0); + } + public RecordDeclarationContext recordDeclaration() { + return getRuleContext(RecordDeclarationContext.class,0); + } + public List classOrInterfaceModifier() { + return getRuleContexts(ClassOrInterfaceModifierContext.class); + } + public ClassOrInterfaceModifierContext classOrInterfaceModifier(int i) { + return getRuleContext(ClassOrInterfaceModifierContext.class,i); + } + public ClassorinterfacedeclContext(ClassOrInterfaceContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassorinterfacedecl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassorinterfacedecl(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassorinterfacedecl(this); + else return visitor.visitChildren(this); + } + } + + public final ClassOrInterfaceContext classOrInterface() throws RecognitionException { + ClassOrInterfaceContext _localctx = new ClassOrInterfaceContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_classOrInterface); + try { + int _alt; + setState(333); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ABSTRACT: + case CLASS: + case ENUM: + case FINAL: + case INTERFACE: + case PRIVATE: + case PROTECTED: + case PUBLIC: + case STATIC: + case STRICTFP: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case NON_SEALED: + case AT: + case IDENTIFIER: + _localctx = new ClassorinterfacedeclContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(322); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(319); + classOrInterfaceModifier(); + } + } + } + setState(324); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,7,_ctx); + } + setState(330); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CLASS: + { + setState(325); + classDeclaration(); + } + break; + case ENUM: + { + setState(326); + enumDeclaration(); + } + break; + case INTERFACE: + { + setState(327); + interfaceDeclaration(); + } + break; + case AT: + { + setState(328); + annotationTypeDeclaration(); + } + break; + case RECORD: + { + setState(329); + recordDeclaration(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case SEMI: + _localctx = new NoclassorinterfaceContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(332); + match(SEMI); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ModifierContext extends ParserRuleContext { + public ClassOrInterfaceModifierContext classOrInterfaceModifier() { + return getRuleContext(ClassOrInterfaceModifierContext.class,0); + } + public TerminalNode NATIVE() { return getToken(Java17Parser.NATIVE, 0); } + public TerminalNode SYNCHRONIZED() { return getToken(Java17Parser.SYNCHRONIZED, 0); } + public TerminalNode TRANSIENT() { return getToken(Java17Parser.TRANSIENT, 0); } + public TerminalNode VOLATILE() { return getToken(Java17Parser.VOLATILE, 0); } + public ModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_modifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitModifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitModifier(this); + else return visitor.visitChildren(this); + } + } + + public final ModifierContext modifier() throws RecognitionException { + ModifierContext _localctx = new ModifierContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_modifier); + try { + setState(340); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ABSTRACT: + case FINAL: + case PRIVATE: + case PROTECTED: + case PUBLIC: + case STATIC: + case STRICTFP: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case NON_SEALED: + case AT: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(335); + classOrInterfaceModifier(); + } + break; + case NATIVE: + enterOuterAlt(_localctx, 2); + { + setState(336); + match(NATIVE); + } + break; + case SYNCHRONIZED: + enterOuterAlt(_localctx, 3); + { + setState(337); + match(SYNCHRONIZED); + } + break; + case TRANSIENT: + enterOuterAlt(_localctx, 4); + { + setState(338); + match(TRANSIENT); + } + break; + case VOLATILE: + enterOuterAlt(_localctx, 5); + { + setState(339); + match(VOLATILE); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassOrInterfaceModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java17Parser.PUBLIC, 0); } + public TerminalNode PROTECTED() { return getToken(Java17Parser.PROTECTED, 0); } + public TerminalNode PRIVATE() { return getToken(Java17Parser.PRIVATE, 0); } + public TerminalNode STATIC() { return getToken(Java17Parser.STATIC, 0); } + public TerminalNode ABSTRACT() { return getToken(Java17Parser.ABSTRACT, 0); } + public TerminalNode FINAL() { return getToken(Java17Parser.FINAL, 0); } + public TerminalNode STRICTFP() { return getToken(Java17Parser.STRICTFP, 0); } + public TerminalNode SEALED() { return getToken(Java17Parser.SEALED, 0); } + public TerminalNode NON_SEALED() { return getToken(Java17Parser.NON_SEALED, 0); } + public ClassOrInterfaceModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classOrInterfaceModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassOrInterfaceModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassOrInterfaceModifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassOrInterfaceModifier(this); + else return visitor.visitChildren(this); + } + } + + public final ClassOrInterfaceModifierContext classOrInterfaceModifier() throws RecognitionException { + ClassOrInterfaceModifierContext _localctx = new ClassOrInterfaceModifierContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_classOrInterfaceModifier); + try { + setState(352); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(342); + annotation(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(343); + match(PUBLIC); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(344); + match(PROTECTED); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(345); + match(PRIVATE); + } + break; + case 5: + enterOuterAlt(_localctx, 5); + { + setState(346); + match(STATIC); + } + break; + case 6: + enterOuterAlt(_localctx, 6); + { + setState(347); + match(ABSTRACT); + } + break; + case 7: + enterOuterAlt(_localctx, 7); + { + setState(348); + match(FINAL); + } + break; + case 8: + enterOuterAlt(_localctx, 8); + { + setState(349); + match(STRICTFP); + } + break; + case 9: + enterOuterAlt(_localctx, 9); + { + setState(350); + match(SEALED); + } + break; + case 10: + enterOuterAlt(_localctx, 10); + { + setState(351); + match(NON_SEALED); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableModifierContext extends ParserRuleContext { + public VariableModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableModifier; } + + public VariableModifierContext() { } + public void copyFrom(VariableModifierContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class FinalvarmodContext extends VariableModifierContext { + public TerminalNode FINAL() { return getToken(Java17Parser.FINAL, 0); } + public FinalvarmodContext(VariableModifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFinalvarmod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFinalvarmod(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFinalvarmod(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AnnotationvarmodContext extends VariableModifierContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public AnnotationvarmodContext(VariableModifierContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationvarmod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationvarmod(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationvarmod(this); + else return visitor.visitChildren(this); + } + } + + public final VariableModifierContext variableModifier() throws RecognitionException { + VariableModifierContext _localctx = new VariableModifierContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_variableModifier); + try { + setState(356); + _errHandler.sync(this); + switch (_input.LA(1)) { + case FINAL: + _localctx = new FinalvarmodContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(354); + match(FINAL); + } + break; + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case AT: + case IDENTIFIER: + _localctx = new AnnotationvarmodContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(355); + annotation(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassDeclarationContext extends ParserRuleContext { + public TerminalNode CLASS() { return getToken(Java17Parser.CLASS, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public GenericDeclarationListContext genericDeclarationList() { + return getRuleContext(GenericDeclarationListContext.class,0); + } + public TerminalNode EXTENDS() { return getToken(Java17Parser.EXTENDS, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public TerminalNode IMPLEMENTS() { return getToken(Java17Parser.IMPLEMENTS, 0); } + public List typeList() { + return getRuleContexts(TypeListContext.class); + } + public TypeListContext typeList(int i) { + return getRuleContext(TypeListContext.class,i); + } + public TerminalNode PERMITS() { return getToken(Java17Parser.PERMITS, 0); } + public ClassDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final ClassDeclarationContext classDeclaration() throws RecognitionException { + ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_classDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(358); + match(CLASS); + setState(359); + identifier(); + setState(361); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(360); + genericDeclarationList(); + } + } + + setState(365); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(363); + match(EXTENDS); + setState(364); + typeType(); + } + } + + setState(369); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(367); + match(IMPLEMENTS); + setState(368); + typeList(); + } + } + + setState(373); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PERMITS) { + { + setState(371); + match(PERMITS); + setState(372); + typeList(); + } + } + + setState(375); + classBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GenericDeclarationListContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java17Parser.LT, 0); } + public List genericTypeVar() { + return getRuleContexts(GenericTypeVarContext.class); + } + public GenericTypeVarContext genericTypeVar(int i) { + return getRuleContext(GenericTypeVarContext.class,i); + } + public TerminalNode GT() { return getToken(Java17Parser.GT, 0); } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public GenericDeclarationListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_genericDeclarationList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericDeclarationList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericDeclarationList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericDeclarationList(this); + else return visitor.visitChildren(this); + } + } + + public final GenericDeclarationListContext genericDeclarationList() throws RecognitionException { + GenericDeclarationListContext _localctx = new GenericDeclarationListContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_genericDeclarationList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(377); + match(LT); + setState(378); + genericTypeVar(); + setState(383); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(379); + match(COMMA); + setState(380); + genericTypeVar(); + } + } + setState(385); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(386); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GenericTypeVarContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeBoundContext typeBound() { + return getRuleContext(TypeBoundContext.class,0); + } + public TerminalNode EXTENDS() { return getToken(Java17Parser.EXTENDS, 0); } + public TerminalNode IMPLEMENTS() { return getToken(Java17Parser.IMPLEMENTS, 0); } + public GenericTypeVarContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_genericTypeVar; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericTypeVar(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericTypeVar(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericTypeVar(this); + else return visitor.visitChildren(this); + } + } + + public final GenericTypeVarContext genericTypeVar() throws RecognitionException { + GenericTypeVarContext _localctx = new GenericTypeVarContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_genericTypeVar); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(391); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,18,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(388); + annotation(); + } + } + } + setState(393); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,18,_ctx); + } + setState(394); + identifier(); + setState(403); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS || _la==IMPLEMENTS) { + { + setState(395); + _la = _input.LA(1); + if ( !(_la==EXTENDS || _la==IMPLEMENTS) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(399); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,19,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(396); + annotation(); + } + } + } + setState(401); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,19,_ctx); + } + setState(402); + typeBound(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeBoundContext extends ParserRuleContext { + public List typeType() { + return getRuleContexts(TypeTypeContext.class); + } + public TypeTypeContext typeType(int i) { + return getRuleContext(TypeTypeContext.class,i); + } + public List BITAND() { return getTokens(Java17Parser.BITAND); } + public TerminalNode BITAND(int i) { + return getToken(Java17Parser.BITAND, i); + } + public TypeBoundContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeBound; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypeBound(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypeBound(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypeBound(this); + else return visitor.visitChildren(this); + } + } + + public final TypeBoundContext typeBound() throws RecognitionException { + TypeBoundContext _localctx = new TypeBoundContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_typeBound); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(405); + typeType(); + setState(410); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(406); + match(BITAND); + setState(407); + typeType(); + } + } + setState(412); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumDeclarationContext extends ParserRuleContext { + public TerminalNode ENUM() { return getToken(Java17Parser.ENUM, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public TerminalNode IMPLEMENTS() { return getToken(Java17Parser.IMPLEMENTS, 0); } + public TypeListContext typeList() { + return getRuleContext(TypeListContext.class,0); + } + public EnumConstantsContext enumConstants() { + return getRuleContext(EnumConstantsContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java17Parser.COMMA, 0); } + public EnumBodyDeclarationsContext enumBodyDeclarations() { + return getRuleContext(EnumBodyDeclarationsContext.class,0); + } + public EnumDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEnumDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEnumDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEnumDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final EnumDeclarationContext enumDeclaration() throws RecognitionException { + EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_enumDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(413); + match(ENUM); + setState(414); + identifier(); + setState(417); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(415); + match(IMPLEMENTS); + setState(416); + typeList(); + } + } + + setState(419); + match(LBRACE); + setState(421); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==AT || _la==IDENTIFIER) { + { + setState(420); + enumConstants(); + } + } + + setState(424); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(423); + match(COMMA); + } + } + + setState(427); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(426); + enumBodyDeclarations(); + } + } + + setState(429); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumConstantsContext extends ParserRuleContext { + public List enumConstant() { + return getRuleContexts(EnumConstantContext.class); + } + public EnumConstantContext enumConstant(int i) { + return getRuleContext(EnumConstantContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public EnumConstantsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumConstants; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEnumConstants(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEnumConstants(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEnumConstants(this); + else return visitor.visitChildren(this); + } + } + + public final EnumConstantsContext enumConstants() throws RecognitionException { + EnumConstantsContext _localctx = new EnumConstantsContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_enumConstants); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(431); + enumConstant(); + setState(436); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,26,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(432); + match(COMMA); + setState(433); + enumConstant(); + } + } + } + setState(438); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,26,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumConstantContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public EnumConstantContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumConstant; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEnumConstant(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEnumConstant(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEnumConstant(this); + else return visitor.visitChildren(this); + } + } + + public final EnumConstantContext enumConstant() throws RecognitionException { + EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_enumConstant); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(442); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,27,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(439); + annotation(); + } + } + } + setState(444); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,27,_ctx); + } + setState(445); + identifier(); + setState(447); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LPAREN) { + { + setState(446); + arguments(); + } + } + + setState(450); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LBRACE) { + { + setState(449); + classBody(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnumBodyDeclarationsContext extends ParserRuleContext { + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public List classBodyDeclaration() { + return getRuleContexts(ClassBodyDeclarationContext.class); + } + public ClassBodyDeclarationContext classBodyDeclaration(int i) { + return getRuleContext(ClassBodyDeclarationContext.class,i); + } + public EnumBodyDeclarationsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enumBodyDeclarations; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEnumBodyDeclarations(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEnumBodyDeclarations(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEnumBodyDeclarations(this); + else return visitor.visitChildren(this); + } + } + + public final EnumBodyDeclarationsContext enumBodyDeclarations() throws RecognitionException { + EnumBodyDeclarationsContext _localctx = new EnumBodyDeclarationsContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_enumBodyDeclarations); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(452); + match(SEMI); + setState(456); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -665791937994347L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141660685729789L) != 0)) { + { + { + setState(453); + classBodyDeclaration(); + } + } + setState(458); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceDeclarationContext extends ParserRuleContext { + public TerminalNode INTERFACE() { return getToken(Java17Parser.INTERFACE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public InterfaceBodyContext interfaceBody() { + return getRuleContext(InterfaceBodyContext.class,0); + } + public GenericDeclarationListContext genericDeclarationList() { + return getRuleContext(GenericDeclarationListContext.class,0); + } + public TerminalNode EXTENDS() { return getToken(Java17Parser.EXTENDS, 0); } + public List typeList() { + return getRuleContexts(TypeListContext.class); + } + public TypeListContext typeList(int i) { + return getRuleContext(TypeListContext.class,i); + } + public TerminalNode PERMITS() { return getToken(Java17Parser.PERMITS, 0); } + public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfaceDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfaceDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfaceDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException { + InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_interfaceDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(459); + match(INTERFACE); + setState(460); + identifier(); + setState(462); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(461); + genericDeclarationList(); + } + } + + setState(466); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==EXTENDS) { + { + setState(464); + match(EXTENDS); + setState(465); + typeList(); + } + } + + setState(470); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==PERMITS) { + { + setState(468); + match(PERMITS); + setState(469); + typeList(); + } + } + + setState(472); + interfaceBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List classBodyDeclaration() { + return getRuleContexts(ClassBodyDeclarationContext.class); + } + public ClassBodyDeclarationContext classBodyDeclaration(int i) { + return getRuleContext(ClassBodyDeclarationContext.class,i); + } + public ClassBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassBody(this); + else return visitor.visitChildren(this); + } + } + + public final ClassBodyContext classBody() throws RecognitionException { + ClassBodyContext _localctx = new ClassBodyContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_classBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(474); + match(LBRACE); + setState(478); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -665791937994347L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141660685729789L) != 0)) { + { + { + setState(475); + classBodyDeclaration(); + } + } + setState(480); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(481); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List interfaceBodyDeclaration() { + return getRuleContexts(InterfaceBodyDeclarationContext.class); + } + public InterfaceBodyDeclarationContext interfaceBodyDeclaration(int i) { + return getRuleContext(InterfaceBodyDeclarationContext.class,i); + } + public InterfaceBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfaceBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfaceBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfaceBody(this); + else return visitor.visitChildren(this); + } + } + + public final InterfaceBodyContext interfaceBody() throws RecognitionException { + InterfaceBodyContext _localctx = new InterfaceBodyContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_interfaceBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(483); + match(LBRACE); + setState(487); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -665791937992299L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141660685762557L) != 0)) { + { + { + setState(484); + interfaceBodyDeclaration(); + } + } + setState(489); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(490); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassBodyDeclarationContext extends ParserRuleContext { + public ClassBodyDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classBodyDeclaration; } + + public ClassBodyDeclarationContext() { } + public void copyFrom(ClassBodyDeclarationContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class EmptyclassbodyContext extends ClassBodyDeclarationContext { + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public EmptyclassbodyContext(ClassBodyDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEmptyclassbody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEmptyclassbody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEmptyclassbody(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MemberdeclContext extends ClassBodyDeclarationContext { + public MemberDeclarationContext memberDeclaration() { + return getRuleContext(MemberDeclarationContext.class,0); + } + public List modifier() { + return getRuleContexts(ModifierContext.class); + } + public ModifierContext modifier(int i) { + return getRuleContext(ModifierContext.class,i); + } + public MemberdeclContext(ClassBodyDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMemberdecl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMemberdecl(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMemberdecl(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ClassblockContext extends ClassBodyDeclarationContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode STATIC() { return getToken(Java17Parser.STATIC, 0); } + public ClassblockContext(ClassBodyDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassblock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassblock(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassblock(this); + else return visitor.visitChildren(this); + } + } + + public final ClassBodyDeclarationContext classBodyDeclaration() throws RecognitionException { + ClassBodyDeclarationContext _localctx = new ClassBodyDeclarationContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_classBodyDeclaration); + int _la; + try { + int _alt; + setState(504); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,38,_ctx) ) { + case 1: + _localctx = new EmptyclassbodyContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(492); + match(SEMI); + } + break; + case 2: + _localctx = new ClassblockContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(494); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==STATIC) { + { + setState(493); + match(STATIC); + } + } + + setState(496); + block(); + } + break; + case 3: + _localctx = new MemberdeclContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(500); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,37,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(497); + modifier(); + } + } + } + setState(502); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,37,_ctx); + } + setState(503); + memberDeclaration(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MemberDeclarationContext extends ParserRuleContext { + public MemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_memberDeclaration; } + + public MemberDeclarationContext() { } + public void copyFrom(MemberDeclarationContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MembermethodContext extends MemberDeclarationContext { + public MethodContext method() { + return getRuleContext(MethodContext.class,0); + } + public MembermethodContext(MemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMembermethod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMembermethod(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMembermethod(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MemberconstructorContext extends MemberDeclarationContext { + public ConstructorContext constructor() { + return getRuleContext(ConstructorContext.class,0); + } + public MemberconstructorContext(MemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMemberconstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMemberconstructor(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMemberconstructor(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MemberclassorinterfaceContext extends MemberDeclarationContext { + public ClassOrInterfaceContext classOrInterface() { + return getRuleContext(ClassOrInterfaceContext.class,0); + } + public MemberclassorinterfaceContext(MemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMemberclassorinterface(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMemberclassorinterface(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMemberclassorinterface(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MemberfieldContext extends MemberDeclarationContext { + public FieldDeclarationContext fieldDeclaration() { + return getRuleContext(FieldDeclarationContext.class,0); + } + public MemberfieldContext(MemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMemberfield(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMemberfield(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMemberfield(this); + else return visitor.visitChildren(this); + } + } + + public final MemberDeclarationContext memberDeclaration() throws RecognitionException { + MemberDeclarationContext _localctx = new MemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_memberDeclaration); + try { + setState(510); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,39,_ctx) ) { + case 1: + _localctx = new MemberclassorinterfaceContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(506); + classOrInterface(); + } + break; + case 2: + _localctx = new MemberfieldContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(507); + fieldDeclaration(); + } + break; + case 3: + _localctx = new MembermethodContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(508); + method(); + } + break; + case 4: + _localctx = new MemberconstructorContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(509); + constructor(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodContext extends ParserRuleContext { + public MethodContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_method; } + + public MethodContext() { } + public void copyFrom(MethodContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MethoddeclContext extends MethodContext { + public MethodDeclarationContext methodDeclaration() { + return getRuleContext(MethodDeclarationContext.class,0); + } + public MethoddeclContext(MethodContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethoddecl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethoddecl(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethoddecl(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GenericmethodContext extends MethodContext { + public GenericMethodDeclarationContext genericMethodDeclaration() { + return getRuleContext(GenericMethodDeclarationContext.class,0); + } + public GenericmethodContext(MethodContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericmethod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericmethod(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericmethod(this); + else return visitor.visitChildren(this); + } + } + + public final MethodContext method() throws RecognitionException { + MethodContext _localctx = new MethodContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_method); + try { + setState(514); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + case VOID: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case AT: + case IDENTIFIER: + _localctx = new MethoddeclContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(512); + methodDeclaration(); + } + break; + case LT: + _localctx = new GenericmethodContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(513); + genericMethodDeclaration(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodDeclarationContext extends ParserRuleContext { + public MethodHeaderContext methodHeader() { + return getRuleContext(MethodHeaderContext.class,0); + } + public MethodBodyContext methodBody() { + return getRuleContext(MethodBodyContext.class,0); + } + public TerminalNode THROWS() { return getToken(Java17Parser.THROWS, 0); } + public ExceptionListContext exceptionList() { + return getRuleContext(ExceptionListContext.class,0); + } + public MethodDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethodDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethodDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final MethodDeclarationContext methodDeclaration() throws RecognitionException { + MethodDeclarationContext _localctx = new MethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_methodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(516); + methodHeader(); + setState(519); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(517); + match(THROWS); + setState(518); + exceptionList(); + } + } + + setState(521); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodHeaderContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public FormalParametersContext formalParameters() { + return getRuleContext(FormalParametersContext.class,0); + } + public RefTypeContext refType() { + return getRuleContext(RefTypeContext.class,0); + } + public List LBRACK() { return getTokens(Java17Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java17Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java17Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java17Parser.RBRACK, i); + } + public MethodHeaderContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodHeader; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethodHeader(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethodHeader(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethodHeader(this); + else return visitor.visitChildren(this); + } + } + + public final MethodHeaderContext methodHeader() throws RecognitionException { + MethodHeaderContext _localctx = new MethodHeaderContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_methodHeader); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(524); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) { + case 1: + { + setState(523); + refType(); + } + break; + } + setState(526); + identifier(); + setState(527); + formalParameters(); + setState(532); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(528); + match(LBRACK); + setState(529); + match(RBRACK); + } + } + setState(534); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodBodyContext extends ParserRuleContext { + public MethodBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodBody; } + + public MethodBodyContext() { } + public void copyFrom(MethodBodyContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MethodblockContext extends MethodBodyContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public MethodblockContext(MethodBodyContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethodblock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethodblock(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethodblock(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class EmptymethodContext extends MethodBodyContext { + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public EmptymethodContext(MethodBodyContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEmptymethod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEmptymethod(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEmptymethod(this); + else return visitor.visitChildren(this); + } + } + + public final MethodBodyContext methodBody() throws RecognitionException { + MethodBodyContext _localctx = new MethodBodyContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_methodBody); + try { + setState(537); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + _localctx = new MethodblockContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(535); + block(); + } + break; + case SEMI: + _localctx = new EmptymethodContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(536); + match(SEMI); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RefTypeContext extends ParserRuleContext { + public RefTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_refType; } + + public RefTypeContext() { } + public void copyFrom(RefTypeContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RefvoidContext extends RefTypeContext { + public TerminalNode VOID() { return getToken(Java17Parser.VOID, 0); } + public RefvoidContext(RefTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRefvoid(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRefvoid(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRefvoid(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RefType2Context extends RefTypeContext { + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public RefType2Context(RefTypeContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRefType2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRefType2(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRefType2(this); + else return visitor.visitChildren(this); + } + } + + public final RefTypeContext refType() throws RecognitionException { + RefTypeContext _localctx = new RefTypeContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_refType); + try { + setState(541); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case AT: + case IDENTIFIER: + _localctx = new RefType2Context(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(539); + typeType(); + } + break; + case VOID: + _localctx = new RefvoidContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(540); + match(VOID); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GenericMethodDeclarationContext extends ParserRuleContext { + public GenericDeclarationListContext genericDeclarationList() { + return getRuleContext(GenericDeclarationListContext.class,0); + } + public MethodDeclarationContext methodDeclaration() { + return getRuleContext(MethodDeclarationContext.class,0); + } + public GenericMethodDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_genericMethodDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericMethodDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericMethodDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final GenericMethodDeclarationContext genericMethodDeclaration() throws RecognitionException { + GenericMethodDeclarationContext _localctx = new GenericMethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 50, RULE_genericMethodDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(543); + genericDeclarationList(); + setState(544); + methodDeclaration(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorContext extends ParserRuleContext { + public ConstructorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructor; } + + public ConstructorContext() { } + public void copyFrom(ConstructorContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ConstructordeclContext extends ConstructorContext { + public ConstructorDeclarationContext constructorDeclaration() { + return getRuleContext(ConstructorDeclarationContext.class,0); + } + public ConstructordeclContext(ConstructorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterConstructordecl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitConstructordecl(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitConstructordecl(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GenericconstructorContext extends ConstructorContext { + public GenericConstructorDeclarationContext genericConstructorDeclaration() { + return getRuleContext(GenericConstructorDeclarationContext.class,0); + } + public GenericconstructorContext(ConstructorContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericconstructor(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericconstructor(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericconstructor(this); + else return visitor.visitChildren(this); + } + } + + public final ConstructorContext constructor() throws RecognitionException { + ConstructorContext _localctx = new ConstructorContext(_ctx, getState()); + enterRule(_localctx, 52, RULE_constructor); + try { + setState(548); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LT: + _localctx = new GenericconstructorContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(546); + genericConstructorDeclaration(); + } + break; + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case IDENTIFIER: + _localctx = new ConstructordeclContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(547); + constructorDeclaration(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GenericConstructorDeclarationContext extends ParserRuleContext { + public GenericDeclarationListContext genericDeclarationList() { + return getRuleContext(GenericDeclarationListContext.class,0); + } + public ConstructorDeclarationContext constructorDeclaration() { + return getRuleContext(ConstructorDeclarationContext.class,0); + } + public GenericConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_genericConstructorDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericConstructorDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericConstructorDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericConstructorDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final GenericConstructorDeclarationContext genericConstructorDeclaration() throws RecognitionException { + GenericConstructorDeclarationContext _localctx = new GenericConstructorDeclarationContext(_ctx, getState()); + enterRule(_localctx, 54, RULE_genericConstructorDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(550); + genericDeclarationList(); + setState(551); + constructorDeclaration(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstructorDeclarationContext extends ParserRuleContext { + public BlockContext constructorBody; + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public FormalParametersContext formalParameters() { + return getRuleContext(FormalParametersContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public TerminalNode THROWS() { return getToken(Java17Parser.THROWS, 0); } + public ExceptionListContext exceptionList() { + return getRuleContext(ExceptionListContext.class,0); + } + public ConstructorDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constructorDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterConstructorDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitConstructorDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitConstructorDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final ConstructorDeclarationContext constructorDeclaration() throws RecognitionException { + ConstructorDeclarationContext _localctx = new ConstructorDeclarationContext(_ctx, getState()); + enterRule(_localctx, 56, RULE_constructorDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(553); + identifier(); + setState(554); + formalParameters(); + setState(557); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(555); + match(THROWS); + setState(556); + exceptionList(); + } + } + + setState(559); + ((ConstructorDeclarationContext)_localctx).constructorBody = block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FieldDeclarationContext extends ParserRuleContext { + public VariableDeclaratorsContext variableDeclarators() { + return getRuleContext(VariableDeclaratorsContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public FieldDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_fieldDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFieldDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFieldDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFieldDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final FieldDeclarationContext fieldDeclaration() throws RecognitionException { + FieldDeclarationContext _localctx = new FieldDeclarationContext(_ctx, getState()); + enterRule(_localctx, 58, RULE_fieldDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(562); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,48,_ctx) ) { + case 1: + { + setState(561); + typeType(); + } + break; + } + setState(564); + variableDeclarators(); + setState(565); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceBodyDeclarationContext extends ParserRuleContext { + public InterfaceBodyDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceBodyDeclaration; } + + public InterfaceBodyDeclarationContext() { } + public void copyFrom(InterfaceBodyDeclarationContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class EmptyinterfaceContext extends InterfaceBodyDeclarationContext { + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public EmptyinterfaceContext(InterfaceBodyDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEmptyinterface(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEmptyinterface(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEmptyinterface(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class InterfacememberContext extends InterfaceBodyDeclarationContext { + public InterfaceMemberDeclarationContext interfaceMemberDeclaration() { + return getRuleContext(InterfaceMemberDeclarationContext.class,0); + } + public List modifier() { + return getRuleContexts(ModifierContext.class); + } + public ModifierContext modifier(int i) { + return getRuleContext(ModifierContext.class,i); + } + public InterfacememberContext(InterfaceBodyDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfacemember(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfacemember(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfacemember(this); + else return visitor.visitChildren(this); + } + } + + public final InterfaceBodyDeclarationContext interfaceBodyDeclaration() throws RecognitionException { + InterfaceBodyDeclarationContext _localctx = new InterfaceBodyDeclarationContext(_ctx, getState()); + enterRule(_localctx, 60, RULE_interfaceBodyDeclaration); + try { + int _alt; + setState(575); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,50,_ctx) ) { + case 1: + _localctx = new InterfacememberContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(570); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,49,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(567); + modifier(); + } + } + } + setState(572); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,49,_ctx); + } + setState(573); + interfaceMemberDeclaration(); + } + break; + case 2: + _localctx = new EmptyinterfaceContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(574); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceMemberDeclarationContext extends ParserRuleContext { + public InterfaceMemberDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceMemberDeclaration; } + + public InterfaceMemberDeclarationContext() { } + public void copyFrom(InterfaceMemberDeclarationContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class InterfacemethodContext extends InterfaceMemberDeclarationContext { + public InterfaceMethodDeclarationContext interfaceMethodDeclaration() { + return getRuleContext(InterfaceMethodDeclarationContext.class,0); + } + public InterfacemethodContext(InterfaceMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfacemethod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfacemethod(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfacemethod(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SubclassorinterfaceContext extends InterfaceMemberDeclarationContext { + public ClassOrInterfaceContext classOrInterface() { + return getRuleContext(ClassOrInterfaceContext.class,0); + } + public SubclassorinterfaceContext(InterfaceMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSubclassorinterface(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSubclassorinterface(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSubclassorinterface(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class InterfaceconstContext extends InterfaceMemberDeclarationContext { + public ConstDeclarationContext constDeclaration() { + return getRuleContext(ConstDeclarationContext.class,0); + } + public InterfaceconstContext(InterfaceMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfaceconst(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfaceconst(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfaceconst(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GenericinterfacemethodContext extends InterfaceMemberDeclarationContext { + public GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() { + return getRuleContext(GenericInterfaceMethodDeclarationContext.class,0); + } + public GenericinterfacemethodContext(InterfaceMemberDeclarationContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericinterfacemethod(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericinterfacemethod(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericinterfacemethod(this); + else return visitor.visitChildren(this); + } + } + + public final InterfaceMemberDeclarationContext interfaceMemberDeclaration() throws RecognitionException { + InterfaceMemberDeclarationContext _localctx = new InterfaceMemberDeclarationContext(_ctx, getState()); + enterRule(_localctx, 62, RULE_interfaceMemberDeclaration); + try { + setState(581); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,51,_ctx) ) { + case 1: + _localctx = new InterfaceconstContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(577); + constDeclaration(); + } + break; + case 2: + _localctx = new InterfacemethodContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(578); + interfaceMethodDeclaration(); + } + break; + case 3: + _localctx = new GenericinterfacemethodContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(579); + genericInterfaceMethodDeclaration(); + } + break; + case 4: + _localctx = new SubclassorinterfaceContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(580); + classOrInterface(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstDeclarationContext extends ParserRuleContext { + public List constantDeclarator() { + return getRuleContexts(ConstantDeclaratorContext.class); + } + public ConstantDeclaratorContext constantDeclarator(int i) { + return getRuleContext(ConstantDeclaratorContext.class,i); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public ConstDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterConstDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitConstDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitConstDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final ConstDeclarationContext constDeclaration() throws RecognitionException { + ConstDeclarationContext _localctx = new ConstDeclarationContext(_ctx, getState()); + enterRule(_localctx, 64, RULE_constDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(584); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,52,_ctx) ) { + case 1: + { + setState(583); + typeType(); + } + break; + } + setState(586); + constantDeclarator(); + setState(591); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(587); + match(COMMA); + setState(588); + constantDeclarator(); + } + } + setState(593); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(594); + match(SEMI); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ConstantDeclaratorContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(Java17Parser.ASSIGN, 0); } + public VariableInitializerContext variableInitializer() { + return getRuleContext(VariableInitializerContext.class,0); + } + public List LBRACK() { return getTokens(Java17Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java17Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java17Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java17Parser.RBRACK, i); + } + public ConstantDeclaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_constantDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterConstantDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitConstantDeclarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitConstantDeclarator(this); + else return visitor.visitChildren(this); + } + } + + public final ConstantDeclaratorContext constantDeclarator() throws RecognitionException { + ConstantDeclaratorContext _localctx = new ConstantDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 66, RULE_constantDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(596); + identifier(); + setState(601); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(597); + match(LBRACK); + setState(598); + match(RBRACK); + } + } + setState(603); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(604); + match(ASSIGN); + setState(605); + variableInitializer(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceMethodDeclarationContext extends ParserRuleContext { + public InterfaceCommonBodyDeclarationContext interfaceCommonBodyDeclaration() { + return getRuleContext(InterfaceCommonBodyDeclarationContext.class,0); + } + public List interfaceMethodModifier() { + return getRuleContexts(InterfaceMethodModifierContext.class); + } + public InterfaceMethodModifierContext interfaceMethodModifier(int i) { + return getRuleContext(InterfaceMethodModifierContext.class,i); + } + public InterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceMethodDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfaceMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfaceMethodDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfaceMethodDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final InterfaceMethodDeclarationContext interfaceMethodDeclaration() throws RecognitionException { + InterfaceMethodDeclarationContext _localctx = new InterfaceMethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 68, RULE_interfaceMethodDeclaration); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(610); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,55,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(607); + interfaceMethodModifier(); + } + } + } + setState(612); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,55,_ctx); + } + setState(613); + interfaceCommonBodyDeclaration(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceMethodModifierContext extends ParserRuleContext { + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public TerminalNode PUBLIC() { return getToken(Java17Parser.PUBLIC, 0); } + public TerminalNode ABSTRACT() { return getToken(Java17Parser.ABSTRACT, 0); } + public TerminalNode DEFAULT() { return getToken(Java17Parser.DEFAULT, 0); } + public TerminalNode STATIC() { return getToken(Java17Parser.STATIC, 0); } + public TerminalNode STRICTFP() { return getToken(Java17Parser.STRICTFP, 0); } + public InterfaceMethodModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceMethodModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfaceMethodModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfaceMethodModifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfaceMethodModifier(this); + else return visitor.visitChildren(this); + } + } + + public final InterfaceMethodModifierContext interfaceMethodModifier() throws RecognitionException { + InterfaceMethodModifierContext _localctx = new InterfaceMethodModifierContext(_ctx, getState()); + enterRule(_localctx, 70, RULE_interfaceMethodModifier); + try { + setState(621); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case AT: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(615); + annotation(); + } + break; + case PUBLIC: + enterOuterAlt(_localctx, 2); + { + setState(616); + match(PUBLIC); + } + break; + case ABSTRACT: + enterOuterAlt(_localctx, 3); + { + setState(617); + match(ABSTRACT); + } + break; + case DEFAULT: + enterOuterAlt(_localctx, 4); + { + setState(618); + match(DEFAULT); + } + break; + case STATIC: + enterOuterAlt(_localctx, 5); + { + setState(619); + match(STATIC); + } + break; + case STRICTFP: + enterOuterAlt(_localctx, 6); + { + setState(620); + match(STRICTFP); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GenericInterfaceMethodDeclarationContext extends ParserRuleContext { + public GenericDeclarationListContext genericDeclarationList() { + return getRuleContext(GenericDeclarationListContext.class,0); + } + public InterfaceCommonBodyDeclarationContext interfaceCommonBodyDeclaration() { + return getRuleContext(InterfaceCommonBodyDeclarationContext.class,0); + } + public List interfaceMethodModifier() { + return getRuleContexts(InterfaceMethodModifierContext.class); + } + public InterfaceMethodModifierContext interfaceMethodModifier(int i) { + return getRuleContext(InterfaceMethodModifierContext.class,i); + } + public GenericInterfaceMethodDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_genericInterfaceMethodDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGenericInterfaceMethodDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGenericInterfaceMethodDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGenericInterfaceMethodDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final GenericInterfaceMethodDeclarationContext genericInterfaceMethodDeclaration() throws RecognitionException { + GenericInterfaceMethodDeclarationContext _localctx = new GenericInterfaceMethodDeclarationContext(_ctx, getState()); + enterRule(_localctx, 72, RULE_genericInterfaceMethodDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(626); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -1125470410110975L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141660703064063L) != 0)) { + { + { + setState(623); + interfaceMethodModifier(); + } + } + setState(628); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(629); + genericDeclarationList(); + setState(630); + interfaceCommonBodyDeclaration(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InterfaceCommonBodyDeclarationContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public FormalParametersContext formalParameters() { + return getRuleContext(FormalParametersContext.class,0); + } + public MethodBodyContext methodBody() { + return getRuleContext(MethodBodyContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public RefTypeContext refType() { + return getRuleContext(RefTypeContext.class,0); + } + public List LBRACK() { return getTokens(Java17Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java17Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java17Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java17Parser.RBRACK, i); + } + public TerminalNode THROWS() { return getToken(Java17Parser.THROWS, 0); } + public ExceptionListContext exceptionList() { + return getRuleContext(ExceptionListContext.class,0); + } + public InterfaceCommonBodyDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_interfaceCommonBodyDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInterfaceCommonBodyDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInterfaceCommonBodyDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInterfaceCommonBodyDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final InterfaceCommonBodyDeclarationContext interfaceCommonBodyDeclaration() throws RecognitionException { + InterfaceCommonBodyDeclarationContext _localctx = new InterfaceCommonBodyDeclarationContext(_ctx, getState()); + enterRule(_localctx, 74, RULE_interfaceCommonBodyDeclaration); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(635); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,58,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(632); + annotation(); + } + } + } + setState(637); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,58,_ctx); + } + setState(639); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) { + case 1: + { + setState(638); + refType(); + } + break; + } + setState(641); + identifier(); + setState(642); + formalParameters(); + setState(647); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(643); + match(LBRACK); + setState(644); + match(RBRACK); + } + } + setState(649); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(652); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==THROWS) { + { + setState(650); + match(THROWS); + setState(651); + exceptionList(); + } + } + + setState(654); + methodBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclaratorsContext extends ParserRuleContext { + public List variableDeclarator() { + return getRuleContexts(VariableDeclaratorContext.class); + } + public VariableDeclaratorContext variableDeclarator(int i) { + return getRuleContext(VariableDeclaratorContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public VariableDeclaratorsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDeclarators; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterVariableDeclarators(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitVariableDeclarators(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitVariableDeclarators(this); + else return visitor.visitChildren(this); + } + } + + public final VariableDeclaratorsContext variableDeclarators() throws RecognitionException { + VariableDeclaratorsContext _localctx = new VariableDeclaratorsContext(_ctx, getState()); + enterRule(_localctx, 76, RULE_variableDeclarators); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(656); + variableDeclarator(); + setState(661); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(657); + match(COMMA); + setState(658); + variableDeclarator(); + } + } + setState(663); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclaratorContext extends ParserRuleContext { + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(Java17Parser.ASSIGN, 0); } + public VariableInitializerContext variableInitializer() { + return getRuleContext(VariableInitializerContext.class,0); + } + public VariableDeclaratorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDeclarator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterVariableDeclarator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitVariableDeclarator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitVariableDeclarator(this); + else return visitor.visitChildren(this); + } + } + + public final VariableDeclaratorContext variableDeclarator() throws RecognitionException { + VariableDeclaratorContext _localctx = new VariableDeclaratorContext(_ctx, getState()); + enterRule(_localctx, 78, RULE_variableDeclarator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(664); + variableDeclaratorId(); + setState(667); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==ASSIGN) { + { + setState(665); + match(ASSIGN); + setState(666); + variableInitializer(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableDeclaratorIdContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List LBRACK() { return getTokens(Java17Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java17Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java17Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java17Parser.RBRACK, i); + } + public VariableDeclaratorIdContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableDeclaratorId; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterVariableDeclaratorId(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitVariableDeclaratorId(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitVariableDeclaratorId(this); + else return visitor.visitChildren(this); + } + } + + public final VariableDeclaratorIdContext variableDeclaratorId() throws RecognitionException { + VariableDeclaratorIdContext _localctx = new VariableDeclaratorIdContext(_ctx, getState()); + enterRule(_localctx, 80, RULE_variableDeclaratorId); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(669); + identifier(); + setState(674); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(670); + match(LBRACK); + setState(671); + match(RBRACK); + } + } + setState(676); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class VariableInitializerContext extends ParserRuleContext { + public ArrayInitializerContext arrayInitializer() { + return getRuleContext(ArrayInitializerContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public VariableInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_variableInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterVariableInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitVariableInitializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitVariableInitializer(this); + else return visitor.visitChildren(this); + } + } + + public final VariableInitializerContext variableInitializer() throws RecognitionException { + VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState()); + enterRule(_localctx, 82, RULE_variableInitializer); + try { + setState(679); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(677); + arrayInitializer(); + } + break; + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case NEW: + case SHORT: + case SUPER: + case SWITCH: + case THIS: + case VOID: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case DECIMAL_LITERAL: + case HEX_LITERAL: + case OCT_LITERAL: + case BINARY_LITERAL: + case FLOAT_LITERAL: + case HEX_FLOAT_LITERAL: + case BOOL_LITERAL: + case CHAR_LITERAL: + case STRING_LITERAL: + case TEXT_BLOCK: + case NULL_LITERAL: + case LPAREN: + case LT: + case BANG: + case TILDE: + case INC: + case DEC: + case ADD: + case SUB: + case AT: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(678); + expression(0); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayInitializerContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List variableInitializer() { + return getRuleContexts(VariableInitializerContext.class); + } + public VariableInitializerContext variableInitializer(int i) { + return getRuleContext(VariableInitializerContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public ArrayInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitArrayInitializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitArrayInitializer(this); + else return visitor.visitChildren(this); + } + } + + public final ArrayInitializerContext arrayInitializer() throws RecognitionException { + ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 84, RULE_arrayInitializer); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(681); + match(LBRACE); + setState(693); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130013183L) != 0)) { + { + setState(682); + variableInitializer(); + setState(687); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,66,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(683); + match(COMMA); + setState(684); + variableInitializer(); + } + } + } + setState(689); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,66,_ctx); + } + setState(691); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(690); + match(COMMA); + } + } + + } + } + + setState(695); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassOrInterfaceTypeContext extends ParserRuleContext { + public TypeIdentifierContext typeIdentifier() { + return getRuleContext(TypeIdentifierContext.class,0); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List DOT() { return getTokens(Java17Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java17Parser.DOT, i); + } + public List typeArguments() { + return getRuleContexts(TypeArgumentsContext.class); + } + public TypeArgumentsContext typeArguments(int i) { + return getRuleContext(TypeArgumentsContext.class,i); + } + public ClassOrInterfaceTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classOrInterfaceType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassOrInterfaceType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassOrInterfaceType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassOrInterfaceType(this); + else return visitor.visitChildren(this); + } + } + + public final ClassOrInterfaceTypeContext classOrInterfaceType() throws RecognitionException { + ClassOrInterfaceTypeContext _localctx = new ClassOrInterfaceTypeContext(_ctx, getState()); + enterRule(_localctx, 86, RULE_classOrInterfaceType); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(705); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,70,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(697); + identifier(); + setState(699); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(698); + typeArguments(); + } + } + + setState(701); + match(DOT); + } + } + } + setState(707); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,70,_ctx); + } + setState(708); + typeIdentifier(); + setState(710); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,71,_ctx) ) { + case 1: + { + setState(709); + typeArguments(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentContext extends ParserRuleContext { + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public WildcardTypeContext wildcardType() { + return getRuleContext(WildcardTypeContext.class,0); + } + public TypeArgumentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArgument; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypeArgument(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypeArgument(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypeArgument(this); + else return visitor.visitChildren(this); + } + } + + public final TypeArgumentContext typeArgument() throws RecognitionException { + TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState()); + enterRule(_localctx, 88, RULE_typeArgument); + try { + setState(714); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,72,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(712); + typeType(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(713); + wildcardType(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class WildcardTypeContext extends ParserRuleContext { + public TerminalNode QUESTION() { return getToken(Java17Parser.QUESTION, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public ExtendsWildcardTypeContext extendsWildcardType() { + return getRuleContext(ExtendsWildcardTypeContext.class,0); + } + public SuperWildcardTypeContext superWildcardType() { + return getRuleContext(SuperWildcardTypeContext.class,0); + } + public WildcardTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_wildcardType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterWildcardType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitWildcardType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitWildcardType(this); + else return visitor.visitChildren(this); + } + } + + public final WildcardTypeContext wildcardType() throws RecognitionException { + WildcardTypeContext _localctx = new WildcardTypeContext(_ctx, getState()); + enterRule(_localctx, 90, RULE_wildcardType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(719); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==AT || _la==IDENTIFIER) { + { + { + setState(716); + annotation(); + } + } + setState(721); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(722); + match(QUESTION); + setState(725); + _errHandler.sync(this); + switch (_input.LA(1)) { + case EXTENDS: + { + setState(723); + extendsWildcardType(); + } + break; + case SUPER: + { + setState(724); + superWildcardType(); + } + break; + case COMMA: + case GT: + break; + default: + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExtendsWildcardTypeContext extends ParserRuleContext { + public TerminalNode EXTENDS() { return getToken(Java17Parser.EXTENDS, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public ExtendsWildcardTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_extendsWildcardType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterExtendsWildcardType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitExtendsWildcardType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitExtendsWildcardType(this); + else return visitor.visitChildren(this); + } + } + + public final ExtendsWildcardTypeContext extendsWildcardType() throws RecognitionException { + ExtendsWildcardTypeContext _localctx = new ExtendsWildcardTypeContext(_ctx, getState()); + enterRule(_localctx, 92, RULE_extendsWildcardType); + try { + enterOuterAlt(_localctx, 1); + { + setState(727); + match(EXTENDS); + setState(728); + typeType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SuperWildcardTypeContext extends ParserRuleContext { + public TerminalNode SUPER() { return getToken(Java17Parser.SUPER, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public SuperWildcardTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_superWildcardType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSuperWildcardType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSuperWildcardType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSuperWildcardType(this); + else return visitor.visitChildren(this); + } + } + + public final SuperWildcardTypeContext superWildcardType() throws RecognitionException { + SuperWildcardTypeContext _localctx = new SuperWildcardTypeContext(_ctx, getState()); + enterRule(_localctx, 94, RULE_superWildcardType); + try { + enterOuterAlt(_localctx, 1); + { + setState(730); + match(SUPER); + setState(731); + typeType(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class QualifiedNameListContext extends ParserRuleContext { + public List qualifiedName() { + return getRuleContexts(QualifiedNameContext.class); + } + public QualifiedNameContext qualifiedName(int i) { + return getRuleContext(QualifiedNameContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public QualifiedNameListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_qualifiedNameList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterQualifiedNameList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitQualifiedNameList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitQualifiedNameList(this); + else return visitor.visitChildren(this); + } + } + + public final QualifiedNameListContext qualifiedNameList() throws RecognitionException { + QualifiedNameListContext _localctx = new QualifiedNameListContext(_ctx, getState()); + enterRule(_localctx, 96, RULE_qualifiedNameList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(733); + qualifiedName(); + setState(738); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(734); + match(COMMA); + setState(735); + qualifiedName(); + } + } + setState(740); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExceptionListContext extends ParserRuleContext { + public QualifiedNameListContext qualifiedNameList() { + return getRuleContext(QualifiedNameListContext.class,0); + } + public ExceptionListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_exceptionList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterExceptionList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitExceptionList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitExceptionList(this); + else return visitor.visitChildren(this); + } + } + + public final ExceptionListContext exceptionList() throws RecognitionException { + ExceptionListContext _localctx = new ExceptionListContext(_ctx, getState()); + enterRule(_localctx, 98, RULE_exceptionList); + try { + enterOuterAlt(_localctx, 1); + { + setState(741); + qualifiedNameList(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParametersContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public ReceiverParameterContext receiverParameter() { + return getRuleContext(ReceiverParameterContext.class,0); + } + public TerminalNode COMMA() { return getToken(Java17Parser.COMMA, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public FormalParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFormalParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFormalParameters(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFormalParameters(this); + else return visitor.visitChildren(this); + } + } + + public final FormalParametersContext formalParameters() throws RecognitionException { + FormalParametersContext _localctx = new FormalParametersContext(_ctx, getState()); + enterRule(_localctx, 100, RULE_formalParameters); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(743); + match(LPAREN); + setState(755); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,79,_ctx) ) { + case 1: + { + setState(745); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223091678653581349L) != 0) || _la==AT || _la==IDENTIFIER) { + { + setState(744); + receiverParameter(); + } + } + + } + break; + case 2: + { + setState(747); + receiverParameter(); + setState(750); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(748); + match(COMMA); + setState(749); + formalParameterList(); + } + } + + } + break; + case 3: + { + setState(753); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223090579141986341L) != 0) || ((((_la - 78)) & ~0x3f) == 0 && ((1L << (_la - 78)) & 1231453023109121L) != 0)) { + { + setState(752); + formalParameterList(); + } + } + + } + break; + } + setState(757); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ReceiverParameterContext extends ParserRuleContext { + public TerminalNode THIS() { return getToken(Java17Parser.THIS, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List DOT() { return getTokens(Java17Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java17Parser.DOT, i); + } + public ReceiverParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_receiverParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterReceiverParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitReceiverParameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitReceiverParameter(this); + else return visitor.visitChildren(this); + } + } + + public final ReceiverParameterContext receiverParameter() throws RecognitionException { + ReceiverParameterContext _localctx = new ReceiverParameterContext(_ctx, getState()); + enterRule(_localctx, 102, RULE_receiverParameter); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(760); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,80,_ctx) ) { + case 1: + { + setState(759); + typeType(); + } + break; + } + setState(767); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==IDENTIFIER) { + { + { + setState(762); + identifier(); + setState(763); + match(DOT); + } + } + setState(769); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(770); + match(THIS); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterListContext extends ParserRuleContext { + public List formalParameter() { + return getRuleContexts(FormalParameterContext.class); + } + public FormalParameterContext formalParameter(int i) { + return getRuleContext(FormalParameterContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public LastFormalParameterContext lastFormalParameter() { + return getRuleContext(LastFormalParameterContext.class,0); + } + public FormalParameterListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalParameterList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFormalParameterList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFormalParameterList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFormalParameterList(this); + else return visitor.visitChildren(this); + } + } + + public final FormalParameterListContext formalParameterList() throws RecognitionException { + FormalParameterListContext _localctx = new FormalParameterListContext(_ctx, getState()); + enterRule(_localctx, 104, RULE_formalParameterList); + int _la; + try { + int _alt; + setState(785); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,84,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(772); + formalParameter(); + setState(777); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,82,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(773); + match(COMMA); + setState(774); + formalParameter(); + } + } + } + setState(779); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,82,_ctx); + } + setState(782); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(780); + match(COMMA); + setState(781); + lastFormalParameter(); + } + } + + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(784); + lastFormalParameter(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FormalParameterContext extends ParserRuleContext { + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public PatternContext pattern() { + return getRuleContext(PatternContext.class,0); + } + public FormalParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_formalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFormalParameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFormalParameter(this); + else return visitor.visitChildren(this); + } + } + + public final FormalParameterContext formalParameter() throws RecognitionException { + FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState()); + enterRule(_localctx, 106, RULE_formalParameter); + try { + int _alt; + setState(798); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,87,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(790); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,85,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(787); + variableModifier(); + } + } + } + setState(792); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,85,_ctx); + } + setState(794); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,86,_ctx) ) { + case 1: + { + setState(793); + typeType(); + } + break; + } + setState(796); + variableDeclaratorId(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(797); + pattern(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LastFormalParameterContext extends ParserRuleContext { + public TerminalNode ELLIPSIS() { return getToken(Java17Parser.ELLIPSIS, 0); } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public LastFormalParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lastFormalParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLastFormalParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLastFormalParameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLastFormalParameter(this); + else return visitor.visitChildren(this); + } + } + + public final LastFormalParameterContext lastFormalParameter() throws RecognitionException { + LastFormalParameterContext _localctx = new LastFormalParameterContext(_ctx, getState()); + enterRule(_localctx, 108, RULE_lastFormalParameter); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(803); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,88,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(800); + variableModifier(); + } + } + } + setState(805); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,88,_ctx); + } + setState(807); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,89,_ctx) ) { + case 1: + { + setState(806); + typeType(); + } + break; + } + setState(812); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==AT || _la==IDENTIFIER) { + { + { + setState(809); + annotation(); + } + } + setState(814); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(815); + match(ELLIPSIS); + setState(816); + variableDeclaratorId(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaLVTIListContext extends ParserRuleContext { + public List lambdaLVTIParameter() { + return getRuleContexts(LambdaLVTIParameterContext.class); + } + public LambdaLVTIParameterContext lambdaLVTIParameter(int i) { + return getRuleContext(LambdaLVTIParameterContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public LambdaLVTIListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambdaLVTIList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLambdaLVTIList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLambdaLVTIList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLambdaLVTIList(this); + else return visitor.visitChildren(this); + } + } + + public final LambdaLVTIListContext lambdaLVTIList() throws RecognitionException { + LambdaLVTIListContext _localctx = new LambdaLVTIListContext(_ctx, getState()); + enterRule(_localctx, 110, RULE_lambdaLVTIList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(818); + lambdaLVTIParameter(); + setState(823); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(819); + match(COMMA); + setState(820); + lambdaLVTIParameter(); + } + } + setState(825); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaLVTIParameterContext extends ParserRuleContext { + public TerminalNode VAR() { return getToken(Java17Parser.VAR, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public LambdaLVTIParameterContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambdaLVTIParameter; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLambdaLVTIParameter(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLambdaLVTIParameter(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLambdaLVTIParameter(this); + else return visitor.visitChildren(this); + } + } + + public final LambdaLVTIParameterContext lambdaLVTIParameter() throws RecognitionException { + LambdaLVTIParameterContext _localctx = new LambdaLVTIParameterContext(_ctx, getState()); + enterRule(_localctx, 112, RULE_lambdaLVTIParameter); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(829); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,92,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(826); + variableModifier(); + } + } + } + setState(831); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,92,_ctx); + } + setState(832); + match(VAR); + setState(833); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class QualifiedNameContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List DOT() { return getTokens(Java17Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java17Parser.DOT, i); + } + public QualifiedNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_qualifiedName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterQualifiedName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitQualifiedName(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitQualifiedName(this); + else return visitor.visitChildren(this); + } + } + + public final QualifiedNameContext qualifiedName() throws RecognitionException { + QualifiedNameContext _localctx = new QualifiedNameContext(_ctx, getState()); + enterRule(_localctx, 114, RULE_qualifiedName); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(835); + identifier(); + setState(840); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,93,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(836); + match(DOT); + setState(837); + identifier(); + } + } + } + setState(842); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,93,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LiteralContext extends ParserRuleContext { + public LiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_literal; } + + public LiteralContext() { } + public void copyFrom(LiteralContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class FltLiteralContext extends LiteralContext { + public FloatLiteralContext floatLiteral() { + return getRuleContext(FloatLiteralContext.class,0); + } + public FltLiteralContext(LiteralContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFltLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFltLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFltLiteral(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NullLiteralContext extends LiteralContext { + public TerminalNode NULL_LITERAL() { return getToken(Java17Parser.NULL_LITERAL, 0); } + public NullLiteralContext(LiteralContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterNullLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitNullLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitNullLiteral(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class StringLiteralContext extends LiteralContext { + public TerminalNode STRING_LITERAL() { return getToken(Java17Parser.STRING_LITERAL, 0); } + public StringLiteralContext(LiteralContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterStringLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitStringLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitStringLiteral(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class IntLiteralContext extends LiteralContext { + public IntegerLiteralContext integerLiteral() { + return getRuleContext(IntegerLiteralContext.class,0); + } + public IntLiteralContext(LiteralContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterIntLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitIntLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitIntLiteral(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class CharLiteralContext extends LiteralContext { + public TerminalNode CHAR_LITERAL() { return getToken(Java17Parser.CHAR_LITERAL, 0); } + public CharLiteralContext(LiteralContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterCharLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitCharLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitCharLiteral(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TextBlockContext extends LiteralContext { + public TerminalNode TEXT_BLOCK() { return getToken(Java17Parser.TEXT_BLOCK, 0); } + public TextBlockContext(LiteralContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTextBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTextBlock(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTextBlock(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BoolLiteralContext extends LiteralContext { + public TerminalNode BOOL_LITERAL() { return getToken(Java17Parser.BOOL_LITERAL, 0); } + public BoolLiteralContext(LiteralContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBoolLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBoolLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBoolLiteral(this); + else return visitor.visitChildren(this); + } + } + + public final LiteralContext literal() throws RecognitionException { + LiteralContext _localctx = new LiteralContext(_ctx, getState()); + enterRule(_localctx, 116, RULE_literal); + try { + setState(850); + _errHandler.sync(this); + switch (_input.LA(1)) { + case DECIMAL_LITERAL: + case HEX_LITERAL: + case OCT_LITERAL: + case BINARY_LITERAL: + _localctx = new IntLiteralContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(843); + integerLiteral(); + } + break; + case FLOAT_LITERAL: + case HEX_FLOAT_LITERAL: + _localctx = new FltLiteralContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(844); + floatLiteral(); + } + break; + case CHAR_LITERAL: + _localctx = new CharLiteralContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(845); + match(CHAR_LITERAL); + } + break; + case STRING_LITERAL: + _localctx = new StringLiteralContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(846); + match(STRING_LITERAL); + } + break; + case BOOL_LITERAL: + _localctx = new BoolLiteralContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(847); + match(BOOL_LITERAL); + } + break; + case NULL_LITERAL: + _localctx = new NullLiteralContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(848); + match(NULL_LITERAL); + } + break; + case TEXT_BLOCK: + _localctx = new TextBlockContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(849); + match(TEXT_BLOCK); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IntegerLiteralContext extends ParserRuleContext { + public TerminalNode DECIMAL_LITERAL() { return getToken(Java17Parser.DECIMAL_LITERAL, 0); } + public TerminalNode HEX_LITERAL() { return getToken(Java17Parser.HEX_LITERAL, 0); } + public TerminalNode OCT_LITERAL() { return getToken(Java17Parser.OCT_LITERAL, 0); } + public TerminalNode BINARY_LITERAL() { return getToken(Java17Parser.BINARY_LITERAL, 0); } + public IntegerLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_integerLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterIntegerLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitIntegerLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitIntegerLiteral(this); + else return visitor.visitChildren(this); + } + } + + public final IntegerLiteralContext integerLiteral() throws RecognitionException { + IntegerLiteralContext _localctx = new IntegerLiteralContext(_ctx, getState()); + enterRule(_localctx, 118, RULE_integerLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(852); + _la = _input.LA(1); + if ( !(((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 15L) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FloatLiteralContext extends ParserRuleContext { + public TerminalNode FLOAT_LITERAL() { return getToken(Java17Parser.FLOAT_LITERAL, 0); } + public TerminalNode HEX_FLOAT_LITERAL() { return getToken(Java17Parser.HEX_FLOAT_LITERAL, 0); } + public FloatLiteralContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_floatLiteral; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFloatLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFloatLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFloatLiteral(this); + else return visitor.visitChildren(this); + } + } + + public final FloatLiteralContext floatLiteral() throws RecognitionException { + FloatLiteralContext _localctx = new FloatLiteralContext(_ctx, getState()); + enterRule(_localctx, 120, RULE_floatLiteral); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(854); + _la = _input.LA(1); + if ( !(_la==FLOAT_LITERAL || _la==HEX_FLOAT_LITERAL) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AltAnnotationQualifiedNameContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java17Parser.AT, 0); } + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public List DOT() { return getTokens(Java17Parser.DOT); } + public TerminalNode DOT(int i) { + return getToken(Java17Parser.DOT, i); + } + public AltAnnotationQualifiedNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_altAnnotationQualifiedName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAltAnnotationQualifiedName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAltAnnotationQualifiedName(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAltAnnotationQualifiedName(this); + else return visitor.visitChildren(this); + } + } + + public final AltAnnotationQualifiedNameContext altAnnotationQualifiedName() throws RecognitionException { + AltAnnotationQualifiedNameContext _localctx = new AltAnnotationQualifiedNameContext(_ctx, getState()); + enterRule(_localctx, 122, RULE_altAnnotationQualifiedName); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(861); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==IDENTIFIER) { + { + { + setState(856); + identifier(); + setState(857); + match(DOT); + } + } + setState(863); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(864); + match(AT); + setState(865); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java17Parser.AT, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public AltAnnotationQualifiedNameContext altAnnotationQualifiedName() { + return getRuleContext(AltAnnotationQualifiedNameContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public ElementValuePairsContext elementValuePairs() { + return getRuleContext(ElementValuePairsContext.class,0); + } + public ElementValueContext elementValue() { + return getRuleContext(ElementValueContext.class,0); + } + public AnnotationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotation(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationContext annotation() throws RecognitionException { + AnnotationContext _localctx = new AnnotationContext(_ctx, getState()); + enterRule(_localctx, 124, RULE_annotation); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(870); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,96,_ctx) ) { + case 1: + { + setState(867); + match(AT); + setState(868); + qualifiedName(); + } + break; + case 2: + { + setState(869); + altAnnotationQualifiedName(); + } + break; + } + setState(878); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LPAREN) { + { + setState(872); + match(LPAREN); + setState(875); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,97,_ctx) ) { + case 1: + { + setState(873); + elementValuePairs(); + } + break; + case 2: + { + setState(874); + elementValue(); + } + break; + } + setState(877); + match(RPAREN); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValuePairsContext extends ParserRuleContext { + public List elementValuePair() { + return getRuleContexts(ElementValuePairContext.class); + } + public ElementValuePairContext elementValuePair(int i) { + return getRuleContext(ElementValuePairContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public ElementValuePairsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValuePairs; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterElementValuePairs(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitElementValuePairs(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitElementValuePairs(this); + else return visitor.visitChildren(this); + } + } + + public final ElementValuePairsContext elementValuePairs() throws RecognitionException { + ElementValuePairsContext _localctx = new ElementValuePairsContext(_ctx, getState()); + enterRule(_localctx, 126, RULE_elementValuePairs); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(880); + elementValuePair(); + setState(885); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(881); + match(COMMA); + setState(882); + elementValuePair(); + } + } + setState(887); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValuePairContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode ASSIGN() { return getToken(Java17Parser.ASSIGN, 0); } + public ElementValueContext elementValue() { + return getRuleContext(ElementValueContext.class,0); + } + public ElementValuePairContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValuePair; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterElementValuePair(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitElementValuePair(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitElementValuePair(this); + else return visitor.visitChildren(this); + } + } + + public final ElementValuePairContext elementValuePair() throws RecognitionException { + ElementValuePairContext _localctx = new ElementValuePairContext(_ctx, getState()); + enterRule(_localctx, 128, RULE_elementValuePair); + try { + enterOuterAlt(_localctx, 1); + { + setState(888); + identifier(); + setState(889); + match(ASSIGN); + setState(890); + elementValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValueContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public AnnotationContext annotation() { + return getRuleContext(AnnotationContext.class,0); + } + public ElementValueArrayInitializerContext elementValueArrayInitializer() { + return getRuleContext(ElementValueArrayInitializerContext.class,0); + } + public ElementValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterElementValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitElementValue(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitElementValue(this); + else return visitor.visitChildren(this); + } + } + + public final ElementValueContext elementValue() throws RecognitionException { + ElementValueContext _localctx = new ElementValueContext(_ctx, getState()); + enterRule(_localctx, 130, RULE_elementValue); + try { + setState(895); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,100,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(892); + expression(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(893); + annotation(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(894); + elementValueArrayInitializer(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ElementValueArrayInitializerContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List elementValue() { + return getRuleContexts(ElementValueContext.class); + } + public ElementValueContext elementValue(int i) { + return getRuleContext(ElementValueContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public ElementValueArrayInitializerContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_elementValueArrayInitializer; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterElementValueArrayInitializer(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitElementValueArrayInitializer(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitElementValueArrayInitializer(this); + else return visitor.visitChildren(this); + } + } + + public final ElementValueArrayInitializerContext elementValueArrayInitializer() throws RecognitionException { + ElementValueArrayInitializerContext _localctx = new ElementValueArrayInitializerContext(_ctx, getState()); + enterRule(_localctx, 132, RULE_elementValueArrayInitializer); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(897); + match(LBRACE); + setState(906); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130013183L) != 0)) { + { + setState(898); + elementValue(); + setState(903); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,101,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(899); + match(COMMA); + setState(900); + elementValue(); + } + } + } + setState(905); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,101,_ctx); + } + } + } + + setState(909); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COMMA) { + { + setState(908); + match(COMMA); + } + } + + setState(911); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeDeclarationContext extends ParserRuleContext { + public TerminalNode AT() { return getToken(Java17Parser.AT, 0); } + public TerminalNode INTERFACE() { return getToken(Java17Parser.INTERFACE, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public AnnotationTypeBodyContext annotationTypeBody() { + return getRuleContext(AnnotationTypeBodyContext.class,0); + } + public AnnotationTypeDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationTypeDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationTypeDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationTypeDeclarationContext annotationTypeDeclaration() throws RecognitionException { + AnnotationTypeDeclarationContext _localctx = new AnnotationTypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 134, RULE_annotationTypeDeclaration); + try { + enterOuterAlt(_localctx, 1); + { + setState(913); + match(AT); + setState(914); + match(INTERFACE); + setState(915); + identifier(); + setState(916); + annotationTypeBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List annotationTypeElementDeclaration() { + return getRuleContexts(AnnotationTypeElementDeclarationContext.class); + } + public AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration(int i) { + return getRuleContext(AnnotationTypeElementDeclarationContext.class,i); + } + public AnnotationTypeBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationTypeBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationTypeBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationTypeBody(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationTypeBodyContext annotationTypeBody() throws RecognitionException { + AnnotationTypeBodyContext _localctx = new AnnotationTypeBodyContext(_ctx, getState()); + enterRule(_localctx, 136, RULE_annotationTypeBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(918); + match(LBRACE); + setState(922); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -806529426349675L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141660702539773L) != 0)) { + { + { + setState(919); + annotationTypeElementDeclaration(); + } + } + setState(924); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(925); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeElementDeclarationContext extends ParserRuleContext { + public AnnotationTypeElementRestContext annotationTypeElementRest() { + return getRuleContext(AnnotationTypeElementRestContext.class,0); + } + public List modifier() { + return getRuleContexts(ModifierContext.class); + } + public ModifierContext modifier(int i) { + return getRuleContext(ModifierContext.class,i); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public AnnotationTypeElementDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeElementDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationTypeElementDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationTypeElementDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationTypeElementDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationTypeElementDeclarationContext annotationTypeElementDeclaration() throws RecognitionException { + AnnotationTypeElementDeclarationContext _localctx = new AnnotationTypeElementDeclarationContext(_ctx, getState()); + enterRule(_localctx, 138, RULE_annotationTypeElementDeclaration); + try { + int _alt; + setState(935); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,106,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(930); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,105,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(927); + modifier(); + } + } + } + setState(932); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,105,_ctx); + } + setState(933); + annotationTypeElementRest(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(934); + match(SEMI); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationTypeElementRestContext extends ParserRuleContext { + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() { + return getRuleContext(AnnotationMethodOrConstantRestContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public ClassOrInterfaceContext classOrInterface() { + return getRuleContext(ClassOrInterfaceContext.class,0); + } + public AnnotationTypeElementRestContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationTypeElementRest; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationTypeElementRest(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationTypeElementRest(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationTypeElementRest(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationTypeElementRestContext annotationTypeElementRest() throws RecognitionException { + AnnotationTypeElementRestContext _localctx = new AnnotationTypeElementRestContext(_ctx, getState()); + enterRule(_localctx, 140, RULE_annotationTypeElementRest); + try { + setState(945); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,108,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(937); + typeType(); + setState(938); + annotationMethodOrConstantRest(); + setState(939); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(941); + classOrInterface(); + setState(943); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,107,_ctx) ) { + case 1: + { + setState(942); + match(SEMI); + } + break; + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationMethodOrConstantRestContext extends ParserRuleContext { + public AnnotationMethodRestContext annotationMethodRest() { + return getRuleContext(AnnotationMethodRestContext.class,0); + } + public AnnotationConstantRestContext annotationConstantRest() { + return getRuleContext(AnnotationConstantRestContext.class,0); + } + public AnnotationMethodOrConstantRestContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationMethodOrConstantRest; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationMethodOrConstantRest(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationMethodOrConstantRest(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationMethodOrConstantRest(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationMethodOrConstantRestContext annotationMethodOrConstantRest() throws RecognitionException { + AnnotationMethodOrConstantRestContext _localctx = new AnnotationMethodOrConstantRestContext(_ctx, getState()); + enterRule(_localctx, 142, RULE_annotationMethodOrConstantRest); + try { + setState(949); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,109,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(947); + annotationMethodRest(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(948); + annotationConstantRest(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationMethodRestContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public DefaultValueContext defaultValue() { + return getRuleContext(DefaultValueContext.class,0); + } + public AnnotationMethodRestContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationMethodRest; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationMethodRest(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationMethodRest(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationMethodRest(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationMethodRestContext annotationMethodRest() throws RecognitionException { + AnnotationMethodRestContext _localctx = new AnnotationMethodRestContext(_ctx, getState()); + enterRule(_localctx, 144, RULE_annotationMethodRest); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(951); + identifier(); + setState(952); + match(LPAREN); + setState(953); + match(RPAREN); + setState(955); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==DEFAULT) { + { + setState(954); + defaultValue(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class AnnotationConstantRestContext extends ParserRuleContext { + public VariableDeclaratorsContext variableDeclarators() { + return getRuleContext(VariableDeclaratorsContext.class,0); + } + public AnnotationConstantRestContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_annotationConstantRest; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAnnotationConstantRest(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAnnotationConstantRest(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAnnotationConstantRest(this); + else return visitor.visitChildren(this); + } + } + + public final AnnotationConstantRestContext annotationConstantRest() throws RecognitionException { + AnnotationConstantRestContext _localctx = new AnnotationConstantRestContext(_ctx, getState()); + enterRule(_localctx, 146, RULE_annotationConstantRest); + try { + enterOuterAlt(_localctx, 1); + { + setState(957); + variableDeclarators(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class DefaultValueContext extends ParserRuleContext { + public TerminalNode DEFAULT() { return getToken(Java17Parser.DEFAULT, 0); } + public ElementValueContext elementValue() { + return getRuleContext(ElementValueContext.class,0); + } + public DefaultValueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_defaultValue; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterDefaultValue(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitDefaultValue(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitDefaultValue(this); + else return visitor.visitChildren(this); + } + } + + public final DefaultValueContext defaultValue() throws RecognitionException { + DefaultValueContext _localctx = new DefaultValueContext(_ctx, getState()); + enterRule(_localctx, 148, RULE_defaultValue); + try { + enterOuterAlt(_localctx, 1); + { + setState(959); + match(DEFAULT); + setState(960); + elementValue(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ModuleDeclarationContext extends ParserRuleContext { + public TerminalNode MODULE() { return getToken(Java17Parser.MODULE, 0); } + public QualifiedNameContext qualifiedName() { + return getRuleContext(QualifiedNameContext.class,0); + } + public ModuleBodyContext moduleBody() { + return getRuleContext(ModuleBodyContext.class,0); + } + public TerminalNode OPEN() { return getToken(Java17Parser.OPEN, 0); } + public ModuleDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_moduleDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterModuleDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitModuleDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitModuleDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final ModuleDeclarationContext moduleDeclaration() throws RecognitionException { + ModuleDeclarationContext _localctx = new ModuleDeclarationContext(_ctx, getState()); + enterRule(_localctx, 150, RULE_moduleDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(963); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==OPEN) { + { + setState(962); + match(OPEN); + } + } + + setState(965); + match(MODULE); + setState(966); + qualifiedName(); + setState(967); + moduleBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ModuleBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List moduleDirective() { + return getRuleContexts(ModuleDirectiveContext.class); + } + public ModuleDirectiveContext moduleDirective(int i) { + return getRuleContext(ModuleDirectiveContext.class,i); + } + public ModuleBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_moduleBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterModuleBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitModuleBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitModuleBody(this); + else return visitor.visitChildren(this); + } + } + + public final ModuleBodyContext moduleBody() throws RecognitionException { + ModuleBodyContext _localctx = new ModuleBodyContext(_ctx, getState()); + enterRule(_localctx, 152, RULE_moduleBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(969); + match(LBRACE); + setState(973); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 495395959010754560L) != 0)) { + { + { + setState(970); + moduleDirective(); + } + } + setState(975); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(976); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ModuleDirectiveContext extends ParserRuleContext { + public TerminalNode REQUIRES() { return getToken(Java17Parser.REQUIRES, 0); } + public List qualifiedName() { + return getRuleContexts(QualifiedNameContext.class); + } + public QualifiedNameContext qualifiedName(int i) { + return getRuleContext(QualifiedNameContext.class,i); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public List requiresModifier() { + return getRuleContexts(RequiresModifierContext.class); + } + public RequiresModifierContext requiresModifier(int i) { + return getRuleContext(RequiresModifierContext.class,i); + } + public TerminalNode EXPORTS() { return getToken(Java17Parser.EXPORTS, 0); } + public TerminalNode TO() { return getToken(Java17Parser.TO, 0); } + public TerminalNode OPENS() { return getToken(Java17Parser.OPENS, 0); } + public TerminalNode USES() { return getToken(Java17Parser.USES, 0); } + public TerminalNode PROVIDES() { return getToken(Java17Parser.PROVIDES, 0); } + public TerminalNode WITH() { return getToken(Java17Parser.WITH, 0); } + public ModuleDirectiveContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_moduleDirective; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterModuleDirective(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitModuleDirective(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitModuleDirective(this); + else return visitor.visitChildren(this); + } + } + + public final ModuleDirectiveContext moduleDirective() throws RecognitionException { + ModuleDirectiveContext _localctx = new ModuleDirectiveContext(_ctx, getState()); + enterRule(_localctx, 154, RULE_moduleDirective); + int _la; + try { + int _alt; + setState(1014); + _errHandler.sync(this); + switch (_input.LA(1)) { + case REQUIRES: + enterOuterAlt(_localctx, 1); + { + setState(978); + match(REQUIRES); + setState(982); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,113,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(979); + requiresModifier(); + } + } + } + setState(984); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,113,_ctx); + } + setState(985); + qualifiedName(); + setState(986); + match(SEMI); + } + break; + case EXPORTS: + enterOuterAlt(_localctx, 2); + { + setState(988); + match(EXPORTS); + setState(989); + qualifiedName(); + setState(992); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TO) { + { + setState(990); + match(TO); + setState(991); + qualifiedName(); + } + } + + setState(994); + match(SEMI); + } + break; + case OPENS: + enterOuterAlt(_localctx, 3); + { + setState(996); + match(OPENS); + setState(997); + qualifiedName(); + setState(1000); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==TO) { + { + setState(998); + match(TO); + setState(999); + qualifiedName(); + } + } + + setState(1002); + match(SEMI); + } + break; + case USES: + enterOuterAlt(_localctx, 4); + { + setState(1004); + match(USES); + setState(1005); + qualifiedName(); + setState(1006); + match(SEMI); + } + break; + case PROVIDES: + enterOuterAlt(_localctx, 5); + { + setState(1008); + match(PROVIDES); + setState(1009); + qualifiedName(); + setState(1010); + match(WITH); + setState(1011); + qualifiedName(); + setState(1012); + match(SEMI); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RequiresModifierContext extends ParserRuleContext { + public TerminalNode TRANSITIVE() { return getToken(Java17Parser.TRANSITIVE, 0); } + public TerminalNode STATIC() { return getToken(Java17Parser.STATIC, 0); } + public RequiresModifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_requiresModifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRequiresModifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRequiresModifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRequiresModifier(this); + else return visitor.visitChildren(this); + } + } + + public final RequiresModifierContext requiresModifier() throws RecognitionException { + RequiresModifierContext _localctx = new RequiresModifierContext(_ctx, getState()); + enterRule(_localctx, 156, RULE_requiresModifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1016); + _la = _input.LA(1); + if ( !(_la==STATIC || _la==TRANSITIVE) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordDeclarationContext extends ParserRuleContext { + public TerminalNode RECORD() { return getToken(Java17Parser.RECORD, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public RecordHeaderContext recordHeader() { + return getRuleContext(RecordHeaderContext.class,0); + } + public RecordBodyContext recordBody() { + return getRuleContext(RecordBodyContext.class,0); + } + public GenericDeclarationListContext genericDeclarationList() { + return getRuleContext(GenericDeclarationListContext.class,0); + } + public TerminalNode IMPLEMENTS() { return getToken(Java17Parser.IMPLEMENTS, 0); } + public TypeListContext typeList() { + return getRuleContext(TypeListContext.class,0); + } + public RecordDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final RecordDeclarationContext recordDeclaration() throws RecognitionException { + RecordDeclarationContext _localctx = new RecordDeclarationContext(_ctx, getState()); + enterRule(_localctx, 158, RULE_recordDeclaration); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1018); + match(RECORD); + setState(1019); + identifier(); + setState(1021); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1020); + genericDeclarationList(); + } + } + + setState(1023); + recordHeader(); + setState(1026); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==IMPLEMENTS) { + { + setState(1024); + match(IMPLEMENTS); + setState(1025); + typeList(); + } + } + + setState(1028); + recordBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordHeaderContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public RecordComponentListContext recordComponentList() { + return getRuleContext(RecordComponentListContext.class,0); + } + public RecordHeaderContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordHeader; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordHeader(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordHeader(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordHeader(this); + else return visitor.visitChildren(this); + } + } + + public final RecordHeaderContext recordHeader() throws RecognitionException { + RecordHeaderContext _localctx = new RecordHeaderContext(_ctx, getState()); + enterRule(_localctx, 160, RULE_recordHeader); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1030); + match(LPAREN); + setState(1032); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223090579141953573L) != 0) || _la==AT || _la==IDENTIFIER) { + { + setState(1031); + recordComponentList(); + } + } + + setState(1034); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordComponentListContext extends ParserRuleContext { + public List recordComponent() { + return getRuleContexts(RecordComponentContext.class); + } + public RecordComponentContext recordComponent(int i) { + return getRuleContext(RecordComponentContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public RecordComponentListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordComponentList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordComponentList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordComponentList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordComponentList(this); + else return visitor.visitChildren(this); + } + } + + public final RecordComponentListContext recordComponentList() throws RecognitionException { + RecordComponentListContext _localctx = new RecordComponentListContext(_ctx, getState()); + enterRule(_localctx, 162, RULE_recordComponentList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1036); + recordComponent(); + setState(1041); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1037); + match(COMMA); + setState(1038); + recordComponent(); + } + } + setState(1043); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordComponentContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public RecordComponentContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordComponent; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordComponent(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordComponent(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordComponent(this); + else return visitor.visitChildren(this); + } + } + + public final RecordComponentContext recordComponent() throws RecognitionException { + RecordComponentContext _localctx = new RecordComponentContext(_ctx, getState()); + enterRule(_localctx, 164, RULE_recordComponent); + try { + enterOuterAlt(_localctx, 1); + { + setState(1045); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,121,_ctx) ) { + case 1: + { + setState(1044); + typeType(); + } + break; + } + setState(1047); + identifier(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordBodyContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List classBodyDeclaration() { + return getRuleContexts(ClassBodyDeclarationContext.class); + } + public ClassBodyDeclarationContext classBodyDeclaration(int i) { + return getRuleContext(ClassBodyDeclarationContext.class,i); + } + public RecordBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordBody(this); + else return visitor.visitChildren(this); + } + } + + public final RecordBodyContext recordBody() throws RecognitionException { + RecordBodyContext _localctx = new RecordBodyContext(_ctx, getState()); + enterRule(_localctx, 166, RULE_recordBody); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1049); + match(LBRACE); + setState(1053); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -665791937994347L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141660685729789L) != 0)) { + { + { + setState(1050); + classBodyDeclaration(); + } + } + setState(1055); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1056); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BlockContext extends ParserRuleContext { + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List blockStatement() { + return getRuleContexts(BlockStatementContext.class); + } + public BlockStatementContext blockStatement(int i) { + return getRuleContext(BlockStatementContext.class,i); + } + public BlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_block; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBlock(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBlock(this); + else return visitor.visitChildren(this); + } + } + + public final BlockContext block() throws RecognitionException { + BlockContext _localctx = new BlockContext(_ctx, getState()); + enterRule(_localctx, 168, RULE_block); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1058); + match(LBRACE); + setState(1062); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -334254282492513L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141145188974593L) != 0)) { + { + { + setState(1059); + blockStatement(); + } + } + setState(1064); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1065); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class BlockStatementContext extends ParserRuleContext { + public LocalVariableDeclarationContext localVariableDeclaration() { + return getRuleContext(LocalVariableDeclarationContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public LocalTypeDeclarationContext localTypeDeclaration() { + return getRuleContext(LocalTypeDeclarationContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public BlockStatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_blockStatement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBlockStatement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBlockStatement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBlockStatement(this); + else return visitor.visitChildren(this); + } + } + + public final BlockStatementContext blockStatement() throws RecognitionException { + BlockStatementContext _localctx = new BlockStatementContext(_ctx, getState()); + enterRule(_localctx, 170, RULE_blockStatement); + try { + setState(1072); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,124,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1067); + localVariableDeclaration(); + setState(1068); + match(SEMI); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1070); + localTypeDeclaration(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1071); + statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocalVariableDeclarationContext extends ParserRuleContext { + public VariableDeclaratorsContext variableDeclarators() { + return getRuleContext(VariableDeclaratorsContext.class,0); + } + public TerminalNode VAR() { return getToken(Java17Parser.VAR, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public LocalVariableDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localVariableDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLocalVariableDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLocalVariableDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLocalVariableDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final LocalVariableDeclarationContext localVariableDeclaration() throws RecognitionException { + LocalVariableDeclarationContext _localctx = new LocalVariableDeclarationContext(_ctx, getState()); + enterRule(_localctx, 172, RULE_localVariableDeclaration); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1077); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,125,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1074); + variableModifier(); + } + } + } + setState(1079); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,125,_ctx); + } + setState(1082); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,126,_ctx) ) { + case 1: + { + setState(1080); + match(VAR); + } + break; + case 2: + { + setState(1081); + typeType(); + } + break; + } + setState(1084); + variableDeclarators(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class IdentifierContext extends ParserRuleContext { + public TerminalNode IDENTIFIER() { return getToken(Java17Parser.IDENTIFIER, 0); } + public TerminalNode MODULE() { return getToken(Java17Parser.MODULE, 0); } + public TerminalNode OPEN() { return getToken(Java17Parser.OPEN, 0); } + public TerminalNode REQUIRES() { return getToken(Java17Parser.REQUIRES, 0); } + public TerminalNode EXPORTS() { return getToken(Java17Parser.EXPORTS, 0); } + public TerminalNode OPENS() { return getToken(Java17Parser.OPENS, 0); } + public TerminalNode TO() { return getToken(Java17Parser.TO, 0); } + public TerminalNode USES() { return getToken(Java17Parser.USES, 0); } + public TerminalNode PROVIDES() { return getToken(Java17Parser.PROVIDES, 0); } + public TerminalNode WITH() { return getToken(Java17Parser.WITH, 0); } + public TerminalNode TRANSITIVE() { return getToken(Java17Parser.TRANSITIVE, 0); } + public TerminalNode YIELD() { return getToken(Java17Parser.YIELD, 0); } + public TerminalNode SEALED() { return getToken(Java17Parser.SEALED, 0); } + public TerminalNode PERMITS() { return getToken(Java17Parser.PERMITS, 0); } + public TerminalNode RECORD() { return getToken(Java17Parser.RECORD, 0); } + public TerminalNode VAR() { return getToken(Java17Parser.VAR, 0); } + public IdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_identifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitIdentifier(this); + else return visitor.visitChildren(this); + } + } + + public final IdentifierContext identifier() throws RecognitionException { + IdentifierContext _localctx = new IdentifierContext(_ctx, getState()); + enterRule(_localctx, 174, RULE_identifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1086); + _la = _input.LA(1); + if ( !(((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==IDENTIFIER) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeIdentifierContext extends ParserRuleContext { + public TerminalNode IDENTIFIER() { return getToken(Java17Parser.IDENTIFIER, 0); } + public TerminalNode MODULE() { return getToken(Java17Parser.MODULE, 0); } + public TerminalNode OPEN() { return getToken(Java17Parser.OPEN, 0); } + public TerminalNode REQUIRES() { return getToken(Java17Parser.REQUIRES, 0); } + public TerminalNode EXPORTS() { return getToken(Java17Parser.EXPORTS, 0); } + public TerminalNode OPENS() { return getToken(Java17Parser.OPENS, 0); } + public TerminalNode TO() { return getToken(Java17Parser.TO, 0); } + public TerminalNode USES() { return getToken(Java17Parser.USES, 0); } + public TerminalNode PROVIDES() { return getToken(Java17Parser.PROVIDES, 0); } + public TerminalNode WITH() { return getToken(Java17Parser.WITH, 0); } + public TerminalNode TRANSITIVE() { return getToken(Java17Parser.TRANSITIVE, 0); } + public TerminalNode SEALED() { return getToken(Java17Parser.SEALED, 0); } + public TerminalNode PERMITS() { return getToken(Java17Parser.PERMITS, 0); } + public TerminalNode RECORD() { return getToken(Java17Parser.RECORD, 0); } + public TypeIdentifierContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeIdentifier; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypeIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypeIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypeIdentifier(this); + else return visitor.visitChildren(this); + } + } + + public final TypeIdentifierContext typeIdentifier() throws RecognitionException { + TypeIdentifierContext _localctx = new TypeIdentifierContext(_ctx, getState()); + enterRule(_localctx, 176, RULE_typeIdentifier); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1088); + _la = _input.LA(1); + if ( !(((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 29695L) != 0) || _la==IDENTIFIER) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LocalTypeDeclarationContext extends ParserRuleContext { + public ClassDeclarationContext classDeclaration() { + return getRuleContext(ClassDeclarationContext.class,0); + } + public InterfaceDeclarationContext interfaceDeclaration() { + return getRuleContext(InterfaceDeclarationContext.class,0); + } + public RecordDeclarationContext recordDeclaration() { + return getRuleContext(RecordDeclarationContext.class,0); + } + public List classOrInterfaceModifier() { + return getRuleContexts(ClassOrInterfaceModifierContext.class); + } + public ClassOrInterfaceModifierContext classOrInterfaceModifier(int i) { + return getRuleContext(ClassOrInterfaceModifierContext.class,i); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public LocalTypeDeclarationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_localTypeDeclaration; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLocalTypeDeclaration(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLocalTypeDeclaration(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLocalTypeDeclaration(this); + else return visitor.visitChildren(this); + } + } + + public final LocalTypeDeclarationContext localTypeDeclaration() throws RecognitionException { + LocalTypeDeclarationContext _localctx = new LocalTypeDeclarationContext(_ctx, getState()); + enterRule(_localctx, 178, RULE_localTypeDeclaration); + try { + int _alt; + setState(1102); + _errHandler.sync(this); + switch (_input.LA(1)) { + case ABSTRACT: + case CLASS: + case FINAL: + case INTERFACE: + case PRIVATE: + case PROTECTED: + case PUBLIC: + case STATIC: + case STRICTFP: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case NON_SEALED: + case AT: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(1093); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,127,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1090); + classOrInterfaceModifier(); + } + } + } + setState(1095); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,127,_ctx); + } + setState(1099); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CLASS: + { + setState(1096); + classDeclaration(); + } + break; + case INTERFACE: + { + setState(1097); + interfaceDeclaration(); + } + break; + case RECORD: + { + setState(1098); + recordDeclaration(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case SEMI: + enterOuterAlt(_localctx, 2); + { + setState(1101); + match(SEMI); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class StatementContext extends ParserRuleContext { + public StatementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_statement; } + + public StatementContext() { } + public void copyFrom(StatementContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class StmtexpressionContext extends StatementContext { + public ExpressionContext statementExpression; + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public StmtexpressionContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterStmtexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitStmtexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitStmtexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AssertstmtContext extends StatementContext { + public TerminalNode ASSERT() { return getToken(Java17Parser.ASSERT, 0); } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public AssertstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAssertstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAssertstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAssertstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ThrowstmtContext extends StatementContext { + public TerminalNode THROW() { return getToken(Java17Parser.THROW, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public ThrowstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterThrowstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitThrowstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitThrowstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TrycatchblockContext extends StatementContext { + public TerminalNode TRY() { return getToken(Java17Parser.TRY, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public FinallyBlockContext finallyBlock() { + return getRuleContext(FinallyBlockContext.class,0); + } + public List catchClause() { + return getRuleContexts(CatchClauseContext.class); + } + public CatchClauseContext catchClause(int i) { + return getRuleContext(CatchClauseContext.class,i); + } + public TrycatchblockContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTrycatchblock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTrycatchblock(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTrycatchblock(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SynchronizedstmtContext extends StatementContext { + public TerminalNode SYNCHRONIZED() { return getToken(Java17Parser.SYNCHRONIZED, 0); } + public ParExpressionContext parExpression() { + return getRuleContext(ParExpressionContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public SynchronizedstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSynchronizedstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSynchronizedstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSynchronizedstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SwitchstmtContext extends StatementContext { + public TerminalNode SWITCH() { return getToken(Java17Parser.SWITCH, 0); } + public ParExpressionContext parExpression() { + return getRuleContext(ParExpressionContext.class,0); + } + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List switchBlockStatementGroup() { + return getRuleContexts(SwitchBlockStatementGroupContext.class); + } + public SwitchBlockStatementGroupContext switchBlockStatementGroup(int i) { + return getRuleContext(SwitchBlockStatementGroupContext.class,i); + } + public List switchLabel() { + return getRuleContexts(SwitchLabelContext.class); + } + public SwitchLabelContext switchLabel(int i) { + return getRuleContext(SwitchLabelContext.class,i); + } + public SwitchstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BreakstmtContext extends StatementContext { + public TerminalNode BREAK() { return getToken(Java17Parser.BREAK, 0); } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public BreakstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBreakstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBreakstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBreakstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SemistmtContext extends StatementContext { + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public SemistmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSemistmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSemistmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSemistmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ContinuestmtContext extends StatementContext { + public TerminalNode CONTINUE() { return getToken(Java17Parser.CONTINUE, 0); } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ContinuestmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterContinuestmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitContinuestmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitContinuestmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class WhileloopContext extends StatementContext { + public TerminalNode WHILE() { return getToken(Java17Parser.WHILE, 0); } + public ParExpressionContext parExpression() { + return getRuleContext(ParExpressionContext.class,0); + } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public WhileloopContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterWhileloop(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitWhileloop(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitWhileloop(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabeledstmtContext extends StatementContext { + public IdentifierContext identifierLabel; + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public LabeledstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLabeledstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLabeledstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLabeledstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ForloopContext extends StatementContext { + public TerminalNode FOR() { return getToken(Java17Parser.FOR, 0); } + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public ForControlContext forControl() { + return getRuleContext(ForControlContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public ForloopContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterForloop(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitForloop(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitForloop(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TrycatchresourceContext extends StatementContext { + public TerminalNode TRY() { return getToken(Java17Parser.TRY, 0); } + public ResourceSpecificationContext resourceSpecification() { + return getRuleContext(ResourceSpecificationContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public List catchClause() { + return getRuleContexts(CatchClauseContext.class); + } + public CatchClauseContext catchClause(int i) { + return getRuleContext(CatchClauseContext.class,i); + } + public FinallyBlockContext finallyBlock() { + return getRuleContext(FinallyBlockContext.class,0); + } + public TrycatchresourceContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTrycatchresource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTrycatchresource(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTrycatchresource(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ConditionalstmtContext extends StatementContext { + public TerminalNode IF() { return getToken(Java17Parser.IF, 0); } + public ParExpressionContext parExpression() { + return getRuleContext(ParExpressionContext.class,0); + } + public List statement() { + return getRuleContexts(StatementContext.class); + } + public StatementContext statement(int i) { + return getRuleContext(StatementContext.class,i); + } + public TerminalNode ELSE() { return getToken(Java17Parser.ELSE, 0); } + public ConditionalstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterConditionalstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitConditionalstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitConditionalstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class DowhileloopContext extends StatementContext { + public TerminalNode DO() { return getToken(Java17Parser.DO, 0); } + public StatementContext statement() { + return getRuleContext(StatementContext.class,0); + } + public TerminalNode WHILE() { return getToken(Java17Parser.WHILE, 0); } + public ParExpressionContext parExpression() { + return getRuleContext(ParExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public DowhileloopContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterDowhileloop(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitDowhileloop(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitDowhileloop(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ReturnstmtContext extends StatementContext { + public TerminalNode RETURN() { return getToken(Java17Parser.RETURN, 0); } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ReturnstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterReturnstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitReturnstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitReturnstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BlockstmtContext extends StatementContext { + public BlockContext blockLabel; + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public BlockstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBlockstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBlockstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBlockstmt(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class YieldstmtContext extends StatementContext { + public TerminalNode YIELD() { return getToken(Java17Parser.YIELD, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public YieldstmtContext(StatementContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterYieldstmt(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitYieldstmt(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitYieldstmt(this); + else return visitor.visitChildren(this); + } + } + + public final StatementContext statement() throws RecognitionException { + StatementContext _localctx = new StatementContext(_ctx, getState()); + enterRule(_localctx, 180, RULE_statement); + int _la; + try { + int _alt; + setState(1213); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,142,_ctx) ) { + case 1: + _localctx = new BlockstmtContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1104); + ((BlockstmtContext)_localctx).blockLabel = block(); + } + break; + case 2: + _localctx = new AssertstmtContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1105); + match(ASSERT); + setState(1106); + expression(0); + setState(1109); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==COLON) { + { + setState(1107); + match(COLON); + setState(1108); + expression(0); + } + } + + setState(1111); + match(SEMI); + } + break; + case 3: + _localctx = new ConditionalstmtContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1113); + match(IF); + setState(1114); + parExpression(); + setState(1115); + statement(); + setState(1118); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,131,_ctx) ) { + case 1: + { + setState(1116); + match(ELSE); + setState(1117); + statement(); + } + break; + } + } + break; + case 4: + _localctx = new ForloopContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1120); + match(FOR); + setState(1121); + match(LPAREN); + setState(1122); + forControl(); + setState(1123); + match(RPAREN); + setState(1124); + statement(); + } + break; + case 5: + _localctx = new WhileloopContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1126); + match(WHILE); + setState(1127); + parExpression(); + setState(1128); + statement(); + } + break; + case 6: + _localctx = new DowhileloopContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(1130); + match(DO); + setState(1131); + statement(); + setState(1132); + match(WHILE); + setState(1133); + parExpression(); + setState(1134); + match(SEMI); + } + break; + case 7: + _localctx = new TrycatchblockContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(1136); + match(TRY); + setState(1137); + block(); + setState(1147); + _errHandler.sync(this); + switch (_input.LA(1)) { + case CATCH: + { + setState(1139); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1138); + catchClause(); + } + } + setState(1141); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CATCH ); + setState(1144); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINALLY) { + { + setState(1143); + finallyBlock(); + } + } + + } + break; + case FINALLY: + { + setState(1146); + finallyBlock(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 8: + _localctx = new TrycatchresourceContext(_localctx); + enterOuterAlt(_localctx, 8); + { + setState(1149); + match(TRY); + setState(1150); + resourceSpecification(); + setState(1151); + block(); + setState(1155); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CATCH) { + { + { + setState(1152); + catchClause(); + } + } + setState(1157); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1159); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==FINALLY) { + { + setState(1158); + finallyBlock(); + } + } + + } + break; + case 9: + _localctx = new SwitchstmtContext(_localctx); + enterOuterAlt(_localctx, 9); + { + setState(1161); + match(SWITCH); + setState(1162); + parExpression(); + setState(1163); + match(LBRACE); + setState(1167); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,137,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1164); + switchBlockStatementGroup(); + } + } + } + setState(1169); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,137,_ctx); + } + setState(1173); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1170); + switchLabel(); + } + } + setState(1175); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1176); + match(RBRACE); + } + break; + case 10: + _localctx = new SynchronizedstmtContext(_localctx); + enterOuterAlt(_localctx, 10); + { + setState(1178); + match(SYNCHRONIZED); + setState(1179); + parExpression(); + setState(1180); + block(); + } + break; + case 11: + _localctx = new ReturnstmtContext(_localctx); + enterOuterAlt(_localctx, 11); + { + setState(1182); + match(RETURN); + setState(1184); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1183); + expression(0); + } + } + + setState(1186); + match(SEMI); + } + break; + case 12: + _localctx = new ThrowstmtContext(_localctx); + enterOuterAlt(_localctx, 12); + { + setState(1187); + match(THROW); + setState(1188); + expression(0); + setState(1189); + match(SEMI); + } + break; + case 13: + _localctx = new BreakstmtContext(_localctx); + enterOuterAlt(_localctx, 13); + { + setState(1191); + match(BREAK); + setState(1193); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==IDENTIFIER) { + { + setState(1192); + identifier(); + } + } + + setState(1195); + match(SEMI); + } + break; + case 14: + _localctx = new ContinuestmtContext(_localctx); + enterOuterAlt(_localctx, 14); + { + setState(1196); + match(CONTINUE); + setState(1198); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==IDENTIFIER) { + { + setState(1197); + identifier(); + } + } + + setState(1200); + match(SEMI); + } + break; + case 15: + _localctx = new YieldstmtContext(_localctx); + enterOuterAlt(_localctx, 15); + { + setState(1201); + match(YIELD); + setState(1202); + expression(0); + setState(1203); + match(SEMI); + } + break; + case 16: + _localctx = new SemistmtContext(_localctx); + enterOuterAlt(_localctx, 16); + { + setState(1205); + match(SEMI); + } + break; + case 17: + _localctx = new StmtexpressionContext(_localctx); + enterOuterAlt(_localctx, 17); + { + setState(1206); + ((StmtexpressionContext)_localctx).statementExpression = expression(0); + setState(1207); + match(SEMI); + } + break; + case 18: + _localctx = new LabeledstmtContext(_localctx); + enterOuterAlt(_localctx, 18); + { + setState(1209); + ((LabeledstmtContext)_localctx).identifierLabel = identifier(); + setState(1210); + match(COLON); + setState(1211); + statement(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchClauseContext extends ParserRuleContext { + public TerminalNode CATCH() { return getToken(Java17Parser.CATCH, 0); } + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public CatchTypeContext catchType() { + return getRuleContext(CatchTypeContext.class,0); + } + public CatchClauseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catchClause; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterCatchClause(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitCatchClause(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitCatchClause(this); + else return visitor.visitChildren(this); + } + } + + public final CatchClauseContext catchClause() throws RecognitionException { + CatchClauseContext _localctx = new CatchClauseContext(_ctx, getState()); + enterRule(_localctx, 182, RULE_catchClause); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1215); + match(CATCH); + setState(1216); + match(LPAREN); + setState(1220); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,143,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1217); + variableModifier(); + } + } + } + setState(1222); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,143,_ctx); + } + setState(1224); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,144,_ctx) ) { + case 1: + { + setState(1223); + catchType(); + } + break; + } + setState(1226); + identifier(); + setState(1227); + match(RPAREN); + setState(1228); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CatchTypeContext extends ParserRuleContext { + public List qualifiedName() { + return getRuleContexts(QualifiedNameContext.class); + } + public QualifiedNameContext qualifiedName(int i) { + return getRuleContext(QualifiedNameContext.class,i); + } + public List BITOR() { return getTokens(Java17Parser.BITOR); } + public TerminalNode BITOR(int i) { + return getToken(Java17Parser.BITOR, i); + } + public CatchTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_catchType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterCatchType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitCatchType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitCatchType(this); + else return visitor.visitChildren(this); + } + } + + public final CatchTypeContext catchType() throws RecognitionException { + CatchTypeContext _localctx = new CatchTypeContext(_ctx, getState()); + enterRule(_localctx, 184, RULE_catchType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1230); + qualifiedName(); + setState(1235); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITOR) { + { + { + setState(1231); + match(BITOR); + setState(1232); + qualifiedName(); + } + } + setState(1237); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class FinallyBlockContext extends ParserRuleContext { + public TerminalNode FINALLY() { return getToken(Java17Parser.FINALLY, 0); } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public FinallyBlockContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_finallyBlock; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterFinallyBlock(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitFinallyBlock(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitFinallyBlock(this); + else return visitor.visitChildren(this); + } + } + + public final FinallyBlockContext finallyBlock() throws RecognitionException { + FinallyBlockContext _localctx = new FinallyBlockContext(_ctx, getState()); + enterRule(_localctx, 186, RULE_finallyBlock); + try { + enterOuterAlt(_localctx, 1); + { + setState(1238); + match(FINALLY); + setState(1239); + block(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceSpecificationContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public ResourcesContext resources() { + return getRuleContext(ResourcesContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public ResourceSpecificationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resourceSpecification; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterResourceSpecification(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitResourceSpecification(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitResourceSpecification(this); + else return visitor.visitChildren(this); + } + } + + public final ResourceSpecificationContext resourceSpecification() throws RecognitionException { + ResourceSpecificationContext _localctx = new ResourceSpecificationContext(_ctx, getState()); + enterRule(_localctx, 188, RULE_resourceSpecification); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1241); + match(LPAREN); + setState(1242); + resources(); + setState(1244); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==SEMI) { + { + setState(1243); + match(SEMI); + } + } + + setState(1246); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourcesContext extends ParserRuleContext { + public List resource() { + return getRuleContexts(ResourceContext.class); + } + public ResourceContext resource(int i) { + return getRuleContext(ResourceContext.class,i); + } + public List SEMI() { return getTokens(Java17Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java17Parser.SEMI, i); + } + public ResourcesContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resources; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterResources(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitResources(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitResources(this); + else return visitor.visitChildren(this); + } + } + + public final ResourcesContext resources() throws RecognitionException { + ResourcesContext _localctx = new ResourcesContext(_ctx, getState()); + enterRule(_localctx, 190, RULE_resources); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1248); + resource(); + setState(1253); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,147,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1249); + match(SEMI); + setState(1250); + resource(); + } + } + } + setState(1255); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,147,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ResourceContext extends ParserRuleContext { + public TerminalNode ASSIGN() { return getToken(Java17Parser.ASSIGN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode VAR() { return getToken(Java17Parser.VAR, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public ClassOrInterfaceTypeContext classOrInterfaceType() { + return getRuleContext(ClassOrInterfaceTypeContext.class,0); + } + public ResourceContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_resource; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterResource(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitResource(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitResource(this); + else return visitor.visitChildren(this); + } + } + + public final ResourceContext resource() throws RecognitionException { + ResourceContext _localctx = new ResourceContext(_ctx, getState()); + enterRule(_localctx, 192, RULE_resource); + try { + int _alt; + setState(1274); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,151,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1259); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,148,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1256); + variableModifier(); + } + } + } + setState(1261); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,148,_ctx); + } + setState(1268); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,150,_ctx) ) { + case 1: + { + setState(1263); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,149,_ctx) ) { + case 1: + { + setState(1262); + classOrInterfaceType(); + } + break; + } + setState(1265); + variableDeclaratorId(); + } + break; + case 2: + { + setState(1266); + match(VAR); + setState(1267); + identifier(); + } + break; + } + setState(1270); + match(ASSIGN); + setState(1271); + expression(0); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1273); + identifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchBlockStatementGroupContext extends ParserRuleContext { + public List switchLabel() { + return getRuleContexts(SwitchLabelContext.class); + } + public SwitchLabelContext switchLabel(int i) { + return getRuleContext(SwitchLabelContext.class,i); + } + public List blockStatement() { + return getRuleContexts(BlockStatementContext.class); + } + public BlockStatementContext blockStatement(int i) { + return getRuleContext(BlockStatementContext.class,i); + } + public SwitchBlockStatementGroupContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchBlockStatementGroup; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchBlockStatementGroup(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchBlockStatementGroup(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchBlockStatementGroup(this); + else return visitor.visitChildren(this); + } + } + + public final SwitchBlockStatementGroupContext switchBlockStatementGroup() throws RecognitionException { + SwitchBlockStatementGroupContext _localctx = new SwitchBlockStatementGroupContext(_ctx, getState()); + enterRule(_localctx, 194, RULE_switchBlockStatementGroup); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1277); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1276); + switchLabel(); + } + } + setState(1279); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==CASE || _la==DEFAULT ); + setState(1282); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(1281); + blockStatement(); + } + } + setState(1284); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( ((((_la - 1)) & ~0x3f) == 0 && ((1L << (_la - 1)) & -334254282492513L) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & -8935141145188974593L) != 0) ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelContext extends ParserRuleContext { + public SwitchLabelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchLabel; } + + public SwitchLabelContext() { } + public void copyFrom(SwitchLabelContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelPatternContext extends SwitchLabelContext { + public TerminalNode CASE() { return getToken(Java17Parser.CASE, 0); } + public PatternContext pattern() { + return getRuleContext(PatternContext.class,0); + } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public SwitchLabelPatternContext(SwitchLabelContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchLabelPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchLabelPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchLabelPattern(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelConstContext extends SwitchLabelContext { + public ExpressionContext constantExpression; + public TerminalNode CASE() { return getToken(Java17Parser.CASE, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public SwitchLabelConstContext(SwitchLabelContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchLabelConst(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchLabelConst(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchLabelConst(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelDefaultContext extends SwitchLabelContext { + public TerminalNode DEFAULT() { return getToken(Java17Parser.DEFAULT, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public SwitchLabelDefaultContext(SwitchLabelContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchLabelDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchLabelDefault(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchLabelDefault(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelEnumContext extends SwitchLabelContext { + public Token enumConstantName; + public TerminalNode CASE() { return getToken(Java17Parser.CASE, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public TerminalNode IDENTIFIER() { return getToken(Java17Parser.IDENTIFIER, 0); } + public SwitchLabelEnumContext(SwitchLabelContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchLabelEnum(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchLabelEnum(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchLabelEnum(this); + else return visitor.visitChildren(this); + } + } + + public final SwitchLabelContext switchLabel() throws RecognitionException { + SwitchLabelContext _localctx = new SwitchLabelContext(_ctx, getState()); + enterRule(_localctx, 196, RULE_switchLabel); + try { + setState(1299); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,154,_ctx) ) { + case 1: + _localctx = new SwitchLabelConstContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1286); + match(CASE); + setState(1287); + ((SwitchLabelConstContext)_localctx).constantExpression = expression(0); + setState(1288); + match(COLON); + } + break; + case 2: + _localctx = new SwitchLabelEnumContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1290); + match(CASE); + setState(1291); + ((SwitchLabelEnumContext)_localctx).enumConstantName = match(IDENTIFIER); + setState(1292); + match(COLON); + } + break; + case 3: + _localctx = new SwitchLabelPatternContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1293); + match(CASE); + setState(1294); + pattern(); + setState(1295); + match(COLON); + } + break; + case 4: + _localctx = new SwitchLabelDefaultContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1297); + match(DEFAULT); + setState(1298); + match(COLON); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForControlContext extends ParserRuleContext { + public ExpressionListContext forUpdate; + public EnhancedForControlContext enhancedForControl() { + return getRuleContext(EnhancedForControlContext.class,0); + } + public List SEMI() { return getTokens(Java17Parser.SEMI); } + public TerminalNode SEMI(int i) { + return getToken(Java17Parser.SEMI, i); + } + public ForInitContext forInit() { + return getRuleContext(ForInitContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public ExpressionListContext expressionList() { + return getRuleContext(ExpressionListContext.class,0); + } + public ForControlContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forControl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterForControl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitForControl(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitForControl(this); + else return visitor.visitChildren(this); + } + } + + public final ForControlContext forControl() throws RecognitionException { + ForControlContext _localctx = new ForControlContext(_ctx, getState()); + enterRule(_localctx, 198, RULE_forControl); + int _la; + try { + setState(1313); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,158,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1301); + enhancedForControl(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1303); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610998821L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1302); + forInit(); + } + } + + setState(1305); + match(SEMI); + setState(1307); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1306); + expression(0); + } + } + + setState(1309); + match(SEMI); + setState(1311); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1310); + ((ForControlContext)_localctx).forUpdate = expressionList(); + } + } + + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ForInitContext extends ParserRuleContext { + public LocalVariableDeclarationContext localVariableDeclaration() { + return getRuleContext(LocalVariableDeclarationContext.class,0); + } + public ExpressionListContext expressionList() { + return getRuleContext(ExpressionListContext.class,0); + } + public ForInitContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_forInit; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterForInit(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitForInit(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitForInit(this); + else return visitor.visitChildren(this); + } + } + + public final ForInitContext forInit() throws RecognitionException { + ForInitContext _localctx = new ForInitContext(_ctx, getState()); + enterRule(_localctx, 200, RULE_forInit); + try { + setState(1317); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,159,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1315); + localVariableDeclaration(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1316); + expressionList(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class EnhancedForControlContext extends ParserRuleContext { + public VariableDeclaratorIdContext variableDeclaratorId() { + return getRuleContext(VariableDeclaratorIdContext.class,0); + } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode VAR() { return getToken(Java17Parser.VAR, 0); } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public EnhancedForControlContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_enhancedForControl; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEnhancedForControl(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEnhancedForControl(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEnhancedForControl(this); + else return visitor.visitChildren(this); + } + } + + public final EnhancedForControlContext enhancedForControl() throws RecognitionException { + EnhancedForControlContext _localctx = new EnhancedForControlContext(_ctx, getState()); + enterRule(_localctx, 202, RULE_enhancedForControl); + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1322); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,160,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1319); + variableModifier(); + } + } + } + setState(1324); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,160,_ctx); + } + setState(1329); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,162,_ctx) ) { + case 1: + { + setState(1326); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,161,_ctx) ) { + case 1: + { + setState(1325); + typeType(); + } + break; + } + } + break; + case 2: + { + setState(1328); + match(VAR); + } + break; + } + setState(1331); + variableDeclaratorId(); + setState(1332); + match(COLON); + setState(1333); + expression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ParExpressionContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public ParExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_parExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterParExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitParExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitParExpression(this); + else return visitor.visitChildren(this); + } + } + + public final ParExpressionContext parExpression() throws RecognitionException { + ParExpressionContext _localctx = new ParExpressionContext(_ctx, getState()); + enterRule(_localctx, 204, RULE_parExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(1335); + match(LPAREN); + setState(1336); + expression(0); + setState(1337); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionListContext extends ParserRuleContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public ExpressionListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expressionList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterExpressionList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitExpressionList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitExpressionList(this); + else return visitor.visitChildren(this); + } + } + + public final ExpressionListContext expressionList() throws RecognitionException { + ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState()); + enterRule(_localctx, 206, RULE_expressionList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1339); + expression(0); + setState(1344); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1340); + match(COMMA); + setState(1341); + expression(0); + } + } + setState(1346); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class MethodCallContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public ExpressionListContext expressionList() { + return getRuleContext(ExpressionListContext.class,0); + } + public TerminalNode THIS() { return getToken(Java17Parser.THIS, 0); } + public TerminalNode SUPER() { return getToken(Java17Parser.SUPER, 0); } + public MethodCallContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_methodCall; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethodCall(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethodCall(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethodCall(this); + else return visitor.visitChildren(this); + } + } + + public final MethodCallContext methodCall() throws RecognitionException { + MethodCallContext _localctx = new MethodCallContext(_ctx, getState()); + enterRule(_localctx, 208, RULE_methodCall); + int _la; + try { + setState(1366); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(1347); + identifier(); + setState(1348); + match(LPAREN); + setState(1350); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1349); + expressionList(); + } + } + + setState(1352); + match(RPAREN); + } + break; + case THIS: + enterOuterAlt(_localctx, 2); + { + setState(1354); + match(THIS); + setState(1355); + match(LPAREN); + setState(1357); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1356); + expressionList(); + } + } + + setState(1359); + match(RPAREN); + } + break; + case SUPER: + enterOuterAlt(_localctx, 3); + { + setState(1360); + match(SUPER); + setState(1361); + match(LPAREN); + setState(1363); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1362); + expressionList(); + } + } + + setState(1365); + match(RPAREN); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExpressionContext extends ParserRuleContext { + public ExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_expression; } + + public ExpressionContext() { } + public void copyFrom(ExpressionContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class CastexpressionContext extends ExpressionContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public List typeType() { + return getRuleContexts(TypeTypeContext.class); + } + public TypeTypeContext typeType(int i) { + return getRuleContext(TypeTypeContext.class,i); + } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public List BITAND() { return getTokens(Java17Parser.BITAND); } + public TerminalNode BITAND(int i) { + return getToken(Java17Parser.BITAND, i); + } + public CastexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterCastexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitCastexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitCastexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ArrayaccessexpressionContext extends ExpressionContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode LBRACK() { return getToken(Java17Parser.LBRACK, 0); } + public TerminalNode RBRACK() { return getToken(Java17Parser.RBRACK, 0); } + public ArrayaccessexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterArrayaccessexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitArrayaccessexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitArrayaccessexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class NewinstanceexpressionContext extends ExpressionContext { + public TerminalNode NEW() { return getToken(Java17Parser.NEW, 0); } + public CreatorContext creator() { + return getRuleContext(CreatorContext.class,0); + } + public NewinstanceexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterNewinstanceexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitNewinstanceexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitNewinstanceexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitwiseandexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode BITAND() { return getToken(Java17Parser.BITAND, 0); } + public BitwiseandexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBitwiseandexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBitwiseandexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBitwiseandexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryExpression2Context extends ExpressionContext { + public PrimaryContext primary() { + return getRuleContext(PrimaryContext.class,0); + } + public PrimaryExpression2Context(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimaryExpression2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimaryExpression2(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimaryExpression2(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MethodcallexpressionContext extends ExpressionContext { + public MethodCallContext methodCall() { + return getRuleContext(MethodCallContext.class,0); + } + public MethodcallexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethodcallexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethodcallexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethodcallexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ConditionalassignexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public TerminalNode QUESTION() { return getToken(Java17Parser.QUESTION, 0); } + public ConditionalassignexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterConditionalassignexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitConditionalassignexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitConditionalassignexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MethodorcreatorreferenceexpressionContext extends ExpressionContext { + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public TerminalNode COLONCOLON() { return getToken(Java17Parser.COLONCOLON, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TerminalNode NEW() { return getToken(Java17Parser.NEW, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public MethodorcreatorreferenceexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethodorcreatorreferenceexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethodorcreatorreferenceexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethodorcreatorreferenceexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class ShiftexpressionContext extends ExpressionContext { + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public List LT() { return getTokens(Java17Parser.LT); } + public TerminalNode LT(int i) { + return getToken(Java17Parser.LT, i); + } + public List GT() { return getTokens(Java17Parser.GT); } + public TerminalNode GT(int i) { + return getToken(Java17Parser.GT, i); + } + public ShiftexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterShiftexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitShiftexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitShiftexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class SwitchExpression2Context extends ExpressionContext { + public SwitchExpressionContext switchExpression() { + return getRuleContext(SwitchExpressionContext.class,0); + } + public SwitchExpression2Context(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchExpression2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchExpression2(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchExpression2(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MathaddsubexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode ADD() { return getToken(Java17Parser.ADD, 0); } + public TerminalNode SUB() { return getToken(Java17Parser.SUB, 0); } + public MathaddsubexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMathaddsubexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMathaddsubexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMathaddsubexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class DottedexpressionContext extends ExpressionContext { + public Token bop; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode DOT() { return getToken(Java17Parser.DOT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public MethodCallContext methodCall() { + return getRuleContext(MethodCallContext.class,0); + } + public TerminalNode THIS() { return getToken(Java17Parser.THIS, 0); } + public TerminalNode NEW() { return getToken(Java17Parser.NEW, 0); } + public InnerCreatorContext innerCreator() { + return getRuleContext(InnerCreatorContext.class,0); + } + public TerminalNode SUPER() { return getToken(Java17Parser.SUPER, 0); } + public SuperSuffixContext superSuffix() { + return getRuleContext(SuperSuffixContext.class,0); + } + public ExplicitGenericInvocationContext explicitGenericInvocation() { + return getRuleContext(ExplicitGenericInvocationContext.class,0); + } + public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { + return getRuleContext(NonWildcardTypeArgumentsContext.class,0); + } + public DottedexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterDottedexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitDottedexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitDottedexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class OrexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode OR() { return getToken(Java17Parser.OR, 0); } + public OrexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterOrexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitOrexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitOrexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AndexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode AND() { return getToken(Java17Parser.AND, 0); } + public AndexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAndexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAndexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAndexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class AssignexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode ASSIGN() { return getToken(Java17Parser.ASSIGN, 0); } + public TerminalNode ADD_ASSIGN() { return getToken(Java17Parser.ADD_ASSIGN, 0); } + public TerminalNode SUB_ASSIGN() { return getToken(Java17Parser.SUB_ASSIGN, 0); } + public TerminalNode MUL_ASSIGN() { return getToken(Java17Parser.MUL_ASSIGN, 0); } + public TerminalNode DIV_ASSIGN() { return getToken(Java17Parser.DIV_ASSIGN, 0); } + public TerminalNode AND_ASSIGN() { return getToken(Java17Parser.AND_ASSIGN, 0); } + public TerminalNode OR_ASSIGN() { return getToken(Java17Parser.OR_ASSIGN, 0); } + public TerminalNode XOR_ASSIGN() { return getToken(Java17Parser.XOR_ASSIGN, 0); } + public TerminalNode RSHIFT_ASSIGN() { return getToken(Java17Parser.RSHIFT_ASSIGN, 0); } + public TerminalNode URSHIFT_ASSIGN() { return getToken(Java17Parser.URSHIFT_ASSIGN, 0); } + public TerminalNode LSHIFT_ASSIGN() { return getToken(Java17Parser.LSHIFT_ASSIGN, 0); } + public TerminalNode MOD_ASSIGN() { return getToken(Java17Parser.MOD_ASSIGN, 0); } + public AssignexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterAssignexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitAssignexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitAssignexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MathmuldivmodexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode MUL() { return getToken(Java17Parser.MUL, 0); } + public TerminalNode DIV() { return getToken(Java17Parser.DIV, 0); } + public TerminalNode MOD() { return getToken(Java17Parser.MOD, 0); } + public MathmuldivmodexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMathmuldivmodexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMathmuldivmodexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMathmuldivmodexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class EqualityexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode EQUAL() { return getToken(Java17Parser.EQUAL, 0); } + public TerminalNode NOTEQUAL() { return getToken(Java17Parser.NOTEQUAL, 0); } + public EqualityexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEqualityexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEqualityexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEqualityexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PostfixexpressionContext extends ExpressionContext { + public Token postfix; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode INC() { return getToken(Java17Parser.INC, 0); } + public TerminalNode DEC() { return getToken(Java17Parser.DEC, 0); } + public PostfixexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPostfixexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPostfixexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPostfixexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrefixexpressionContext extends ExpressionContext { + public Token prefix; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode ADD() { return getToken(Java17Parser.ADD, 0); } + public TerminalNode SUB() { return getToken(Java17Parser.SUB, 0); } + public TerminalNode INC() { return getToken(Java17Parser.INC, 0); } + public TerminalNode DEC() { return getToken(Java17Parser.DEC, 0); } + public TerminalNode TILDE() { return getToken(Java17Parser.TILDE, 0); } + public TerminalNode BANG() { return getToken(Java17Parser.BANG, 0); } + public PrefixexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrefixexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrefixexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrefixexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitwiseorexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode BITOR() { return getToken(Java17Parser.BITOR, 0); } + public BitwiseorexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBitwiseorexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBitwiseorexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBitwiseorexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class CreatorreferenceexpressionContext extends ExpressionContext { + public ClassTypeContext classType() { + return getRuleContext(ClassTypeContext.class,0); + } + public TerminalNode COLONCOLON() { return getToken(Java17Parser.COLONCOLON, 0); } + public TerminalNode NEW() { return getToken(Java17Parser.NEW, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public CreatorreferenceexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterCreatorreferenceexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitCreatorreferenceexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitCreatorreferenceexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LambdaExpression2Context extends ExpressionContext { + public LambdaExpressionContext lambdaExpression() { + return getRuleContext(LambdaExpressionContext.class,0); + } + public LambdaExpression2Context(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLambdaExpression2(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLambdaExpression2(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLambdaExpression2(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class BitwisexorexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode CARET() { return getToken(Java17Parser.CARET, 0); } + public BitwisexorexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterBitwisexorexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitBitwisexorexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitBitwisexorexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RelationalexpressionContext extends ExpressionContext { + public Token bop; + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public TerminalNode LE() { return getToken(Java17Parser.LE, 0); } + public TerminalNode GE() { return getToken(Java17Parser.GE, 0); } + public TerminalNode GT() { return getToken(Java17Parser.GT, 0); } + public TerminalNode LT() { return getToken(Java17Parser.LT, 0); } + public RelationalexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRelationalexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRelationalexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRelationalexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class InstanceofexpressionContext extends ExpressionContext { + public Token bop; + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode INSTANCEOF() { return getToken(Java17Parser.INSTANCEOF, 0); } + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public PatternContext pattern() { + return getRuleContext(PatternContext.class,0); + } + public InstanceofexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInstanceofexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInstanceofexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInstanceofexpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class MethodreferenceexpressionContext extends ExpressionContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode COLONCOLON() { return getToken(Java17Parser.COLONCOLON, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public MethodreferenceexpressionContext(ExpressionContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterMethodreferenceexpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitMethodreferenceexpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitMethodreferenceexpression(this); + else return visitor.visitChildren(this); + } + } + + public final ExpressionContext expression() throws RecognitionException { + return expression(0); + } + + private ExpressionContext expression(int _p) throws RecognitionException { + ParserRuleContext _parentctx = _ctx; + int _parentState = getState(); + ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState); + ExpressionContext _prevctx = _localctx; + int _startState = 210; + enterRecursionRule(_localctx, 210, RULE_expression, _p); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1411); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,173,_ctx) ) { + case 1: + { + _localctx = new PrimaryExpression2Context(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + + setState(1369); + primary(); + } + break; + case 2: + { + _localctx = new MethodcallexpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1370); + methodCall(); + } + break; + case 3: + { + _localctx = new NewinstanceexpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1371); + match(NEW); + setState(1372); + creator(); + } + break; + case 4: + { + _localctx = new CastexpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1373); + match(LPAREN); + setState(1377); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,168,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1374); + annotation(); + } + } + } + setState(1379); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,168,_ctx); + } + setState(1380); + typeType(); + setState(1385); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==BITAND) { + { + { + setState(1381); + match(BITAND); + setState(1382); + typeType(); + } + } + setState(1387); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1388); + match(RPAREN); + setState(1389); + expression(21); + } + break; + case 5: + { + _localctx = new PrefixexpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1391); + ((PrefixexpressionContext)_localctx).prefix = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 90)) & ~0x3f) == 0 && ((1L << (_la - 90)) & 15363L) != 0)) ) { + ((PrefixexpressionContext)_localctx).prefix = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1392); + expression(19); + } + break; + case 6: + { + _localctx = new LambdaExpression2Context(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1393); + lambdaExpression(); + } + break; + case 7: + { + _localctx = new SwitchExpression2Context(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1394); + switchExpression(); + } + break; + case 8: + { + _localctx = new MethodorcreatorreferenceexpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1395); + typeType(); + setState(1396); + match(COLONCOLON); + setState(1402); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case LT: + case IDENTIFIER: + { + setState(1398); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1397); + typeArguments(); + } + } + + setState(1400); + identifier(); + } + break; + case NEW: + { + setState(1401); + match(NEW); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + case 9: + { + _localctx = new CreatorreferenceexpressionContext(_localctx); + _ctx = _localctx; + _prevctx = _localctx; + setState(1404); + classType(); + setState(1405); + match(COLONCOLON); + setState(1407); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1406); + typeArguments(); + } + } + + setState(1409); + match(NEW); + } + break; + } + _ctx.stop = _input.LT(-1); + setState(1496); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,180,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + if ( _parseListeners!=null ) triggerExitRuleEvent(); + _prevctx = _localctx; + { + setState(1494); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,179,_ctx) ) { + case 1: + { + _localctx = new MathmuldivmodexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1413); + if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)"); + setState(1414); + ((MathmuldivmodexpressionContext)_localctx).bop = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 104)) & ~0x3f) == 0 && ((1L << (_la - 104)) & 35L) != 0)) ) { + ((MathmuldivmodexpressionContext)_localctx).bop = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1415); + expression(19); + } + break; + case 2: + { + _localctx = new MathaddsubexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1416); + if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)"); + setState(1417); + ((MathaddsubexpressionContext)_localctx).bop = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==ADD || _la==SUB) ) { + ((MathaddsubexpressionContext)_localctx).bop = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1418); + expression(18); + } + break; + case 3: + { + _localctx = new ShiftexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1419); + if (!(precpred(_ctx, 16))) throw new FailedPredicateException(this, "precpred(_ctx, 16)"); + setState(1427); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,174,_ctx) ) { + case 1: + { + setState(1420); + match(LT); + setState(1421); + match(LT); + } + break; + case 2: + { + setState(1422); + match(GT); + setState(1423); + match(GT); + setState(1424); + match(GT); + } + break; + case 3: + { + setState(1425); + match(GT); + setState(1426); + match(GT); + } + break; + } + setState(1429); + expression(17); + } + break; + case 4: + { + _localctx = new RelationalexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1430); + if (!(precpred(_ctx, 15))) throw new FailedPredicateException(this, "precpred(_ctx, 15)"); + setState(1431); + ((RelationalexpressionContext)_localctx).bop = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 88)) & ~0x3f) == 0 && ((1L << (_la - 88)) & 387L) != 0)) ) { + ((RelationalexpressionContext)_localctx).bop = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1432); + expression(16); + } + break; + case 5: + { + _localctx = new EqualityexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1433); + if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)"); + setState(1434); + ((EqualityexpressionContext)_localctx).bop = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==EQUAL || _la==NOTEQUAL) ) { + ((EqualityexpressionContext)_localctx).bop = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1435); + expression(14); + } + break; + case 6: + { + _localctx = new BitwiseandexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1436); + if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)"); + setState(1437); + ((BitwiseandexpressionContext)_localctx).bop = match(BITAND); + setState(1438); + expression(13); + } + break; + case 7: + { + _localctx = new BitwisexorexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1439); + if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)"); + setState(1440); + ((BitwisexorexpressionContext)_localctx).bop = match(CARET); + setState(1441); + expression(12); + } + break; + case 8: + { + _localctx = new BitwiseorexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1442); + if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)"); + setState(1443); + ((BitwiseorexpressionContext)_localctx).bop = match(BITOR); + setState(1444); + expression(11); + } + break; + case 9: + { + _localctx = new AndexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1445); + if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)"); + setState(1446); + ((AndexpressionContext)_localctx).bop = match(AND); + setState(1447); + expression(10); + } + break; + case 10: + { + _localctx = new OrexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1448); + if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)"); + setState(1449); + ((OrexpressionContext)_localctx).bop = match(OR); + setState(1450); + expression(9); + } + break; + case 11: + { + _localctx = new ConditionalassignexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1451); + if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)"); + setState(1452); + ((ConditionalassignexpressionContext)_localctx).bop = match(QUESTION); + setState(1453); + expression(0); + setState(1454); + match(COLON); + setState(1455); + expression(7); + } + break; + case 12: + { + _localctx = new AssignexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1457); + if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)"); + setState(1458); + ((AssignexpressionContext)_localctx).bop = _input.LT(1); + _la = _input.LA(1); + if ( !(((((_la - 87)) & ~0x3f) == 0 && ((1L << (_la - 87)) & 17171480577L) != 0)) ) { + ((AssignexpressionContext)_localctx).bop = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + setState(1459); + expression(6); + } + break; + case 13: + { + _localctx = new DottedexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1460); + if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)"); + setState(1461); + ((DottedexpressionContext)_localctx).bop = match(DOT); + setState(1473); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,176,_ctx) ) { + case 1: + { + setState(1462); + identifier(); + } + break; + case 2: + { + setState(1463); + methodCall(); + } + break; + case 3: + { + setState(1464); + match(THIS); + } + break; + case 4: + { + setState(1465); + match(NEW); + setState(1467); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1466); + nonWildcardTypeArguments(); + } + } + + setState(1469); + innerCreator(); + } + break; + case 5: + { + setState(1470); + match(SUPER); + setState(1471); + superSuffix(); + } + break; + case 6: + { + setState(1472); + explicitGenericInvocation(); + } + break; + } + } + break; + case 14: + { + _localctx = new ArrayaccessexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1475); + if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)"); + setState(1476); + match(LBRACK); + setState(1477); + expression(0); + setState(1478); + match(RBRACK); + } + break; + case 15: + { + _localctx = new PostfixexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1480); + if (!(precpred(_ctx, 20))) throw new FailedPredicateException(this, "precpred(_ctx, 20)"); + setState(1481); + ((PostfixexpressionContext)_localctx).postfix = _input.LT(1); + _la = _input.LA(1); + if ( !(_la==INC || _la==DEC) ) { + ((PostfixexpressionContext)_localctx).postfix = (Token)_errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 16: + { + _localctx = new InstanceofexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1482); + if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)"); + setState(1483); + ((InstanceofexpressionContext)_localctx).bop = match(INSTANCEOF); + setState(1486); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,177,_ctx) ) { + case 1: + { + setState(1484); + typeType(); + } + break; + case 2: + { + setState(1485); + pattern(); + } + break; + } + } + break; + case 17: + { + _localctx = new MethodreferenceexpressionContext(new ExpressionContext(_parentctx, _parentState)); + pushNewRecursionContext(_localctx, _startState, RULE_expression); + setState(1488); + if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)"); + setState(1489); + match(COLONCOLON); + setState(1491); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1490); + typeArguments(); + } + } + + setState(1493); + identifier(); + } + break; + } + } + } + setState(1498); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,180,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + unrollRecursionContexts(_parentctx); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PatternContext extends ParserRuleContext { + public PatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_pattern; } + + public PatternContext() { } + public void copyFrom(PatternContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class GPatternContext extends PatternContext { + public GuardedPatternContext guardedPattern() { + return getRuleContext(GuardedPatternContext.class,0); + } + public GPatternContext(PatternContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGPattern(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PPatternContext extends PatternContext { + public PrimaryPatternContext primaryPattern() { + return getRuleContext(PrimaryPatternContext.class,0); + } + public PPatternContext(PatternContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPPattern(this); + else return visitor.visitChildren(this); + } + } + + public final PatternContext pattern() throws RecognitionException { + PatternContext _localctx = new PatternContext(_ctx, getState()); + enterRule(_localctx, 212, RULE_pattern); + try { + setState(1501); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,181,_ctx) ) { + case 1: + _localctx = new PPatternContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1499); + primaryPattern(); + } + break; + case 2: + _localctx = new GPatternContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1500); + guardedPattern(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimaryPatternContext extends ParserRuleContext { + public PrimaryPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primaryPattern; } + + public PrimaryPatternContext() { } + public void copyFrom(PrimaryPatternContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class EnclosedPatternContext extends PrimaryPatternContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public PatternContext pattern() { + return getRuleContext(PatternContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public EnclosedPatternContext(PrimaryPatternContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterEnclosedPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitEnclosedPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitEnclosedPattern(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class TPatternContext extends PrimaryPatternContext { + public TypePatternContext typePattern() { + return getRuleContext(TypePatternContext.class,0); + } + public TPatternContext(PrimaryPatternContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTPattern(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class RPatternContext extends PrimaryPatternContext { + public RecordPatternContext recordPattern() { + return getRuleContext(RecordPatternContext.class,0); + } + public RPatternContext(PrimaryPatternContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRPattern(this); + else return visitor.visitChildren(this); + } + } + + public final PrimaryPatternContext primaryPattern() throws RecognitionException { + PrimaryPatternContext _localctx = new PrimaryPatternContext(_ctx, getState()); + enterRule(_localctx, 214, RULE_primaryPattern); + try { + setState(1509); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,182,_ctx) ) { + case 1: + _localctx = new TPatternContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1503); + typePattern(); + } + break; + case 2: + _localctx = new RPatternContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1504); + recordPattern(); + } + break; + case 3: + _localctx = new EnclosedPatternContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1505); + match(LPAREN); + setState(1506); + pattern(); + setState(1507); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordPatternContext extends ParserRuleContext { + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public RecordStructurePatternContext recordStructurePattern() { + return getRuleContext(RecordStructurePatternContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public RecordPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordPattern(this); + else return visitor.visitChildren(this); + } + } + + public final RecordPatternContext recordPattern() throws RecognitionException { + RecordPatternContext _localctx = new RecordPatternContext(_ctx, getState()); + enterRule(_localctx, 216, RULE_recordPattern); + try { + enterOuterAlt(_localctx, 1); + { + setState(1511); + typeType(); + setState(1512); + recordStructurePattern(); + setState(1514); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,183,_ctx) ) { + case 1: + { + setState(1513); + identifier(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypePatternContext extends ParserRuleContext { + public TypeTypeContext typeType() { + return getRuleContext(TypeTypeContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public List variableModifier() { + return getRuleContexts(VariableModifierContext.class); + } + public VariableModifierContext variableModifier(int i) { + return getRuleContext(VariableModifierContext.class,i); + } + public TypePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypePattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypePattern(this); + else return visitor.visitChildren(this); + } + } + + public final TypePatternContext typePattern() throws RecognitionException { + TypePatternContext _localctx = new TypePatternContext(_ctx, getState()); + enterRule(_localctx, 218, RULE_typePattern); + try { + int _alt; + setState(1532); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,186,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1519); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,184,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1516); + variableModifier(); + } + } + } + setState(1521); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,184,_ctx); + } + setState(1522); + typeType(); + setState(1523); + identifier(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1528); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,185,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1525); + variableModifier(); + } + } + } + setState(1530); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,185,_ctx); + } + setState(1531); + identifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordStructurePatternContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public RecordComponentPatternListContext recordComponentPatternList() { + return getRuleContext(RecordComponentPatternListContext.class,0); + } + public RecordStructurePatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordStructurePattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordStructurePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordStructurePattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordStructurePattern(this); + else return visitor.visitChildren(this); + } + } + + public final RecordStructurePatternContext recordStructurePattern() throws RecognitionException { + RecordStructurePatternContext _localctx = new RecordStructurePatternContext(_ctx, getState()); + enterRule(_localctx, 220, RULE_recordStructurePattern); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1534); + match(LPAREN); + setState(1536); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223090579141986341L) != 0) || ((((_la - 78)) & ~0x3f) == 0 && ((1L << (_la - 78)) & 1161084278931457L) != 0)) { + { + setState(1535); + recordComponentPatternList(); + } + } + + setState(1538); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordComponentPatternElementContext extends ParserRuleContext { + public PatternContext pattern() { + return getRuleContext(PatternContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public RecordComponentPatternElementContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordComponentPatternElement; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordComponentPatternElement(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordComponentPatternElement(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordComponentPatternElement(this); + else return visitor.visitChildren(this); + } + } + + public final RecordComponentPatternElementContext recordComponentPatternElement() throws RecognitionException { + RecordComponentPatternElementContext _localctx = new RecordComponentPatternElementContext(_ctx, getState()); + enterRule(_localctx, 222, RULE_recordComponentPatternElement); + try { + setState(1542); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,188,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1540); + pattern(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1541); + identifier(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class RecordComponentPatternListContext extends ParserRuleContext { + public List pattern() { + return getRuleContexts(PatternContext.class); + } + public PatternContext pattern(int i) { + return getRuleContext(PatternContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public RecordComponentPatternListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_recordComponentPatternList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterRecordComponentPatternList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitRecordComponentPatternList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitRecordComponentPatternList(this); + else return visitor.visitChildren(this); + } + } + + public final RecordComponentPatternListContext recordComponentPatternList() throws RecognitionException { + RecordComponentPatternListContext _localctx = new RecordComponentPatternListContext(_ctx, getState()); + enterRule(_localctx, 224, RULE_recordComponentPatternList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1544); + pattern(); + setState(1549); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1545); + match(COMMA); + setState(1546); + pattern(); + } + } + setState(1551); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaExpressionContext extends ParserRuleContext { + public LambdaParametersContext lambdaParameters() { + return getRuleContext(LambdaParametersContext.class,0); + } + public TerminalNode ARROW() { return getToken(Java17Parser.ARROW, 0); } + public LambdaBodyContext lambdaBody() { + return getRuleContext(LambdaBodyContext.class,0); + } + public LambdaExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambdaExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLambdaExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLambdaExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLambdaExpression(this); + else return visitor.visitChildren(this); + } + } + + public final LambdaExpressionContext lambdaExpression() throws RecognitionException { + LambdaExpressionContext _localctx = new LambdaExpressionContext(_ctx, getState()); + enterRule(_localctx, 226, RULE_lambdaExpression); + try { + enterOuterAlt(_localctx, 1); + { + setState(1552); + lambdaParameters(); + setState(1553); + match(ARROW); + setState(1554); + lambdaBody(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaParametersContext extends ParserRuleContext { + public List identifier() { + return getRuleContexts(IdentifierContext.class); + } + public IdentifierContext identifier(int i) { + return getRuleContext(IdentifierContext.class,i); + } + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public FormalParameterListContext formalParameterList() { + return getRuleContext(FormalParameterListContext.class,0); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public LambdaLVTIListContext lambdaLVTIList() { + return getRuleContext(LambdaLVTIListContext.class,0); + } + public LambdaParametersContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambdaParameters; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLambdaParameters(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLambdaParameters(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLambdaParameters(this); + else return visitor.visitChildren(this); + } + } + + public final LambdaParametersContext lambdaParameters() throws RecognitionException { + LambdaParametersContext _localctx = new LambdaParametersContext(_ctx, getState()); + enterRule(_localctx, 228, RULE_lambdaParameters); + int _la; + try { + setState(1578); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,193,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1556); + identifier(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1557); + match(LPAREN); + setState(1559); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223090579141986341L) != 0) || ((((_la - 78)) & ~0x3f) == 0 && ((1L << (_la - 78)) & 1231453023109121L) != 0)) { + { + setState(1558); + formalParameterList(); + } + } + + setState(1561); + match(RPAREN); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(1562); + match(LPAREN); + setState(1563); + identifier(); + setState(1568); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1564); + match(COMMA); + setState(1565); + identifier(); + } + } + setState(1570); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1571); + match(RPAREN); + } + break; + case 4: + enterOuterAlt(_localctx, 4); + { + setState(1573); + match(LPAREN); + setState(1575); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 18)) & ~0x3f) == 0 && ((1L << (_la - 18)) & 281466386776065L) != 0) || _la==AT || _la==IDENTIFIER) { + { + setState(1574); + lambdaLVTIList(); + } + } + + setState(1577); + match(RPAREN); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class LambdaBodyContext extends ParserRuleContext { + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public LambdaBodyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_lambdaBody; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLambdaBody(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLambdaBody(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLambdaBody(this); + else return visitor.visitChildren(this); + } + } + + public final LambdaBodyContext lambdaBody() throws RecognitionException { + LambdaBodyContext _localctx = new LambdaBodyContext(_ctx, getState()); + enterRule(_localctx, 230, RULE_lambdaBody); + try { + setState(1582); + _errHandler.sync(this); + switch (_input.LA(1)) { + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case NEW: + case SHORT: + case SUPER: + case SWITCH: + case THIS: + case VOID: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case DECIMAL_LITERAL: + case HEX_LITERAL: + case OCT_LITERAL: + case BINARY_LITERAL: + case FLOAT_LITERAL: + case HEX_FLOAT_LITERAL: + case BOOL_LITERAL: + case CHAR_LITERAL: + case STRING_LITERAL: + case TEXT_BLOCK: + case NULL_LITERAL: + case LPAREN: + case LT: + case BANG: + case TILDE: + case INC: + case DEC: + case ADD: + case SUB: + case AT: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(1580); + expression(0); + } + break; + case LBRACE: + enterOuterAlt(_localctx, 2); + { + setState(1581); + block(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimaryContext extends ParserRuleContext { + public PrimaryContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primary; } + + public PrimaryContext() { } + public void copyFrom(PrimaryContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryExpressionContext extends PrimaryContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public PrimaryExpressionContext(PrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimaryExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimaryExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimaryExpression(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryInvocationContext extends PrimaryContext { + public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { + return getRuleContext(NonWildcardTypeArgumentsContext.class,0); + } + public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() { + return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0); + } + public TerminalNode THIS() { return getToken(Java17Parser.THIS, 0); } + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public PrimaryInvocationContext(PrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimaryInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimaryInvocation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimaryInvocation(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimarySuperContext extends PrimaryContext { + public TerminalNode SUPER() { return getToken(Java17Parser.SUPER, 0); } + public PrimarySuperContext(PrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimarySuper(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimarySuper(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimarySuper(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryClassrefContext extends PrimaryContext { + public RefTypeContext refType() { + return getRuleContext(RefTypeContext.class,0); + } + public TerminalNode DOT() { return getToken(Java17Parser.DOT, 0); } + public TerminalNode CLASS() { return getToken(Java17Parser.CLASS, 0); } + public PrimaryClassrefContext(PrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimaryClassref(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimaryClassref(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimaryClassref(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryThisContext extends PrimaryContext { + public TerminalNode THIS() { return getToken(Java17Parser.THIS, 0); } + public PrimaryThisContext(PrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimaryThis(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimaryThis(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimaryThis(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryIdentifierContext extends PrimaryContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public PrimaryIdentifierContext(PrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimaryIdentifier(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimaryIdentifier(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimaryIdentifier(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class PrimaryLiteralContext extends PrimaryContext { + public LiteralContext literal() { + return getRuleContext(LiteralContext.class,0); + } + public PrimaryLiteralContext(PrimaryContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimaryLiteral(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimaryLiteral(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimaryLiteral(this); + else return visitor.visitChildren(this); + } + } + + public final PrimaryContext primary() throws RecognitionException { + PrimaryContext _localctx = new PrimaryContext(_ctx, getState()); + enterRule(_localctx, 232, RULE_primary); + try { + setState(1602); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,196,_ctx) ) { + case 1: + _localctx = new PrimaryExpressionContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1584); + match(LPAREN); + setState(1585); + expression(0); + setState(1586); + match(RPAREN); + } + break; + case 2: + _localctx = new PrimaryThisContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1588); + match(THIS); + } + break; + case 3: + _localctx = new PrimarySuperContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1589); + match(SUPER); + } + break; + case 4: + _localctx = new PrimaryLiteralContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1590); + literal(); + } + break; + case 5: + _localctx = new PrimaryIdentifierContext(_localctx); + enterOuterAlt(_localctx, 5); + { + setState(1591); + identifier(); + } + break; + case 6: + _localctx = new PrimaryClassrefContext(_localctx); + enterOuterAlt(_localctx, 6); + { + setState(1592); + refType(); + setState(1593); + match(DOT); + setState(1594); + match(CLASS); + } + break; + case 7: + _localctx = new PrimaryInvocationContext(_localctx); + enterOuterAlt(_localctx, 7); + { + setState(1596); + nonWildcardTypeArguments(); + setState(1600); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SUPER: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case IDENTIFIER: + { + setState(1597); + explicitGenericInvocationSuffix(); + } + break; + case THIS: + { + setState(1598); + match(THIS); + setState(1599); + arguments(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchExpressionContext extends ParserRuleContext { + public TerminalNode SWITCH() { return getToken(Java17Parser.SWITCH, 0); } + public ParExpressionContext parExpression() { + return getRuleContext(ParExpressionContext.class,0); + } + public TerminalNode LBRACE() { return getToken(Java17Parser.LBRACE, 0); } + public TerminalNode RBRACE() { return getToken(Java17Parser.RBRACE, 0); } + public List switchLabeledRule() { + return getRuleContexts(SwitchLabeledRuleContext.class); + } + public SwitchLabeledRuleContext switchLabeledRule(int i) { + return getRuleContext(SwitchLabeledRuleContext.class,i); + } + public SwitchExpressionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchExpression; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchExpression(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchExpression(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchExpression(this); + else return visitor.visitChildren(this); + } + } + + public final SwitchExpressionContext switchExpression() throws RecognitionException { + SwitchExpressionContext _localctx = new SwitchExpressionContext(_ctx, getState()); + enterRule(_localctx, 234, RULE_switchExpression); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1604); + match(SWITCH); + setState(1605); + parExpression(); + setState(1606); + match(LBRACE); + setState(1610); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==CASE || _la==DEFAULT) { + { + { + setState(1607); + switchLabeledRule(); + } + } + setState(1612); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1613); + match(RBRACE); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabeledRuleContext extends ParserRuleContext { + public SwitchLabelCaseContext switchLabelCase() { + return getRuleContext(SwitchLabelCaseContext.class,0); + } + public SwitchRuleOutcomeContext switchRuleOutcome() { + return getRuleContext(SwitchRuleOutcomeContext.class,0); + } + public SwitchLabeledRuleContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchLabeledRule; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchLabeledRule(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchLabeledRule(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchLabeledRule(this); + else return visitor.visitChildren(this); + } + } + + public final SwitchLabeledRuleContext switchLabeledRule() throws RecognitionException { + SwitchLabeledRuleContext _localctx = new SwitchLabeledRuleContext(_ctx, getState()); + enterRule(_localctx, 236, RULE_switchLabeledRule); + try { + enterOuterAlt(_localctx, 1); + { + setState(1615); + switchLabelCase(); + setState(1616); + switchRuleOutcome(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchLabelCaseContext extends ParserRuleContext { + public SwitchLabelCaseContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchLabelCase; } + + public SwitchLabelCaseContext() { } + public void copyFrom(SwitchLabelCaseContext ctx) { + super.copyFrom(ctx); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabeledRulePatternContext extends SwitchLabelCaseContext { + public TerminalNode CASE() { return getToken(Java17Parser.CASE, 0); } + public PatternContext pattern() { + return getRuleContext(PatternContext.class,0); + } + public TerminalNode ARROW() { return getToken(Java17Parser.ARROW, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public LabeledRulePatternContext(SwitchLabelCaseContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLabeledRulePattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLabeledRulePattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLabeledRulePattern(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabeledRuleNullContext extends SwitchLabelCaseContext { + public TerminalNode CASE() { return getToken(Java17Parser.CASE, 0); } + public TerminalNode NULL_LITERAL() { return getToken(Java17Parser.NULL_LITERAL, 0); } + public TerminalNode ARROW() { return getToken(Java17Parser.ARROW, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public LabeledRuleNullContext(SwitchLabelCaseContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLabeledRuleNull(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLabeledRuleNull(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLabeledRuleNull(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabeledRuleDefaultContext extends SwitchLabelCaseContext { + public TerminalNode DEFAULT() { return getToken(Java17Parser.DEFAULT, 0); } + public TerminalNode ARROW() { return getToken(Java17Parser.ARROW, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public LabeledRuleDefaultContext(SwitchLabelCaseContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLabeledRuleDefault(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLabeledRuleDefault(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLabeledRuleDefault(this); + else return visitor.visitChildren(this); + } + } + @SuppressWarnings("CheckReturnValue") + public static class LabeledRuleExprListContext extends SwitchLabelCaseContext { + public TerminalNode CASE() { return getToken(Java17Parser.CASE, 0); } + public ExpressionListContext expressionList() { + return getRuleContext(ExpressionListContext.class,0); + } + public TerminalNode ARROW() { return getToken(Java17Parser.ARROW, 0); } + public TerminalNode COLON() { return getToken(Java17Parser.COLON, 0); } + public LabeledRuleExprListContext(SwitchLabelCaseContext ctx) { copyFrom(ctx); } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterLabeledRuleExprList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitLabeledRuleExprList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitLabeledRuleExprList(this); + else return visitor.visitChildren(this); + } + } + + public final SwitchLabelCaseContext switchLabelCase() throws RecognitionException { + SwitchLabelCaseContext _localctx = new SwitchLabelCaseContext(_ctx, getState()); + enterRule(_localctx, 238, RULE_switchLabelCase); + int _la; + try { + setState(1631); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,198,_ctx) ) { + case 1: + _localctx = new LabeledRuleNullContext(_localctx); + enterOuterAlt(_localctx, 1); + { + setState(1618); + match(CASE); + setState(1619); + match(NULL_LITERAL); + setState(1620); + _la = _input.LA(1); + if ( !(_la==COLON || _la==ARROW) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 2: + _localctx = new LabeledRulePatternContext(_localctx); + enterOuterAlt(_localctx, 2); + { + setState(1621); + match(CASE); + setState(1622); + pattern(); + setState(1623); + _la = _input.LA(1); + if ( !(_la==COLON || _la==ARROW) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 3: + _localctx = new LabeledRuleDefaultContext(_localctx); + enterOuterAlt(_localctx, 3); + { + setState(1625); + match(DEFAULT); + setState(1626); + _la = _input.LA(1); + if ( !(_la==COLON || _la==ARROW) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + case 4: + _localctx = new LabeledRuleExprListContext(_localctx); + enterOuterAlt(_localctx, 4); + { + setState(1627); + match(CASE); + setState(1628); + expressionList(); + setState(1629); + _la = _input.LA(1); + if ( !(_la==COLON || _la==ARROW) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class GuardedPatternContext extends ParserRuleContext { + public PrimaryPatternContext primaryPattern() { + return getRuleContext(PrimaryPatternContext.class,0); + } + public TerminalNode WITH() { return getToken(Java17Parser.WITH, 0); } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public GuardedPatternContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_guardedPattern; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterGuardedPattern(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitGuardedPattern(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitGuardedPattern(this); + else return visitor.visitChildren(this); + } + } + + public final GuardedPatternContext guardedPattern() throws RecognitionException { + GuardedPatternContext _localctx = new GuardedPatternContext(_ctx, getState()); + enterRule(_localctx, 240, RULE_guardedPattern); + try { + enterOuterAlt(_localctx, 1); + { + setState(1633); + primaryPattern(); + setState(1634); + match(WITH); + setState(1635); + expression(0); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SwitchRuleOutcomeContext extends ParserRuleContext { + public BlockContext block() { + return getRuleContext(BlockContext.class,0); + } + public ExpressionContext expression() { + return getRuleContext(ExpressionContext.class,0); + } + public TerminalNode SEMI() { return getToken(Java17Parser.SEMI, 0); } + public SwitchRuleOutcomeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switchRuleOutcome; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSwitchRuleOutcome(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSwitchRuleOutcome(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSwitchRuleOutcome(this); + else return visitor.visitChildren(this); + } + } + + public final SwitchRuleOutcomeContext switchRuleOutcome() throws RecognitionException { + SwitchRuleOutcomeContext _localctx = new SwitchRuleOutcomeContext(_ctx, getState()); + enterRule(_localctx, 242, RULE_switchRuleOutcome); + try { + setState(1641); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACE: + enterOuterAlt(_localctx, 1); + { + setState(1637); + block(); + } + break; + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case NEW: + case SHORT: + case SUPER: + case SWITCH: + case THIS: + case VOID: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case DECIMAL_LITERAL: + case HEX_LITERAL: + case OCT_LITERAL: + case BINARY_LITERAL: + case FLOAT_LITERAL: + case HEX_FLOAT_LITERAL: + case BOOL_LITERAL: + case CHAR_LITERAL: + case STRING_LITERAL: + case TEXT_BLOCK: + case NULL_LITERAL: + case LPAREN: + case LT: + case BANG: + case TILDE: + case INC: + case DEC: + case ADD: + case SUB: + case AT: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(1638); + expression(0); + setState(1639); + match(SEMI); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassTypeContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ClassOrInterfaceTypeContext classOrInterfaceType() { + return getRuleContext(ClassOrInterfaceTypeContext.class,0); + } + public TerminalNode DOT() { return getToken(Java17Parser.DOT, 0); } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public ClassTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassType(this); + else return visitor.visitChildren(this); + } + } + + public final ClassTypeContext classType() throws RecognitionException { + ClassTypeContext _localctx = new ClassTypeContext(_ctx, getState()); + enterRule(_localctx, 244, RULE_classType); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1646); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,200,_ctx) ) { + case 1: + { + setState(1643); + classOrInterfaceType(); + setState(1644); + match(DOT); + } + break; + } + setState(1651); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,201,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1648); + annotation(); + } + } + } + setState(1653); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,201,_ctx); + } + setState(1654); + identifier(); + setState(1656); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1655); + typeArguments(); + } + } + + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreatorContext extends ParserRuleContext { + public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { + return getRuleContext(NonWildcardTypeArgumentsContext.class,0); + } + public CreatedNameContext createdName() { + return getRuleContext(CreatedNameContext.class,0); + } + public ClassCreatorRestContext classCreatorRest() { + return getRuleContext(ClassCreatorRestContext.class,0); + } + public ArrayCreatorRestContext arrayCreatorRest() { + return getRuleContext(ArrayCreatorRestContext.class,0); + } + public CreatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_creator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterCreator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitCreator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitCreator(this); + else return visitor.visitChildren(this); + } + } + + public final CreatorContext creator() throws RecognitionException { + CreatorContext _localctx = new CreatorContext(_ctx, getState()); + enterRule(_localctx, 246, RULE_creator); + try { + setState(1667); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LT: + enterOuterAlt(_localctx, 1); + { + setState(1658); + nonWildcardTypeArguments(); + setState(1659); + createdName(); + setState(1660); + classCreatorRest(); + } + break; + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(1662); + createdName(); + setState(1665); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LBRACK: + { + setState(1663); + arrayCreatorRest(); + } + break; + case LPAREN: + { + setState(1664); + classCreatorRest(); + } + break; + default: + throw new NoViableAltException(this); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class CreatedNameContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() { + return getRuleContext(TypeArgumentsOrDiamondContext.class,0); + } + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public CreatedNameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_createdName; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterCreatedName(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitCreatedName(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitCreatedName(this); + else return visitor.visitChildren(this); + } + } + + public final CreatedNameContext createdName() throws RecognitionException { + CreatedNameContext _localctx = new CreatedNameContext(_ctx, getState()); + enterRule(_localctx, 248, RULE_createdName); + int _la; + try { + setState(1674); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(1669); + identifier(); + setState(1671); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1670); + typeArgumentsOrDiamond(); + } + } + + } + break; + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + enterOuterAlt(_localctx, 2); + { + setState(1673); + primitiveType(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class InnerCreatorContext extends ParserRuleContext { + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ClassCreatorRestContext classCreatorRest() { + return getRuleContext(ClassCreatorRestContext.class,0); + } + public NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() { + return getRuleContext(NonWildcardTypeArgumentsOrDiamondContext.class,0); + } + public InnerCreatorContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_innerCreator; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterInnerCreator(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitInnerCreator(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitInnerCreator(this); + else return visitor.visitChildren(this); + } + } + + public final InnerCreatorContext innerCreator() throws RecognitionException { + InnerCreatorContext _localctx = new InnerCreatorContext(_ctx, getState()); + enterRule(_localctx, 250, RULE_innerCreator); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1676); + identifier(); + setState(1678); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1677); + nonWildcardTypeArgumentsOrDiamond(); + } + } + + setState(1680); + classCreatorRest(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArrayCreatorRestContext extends ParserRuleContext { + public List LBRACK() { return getTokens(Java17Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java17Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java17Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java17Parser.RBRACK, i); + } + public ArrayInitializerContext arrayInitializer() { + return getRuleContext(ArrayInitializerContext.class,0); + } + public List expression() { + return getRuleContexts(ExpressionContext.class); + } + public ExpressionContext expression(int i) { + return getRuleContext(ExpressionContext.class,i); + } + public ArrayCreatorRestContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arrayCreatorRest; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterArrayCreatorRest(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitArrayCreatorRest(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitArrayCreatorRest(this); + else return visitor.visitChildren(this); + } + } + + public final ArrayCreatorRestContext arrayCreatorRest() throws RecognitionException { + ArrayCreatorRestContext _localctx = new ArrayCreatorRestContext(_ctx, getState()); + enterRule(_localctx, 252, RULE_arrayCreatorRest); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1682); + match(LBRACK); + setState(1710); + _errHandler.sync(this); + switch (_input.LA(1)) { + case RBRACK: + { + setState(1683); + match(RBRACK); + setState(1688); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==LBRACK) { + { + { + setState(1684); + match(LBRACK); + setState(1685); + match(RBRACK); + } + } + setState(1690); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1691); + arrayInitializer(); + } + break; + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case NEW: + case SHORT: + case SUPER: + case SWITCH: + case THIS: + case VOID: + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case DECIMAL_LITERAL: + case HEX_LITERAL: + case OCT_LITERAL: + case BINARY_LITERAL: + case FLOAT_LITERAL: + case HEX_FLOAT_LITERAL: + case BOOL_LITERAL: + case CHAR_LITERAL: + case STRING_LITERAL: + case TEXT_BLOCK: + case NULL_LITERAL: + case LPAREN: + case LT: + case BANG: + case TILDE: + case INC: + case DEC: + case ADD: + case SUB: + case AT: + case IDENTIFIER: + { + setState(1692); + expression(0); + setState(1693); + match(RBRACK); + setState(1700); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,209,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1694); + match(LBRACK); + setState(1695); + expression(0); + setState(1696); + match(RBRACK); + } + } + } + setState(1702); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,209,_ctx); + } + setState(1707); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,210,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1703); + match(LBRACK); + setState(1704); + match(RBRACK); + } + } + } + setState(1709); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,210,_ctx); + } + } + break; + default: + throw new NoViableAltException(this); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ClassCreatorRestContext extends ParserRuleContext { + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public ClassBodyContext classBody() { + return getRuleContext(ClassBodyContext.class,0); + } + public ClassCreatorRestContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_classCreatorRest; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterClassCreatorRest(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitClassCreatorRest(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitClassCreatorRest(this); + else return visitor.visitChildren(this); + } + } + + public final ClassCreatorRestContext classCreatorRest() throws RecognitionException { + ClassCreatorRestContext _localctx = new ClassCreatorRestContext(_ctx, getState()); + enterRule(_localctx, 254, RULE_classCreatorRest); + try { + enterOuterAlt(_localctx, 1); + { + setState(1712); + arguments(); + setState(1714); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,212,_ctx) ) { + case 1: + { + setState(1713); + classBody(); + } + break; + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExplicitGenericInvocationContext extends ParserRuleContext { + public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { + return getRuleContext(NonWildcardTypeArgumentsContext.class,0); + } + public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() { + return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0); + } + public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explicitGenericInvocation; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterExplicitGenericInvocation(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitExplicitGenericInvocation(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitExplicitGenericInvocation(this); + else return visitor.visitChildren(this); + } + } + + public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException { + ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState()); + enterRule(_localctx, 256, RULE_explicitGenericInvocation); + try { + enterOuterAlt(_localctx, 1); + { + setState(1716); + nonWildcardTypeArguments(); + setState(1717); + explicitGenericInvocationSuffix(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentsOrDiamondContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java17Parser.LT, 0); } + public TerminalNode GT() { return getToken(Java17Parser.GT, 0); } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public TypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypeArgumentsOrDiamond(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypeArgumentsOrDiamond(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypeArgumentsOrDiamond(this); + else return visitor.visitChildren(this); + } + } + + public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException { + TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState()); + enterRule(_localctx, 258, RULE_typeArgumentsOrDiamond); + try { + setState(1722); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,213,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1719); + match(LT); + setState(1720); + match(GT); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1721); + typeArguments(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NonWildcardTypeArgumentsOrDiamondContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java17Parser.LT, 0); } + public TerminalNode GT() { return getToken(Java17Parser.GT, 0); } + public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() { + return getRuleContext(NonWildcardTypeArgumentsContext.class,0); + } + public NonWildcardTypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nonWildcardTypeArgumentsOrDiamond; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterNonWildcardTypeArgumentsOrDiamond(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitNonWildcardTypeArgumentsOrDiamond(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitNonWildcardTypeArgumentsOrDiamond(this); + else return visitor.visitChildren(this); + } + } + + public final NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() throws RecognitionException { + NonWildcardTypeArgumentsOrDiamondContext _localctx = new NonWildcardTypeArgumentsOrDiamondContext(_ctx, getState()); + enterRule(_localctx, 260, RULE_nonWildcardTypeArgumentsOrDiamond); + try { + setState(1727); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,214,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(1724); + match(LT); + setState(1725); + match(GT); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(1726); + nonWildcardTypeArguments(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class NonWildcardTypeArgumentsContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java17Parser.LT, 0); } + public TypeListContext typeList() { + return getRuleContext(TypeListContext.class,0); + } + public TerminalNode GT() { return getToken(Java17Parser.GT, 0); } + public NonWildcardTypeArgumentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_nonWildcardTypeArguments; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterNonWildcardTypeArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitNonWildcardTypeArguments(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitNonWildcardTypeArguments(this); + else return visitor.visitChildren(this); + } + } + + public final NonWildcardTypeArgumentsContext nonWildcardTypeArguments() throws RecognitionException { + NonWildcardTypeArgumentsContext _localctx = new NonWildcardTypeArgumentsContext(_ctx, getState()); + enterRule(_localctx, 262, RULE_nonWildcardTypeArguments); + try { + enterOuterAlt(_localctx, 1); + { + setState(1729); + match(LT); + setState(1730); + typeList(); + setState(1731); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeListContext extends ParserRuleContext { + public List typeType() { + return getRuleContexts(TypeTypeContext.class); + } + public TypeTypeContext typeType(int i) { + return getRuleContext(TypeTypeContext.class,i); + } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public TypeListContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeList; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypeList(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypeList(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypeList(this); + else return visitor.visitChildren(this); + } + } + + public final TypeListContext typeList() throws RecognitionException { + TypeListContext _localctx = new TypeListContext(_ctx, getState()); + enterRule(_localctx, 264, RULE_typeList); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1733); + typeType(); + setState(1738); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1734); + match(COMMA); + setState(1735); + typeType(); + } + } + setState(1740); + _errHandler.sync(this); + _la = _input.LA(1); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeTypeContext extends ParserRuleContext { + public ClassOrInterfaceTypeContext classOrInterfaceType() { + return getRuleContext(ClassOrInterfaceTypeContext.class,0); + } + public PrimitiveTypeContext primitiveType() { + return getRuleContext(PrimitiveTypeContext.class,0); + } + public List annotation() { + return getRuleContexts(AnnotationContext.class); + } + public AnnotationContext annotation(int i) { + return getRuleContext(AnnotationContext.class,i); + } + public List LBRACK() { return getTokens(Java17Parser.LBRACK); } + public TerminalNode LBRACK(int i) { + return getToken(Java17Parser.LBRACK, i); + } + public List RBRACK() { return getTokens(Java17Parser.RBRACK); } + public TerminalNode RBRACK(int i) { + return getToken(Java17Parser.RBRACK, i); + } + public TypeTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypeType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypeType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypeType(this); + else return visitor.visitChildren(this); + } + } + + public final TypeTypeContext typeType() throws RecognitionException { + TypeTypeContext _localctx = new TypeTypeContext(_ctx, getState()); + enterRule(_localctx, 266, RULE_typeType); + int _la; + try { + int _alt; + enterOuterAlt(_localctx, 1); + { + setState(1744); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,216,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1741); + annotation(); + } + } + } + setState(1746); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,216,_ctx); + } + setState(1749); + _errHandler.sync(this); + switch (_input.LA(1)) { + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case IDENTIFIER: + { + setState(1747); + classOrInterfaceType(); + } + break; + case BOOLEAN: + case BYTE: + case CHAR: + case DOUBLE: + case FLOAT: + case INT: + case LONG: + case SHORT: + { + setState(1748); + primitiveType(); + } + break; + default: + throw new NoViableAltException(this); + } + setState(1761); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,219,_ctx); + while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) { + if ( _alt==1 ) { + { + { + setState(1754); + _errHandler.sync(this); + _la = _input.LA(1); + while (((((_la - 51)) & ~0x3f) == 0 && ((1L << (_la - 51)) & 32767L) != 0) || _la==AT || _la==IDENTIFIER) { + { + { + setState(1751); + annotation(); + } + } + setState(1756); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1757); + match(LBRACK); + setState(1758); + match(RBRACK); + } + } + } + setState(1763); + _errHandler.sync(this); + _alt = getInterpreter().adaptivePredict(_input,219,_ctx); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class PrimitiveTypeContext extends ParserRuleContext { + public TerminalNode BOOLEAN() { return getToken(Java17Parser.BOOLEAN, 0); } + public TerminalNode CHAR() { return getToken(Java17Parser.CHAR, 0); } + public TerminalNode BYTE() { return getToken(Java17Parser.BYTE, 0); } + public TerminalNode SHORT() { return getToken(Java17Parser.SHORT, 0); } + public TerminalNode INT() { return getToken(Java17Parser.INT, 0); } + public TerminalNode LONG() { return getToken(Java17Parser.LONG, 0); } + public TerminalNode FLOAT() { return getToken(Java17Parser.FLOAT, 0); } + public TerminalNode DOUBLE() { return getToken(Java17Parser.DOUBLE, 0); } + public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_primitiveType; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterPrimitiveType(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitPrimitiveType(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitPrimitiveType(this); + else return visitor.visitChildren(this); + } + } + + public final PrimitiveTypeContext primitiveType() throws RecognitionException { + PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState()); + enterRule(_localctx, 268, RULE_primitiveType); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1764); + _la = _input.LA(1); + if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 138111107368L) != 0)) ) { + _errHandler.recoverInline(this); + } + else { + if ( _input.LA(1)==Token.EOF ) matchedEOF = true; + _errHandler.reportMatch(this); + consume(); + } + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class TypeArgumentsContext extends ParserRuleContext { + public TerminalNode LT() { return getToken(Java17Parser.LT, 0); } + public List typeArgument() { + return getRuleContexts(TypeArgumentContext.class); + } + public TypeArgumentContext typeArgument(int i) { + return getRuleContext(TypeArgumentContext.class,i); + } + public TerminalNode GT() { return getToken(Java17Parser.GT, 0); } + public List COMMA() { return getTokens(Java17Parser.COMMA); } + public TerminalNode COMMA(int i) { + return getToken(Java17Parser.COMMA, i); + } + public TypeArgumentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_typeArguments; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterTypeArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitTypeArguments(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitTypeArguments(this); + else return visitor.visitChildren(this); + } + } + + public final TypeArgumentsContext typeArguments() throws RecognitionException { + TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState()); + enterRule(_localctx, 270, RULE_typeArguments); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1766); + match(LT); + setState(1767); + typeArgument(); + setState(1772); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==COMMA) { + { + { + setState(1768); + match(COMMA); + setState(1769); + typeArgument(); + } + } + setState(1774); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(1775); + match(GT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class SuperSuffixContext extends ParserRuleContext { + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public TerminalNode DOT() { return getToken(Java17Parser.DOT, 0); } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public TypeArgumentsContext typeArguments() { + return getRuleContext(TypeArgumentsContext.class,0); + } + public SuperSuffixContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_superSuffix; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterSuperSuffix(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitSuperSuffix(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitSuperSuffix(this); + else return visitor.visitChildren(this); + } + } + + public final SuperSuffixContext superSuffix() throws RecognitionException { + SuperSuffixContext _localctx = new SuperSuffixContext(_ctx, getState()); + enterRule(_localctx, 272, RULE_superSuffix); + int _la; + try { + setState(1786); + _errHandler.sync(this); + switch (_input.LA(1)) { + case LPAREN: + enterOuterAlt(_localctx, 1); + { + setState(1777); + arguments(); + } + break; + case DOT: + enterOuterAlt(_localctx, 2); + { + setState(1778); + match(DOT); + setState(1780); + _errHandler.sync(this); + _la = _input.LA(1); + if (_la==LT) { + { + setState(1779); + typeArguments(); + } + } + + setState(1782); + identifier(); + setState(1784); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,222,_ctx) ) { + case 1: + { + setState(1783); + arguments(); + } + break; + } + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ExplicitGenericInvocationSuffixContext extends ParserRuleContext { + public TerminalNode SUPER() { return getToken(Java17Parser.SUPER, 0); } + public SuperSuffixContext superSuffix() { + return getRuleContext(SuperSuffixContext.class,0); + } + public IdentifierContext identifier() { + return getRuleContext(IdentifierContext.class,0); + } + public ArgumentsContext arguments() { + return getRuleContext(ArgumentsContext.class,0); + } + public ExplicitGenericInvocationSuffixContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_explicitGenericInvocationSuffix; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterExplicitGenericInvocationSuffix(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitExplicitGenericInvocationSuffix(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitExplicitGenericInvocationSuffix(this); + else return visitor.visitChildren(this); + } + } + + public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException { + ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState()); + enterRule(_localctx, 274, RULE_explicitGenericInvocationSuffix); + try { + setState(1793); + _errHandler.sync(this); + switch (_input.LA(1)) { + case SUPER: + enterOuterAlt(_localctx, 1); + { + setState(1788); + match(SUPER); + setState(1789); + superSuffix(); + } + break; + case MODULE: + case OPEN: + case REQUIRES: + case EXPORTS: + case OPENS: + case TO: + case USES: + case PROVIDES: + case WITH: + case TRANSITIVE: + case VAR: + case YIELD: + case RECORD: + case SEALED: + case PERMITS: + case IDENTIFIER: + enterOuterAlt(_localctx, 2); + { + setState(1790); + identifier(); + setState(1791); + arguments(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + @SuppressWarnings("CheckReturnValue") + public static class ArgumentsContext extends ParserRuleContext { + public TerminalNode LPAREN() { return getToken(Java17Parser.LPAREN, 0); } + public TerminalNode RPAREN() { return getToken(Java17Parser.RPAREN, 0); } + public ExpressionListContext expressionList() { + return getRuleContext(ExpressionListContext.class,0); + } + public ArgumentsContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_arguments; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).enterArguments(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof Java17ParserListener ) ((Java17ParserListener)listener).exitArguments(this); + } + @Override + public T accept(ParseTreeVisitor visitor) { + if ( visitor instanceof Java17ParserVisitor ) return ((Java17ParserVisitor)visitor).visitArguments(this); + else return visitor.visitChildren(this); + } + } + + public final ArgumentsContext arguments() throws RecognitionException { + ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState()); + enterRule(_localctx, 276, RULE_arguments); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(1795); + match(LPAREN); + setState(1797); + _errHandler.sync(this); + _la = _input.LA(1); + if (((((_la - 3)) & ~0x3f) == 0 && ((1L << (_la - 3)) & 9223127275610966053L) != 0) || ((((_la - 67)) & ~0x3f) == 0 && ((1L << (_la - 67)) & 2377900732130004991L) != 0)) { + { + setState(1796); + expressionList(); + } + } + + setState(1799); + match(RPAREN); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) { + switch (ruleIndex) { + case 105: + return expression_sempred((ExpressionContext)_localctx, predIndex); + } + return true; + } + private boolean expression_sempred(ExpressionContext _localctx, int predIndex) { + switch (predIndex) { + case 0: + return precpred(_ctx, 18); + case 1: + return precpred(_ctx, 17); + case 2: + return precpred(_ctx, 16); + case 3: + return precpred(_ctx, 15); + case 4: + return precpred(_ctx, 13); + case 5: + return precpred(_ctx, 12); + case 6: + return precpred(_ctx, 11); + case 7: + return precpred(_ctx, 10); + case 8: + return precpred(_ctx, 9); + case 9: + return precpred(_ctx, 8); + case 10: + return precpred(_ctx, 7); + case 11: + return precpred(_ctx, 6); + case 12: + return precpred(_ctx, 25); + case 13: + return precpred(_ctx, 24); + case 14: + return precpred(_ctx, 20); + case 15: + return precpred(_ctx, 14); + case 16: + return precpred(_ctx, 3); + } + return true; + } + + public static final String _serializedATN = + "\u0004\u0001\u0080\u070a\u0002\u0000\u0007\u0000\u0002\u0001\u0007\u0001"+ + "\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004\u0007\u0004"+ + "\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007\u0007\u0007"+ + "\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b\u0007\u000b"+ + "\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002\u000f\u0007"+ + "\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002\u0012\u0007"+ + "\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002\u0015\u0007"+ + "\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002\u0018\u0007"+ + "\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002\u001b\u0007"+ + "\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002\u001e\u0007"+ + "\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007!\u0002\"\u0007"+ + "\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007&\u0002\'\u0007"+ + "\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007+\u0002,\u0007"+ + ",\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u00070\u00021\u0007"+ + "1\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u00075\u00026\u0007"+ + "6\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007:\u0002;\u0007"+ + ";\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007?\u0002@\u0007"+ + "@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007D\u0002E\u0007"+ + "E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007I\u0002J\u0007"+ + "J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007N\u0002O\u0007"+ + "O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007S\u0002T\u0007"+ + "T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007X\u0002Y\u0007"+ + "Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007]\u0002^\u0007"+ + "^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007b\u0002c\u0007"+ + "c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007g\u0002h\u0007"+ + "h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007l\u0002m\u0007"+ + "m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007q\u0002r\u0007"+ + "r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007v\u0002w\u0007"+ + "w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007{\u0002|\u0007"+ + "|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002\u0080\u0007"+ + "\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002\u0083\u0007"+ + "\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002\u0086\u0007"+ + "\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002\u0089\u0007"+ + "\u0089\u0002\u008a\u0007\u008a\u0001\u0000\u0003\u0000\u0118\b\u0000\u0001"+ + "\u0000\u0005\u0000\u011b\b\u0000\n\u0000\f\u0000\u011e\t\u0000\u0001\u0000"+ + "\u0005\u0000\u0121\b\u0000\n\u0000\f\u0000\u0124\t\u0000\u0001\u0000\u0001"+ + "\u0000\u0001\u0000\u0003\u0000\u0129\b\u0000\u0001\u0001\u0005\u0001\u012c"+ + "\b\u0001\n\u0001\f\u0001\u012f\t\u0001\u0001\u0001\u0001\u0001\u0001\u0001"+ + "\u0001\u0001\u0001\u0002\u0001\u0002\u0003\u0002\u0137\b\u0002\u0001\u0002"+ + "\u0001\u0002\u0001\u0002\u0003\u0002\u013c\b\u0002\u0001\u0002\u0001\u0002"+ + "\u0001\u0003\u0005\u0003\u0141\b\u0003\n\u0003\f\u0003\u0144\t\u0003\u0001"+ + "\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0003\u0003\u014b"+ + "\b\u0003\u0001\u0003\u0003\u0003\u014e\b\u0003\u0001\u0004\u0001\u0004"+ + "\u0001\u0004\u0001\u0004\u0001\u0004\u0003\u0004\u0155\b\u0004\u0001\u0005"+ + "\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005"+ + "\u0001\u0005\u0001\u0005\u0001\u0005\u0003\u0005\u0161\b\u0005\u0001\u0006"+ + "\u0001\u0006\u0003\u0006\u0165\b\u0006\u0001\u0007\u0001\u0007\u0001\u0007"+ + "\u0003\u0007\u016a\b\u0007\u0001\u0007\u0001\u0007\u0003\u0007\u016e\b"+ + "\u0007\u0001\u0007\u0001\u0007\u0003\u0007\u0172\b\u0007\u0001\u0007\u0001"+ + "\u0007\u0003\u0007\u0176\b\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001"+ + "\b\u0001\b\u0001\b\u0005\b\u017e\b\b\n\b\f\b\u0181\t\b\u0001\b\u0001\b"+ + "\u0001\t\u0005\t\u0186\b\t\n\t\f\t\u0189\t\t\u0001\t\u0001\t\u0001\t\u0005"+ + "\t\u018e\b\t\n\t\f\t\u0191\t\t\u0001\t\u0003\t\u0194\b\t\u0001\n\u0001"+ + "\n\u0001\n\u0005\n\u0199\b\n\n\n\f\n\u019c\t\n\u0001\u000b\u0001\u000b"+ + "\u0001\u000b\u0001\u000b\u0003\u000b\u01a2\b\u000b\u0001\u000b\u0001\u000b"+ + "\u0003\u000b\u01a6\b\u000b\u0001\u000b\u0003\u000b\u01a9\b\u000b\u0001"+ + "\u000b\u0003\u000b\u01ac\b\u000b\u0001\u000b\u0001\u000b\u0001\f\u0001"+ + "\f\u0001\f\u0005\f\u01b3\b\f\n\f\f\f\u01b6\t\f\u0001\r\u0005\r\u01b9\b"+ + "\r\n\r\f\r\u01bc\t\r\u0001\r\u0001\r\u0003\r\u01c0\b\r\u0001\r\u0003\r"+ + "\u01c3\b\r\u0001\u000e\u0001\u000e\u0005\u000e\u01c7\b\u000e\n\u000e\f"+ + "\u000e\u01ca\t\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0003\u000f\u01cf"+ + "\b\u000f\u0001\u000f\u0001\u000f\u0003\u000f\u01d3\b\u000f\u0001\u000f"+ + "\u0001\u000f\u0003\u000f\u01d7\b\u000f\u0001\u000f\u0001\u000f\u0001\u0010"+ + "\u0001\u0010\u0005\u0010\u01dd\b\u0010\n\u0010\f\u0010\u01e0\t\u0010\u0001"+ + "\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0005\u0011\u01e6\b\u0011\n"+ + "\u0011\f\u0011\u01e9\t\u0011\u0001\u0011\u0001\u0011\u0001\u0012\u0001"+ + "\u0012\u0003\u0012\u01ef\b\u0012\u0001\u0012\u0001\u0012\u0005\u0012\u01f3"+ + "\b\u0012\n\u0012\f\u0012\u01f6\t\u0012\u0001\u0012\u0003\u0012\u01f9\b"+ + "\u0012\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0003\u0013\u01ff"+ + "\b\u0013\u0001\u0014\u0001\u0014\u0003\u0014\u0203\b\u0014\u0001\u0015"+ + "\u0001\u0015\u0001\u0015\u0003\u0015\u0208\b\u0015\u0001\u0015\u0001\u0015"+ + "\u0001\u0016\u0003\u0016\u020d\b\u0016\u0001\u0016\u0001\u0016\u0001\u0016"+ + "\u0001\u0016\u0005\u0016\u0213\b\u0016\n\u0016\f\u0016\u0216\t\u0016\u0001"+ + "\u0017\u0001\u0017\u0003\u0017\u021a\b\u0017\u0001\u0018\u0001\u0018\u0003"+ + "\u0018\u021e\b\u0018\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001"+ + "\u001a\u0003\u001a\u0225\b\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+ + "\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0003\u001c\u022e\b\u001c\u0001"+ + "\u001c\u0001\u001c\u0001\u001d\u0003\u001d\u0233\b\u001d\u0001\u001d\u0001"+ + "\u001d\u0001\u001d\u0001\u001e\u0005\u001e\u0239\b\u001e\n\u001e\f\u001e"+ + "\u023c\t\u001e\u0001\u001e\u0001\u001e\u0003\u001e\u0240\b\u001e\u0001"+ + "\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0003\u001f\u0246\b\u001f\u0001"+ + " \u0003 \u0249\b \u0001 \u0001 \u0001 \u0005 \u024e\b \n \f \u0251\t "+ + "\u0001 \u0001 \u0001!\u0001!\u0001!\u0005!\u0258\b!\n!\f!\u025b\t!\u0001"+ + "!\u0001!\u0001!\u0001\"\u0005\"\u0261\b\"\n\"\f\"\u0264\t\"\u0001\"\u0001"+ + "\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0003#\u026e\b#\u0001$\u0005"+ + "$\u0271\b$\n$\f$\u0274\t$\u0001$\u0001$\u0001$\u0001%\u0005%\u027a\b%"+ + "\n%\f%\u027d\t%\u0001%\u0003%\u0280\b%\u0001%\u0001%\u0001%\u0001%\u0005"+ + "%\u0286\b%\n%\f%\u0289\t%\u0001%\u0001%\u0003%\u028d\b%\u0001%\u0001%"+ + "\u0001&\u0001&\u0001&\u0005&\u0294\b&\n&\f&\u0297\t&\u0001\'\u0001\'\u0001"+ + "\'\u0003\'\u029c\b\'\u0001(\u0001(\u0001(\u0005(\u02a1\b(\n(\f(\u02a4"+ + "\t(\u0001)\u0001)\u0003)\u02a8\b)\u0001*\u0001*\u0001*\u0001*\u0005*\u02ae"+ + "\b*\n*\f*\u02b1\t*\u0001*\u0003*\u02b4\b*\u0003*\u02b6\b*\u0001*\u0001"+ + "*\u0001+\u0001+\u0003+\u02bc\b+\u0001+\u0001+\u0005+\u02c0\b+\n+\f+\u02c3"+ + "\t+\u0001+\u0001+\u0003+\u02c7\b+\u0001,\u0001,\u0003,\u02cb\b,\u0001"+ + "-\u0005-\u02ce\b-\n-\f-\u02d1\t-\u0001-\u0001-\u0001-\u0003-\u02d6\b-"+ + "\u0001.\u0001.\u0001.\u0001/\u0001/\u0001/\u00010\u00010\u00010\u0005"+ + "0\u02e1\b0\n0\f0\u02e4\t0\u00011\u00011\u00012\u00012\u00032\u02ea\b2"+ + "\u00012\u00012\u00012\u00032\u02ef\b2\u00012\u00032\u02f2\b2\u00032\u02f4"+ + "\b2\u00012\u00012\u00013\u00033\u02f9\b3\u00013\u00013\u00013\u00053\u02fe"+ + "\b3\n3\f3\u0301\t3\u00013\u00013\u00014\u00014\u00014\u00054\u0308\b4"+ + "\n4\f4\u030b\t4\u00014\u00014\u00034\u030f\b4\u00014\u00034\u0312\b4\u0001"+ + "5\u00055\u0315\b5\n5\f5\u0318\t5\u00015\u00035\u031b\b5\u00015\u00015"+ + "\u00035\u031f\b5\u00016\u00056\u0322\b6\n6\f6\u0325\t6\u00016\u00036\u0328"+ + "\b6\u00016\u00056\u032b\b6\n6\f6\u032e\t6\u00016\u00016\u00016\u00017"+ + "\u00017\u00017\u00057\u0336\b7\n7\f7\u0339\t7\u00018\u00058\u033c\b8\n"+ + "8\f8\u033f\t8\u00018\u00018\u00018\u00019\u00019\u00019\u00059\u0347\b"+ + "9\n9\f9\u034a\t9\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0001:\u0003"+ + ":\u0353\b:\u0001;\u0001;\u0001<\u0001<\u0001=\u0001=\u0001=\u0005=\u035c"+ + "\b=\n=\f=\u035f\t=\u0001=\u0001=\u0001=\u0001>\u0001>\u0001>\u0003>\u0367"+ + "\b>\u0001>\u0001>\u0001>\u0003>\u036c\b>\u0001>\u0003>\u036f\b>\u0001"+ + "?\u0001?\u0001?\u0005?\u0374\b?\n?\f?\u0377\t?\u0001@\u0001@\u0001@\u0001"+ + "@\u0001A\u0001A\u0001A\u0003A\u0380\bA\u0001B\u0001B\u0001B\u0001B\u0005"+ + "B\u0386\bB\nB\fB\u0389\tB\u0003B\u038b\bB\u0001B\u0003B\u038e\bB\u0001"+ + "B\u0001B\u0001C\u0001C\u0001C\u0001C\u0001C\u0001D\u0001D\u0005D\u0399"+ + "\bD\nD\fD\u039c\tD\u0001D\u0001D\u0001E\u0005E\u03a1\bE\nE\fE\u03a4\t"+ + "E\u0001E\u0001E\u0003E\u03a8\bE\u0001F\u0001F\u0001F\u0001F\u0001F\u0001"+ + "F\u0003F\u03b0\bF\u0003F\u03b2\bF\u0001G\u0001G\u0003G\u03b6\bG\u0001"+ + "H\u0001H\u0001H\u0001H\u0003H\u03bc\bH\u0001I\u0001I\u0001J\u0001J\u0001"+ + "J\u0001K\u0003K\u03c4\bK\u0001K\u0001K\u0001K\u0001K\u0001L\u0001L\u0005"+ + "L\u03cc\bL\nL\fL\u03cf\tL\u0001L\u0001L\u0001M\u0001M\u0005M\u03d5\bM"+ + "\nM\fM\u03d8\tM\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0003"+ + "M\u03e1\bM\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0003M\u03e9\bM\u0001"+ + "M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001"+ + "M\u0001M\u0003M\u03f7\bM\u0001N\u0001N\u0001O\u0001O\u0001O\u0003O\u03fe"+ + "\bO\u0001O\u0001O\u0001O\u0003O\u0403\bO\u0001O\u0001O\u0001P\u0001P\u0003"+ + "P\u0409\bP\u0001P\u0001P\u0001Q\u0001Q\u0001Q\u0005Q\u0410\bQ\nQ\fQ\u0413"+ + "\tQ\u0001R\u0003R\u0416\bR\u0001R\u0001R\u0001S\u0001S\u0005S\u041c\b"+ + "S\nS\fS\u041f\tS\u0001S\u0001S\u0001T\u0001T\u0005T\u0425\bT\nT\fT\u0428"+ + "\tT\u0001T\u0001T\u0001U\u0001U\u0001U\u0001U\u0001U\u0003U\u0431\bU\u0001"+ + "V\u0005V\u0434\bV\nV\fV\u0437\tV\u0001V\u0001V\u0003V\u043b\bV\u0001V"+ + "\u0001V\u0001W\u0001W\u0001X\u0001X\u0001Y\u0005Y\u0444\bY\nY\fY\u0447"+ + "\tY\u0001Y\u0001Y\u0001Y\u0003Y\u044c\bY\u0001Y\u0003Y\u044f\bY\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0003Z\u0456\bZ\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0003Z\u045f\bZ\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0004Z\u0474\bZ\u000bZ\fZ\u0475\u0001Z\u0003"+ + "Z\u0479\bZ\u0001Z\u0003Z\u047c\bZ\u0001Z\u0001Z\u0001Z\u0001Z\u0005Z\u0482"+ + "\bZ\nZ\fZ\u0485\tZ\u0001Z\u0003Z\u0488\bZ\u0001Z\u0001Z\u0001Z\u0001Z"+ + "\u0005Z\u048e\bZ\nZ\fZ\u0491\tZ\u0001Z\u0005Z\u0494\bZ\nZ\fZ\u0497\tZ"+ + "\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0003Z\u04a1"+ + "\bZ\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0003Z\u04aa\bZ\u0001"+ + "Z\u0001Z\u0001Z\u0003Z\u04af\bZ\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001"+ + "Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0001Z\u0003Z\u04be\bZ\u0001"+ + "[\u0001[\u0001[\u0005[\u04c3\b[\n[\f[\u04c6\t[\u0001[\u0003[\u04c9\b["+ + "\u0001[\u0001[\u0001[\u0001[\u0001\\\u0001\\\u0001\\\u0005\\\u04d2\b\\"+ + "\n\\\f\\\u04d5\t\\\u0001]\u0001]\u0001]\u0001^\u0001^\u0001^\u0003^\u04dd"+ + "\b^\u0001^\u0001^\u0001_\u0001_\u0001_\u0005_\u04e4\b_\n_\f_\u04e7\t_"+ + "\u0001`\u0005`\u04ea\b`\n`\f`\u04ed\t`\u0001`\u0003`\u04f0\b`\u0001`\u0001"+ + "`\u0001`\u0003`\u04f5\b`\u0001`\u0001`\u0001`\u0001`\u0003`\u04fb\b`\u0001"+ + "a\u0004a\u04fe\ba\u000ba\fa\u04ff\u0001a\u0004a\u0503\ba\u000ba\fa\u0504"+ + "\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001b\u0001"+ + "b\u0001b\u0001b\u0001b\u0003b\u0514\bb\u0001c\u0001c\u0003c\u0518\bc\u0001"+ + "c\u0001c\u0003c\u051c\bc\u0001c\u0001c\u0003c\u0520\bc\u0003c\u0522\b"+ + "c\u0001d\u0001d\u0003d\u0526\bd\u0001e\u0005e\u0529\be\ne\fe\u052c\te"+ + "\u0001e\u0003e\u052f\be\u0001e\u0003e\u0532\be\u0001e\u0001e\u0001e\u0001"+ + "e\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001g\u0005g\u053f\bg\ng"+ + "\fg\u0542\tg\u0001h\u0001h\u0001h\u0003h\u0547\bh\u0001h\u0001h\u0001"+ + "h\u0001h\u0001h\u0003h\u054e\bh\u0001h\u0001h\u0001h\u0001h\u0003h\u0554"+ + "\bh\u0001h\u0003h\u0557\bh\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0005i\u0560\bi\ni\fi\u0563\ti\u0001i\u0001i\u0001i\u0005i\u0568\bi"+ + "\ni\fi\u056b\ti\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0003i\u0577\bi\u0001i\u0001i\u0003i\u057b\bi\u0001i\u0001"+ + "i\u0001i\u0003i\u0580\bi\u0001i\u0001i\u0003i\u0584\bi\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0003i\u0594\bi\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0001i\u0003i\u05bc\bi\u0001i\u0001i\u0001i\u0001i\u0003i\u05c2\bi\u0001"+ + "i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001i\u0001"+ + "i\u0003i\u05cf\bi\u0001i\u0001i\u0001i\u0003i\u05d4\bi\u0001i\u0005i\u05d7"+ + "\bi\ni\fi\u05da\ti\u0001j\u0001j\u0003j\u05de\bj\u0001k\u0001k\u0001k"+ + "\u0001k\u0001k\u0001k\u0003k\u05e6\bk\u0001l\u0001l\u0001l\u0003l\u05eb"+ + "\bl\u0001m\u0005m\u05ee\bm\nm\fm\u05f1\tm\u0001m\u0001m\u0001m\u0001m"+ + "\u0005m\u05f7\bm\nm\fm\u05fa\tm\u0001m\u0003m\u05fd\bm\u0001n\u0001n\u0003"+ + "n\u0601\bn\u0001n\u0001n\u0001o\u0001o\u0003o\u0607\bo\u0001p\u0001p\u0001"+ + "p\u0005p\u060c\bp\np\fp\u060f\tp\u0001q\u0001q\u0001q\u0001q\u0001r\u0001"+ + "r\u0001r\u0003r\u0618\br\u0001r\u0001r\u0001r\u0001r\u0001r\u0005r\u061f"+ + "\br\nr\fr\u0622\tr\u0001r\u0001r\u0001r\u0001r\u0003r\u0628\br\u0001r"+ + "\u0003r\u062b\br\u0001s\u0001s\u0003s\u062f\bs\u0001t\u0001t\u0001t\u0001"+ + "t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001t\u0001"+ + "t\u0001t\u0001t\u0003t\u0641\bt\u0003t\u0643\bt\u0001u\u0001u\u0001u\u0001"+ + "u\u0005u\u0649\bu\nu\fu\u064c\tu\u0001u\u0001u\u0001v\u0001v\u0001v\u0001"+ + "w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001w\u0001"+ + "w\u0001w\u0001w\u0003w\u0660\bw\u0001x\u0001x\u0001x\u0001x\u0001y\u0001"+ + "y\u0001y\u0001y\u0003y\u066a\by\u0001z\u0001z\u0001z\u0003z\u066f\bz\u0001"+ + "z\u0005z\u0672\bz\nz\fz\u0675\tz\u0001z\u0001z\u0003z\u0679\bz\u0001{"+ + "\u0001{\u0001{\u0001{\u0001{\u0001{\u0001{\u0003{\u0682\b{\u0003{\u0684"+ + "\b{\u0001|\u0001|\u0003|\u0688\b|\u0001|\u0003|\u068b\b|\u0001}\u0001"+ + "}\u0003}\u068f\b}\u0001}\u0001}\u0001~\u0001~\u0001~\u0001~\u0005~\u0697"+ + "\b~\n~\f~\u069a\t~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0001~\u0005"+ + "~\u06a3\b~\n~\f~\u06a6\t~\u0001~\u0001~\u0005~\u06aa\b~\n~\f~\u06ad\t"+ + "~\u0003~\u06af\b~\u0001\u007f\u0001\u007f\u0003\u007f\u06b3\b\u007f\u0001"+ + "\u0080\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0081\u0003"+ + "\u0081\u06bb\b\u0081\u0001\u0082\u0001\u0082\u0001\u0082\u0003\u0082\u06c0"+ + "\b\u0082\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0083\u0001\u0084\u0001"+ + "\u0084\u0001\u0084\u0005\u0084\u06c9\b\u0084\n\u0084\f\u0084\u06cc\t\u0084"+ + "\u0001\u0085\u0005\u0085\u06cf\b\u0085\n\u0085\f\u0085\u06d2\t\u0085\u0001"+ + "\u0085\u0001\u0085\u0003\u0085\u06d6\b\u0085\u0001\u0085\u0005\u0085\u06d9"+ + "\b\u0085\n\u0085\f\u0085\u06dc\t\u0085\u0001\u0085\u0001\u0085\u0005\u0085"+ + "\u06e0\b\u0085\n\u0085\f\u0085\u06e3\t\u0085\u0001\u0086\u0001\u0086\u0001"+ + "\u0087\u0001\u0087\u0001\u0087\u0001\u0087\u0005\u0087\u06eb\b\u0087\n"+ + "\u0087\f\u0087\u06ee\t\u0087\u0001\u0087\u0001\u0087\u0001\u0088\u0001"+ + "\u0088\u0001\u0088\u0003\u0088\u06f5\b\u0088\u0001\u0088\u0001\u0088\u0003"+ + "\u0088\u06f9\b\u0088\u0003\u0088\u06fb\b\u0088\u0001\u0089\u0001\u0089"+ + "\u0001\u0089\u0001\u0089\u0001\u0089\u0003\u0089\u0702\b\u0089\u0001\u008a"+ + "\u0001\u008a\u0003\u008a\u0706\b\u008a\u0001\u008a\u0001\u008a\u0001\u008a"+ + "\u0000\u0001\u00d2\u008b\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012"+ + "\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\"+ + "^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090"+ + "\u0092\u0094\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8"+ + "\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0"+ + "\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8"+ + "\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0"+ + "\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108"+ + "\u010a\u010c\u010e\u0110\u0112\u0114\u0000\u000f\u0002\u0000\u0011\u0011"+ + "\u0018\u0018\u0001\u0000CF\u0001\u0000GH\u0002\u0000&&<<\u0002\u00003"+ + "A\u0080\u0080\u0003\u00003\u0245"+ + "\u0001\u0000\u0000\u0000@\u0248\u0001\u0000\u0000\u0000B\u0254\u0001\u0000"+ + "\u0000\u0000D\u0262\u0001\u0000\u0000\u0000F\u026d\u0001\u0000\u0000\u0000"+ + "H\u0272\u0001\u0000\u0000\u0000J\u027b\u0001\u0000\u0000\u0000L\u0290"+ + "\u0001\u0000\u0000\u0000N\u0298\u0001\u0000\u0000\u0000P\u029d\u0001\u0000"+ + "\u0000\u0000R\u02a7\u0001\u0000\u0000\u0000T\u02a9\u0001\u0000\u0000\u0000"+ + "V\u02c1\u0001\u0000\u0000\u0000X\u02ca\u0001\u0000\u0000\u0000Z\u02cf"+ + "\u0001\u0000\u0000\u0000\\\u02d7\u0001\u0000\u0000\u0000^\u02da\u0001"+ + "\u0000\u0000\u0000`\u02dd\u0001\u0000\u0000\u0000b\u02e5\u0001\u0000\u0000"+ + "\u0000d\u02e7\u0001\u0000\u0000\u0000f\u02f8\u0001\u0000\u0000\u0000h"+ + "\u0311\u0001\u0000\u0000\u0000j\u031e\u0001\u0000\u0000\u0000l\u0323\u0001"+ + "\u0000\u0000\u0000n\u0332\u0001\u0000\u0000\u0000p\u033d\u0001\u0000\u0000"+ + "\u0000r\u0343\u0001\u0000\u0000\u0000t\u0352\u0001\u0000\u0000\u0000v"+ + "\u0354\u0001\u0000\u0000\u0000x\u0356\u0001\u0000\u0000\u0000z\u035d\u0001"+ + "\u0000\u0000\u0000|\u0366\u0001\u0000\u0000\u0000~\u0370\u0001\u0000\u0000"+ + "\u0000\u0080\u0378\u0001\u0000\u0000\u0000\u0082\u037f\u0001\u0000\u0000"+ + "\u0000\u0084\u0381\u0001\u0000\u0000\u0000\u0086\u0391\u0001\u0000\u0000"+ + "\u0000\u0088\u0396\u0001\u0000\u0000\u0000\u008a\u03a7\u0001\u0000\u0000"+ + "\u0000\u008c\u03b1\u0001\u0000\u0000\u0000\u008e\u03b5\u0001\u0000\u0000"+ + "\u0000\u0090\u03b7\u0001\u0000\u0000\u0000\u0092\u03bd\u0001\u0000\u0000"+ + "\u0000\u0094\u03bf\u0001\u0000\u0000\u0000\u0096\u03c3\u0001\u0000\u0000"+ + "\u0000\u0098\u03c9\u0001\u0000\u0000\u0000\u009a\u03f6\u0001\u0000\u0000"+ + "\u0000\u009c\u03f8\u0001\u0000\u0000\u0000\u009e\u03fa\u0001\u0000\u0000"+ + "\u0000\u00a0\u0406\u0001\u0000\u0000\u0000\u00a2\u040c\u0001\u0000\u0000"+ + "\u0000\u00a4\u0415\u0001\u0000\u0000\u0000\u00a6\u0419\u0001\u0000\u0000"+ + "\u0000\u00a8\u0422\u0001\u0000\u0000\u0000\u00aa\u0430\u0001\u0000\u0000"+ + "\u0000\u00ac\u0435\u0001\u0000\u0000\u0000\u00ae\u043e\u0001\u0000\u0000"+ + "\u0000\u00b0\u0440\u0001\u0000\u0000\u0000\u00b2\u044e\u0001\u0000\u0000"+ + "\u0000\u00b4\u04bd\u0001\u0000\u0000\u0000\u00b6\u04bf\u0001\u0000\u0000"+ + "\u0000\u00b8\u04ce\u0001\u0000\u0000\u0000\u00ba\u04d6\u0001\u0000\u0000"+ + "\u0000\u00bc\u04d9\u0001\u0000\u0000\u0000\u00be\u04e0\u0001\u0000\u0000"+ + "\u0000\u00c0\u04fa\u0001\u0000\u0000\u0000\u00c2\u04fd\u0001\u0000\u0000"+ + "\u0000\u00c4\u0513\u0001\u0000\u0000\u0000\u00c6\u0521\u0001\u0000\u0000"+ + "\u0000\u00c8\u0525\u0001\u0000\u0000\u0000\u00ca\u052a\u0001\u0000\u0000"+ + "\u0000\u00cc\u0537\u0001\u0000\u0000\u0000\u00ce\u053b\u0001\u0000\u0000"+ + "\u0000\u00d0\u0556\u0001\u0000\u0000\u0000\u00d2\u0583\u0001\u0000\u0000"+ + "\u0000\u00d4\u05dd\u0001\u0000\u0000\u0000\u00d6\u05e5\u0001\u0000\u0000"+ + "\u0000\u00d8\u05e7\u0001\u0000\u0000\u0000\u00da\u05fc\u0001\u0000\u0000"+ + "\u0000\u00dc\u05fe\u0001\u0000\u0000\u0000\u00de\u0606\u0001\u0000\u0000"+ + "\u0000\u00e0\u0608\u0001\u0000\u0000\u0000\u00e2\u0610\u0001\u0000\u0000"+ + "\u0000\u00e4\u062a\u0001\u0000\u0000\u0000\u00e6\u062e\u0001\u0000\u0000"+ + "\u0000\u00e8\u0642\u0001\u0000\u0000\u0000\u00ea\u0644\u0001\u0000\u0000"+ + "\u0000\u00ec\u064f\u0001\u0000\u0000\u0000\u00ee\u065f\u0001\u0000\u0000"+ + "\u0000\u00f0\u0661\u0001\u0000\u0000\u0000\u00f2\u0669\u0001\u0000\u0000"+ + "\u0000\u00f4\u066e\u0001\u0000\u0000\u0000\u00f6\u0683\u0001\u0000\u0000"+ + "\u0000\u00f8\u068a\u0001\u0000\u0000\u0000\u00fa\u068c\u0001\u0000\u0000"+ + "\u0000\u00fc\u0692\u0001\u0000\u0000\u0000\u00fe\u06b0\u0001\u0000\u0000"+ + "\u0000\u0100\u06b4\u0001\u0000\u0000\u0000\u0102\u06ba\u0001\u0000\u0000"+ + "\u0000\u0104\u06bf\u0001\u0000\u0000\u0000\u0106\u06c1\u0001\u0000\u0000"+ + "\u0000\u0108\u06c5\u0001\u0000\u0000\u0000\u010a\u06d0\u0001\u0000\u0000"+ + "\u0000\u010c\u06e4\u0001\u0000\u0000\u0000\u010e\u06e6\u0001\u0000\u0000"+ + "\u0000\u0110\u06fa\u0001\u0000\u0000\u0000\u0112\u0701\u0001\u0000\u0000"+ + "\u0000\u0114\u0703\u0001\u0000\u0000\u0000\u0116\u0118\u0003\u0002\u0001"+ + "\u0000\u0117\u0116\u0001\u0000\u0000\u0000\u0117\u0118\u0001\u0000\u0000"+ + "\u0000\u0118\u011c\u0001\u0000\u0000\u0000\u0119\u011b\u0003\u0004\u0002"+ + "\u0000\u011a\u0119\u0001\u0000\u0000\u0000\u011b\u011e\u0001\u0000\u0000"+ + "\u0000\u011c\u011a\u0001\u0000\u0000\u0000\u011c\u011d\u0001\u0000\u0000"+ + "\u0000\u011d\u0122\u0001\u0000\u0000\u0000\u011e\u011c\u0001\u0000\u0000"+ + "\u0000\u011f\u0121\u0003\u0006\u0003\u0000\u0120\u011f\u0001\u0000\u0000"+ + "\u0000\u0121\u0124\u0001\u0000\u0000\u0000\u0122\u0120\u0001\u0000\u0000"+ + "\u0000\u0122\u0123\u0001\u0000\u0000\u0000\u0123\u0129\u0001\u0000\u0000"+ + "\u0000\u0124\u0122\u0001\u0000\u0000\u0000\u0125\u0126\u0003\u0096K\u0000"+ + "\u0126\u0127\u0005\u0000\u0000\u0001\u0127\u0129\u0001\u0000\u0000\u0000"+ + "\u0128\u0117\u0001\u0000\u0000\u0000\u0128\u0125\u0001\u0000\u0000\u0000"+ + "\u0129\u0001\u0001\u0000\u0000\u0000\u012a\u012c\u0003|>\u0000\u012b\u012a"+ + "\u0001\u0000\u0000\u0000\u012c\u012f\u0001\u0000\u0000\u0000\u012d\u012b"+ + "\u0001\u0000\u0000\u0000\u012d\u012e\u0001\u0000\u0000\u0000\u012e\u0130"+ + "\u0001\u0000\u0000\u0000\u012f\u012d\u0001\u0000\u0000\u0000\u0130\u0131"+ + "\u0005 \u0000\u0000\u0131\u0132\u0003r9\u0000\u0132\u0133\u0005T\u0000"+ + "\u0000\u0133\u0003\u0001\u0000\u0000\u0000\u0134\u0136\u0005\u0019\u0000"+ + "\u0000\u0135\u0137\u0005&\u0000\u0000\u0136\u0135\u0001\u0000\u0000\u0000"+ + "\u0136\u0137\u0001\u0000\u0000\u0000\u0137\u0138\u0001\u0000\u0000\u0000"+ + "\u0138\u013b\u0003r9\u0000\u0139\u013a\u0005V\u0000\u0000\u013a\u013c"+ + "\u0005h\u0000\u0000\u013b\u0139\u0001\u0000\u0000\u0000\u013b\u013c\u0001"+ + "\u0000\u0000\u0000\u013c\u013d\u0001\u0000\u0000\u0000\u013d\u013e\u0005"+ + "T\u0000\u0000\u013e\u0005\u0001\u0000\u0000\u0000\u013f\u0141\u0003\n"+ + "\u0005\u0000\u0140\u013f\u0001\u0000\u0000\u0000\u0141\u0144\u0001\u0000"+ + "\u0000\u0000\u0142\u0140\u0001\u0000\u0000\u0000\u0142\u0143\u0001\u0000"+ + "\u0000\u0000\u0143\u014a\u0001\u0000\u0000\u0000\u0144\u0142\u0001\u0000"+ + "\u0000\u0000\u0145\u014b\u0003\u000e\u0007\u0000\u0146\u014b\u0003\u0016"+ + "\u000b\u0000\u0147\u014b\u0003\u001e\u000f\u0000\u0148\u014b\u0003\u0086"+ + "C\u0000\u0149\u014b\u0003\u009eO\u0000\u014a\u0145\u0001\u0000\u0000\u0000"+ + "\u014a\u0146\u0001\u0000\u0000\u0000\u014a\u0147\u0001\u0000\u0000\u0000"+ + "\u014a\u0148\u0001\u0000\u0000\u0000\u014a\u0149\u0001\u0000\u0000\u0000"+ + "\u014b\u014e\u0001\u0000\u0000\u0000\u014c\u014e\u0005T\u0000\u0000\u014d"+ + "\u0142\u0001\u0000\u0000\u0000\u014d\u014c\u0001\u0000\u0000\u0000\u014e"+ + "\u0007\u0001\u0000\u0000\u0000\u014f\u0155\u0003\n\u0005\u0000\u0150\u0155"+ + "\u0005\u001e\u0000\u0000\u0151\u0155\u0005*\u0000\u0000\u0152\u0155\u0005"+ + ".\u0000\u0000\u0153\u0155\u00051\u0000\u0000\u0154\u014f\u0001\u0000\u0000"+ + "\u0000\u0154\u0150\u0001\u0000\u0000\u0000\u0154\u0151\u0001\u0000\u0000"+ + "\u0000\u0154\u0152\u0001\u0000\u0000\u0000\u0154\u0153\u0001\u0000\u0000"+ + "\u0000\u0155\t\u0001\u0000\u0000\u0000\u0156\u0161\u0003|>\u0000\u0157"+ + "\u0161\u0005#\u0000\u0000\u0158\u0161\u0005\"\u0000\u0000\u0159\u0161"+ + "\u0005!\u0000\u0000\u015a\u0161\u0005&\u0000\u0000\u015b\u0161\u0005\u0001"+ + "\u0000\u0000\u015c\u0161\u0005\u0012\u0000\u0000\u015d\u0161\u0005\'\u0000"+ + "\u0000\u015e\u0161\u0005@\u0000\u0000\u015f\u0161\u0005B\u0000\u0000\u0160"+ + "\u0156\u0001\u0000\u0000\u0000\u0160\u0157\u0001\u0000\u0000\u0000\u0160"+ + "\u0158\u0001\u0000\u0000\u0000\u0160\u0159\u0001\u0000\u0000\u0000\u0160"+ + "\u015a\u0001\u0000\u0000\u0000\u0160\u015b\u0001\u0000\u0000\u0000\u0160"+ + "\u015c\u0001\u0000\u0000\u0000\u0160\u015d\u0001\u0000\u0000\u0000\u0160"+ + "\u015e\u0001\u0000\u0000\u0000\u0160\u015f\u0001\u0000\u0000\u0000\u0161"+ + "\u000b\u0001\u0000\u0000\u0000\u0162\u0165\u0005\u0012\u0000\u0000\u0163"+ + "\u0165\u0003|>\u0000\u0164\u0162\u0001\u0000\u0000\u0000\u0164\u0163\u0001"+ + "\u0000\u0000\u0000\u0165\r\u0001\u0000\u0000\u0000\u0166\u0167\u0005\t"+ + "\u0000\u0000\u0167\u0169\u0003\u00aeW\u0000\u0168\u016a\u0003\u0010\b"+ + "\u0000\u0169\u0168\u0001\u0000\u0000\u0000\u0169\u016a\u0001\u0000\u0000"+ + "\u0000\u016a\u016d\u0001\u0000\u0000\u0000\u016b\u016c\u0005\u0011\u0000"+ + "\u0000\u016c\u016e\u0003\u010a\u0085\u0000\u016d\u016b\u0001\u0000\u0000"+ + "\u0000\u016d\u016e\u0001\u0000\u0000\u0000\u016e\u0171\u0001\u0000\u0000"+ + "\u0000\u016f\u0170\u0005\u0018\u0000\u0000\u0170\u0172\u0003\u0108\u0084"+ + "\u0000\u0171\u016f\u0001\u0000\u0000\u0000\u0171\u0172\u0001\u0000\u0000"+ + "\u0000\u0172\u0175\u0001\u0000\u0000\u0000\u0173\u0174\u0005A\u0000\u0000"+ + "\u0174\u0176\u0003\u0108\u0084\u0000\u0175\u0173\u0001\u0000\u0000\u0000"+ + "\u0175\u0176\u0001\u0000\u0000\u0000\u0176\u0177\u0001\u0000\u0000\u0000"+ + "\u0177\u0178\u0003 \u0010\u0000\u0178\u000f\u0001\u0000\u0000\u0000\u0179"+ + "\u017a\u0005Y\u0000\u0000\u017a\u017f\u0003\u0012\t\u0000\u017b\u017c"+ + "\u0005U\u0000\u0000\u017c\u017e\u0003\u0012\t\u0000\u017d\u017b\u0001"+ + "\u0000\u0000\u0000\u017e\u0181\u0001\u0000\u0000\u0000\u017f\u017d\u0001"+ + "\u0000\u0000\u0000\u017f\u0180\u0001\u0000\u0000\u0000\u0180\u0182\u0001"+ + "\u0000\u0000\u0000\u0181\u017f\u0001\u0000\u0000\u0000\u0182\u0183\u0005"+ + "X\u0000\u0000\u0183\u0011\u0001\u0000\u0000\u0000\u0184\u0186\u0003|>"+ + "\u0000\u0185\u0184\u0001\u0000\u0000\u0000\u0186\u0189\u0001\u0000\u0000"+ + "\u0000\u0187\u0185\u0001\u0000\u0000\u0000\u0187\u0188\u0001\u0000\u0000"+ + "\u0000\u0188\u018a\u0001\u0000\u0000\u0000\u0189\u0187\u0001\u0000\u0000"+ + "\u0000\u018a\u0193\u0003\u00aeW\u0000\u018b\u018f\u0007\u0000\u0000\u0000"+ + "\u018c\u018e\u0003|>\u0000\u018d\u018c\u0001\u0000\u0000\u0000\u018e\u0191"+ + "\u0001\u0000\u0000\u0000\u018f\u018d\u0001\u0000\u0000\u0000\u018f\u0190"+ + "\u0001\u0000\u0000\u0000\u0190\u0192\u0001\u0000\u0000\u0000\u0191\u018f"+ + "\u0001\u0000\u0000\u0000\u0192\u0194\u0003\u0014\n\u0000\u0193\u018b\u0001"+ + "\u0000\u0000\u0000\u0193\u0194\u0001\u0000\u0000\u0000\u0194\u0013\u0001"+ + "\u0000\u0000\u0000\u0195\u019a\u0003\u010a\u0085\u0000\u0196\u0197\u0005"+ + "j\u0000\u0000\u0197\u0199\u0003\u010a\u0085\u0000\u0198\u0196\u0001\u0000"+ + "\u0000\u0000\u0199\u019c\u0001\u0000\u0000\u0000\u019a\u0198\u0001\u0000"+ + "\u0000\u0000\u019a\u019b\u0001\u0000\u0000\u0000\u019b\u0015\u0001\u0000"+ + "\u0000\u0000\u019c\u019a\u0001\u0000\u0000\u0000\u019d\u019e\u0005\u0010"+ + "\u0000\u0000\u019e\u01a1\u0003\u00aeW\u0000\u019f\u01a0\u0005\u0018\u0000"+ + "\u0000\u01a0\u01a2\u0003\u0108\u0084\u0000\u01a1\u019f\u0001\u0000\u0000"+ + "\u0000\u01a1\u01a2\u0001\u0000\u0000\u0000\u01a2\u01a3\u0001\u0000\u0000"+ + "\u0000\u01a3\u01a5\u0005P\u0000\u0000\u01a4\u01a6\u0003\u0018\f\u0000"+ + "\u01a5\u01a4\u0001\u0000\u0000\u0000\u01a5\u01a6\u0001\u0000\u0000\u0000"+ + "\u01a6\u01a8\u0001\u0000\u0000\u0000\u01a7\u01a9\u0005U\u0000\u0000\u01a8"+ + "\u01a7\u0001\u0000\u0000\u0000\u01a8\u01a9\u0001\u0000\u0000\u0000\u01a9"+ + "\u01ab\u0001\u0000\u0000\u0000\u01aa\u01ac\u0003\u001c\u000e\u0000\u01ab"+ + "\u01aa\u0001\u0000\u0000\u0000\u01ab\u01ac\u0001\u0000\u0000\u0000\u01ac"+ + "\u01ad\u0001\u0000\u0000\u0000\u01ad\u01ae\u0005Q\u0000\u0000\u01ae\u0017"+ + "\u0001\u0000\u0000\u0000\u01af\u01b4\u0003\u001a\r\u0000\u01b0\u01b1\u0005"+ + "U\u0000\u0000\u01b1\u01b3\u0003\u001a\r\u0000\u01b2\u01b0\u0001\u0000"+ + "\u0000\u0000\u01b3\u01b6\u0001\u0000\u0000\u0000\u01b4\u01b2\u0001\u0000"+ + "\u0000\u0000\u01b4\u01b5\u0001\u0000\u0000\u0000\u01b5\u0019\u0001\u0000"+ + "\u0000\u0000\u01b6\u01b4\u0001\u0000\u0000\u0000\u01b7\u01b9\u0003|>\u0000"+ + "\u01b8\u01b7\u0001\u0000\u0000\u0000\u01b9\u01bc\u0001\u0000\u0000\u0000"+ + "\u01ba\u01b8\u0001\u0000\u0000\u0000\u01ba\u01bb\u0001\u0000\u0000\u0000"+ + "\u01bb\u01bd\u0001\u0000\u0000\u0000\u01bc\u01ba\u0001\u0000\u0000\u0000"+ + "\u01bd\u01bf\u0003\u00aeW\u0000\u01be\u01c0\u0003\u0114\u008a\u0000\u01bf"+ + "\u01be\u0001\u0000\u0000\u0000\u01bf\u01c0\u0001\u0000\u0000\u0000\u01c0"+ + "\u01c2\u0001\u0000\u0000\u0000\u01c1\u01c3\u0003 \u0010\u0000\u01c2\u01c1"+ + "\u0001\u0000\u0000\u0000\u01c2\u01c3\u0001\u0000\u0000\u0000\u01c3\u001b"+ + "\u0001\u0000\u0000\u0000\u01c4\u01c8\u0005T\u0000\u0000\u01c5\u01c7\u0003"+ + "$\u0012\u0000\u01c6\u01c5\u0001\u0000\u0000\u0000\u01c7\u01ca\u0001\u0000"+ + "\u0000\u0000\u01c8\u01c6\u0001\u0000\u0000\u0000\u01c8\u01c9\u0001\u0000"+ + "\u0000\u0000\u01c9\u001d\u0001\u0000\u0000\u0000\u01ca\u01c8\u0001\u0000"+ + "\u0000\u0000\u01cb\u01cc\u0005\u001c\u0000\u0000\u01cc\u01ce\u0003\u00ae"+ + "W\u0000\u01cd\u01cf\u0003\u0010\b\u0000\u01ce\u01cd\u0001\u0000\u0000"+ + "\u0000\u01ce\u01cf\u0001\u0000\u0000\u0000\u01cf\u01d2\u0001\u0000\u0000"+ + "\u0000\u01d0\u01d1\u0005\u0011\u0000\u0000\u01d1\u01d3\u0003\u0108\u0084"+ + "\u0000\u01d2\u01d0\u0001\u0000\u0000\u0000\u01d2\u01d3\u0001\u0000\u0000"+ + "\u0000\u01d3\u01d6\u0001\u0000\u0000\u0000\u01d4\u01d5\u0005A\u0000\u0000"+ + "\u01d5\u01d7\u0003\u0108\u0084\u0000\u01d6\u01d4\u0001\u0000\u0000\u0000"+ + "\u01d6\u01d7\u0001\u0000\u0000\u0000\u01d7\u01d8\u0001\u0000\u0000\u0000"+ + "\u01d8\u01d9\u0003\"\u0011\u0000\u01d9\u001f\u0001\u0000\u0000\u0000\u01da"+ + "\u01de\u0005P\u0000\u0000\u01db\u01dd\u0003$\u0012\u0000\u01dc\u01db\u0001"+ + "\u0000\u0000\u0000\u01dd\u01e0\u0001\u0000\u0000\u0000\u01de\u01dc\u0001"+ + "\u0000\u0000\u0000\u01de\u01df\u0001\u0000\u0000\u0000\u01df\u01e1\u0001"+ + "\u0000\u0000\u0000\u01e0\u01de\u0001\u0000\u0000\u0000\u01e1\u01e2\u0005"+ + "Q\u0000\u0000\u01e2!\u0001\u0000\u0000\u0000\u01e3\u01e7\u0005P\u0000"+ + "\u0000\u01e4\u01e6\u0003<\u001e\u0000\u01e5\u01e4\u0001\u0000\u0000\u0000"+ + "\u01e6\u01e9\u0001\u0000\u0000\u0000\u01e7\u01e5\u0001\u0000\u0000\u0000"+ + "\u01e7\u01e8\u0001\u0000\u0000\u0000\u01e8\u01ea\u0001\u0000\u0000\u0000"+ + "\u01e9\u01e7\u0001\u0000\u0000\u0000\u01ea\u01eb\u0005Q\u0000\u0000\u01eb"+ + "#\u0001\u0000\u0000\u0000\u01ec\u01f9\u0005T\u0000\u0000\u01ed\u01ef\u0005"+ + "&\u0000\u0000\u01ee\u01ed\u0001\u0000\u0000\u0000\u01ee\u01ef\u0001\u0000"+ + "\u0000\u0000\u01ef\u01f0\u0001\u0000\u0000\u0000\u01f0\u01f9\u0003\u00a8"+ + "T\u0000\u01f1\u01f3\u0003\b\u0004\u0000\u01f2\u01f1\u0001\u0000\u0000"+ + "\u0000\u01f3\u01f6\u0001\u0000\u0000\u0000\u01f4\u01f2\u0001\u0000\u0000"+ + "\u0000\u01f4\u01f5\u0001\u0000\u0000\u0000\u01f5\u01f7\u0001\u0000\u0000"+ + "\u0000\u01f6\u01f4\u0001\u0000\u0000\u0000\u01f7\u01f9\u0003&\u0013\u0000"+ + "\u01f8\u01ec\u0001\u0000\u0000\u0000\u01f8\u01ee\u0001\u0000\u0000\u0000"+ + "\u01f8\u01f4\u0001\u0000\u0000\u0000\u01f9%\u0001\u0000\u0000\u0000\u01fa"+ + "\u01ff\u0003\u0006\u0003\u0000\u01fb\u01ff\u0003:\u001d\u0000\u01fc\u01ff"+ + "\u0003(\u0014\u0000\u01fd\u01ff\u00034\u001a\u0000\u01fe\u01fa\u0001\u0000"+ + "\u0000\u0000\u01fe\u01fb\u0001\u0000\u0000\u0000\u01fe\u01fc\u0001\u0000"+ + "\u0000\u0000\u01fe\u01fd\u0001\u0000\u0000\u0000\u01ff\'\u0001\u0000\u0000"+ + "\u0000\u0200\u0203\u0003*\u0015\u0000\u0201\u0203\u00032\u0019\u0000\u0202"+ + "\u0200\u0001\u0000\u0000\u0000\u0202\u0201\u0001\u0000\u0000\u0000\u0203"+ + ")\u0001\u0000\u0000\u0000\u0204\u0207\u0003,\u0016\u0000\u0205\u0206\u0005"+ + "-\u0000\u0000\u0206\u0208\u0003b1\u0000\u0207\u0205\u0001\u0000\u0000"+ + "\u0000\u0207\u0208\u0001\u0000\u0000\u0000\u0208\u0209\u0001\u0000\u0000"+ + "\u0000\u0209\u020a\u0003.\u0017\u0000\u020a+\u0001\u0000\u0000\u0000\u020b"+ + "\u020d\u00030\u0018\u0000\u020c\u020b\u0001\u0000\u0000\u0000\u020c\u020d"+ + "\u0001\u0000\u0000\u0000\u020d\u020e\u0001\u0000\u0000\u0000\u020e\u020f"+ + "\u0003\u00aeW\u0000\u020f\u0214\u0003d2\u0000\u0210\u0211\u0005R\u0000"+ + "\u0000\u0211\u0213\u0005S\u0000\u0000\u0212\u0210\u0001\u0000\u0000\u0000"+ + "\u0213\u0216\u0001\u0000\u0000\u0000\u0214\u0212\u0001\u0000\u0000\u0000"+ + "\u0214\u0215\u0001\u0000\u0000\u0000\u0215-\u0001\u0000\u0000\u0000\u0216"+ + "\u0214\u0001\u0000\u0000\u0000\u0217\u021a\u0003\u00a8T\u0000\u0218\u021a"+ + "\u0005T\u0000\u0000\u0219\u0217\u0001\u0000\u0000\u0000\u0219\u0218\u0001"+ + "\u0000\u0000\u0000\u021a/\u0001\u0000\u0000\u0000\u021b\u021e\u0003\u010a"+ + "\u0085\u0000\u021c\u021e\u00050\u0000\u0000\u021d\u021b\u0001\u0000\u0000"+ + "\u0000\u021d\u021c\u0001\u0000\u0000\u0000\u021e1\u0001\u0000\u0000\u0000"+ + "\u021f\u0220\u0003\u0010\b\u0000\u0220\u0221\u0003*\u0015\u0000\u0221"+ + "3\u0001\u0000\u0000\u0000\u0222\u0225\u00036\u001b\u0000\u0223\u0225\u0003"+ + "8\u001c\u0000\u0224\u0222\u0001\u0000\u0000\u0000\u0224\u0223\u0001\u0000"+ + "\u0000\u0000\u02255\u0001\u0000\u0000\u0000\u0226\u0227\u0003\u0010\b"+ + "\u0000\u0227\u0228\u00038\u001c\u0000\u02287\u0001\u0000\u0000\u0000\u0229"+ + "\u022a\u0003\u00aeW\u0000\u022a\u022d\u0003d2\u0000\u022b\u022c\u0005"+ + "-\u0000\u0000\u022c\u022e\u0003b1\u0000\u022d\u022b\u0001\u0000\u0000"+ + "\u0000\u022d\u022e\u0001\u0000\u0000\u0000\u022e\u022f\u0001\u0000\u0000"+ + "\u0000\u022f\u0230\u0003\u00a8T\u0000\u02309\u0001\u0000\u0000\u0000\u0231"+ + "\u0233\u0003\u010a\u0085\u0000\u0232\u0231\u0001\u0000\u0000\u0000\u0232"+ + "\u0233\u0001\u0000\u0000\u0000\u0233\u0234\u0001\u0000\u0000\u0000\u0234"+ + "\u0235\u0003L&\u0000\u0235\u0236\u0005T\u0000\u0000\u0236;\u0001\u0000"+ + "\u0000\u0000\u0237\u0239\u0003\b\u0004\u0000\u0238\u0237\u0001\u0000\u0000"+ + "\u0000\u0239\u023c\u0001\u0000\u0000\u0000\u023a\u0238\u0001\u0000\u0000"+ + "\u0000\u023a\u023b\u0001\u0000\u0000\u0000\u023b\u023d\u0001\u0000\u0000"+ + "\u0000\u023c\u023a\u0001\u0000\u0000\u0000\u023d\u0240\u0003>\u001f\u0000"+ + "\u023e\u0240\u0005T\u0000\u0000\u023f\u023a\u0001\u0000\u0000\u0000\u023f"+ + "\u023e\u0001\u0000\u0000\u0000\u0240=\u0001\u0000\u0000\u0000\u0241\u0246"+ + "\u0003@ \u0000\u0242\u0246\u0003D\"\u0000\u0243\u0246\u0003H$\u0000\u0244"+ + "\u0246\u0003\u0006\u0003\u0000\u0245\u0241\u0001\u0000\u0000\u0000\u0245"+ + "\u0242\u0001\u0000\u0000\u0000\u0245\u0243\u0001\u0000\u0000\u0000\u0245"+ + "\u0244\u0001\u0000\u0000\u0000\u0246?\u0001\u0000\u0000\u0000\u0247\u0249"+ + "\u0003\u010a\u0085\u0000\u0248\u0247\u0001\u0000\u0000\u0000\u0248\u0249"+ + "\u0001\u0000\u0000\u0000\u0249\u024a\u0001\u0000\u0000\u0000\u024a\u024f"+ + "\u0003B!\u0000\u024b\u024c\u0005U\u0000\u0000\u024c\u024e\u0003B!\u0000"+ + "\u024d\u024b\u0001\u0000\u0000\u0000\u024e\u0251\u0001\u0000\u0000\u0000"+ + "\u024f\u024d\u0001\u0000\u0000\u0000\u024f\u0250\u0001\u0000\u0000\u0000"+ + "\u0250\u0252\u0001\u0000\u0000\u0000\u0251\u024f\u0001\u0000\u0000\u0000"+ + "\u0252\u0253\u0005T\u0000\u0000\u0253A\u0001\u0000\u0000\u0000\u0254\u0259"+ + "\u0003\u00aeW\u0000\u0255\u0256\u0005R\u0000\u0000\u0256\u0258\u0005S"+ + "\u0000\u0000\u0257\u0255\u0001\u0000\u0000\u0000\u0258\u025b\u0001\u0000"+ + "\u0000\u0000\u0259\u0257\u0001\u0000\u0000\u0000\u0259\u025a\u0001\u0000"+ + "\u0000\u0000\u025a\u025c\u0001\u0000\u0000\u0000\u025b\u0259\u0001\u0000"+ + "\u0000\u0000\u025c\u025d\u0005W\u0000\u0000\u025d\u025e\u0003R)\u0000"+ + "\u025eC\u0001\u0000\u0000\u0000\u025f\u0261\u0003F#\u0000\u0260\u025f"+ + "\u0001\u0000\u0000\u0000\u0261\u0264\u0001\u0000\u0000\u0000\u0262\u0260"+ + "\u0001\u0000\u0000\u0000\u0262\u0263\u0001\u0000\u0000\u0000\u0263\u0265"+ + "\u0001\u0000\u0000\u0000\u0264\u0262\u0001\u0000\u0000\u0000\u0265\u0266"+ + "\u0003J%\u0000\u0266E\u0001\u0000\u0000\u0000\u0267\u026e\u0003|>\u0000"+ + "\u0268\u026e\u0005#\u0000\u0000\u0269\u026e\u0005\u0001\u0000\u0000\u026a"+ + "\u026e\u0005\f\u0000\u0000\u026b\u026e\u0005&\u0000\u0000\u026c\u026e"+ + "\u0005\'\u0000\u0000\u026d\u0267\u0001\u0000\u0000\u0000\u026d\u0268\u0001"+ + "\u0000\u0000\u0000\u026d\u0269\u0001\u0000\u0000\u0000\u026d\u026a\u0001"+ + "\u0000\u0000\u0000\u026d\u026b\u0001\u0000\u0000\u0000\u026d\u026c\u0001"+ + "\u0000\u0000\u0000\u026eG\u0001\u0000\u0000\u0000\u026f\u0271\u0003F#"+ + "\u0000\u0270\u026f\u0001\u0000\u0000\u0000\u0271\u0274\u0001\u0000\u0000"+ + "\u0000\u0272\u0270\u0001\u0000\u0000\u0000\u0272\u0273\u0001\u0000\u0000"+ + "\u0000\u0273\u0275\u0001\u0000\u0000\u0000\u0274\u0272\u0001\u0000\u0000"+ + "\u0000\u0275\u0276\u0003\u0010\b\u0000\u0276\u0277\u0003J%\u0000\u0277"+ + "I\u0001\u0000\u0000\u0000\u0278\u027a\u0003|>\u0000\u0279\u0278\u0001"+ + "\u0000\u0000\u0000\u027a\u027d\u0001\u0000\u0000\u0000\u027b\u0279\u0001"+ + "\u0000\u0000\u0000\u027b\u027c\u0001\u0000\u0000\u0000\u027c\u027f\u0001"+ + "\u0000\u0000\u0000\u027d\u027b\u0001\u0000\u0000\u0000\u027e\u0280\u0003"+ + "0\u0018\u0000\u027f\u027e\u0001\u0000\u0000\u0000\u027f\u0280\u0001\u0000"+ + "\u0000\u0000\u0280\u0281\u0001\u0000\u0000\u0000\u0281\u0282\u0003\u00ae"+ + "W\u0000\u0282\u0287\u0003d2\u0000\u0283\u0284\u0005R\u0000\u0000\u0284"+ + "\u0286\u0005S\u0000\u0000\u0285\u0283\u0001\u0000\u0000\u0000\u0286\u0289"+ + "\u0001\u0000\u0000\u0000\u0287\u0285\u0001\u0000\u0000\u0000\u0287\u0288"+ + "\u0001\u0000\u0000\u0000\u0288\u028c\u0001\u0000\u0000\u0000\u0289\u0287"+ + "\u0001\u0000\u0000\u0000\u028a\u028b\u0005-\u0000\u0000\u028b\u028d\u0003"+ + "b1\u0000\u028c\u028a\u0001\u0000\u0000\u0000\u028c\u028d\u0001\u0000\u0000"+ + "\u0000\u028d\u028e\u0001\u0000\u0000\u0000\u028e\u028f\u0003.\u0017\u0000"+ + "\u028fK\u0001\u0000\u0000\u0000\u0290\u0295\u0003N\'\u0000\u0291\u0292"+ + "\u0005U\u0000\u0000\u0292\u0294\u0003N\'\u0000\u0293\u0291\u0001\u0000"+ + "\u0000\u0000\u0294\u0297\u0001\u0000\u0000\u0000\u0295\u0293\u0001\u0000"+ + "\u0000\u0000\u0295\u0296\u0001\u0000\u0000\u0000\u0296M\u0001\u0000\u0000"+ + "\u0000\u0297\u0295\u0001\u0000\u0000\u0000\u0298\u029b\u0003P(\u0000\u0299"+ + "\u029a\u0005W\u0000\u0000\u029a\u029c\u0003R)\u0000\u029b\u0299\u0001"+ + "\u0000\u0000\u0000\u029b\u029c\u0001\u0000\u0000\u0000\u029cO\u0001\u0000"+ + "\u0000\u0000\u029d\u02a2\u0003\u00aeW\u0000\u029e\u029f\u0005R\u0000\u0000"+ + "\u029f\u02a1\u0005S\u0000\u0000\u02a0\u029e\u0001\u0000\u0000\u0000\u02a1"+ + "\u02a4\u0001\u0000\u0000\u0000\u02a2\u02a0\u0001\u0000\u0000\u0000\u02a2"+ + "\u02a3\u0001\u0000\u0000\u0000\u02a3Q\u0001\u0000\u0000\u0000\u02a4\u02a2"+ + "\u0001\u0000\u0000\u0000\u02a5\u02a8\u0003T*\u0000\u02a6\u02a8\u0003\u00d2"+ + "i\u0000\u02a7\u02a5\u0001\u0000\u0000\u0000\u02a7\u02a6\u0001\u0000\u0000"+ + "\u0000\u02a8S\u0001\u0000\u0000\u0000\u02a9\u02b5\u0005P\u0000\u0000\u02aa"+ + "\u02af\u0003R)\u0000\u02ab\u02ac\u0005U\u0000\u0000\u02ac\u02ae\u0003"+ + "R)\u0000\u02ad\u02ab\u0001\u0000\u0000\u0000\u02ae\u02b1\u0001\u0000\u0000"+ + "\u0000\u02af\u02ad\u0001\u0000\u0000\u0000\u02af\u02b0\u0001\u0000\u0000"+ + "\u0000\u02b0\u02b3\u0001\u0000\u0000\u0000\u02b1\u02af\u0001\u0000\u0000"+ + "\u0000\u02b2\u02b4\u0005U\u0000\u0000\u02b3\u02b2\u0001\u0000\u0000\u0000"+ + "\u02b3\u02b4\u0001\u0000\u0000\u0000\u02b4\u02b6\u0001\u0000\u0000\u0000"+ + "\u02b5\u02aa\u0001\u0000\u0000\u0000\u02b5\u02b6\u0001\u0000\u0000\u0000"+ + "\u02b6\u02b7\u0001\u0000\u0000\u0000\u02b7\u02b8\u0005Q\u0000\u0000\u02b8"+ + "U\u0001\u0000\u0000\u0000\u02b9\u02bb\u0003\u00aeW\u0000\u02ba\u02bc\u0003"+ + "\u010e\u0087\u0000\u02bb\u02ba\u0001\u0000\u0000\u0000\u02bb\u02bc\u0001"+ + "\u0000\u0000\u0000\u02bc\u02bd\u0001\u0000\u0000\u0000\u02bd\u02be\u0005"+ + "V\u0000\u0000\u02be\u02c0\u0001\u0000\u0000\u0000\u02bf\u02b9\u0001\u0000"+ + "\u0000\u0000\u02c0\u02c3\u0001\u0000\u0000\u0000\u02c1\u02bf\u0001\u0000"+ + "\u0000\u0000\u02c1\u02c2\u0001\u0000\u0000\u0000\u02c2\u02c4\u0001\u0000"+ + "\u0000\u0000\u02c3\u02c1\u0001\u0000\u0000\u0000\u02c4\u02c6\u0003\u00b0"+ + "X\u0000\u02c5\u02c7\u0003\u010e\u0087\u0000\u02c6\u02c5\u0001\u0000\u0000"+ + "\u0000\u02c6\u02c7\u0001\u0000\u0000\u0000\u02c7W\u0001\u0000\u0000\u0000"+ + "\u02c8\u02cb\u0003\u010a\u0085\u0000\u02c9\u02cb\u0003Z-\u0000\u02ca\u02c8"+ + "\u0001\u0000\u0000\u0000\u02ca\u02c9\u0001\u0000\u0000\u0000\u02cbY\u0001"+ + "\u0000\u0000\u0000\u02cc\u02ce\u0003|>\u0000\u02cd\u02cc\u0001\u0000\u0000"+ + "\u0000\u02ce\u02d1\u0001\u0000\u0000\u0000\u02cf\u02cd\u0001\u0000\u0000"+ + "\u0000\u02cf\u02d0\u0001\u0000\u0000\u0000\u02d0\u02d2\u0001\u0000\u0000"+ + "\u0000\u02d1\u02cf\u0001\u0000\u0000\u0000\u02d2\u02d5\u0005\\\u0000\u0000"+ + "\u02d3\u02d6\u0003\\.\u0000\u02d4\u02d6\u0003^/\u0000\u02d5\u02d3\u0001"+ + "\u0000\u0000\u0000\u02d5\u02d4\u0001\u0000\u0000\u0000\u02d5\u02d6\u0001"+ + "\u0000\u0000\u0000\u02d6[\u0001\u0000\u0000\u0000\u02d7\u02d8\u0005\u0011"+ + "\u0000\u0000\u02d8\u02d9\u0003\u010a\u0085\u0000\u02d9]\u0001\u0000\u0000"+ + "\u0000\u02da\u02db\u0005(\u0000\u0000\u02db\u02dc\u0003\u010a\u0085\u0000"+ + "\u02dc_\u0001\u0000\u0000\u0000\u02dd\u02e2\u0003r9\u0000\u02de\u02df"+ + "\u0005U\u0000\u0000\u02df\u02e1\u0003r9\u0000\u02e0\u02de\u0001\u0000"+ + "\u0000\u0000\u02e1\u02e4\u0001\u0000\u0000\u0000\u02e2\u02e0\u0001\u0000"+ + "\u0000\u0000\u02e2\u02e3\u0001\u0000\u0000\u0000\u02e3a\u0001\u0000\u0000"+ + "\u0000\u02e4\u02e2\u0001\u0000\u0000\u0000\u02e5\u02e6\u0003`0\u0000\u02e6"+ + "c\u0001\u0000\u0000\u0000\u02e7\u02f3\u0005N\u0000\u0000\u02e8\u02ea\u0003"+ + "f3\u0000\u02e9\u02e8\u0001\u0000\u0000\u0000\u02e9\u02ea\u0001\u0000\u0000"+ + "\u0000\u02ea\u02f4\u0001\u0000\u0000\u0000\u02eb\u02ee\u0003f3\u0000\u02ec"+ + "\u02ed\u0005U\u0000\u0000\u02ed\u02ef\u0003h4\u0000\u02ee\u02ec\u0001"+ + "\u0000\u0000\u0000\u02ee\u02ef\u0001\u0000\u0000\u0000\u02ef\u02f4\u0001"+ + "\u0000\u0000\u0000\u02f0\u02f2\u0003h4\u0000\u02f1\u02f0\u0001\u0000\u0000"+ + "\u0000\u02f1\u02f2\u0001\u0000\u0000\u0000\u02f2\u02f4\u0001\u0000\u0000"+ + "\u0000\u02f3\u02e9\u0001\u0000\u0000\u0000\u02f3\u02eb\u0001\u0000\u0000"+ + "\u0000\u02f3\u02f1\u0001\u0000\u0000\u0000\u02f4\u02f5\u0001\u0000\u0000"+ + "\u0000\u02f5\u02f6\u0005O\u0000\u0000\u02f6e\u0001\u0000\u0000\u0000\u02f7"+ + "\u02f9\u0003\u010a\u0085\u0000\u02f8\u02f7\u0001\u0000\u0000\u0000\u02f8"+ + "\u02f9\u0001\u0000\u0000\u0000\u02f9\u02ff\u0001\u0000\u0000\u0000\u02fa"+ + "\u02fb\u0003\u00aeW\u0000\u02fb\u02fc\u0005V\u0000\u0000\u02fc\u02fe\u0001"+ + "\u0000\u0000\u0000\u02fd\u02fa\u0001\u0000\u0000\u0000\u02fe\u0301\u0001"+ + "\u0000\u0000\u0000\u02ff\u02fd\u0001\u0000\u0000\u0000\u02ff\u0300\u0001"+ + "\u0000\u0000\u0000\u0300\u0302\u0001\u0000\u0000\u0000\u0301\u02ff\u0001"+ + "\u0000\u0000\u0000\u0302\u0303\u0005+\u0000\u0000\u0303g\u0001\u0000\u0000"+ + "\u0000\u0304\u0309\u0003j5\u0000\u0305\u0306\u0005U\u0000\u0000\u0306"+ + "\u0308\u0003j5\u0000\u0307\u0305\u0001\u0000\u0000\u0000\u0308\u030b\u0001"+ + "\u0000\u0000\u0000\u0309\u0307\u0001\u0000\u0000\u0000\u0309\u030a\u0001"+ + "\u0000\u0000\u0000\u030a\u030e\u0001\u0000\u0000\u0000\u030b\u0309\u0001"+ + "\u0000\u0000\u0000\u030c\u030d\u0005U\u0000\u0000\u030d\u030f\u0003l6"+ + "\u0000\u030e\u030c\u0001\u0000\u0000\u0000\u030e\u030f\u0001\u0000\u0000"+ + "\u0000\u030f\u0312\u0001\u0000\u0000\u0000\u0310\u0312\u0003l6\u0000\u0311"+ + "\u0304\u0001\u0000\u0000\u0000\u0311\u0310\u0001\u0000\u0000\u0000\u0312"+ + "i\u0001\u0000\u0000\u0000\u0313\u0315\u0003\f\u0006\u0000\u0314\u0313"+ + "\u0001\u0000\u0000\u0000\u0315\u0318\u0001\u0000\u0000\u0000\u0316\u0314"+ + "\u0001\u0000\u0000\u0000\u0316\u0317\u0001\u0000\u0000\u0000\u0317\u031a"+ + "\u0001\u0000\u0000\u0000\u0318\u0316\u0001\u0000\u0000\u0000\u0319\u031b"+ + "\u0003\u010a\u0085\u0000\u031a\u0319\u0001\u0000\u0000\u0000\u031a\u031b"+ + "\u0001\u0000\u0000\u0000\u031b\u031c\u0001\u0000\u0000\u0000\u031c\u031f"+ + "\u0003P(\u0000\u031d\u031f\u0003\u00d4j\u0000\u031e\u0316\u0001\u0000"+ + "\u0000\u0000\u031e\u031d\u0001\u0000\u0000\u0000\u031fk\u0001\u0000\u0000"+ + "\u0000\u0320\u0322\u0003\f\u0006\u0000\u0321\u0320\u0001\u0000\u0000\u0000"+ + "\u0322\u0325\u0001\u0000\u0000\u0000\u0323\u0321\u0001\u0000\u0000\u0000"+ + "\u0323\u0324\u0001\u0000\u0000\u0000\u0324\u0327\u0001\u0000\u0000\u0000"+ + "\u0325\u0323\u0001\u0000\u0000\u0000\u0326\u0328\u0003\u010a\u0085\u0000"+ + "\u0327\u0326\u0001\u0000\u0000\u0000\u0327\u0328\u0001\u0000\u0000\u0000"+ + "\u0328\u032c\u0001\u0000\u0000\u0000\u0329\u032b\u0003|>\u0000\u032a\u0329"+ + "\u0001\u0000\u0000\u0000\u032b\u032e\u0001\u0000\u0000\u0000\u032c\u032a"+ + "\u0001\u0000\u0000\u0000\u032c\u032d\u0001\u0000\u0000\u0000\u032d\u032f"+ + "\u0001\u0000\u0000\u0000\u032e\u032c\u0001\u0000\u0000\u0000\u032f\u0330"+ + "\u0005|\u0000\u0000\u0330\u0331\u0003P(\u0000\u0331m\u0001\u0000\u0000"+ + "\u0000\u0332\u0337\u0003p8\u0000\u0333\u0334\u0005U\u0000\u0000\u0334"+ + "\u0336\u0003p8\u0000\u0335\u0333\u0001\u0000\u0000\u0000\u0336\u0339\u0001"+ + "\u0000\u0000\u0000\u0337\u0335\u0001\u0000\u0000\u0000\u0337\u0338\u0001"+ + "\u0000\u0000\u0000\u0338o\u0001\u0000\u0000\u0000\u0339\u0337\u0001\u0000"+ + "\u0000\u0000\u033a\u033c\u0003\f\u0006\u0000\u033b\u033a\u0001\u0000\u0000"+ + "\u0000\u033c\u033f\u0001\u0000\u0000\u0000\u033d\u033b\u0001\u0000\u0000"+ + "\u0000\u033d\u033e\u0001\u0000\u0000\u0000\u033e\u0340\u0001\u0000\u0000"+ + "\u0000\u033f\u033d\u0001\u0000\u0000\u0000\u0340\u0341\u0005=\u0000\u0000"+ + "\u0341\u0342\u0003\u00aeW\u0000\u0342q\u0001\u0000\u0000\u0000\u0343\u0348"+ + "\u0003\u00aeW\u0000\u0344\u0345\u0005V\u0000\u0000\u0345\u0347\u0003\u00ae"+ + "W\u0000\u0346\u0344\u0001\u0000\u0000\u0000\u0347\u034a\u0001\u0000\u0000"+ + "\u0000\u0348\u0346\u0001\u0000\u0000\u0000\u0348\u0349\u0001\u0000\u0000"+ + "\u0000\u0349s\u0001\u0000\u0000\u0000\u034a\u0348\u0001\u0000\u0000\u0000"+ + "\u034b\u0353\u0003v;\u0000\u034c\u0353\u0003x<\u0000\u034d\u0353\u0005"+ + "J\u0000\u0000\u034e\u0353\u0005K\u0000\u0000\u034f\u0353\u0005I\u0000"+ + "\u0000\u0350\u0353\u0005M\u0000\u0000\u0351\u0353\u0005L\u0000\u0000\u0352"+ + "\u034b\u0001\u0000\u0000\u0000\u0352\u034c\u0001\u0000\u0000\u0000\u0352"+ + "\u034d\u0001\u0000\u0000\u0000\u0352\u034e\u0001\u0000\u0000\u0000\u0352"+ + "\u034f\u0001\u0000\u0000\u0000\u0352\u0350\u0001\u0000\u0000\u0000\u0352"+ + "\u0351\u0001\u0000\u0000\u0000\u0353u\u0001\u0000\u0000\u0000\u0354\u0355"+ + "\u0007\u0001\u0000\u0000\u0355w\u0001\u0000\u0000\u0000\u0356\u0357\u0007"+ + "\u0002\u0000\u0000\u0357y\u0001\u0000\u0000\u0000\u0358\u0359\u0003\u00ae"+ + "W\u0000\u0359\u035a\u0005V\u0000\u0000\u035a\u035c\u0001\u0000\u0000\u0000"+ + "\u035b\u0358\u0001\u0000\u0000\u0000\u035c\u035f\u0001\u0000\u0000\u0000"+ + "\u035d\u035b\u0001\u0000\u0000\u0000\u035d\u035e\u0001\u0000\u0000\u0000"+ + "\u035e\u0360\u0001\u0000\u0000\u0000\u035f\u035d\u0001\u0000\u0000\u0000"+ + "\u0360\u0361\u0005{\u0000\u0000\u0361\u0362\u0003\u00aeW\u0000\u0362{"+ + "\u0001\u0000\u0000\u0000\u0363\u0364\u0005{\u0000\u0000\u0364\u0367\u0003"+ + "r9\u0000\u0365\u0367\u0003z=\u0000\u0366\u0363\u0001\u0000\u0000\u0000"+ + "\u0366\u0365\u0001\u0000\u0000\u0000\u0367\u036e\u0001\u0000\u0000\u0000"+ + "\u0368\u036b\u0005N\u0000\u0000\u0369\u036c\u0003~?\u0000\u036a\u036c"+ + "\u0003\u0082A\u0000\u036b\u0369\u0001\u0000\u0000\u0000\u036b\u036a\u0001"+ + "\u0000\u0000\u0000\u036b\u036c\u0001\u0000\u0000\u0000\u036c\u036d\u0001"+ + "\u0000\u0000\u0000\u036d\u036f\u0005O\u0000\u0000\u036e\u0368\u0001\u0000"+ + "\u0000\u0000\u036e\u036f\u0001\u0000\u0000\u0000\u036f}\u0001\u0000\u0000"+ + "\u0000\u0370\u0375\u0003\u0080@\u0000\u0371\u0372\u0005U\u0000\u0000\u0372"+ + "\u0374\u0003\u0080@\u0000\u0373\u0371\u0001\u0000\u0000\u0000\u0374\u0377"+ + "\u0001\u0000\u0000\u0000\u0375\u0373\u0001\u0000\u0000\u0000\u0375\u0376"+ + "\u0001\u0000\u0000\u0000\u0376\u007f\u0001\u0000\u0000\u0000\u0377\u0375"+ + "\u0001\u0000\u0000\u0000\u0378\u0379\u0003\u00aeW\u0000\u0379\u037a\u0005"+ + "W\u0000\u0000\u037a\u037b\u0003\u0082A\u0000\u037b\u0081\u0001\u0000\u0000"+ + "\u0000\u037c\u0380\u0003\u00d2i\u0000\u037d\u0380\u0003|>\u0000\u037e"+ + "\u0380\u0003\u0084B\u0000\u037f\u037c\u0001\u0000\u0000\u0000\u037f\u037d"+ + "\u0001\u0000\u0000\u0000\u037f\u037e\u0001\u0000\u0000\u0000\u0380\u0083"+ + "\u0001\u0000\u0000\u0000\u0381\u038a\u0005P\u0000\u0000\u0382\u0387\u0003"+ + "\u0082A\u0000\u0383\u0384\u0005U\u0000\u0000\u0384\u0386\u0003\u0082A"+ + "\u0000\u0385\u0383\u0001\u0000\u0000\u0000\u0386\u0389\u0001\u0000\u0000"+ + "\u0000\u0387\u0385\u0001\u0000\u0000\u0000\u0387\u0388\u0001\u0000\u0000"+ + "\u0000\u0388\u038b\u0001\u0000\u0000\u0000\u0389\u0387\u0001\u0000\u0000"+ + "\u0000\u038a\u0382\u0001\u0000\u0000\u0000\u038a\u038b\u0001\u0000\u0000"+ + "\u0000\u038b\u038d\u0001\u0000\u0000\u0000\u038c\u038e\u0005U\u0000\u0000"+ + "\u038d\u038c\u0001\u0000\u0000\u0000\u038d\u038e\u0001\u0000\u0000\u0000"+ + "\u038e\u038f\u0001\u0000\u0000\u0000\u038f\u0390\u0005Q\u0000\u0000\u0390"+ + "\u0085\u0001\u0000\u0000\u0000\u0391\u0392\u0005{\u0000\u0000\u0392\u0393"+ + "\u0005\u001c\u0000\u0000\u0393\u0394\u0003\u00aeW\u0000\u0394\u0395\u0003"+ + "\u0088D\u0000\u0395\u0087\u0001\u0000\u0000\u0000\u0396\u039a\u0005P\u0000"+ + "\u0000\u0397\u0399\u0003\u008aE\u0000\u0398\u0397\u0001\u0000\u0000\u0000"+ + "\u0399\u039c\u0001\u0000\u0000\u0000\u039a\u0398\u0001\u0000\u0000\u0000"+ + "\u039a\u039b\u0001\u0000\u0000\u0000\u039b\u039d\u0001\u0000\u0000\u0000"+ + "\u039c\u039a\u0001\u0000\u0000\u0000\u039d\u039e\u0005Q\u0000\u0000\u039e"+ + "\u0089\u0001\u0000\u0000\u0000\u039f\u03a1\u0003\b\u0004\u0000\u03a0\u039f"+ + "\u0001\u0000\u0000\u0000\u03a1\u03a4\u0001\u0000\u0000\u0000\u03a2\u03a0"+ + "\u0001\u0000\u0000\u0000\u03a2\u03a3\u0001\u0000\u0000\u0000\u03a3\u03a5"+ + "\u0001\u0000\u0000\u0000\u03a4\u03a2\u0001\u0000\u0000\u0000\u03a5\u03a8"+ + "\u0003\u008cF\u0000\u03a6\u03a8\u0005T\u0000\u0000\u03a7\u03a2\u0001\u0000"+ + "\u0000\u0000\u03a7\u03a6\u0001\u0000\u0000\u0000\u03a8\u008b\u0001\u0000"+ + "\u0000\u0000\u03a9\u03aa\u0003\u010a\u0085\u0000\u03aa\u03ab\u0003\u008e"+ + "G\u0000\u03ab\u03ac\u0005T\u0000\u0000\u03ac\u03b2\u0001\u0000\u0000\u0000"+ + "\u03ad\u03af\u0003\u0006\u0003\u0000\u03ae\u03b0\u0005T\u0000\u0000\u03af"+ + "\u03ae\u0001\u0000\u0000\u0000\u03af\u03b0\u0001\u0000\u0000\u0000\u03b0"+ + "\u03b2\u0001\u0000\u0000\u0000\u03b1\u03a9\u0001\u0000\u0000\u0000\u03b1"+ + "\u03ad\u0001\u0000\u0000\u0000\u03b2\u008d\u0001\u0000\u0000\u0000\u03b3"+ + "\u03b6\u0003\u0090H\u0000\u03b4\u03b6\u0003\u0092I\u0000\u03b5\u03b3\u0001"+ + "\u0000\u0000\u0000\u03b5\u03b4\u0001\u0000\u0000\u0000\u03b6\u008f\u0001"+ + "\u0000\u0000\u0000\u03b7\u03b8\u0003\u00aeW\u0000\u03b8\u03b9\u0005N\u0000"+ + "\u0000\u03b9\u03bb\u0005O\u0000\u0000\u03ba\u03bc\u0003\u0094J\u0000\u03bb"+ + "\u03ba\u0001\u0000\u0000\u0000\u03bb\u03bc\u0001\u0000\u0000\u0000\u03bc"+ + "\u0091\u0001\u0000\u0000\u0000\u03bd\u03be\u0003L&\u0000\u03be\u0093\u0001"+ + "\u0000\u0000\u0000\u03bf\u03c0\u0005\f\u0000\u0000\u03c0\u03c1\u0003\u0082"+ + "A\u0000\u03c1\u0095\u0001\u0000\u0000\u0000\u03c2\u03c4\u00054\u0000\u0000"+ + "\u03c3\u03c2\u0001\u0000\u0000\u0000\u03c3\u03c4\u0001\u0000\u0000\u0000"+ + "\u03c4\u03c5\u0001\u0000\u0000\u0000\u03c5\u03c6\u00053\u0000\u0000\u03c6"+ + "\u03c7\u0003r9\u0000\u03c7\u03c8\u0003\u0098L\u0000\u03c8\u0097\u0001"+ + "\u0000\u0000\u0000\u03c9\u03cd\u0005P\u0000\u0000\u03ca\u03cc\u0003\u009a"+ + "M\u0000\u03cb\u03ca\u0001\u0000\u0000\u0000\u03cc\u03cf\u0001\u0000\u0000"+ + "\u0000\u03cd\u03cb\u0001\u0000\u0000\u0000\u03cd\u03ce\u0001\u0000\u0000"+ + "\u0000\u03ce\u03d0\u0001\u0000\u0000\u0000\u03cf\u03cd\u0001\u0000\u0000"+ + "\u0000\u03d0\u03d1\u0005Q\u0000\u0000\u03d1\u0099\u0001\u0000\u0000\u0000"+ + "\u03d2\u03d6\u00055\u0000\u0000\u03d3\u03d5\u0003\u009cN\u0000\u03d4\u03d3"+ + "\u0001\u0000\u0000\u0000\u03d5\u03d8\u0001\u0000\u0000\u0000\u03d6\u03d4"+ + "\u0001\u0000\u0000\u0000\u03d6\u03d7\u0001\u0000\u0000\u0000\u03d7\u03d9"+ + "\u0001\u0000\u0000\u0000\u03d8\u03d6\u0001\u0000\u0000\u0000\u03d9\u03da"+ + "\u0003r9\u0000\u03da\u03db\u0005T\u0000\u0000\u03db\u03f7\u0001\u0000"+ + "\u0000\u0000\u03dc\u03dd\u00056\u0000\u0000\u03dd\u03e0\u0003r9\u0000"+ + "\u03de\u03df\u00058\u0000\u0000\u03df\u03e1\u0003r9\u0000\u03e0\u03de"+ + "\u0001\u0000\u0000\u0000\u03e0\u03e1\u0001\u0000\u0000\u0000\u03e1\u03e2"+ + "\u0001\u0000\u0000\u0000\u03e2\u03e3\u0005T\u0000\u0000\u03e3\u03f7\u0001"+ + "\u0000\u0000\u0000\u03e4\u03e5\u00057\u0000\u0000\u03e5\u03e8\u0003r9"+ + "\u0000\u03e6\u03e7\u00058\u0000\u0000\u03e7\u03e9\u0003r9\u0000\u03e8"+ + "\u03e6\u0001\u0000\u0000\u0000\u03e8\u03e9\u0001\u0000\u0000\u0000\u03e9"+ + "\u03ea\u0001\u0000\u0000\u0000\u03ea\u03eb\u0005T\u0000\u0000\u03eb\u03f7"+ + "\u0001\u0000\u0000\u0000\u03ec\u03ed\u00059\u0000\u0000\u03ed\u03ee\u0003"+ + "r9\u0000\u03ee\u03ef\u0005T\u0000\u0000\u03ef\u03f7\u0001\u0000\u0000"+ + "\u0000\u03f0\u03f1\u0005:\u0000\u0000\u03f1\u03f2\u0003r9\u0000\u03f2"+ + "\u03f3\u0005;\u0000\u0000\u03f3\u03f4\u0003r9\u0000\u03f4\u03f5\u0005"+ + "T\u0000\u0000\u03f5\u03f7\u0001\u0000\u0000\u0000\u03f6\u03d2\u0001\u0000"+ + "\u0000\u0000\u03f6\u03dc\u0001\u0000\u0000\u0000\u03f6\u03e4\u0001\u0000"+ + "\u0000\u0000\u03f6\u03ec\u0001\u0000\u0000\u0000\u03f6\u03f0\u0001\u0000"+ + "\u0000\u0000\u03f7\u009b\u0001\u0000\u0000\u0000\u03f8\u03f9\u0007\u0003"+ + "\u0000\u0000\u03f9\u009d\u0001\u0000\u0000\u0000\u03fa\u03fb\u0005?\u0000"+ + "\u0000\u03fb\u03fd\u0003\u00aeW\u0000\u03fc\u03fe\u0003\u0010\b\u0000"+ + "\u03fd\u03fc\u0001\u0000\u0000\u0000\u03fd\u03fe\u0001\u0000\u0000\u0000"+ + "\u03fe\u03ff\u0001\u0000\u0000\u0000\u03ff\u0402\u0003\u00a0P\u0000\u0400"+ + "\u0401\u0005\u0018\u0000\u0000\u0401\u0403\u0003\u0108\u0084\u0000\u0402"+ + "\u0400\u0001\u0000\u0000\u0000\u0402\u0403\u0001\u0000\u0000\u0000\u0403"+ + "\u0404\u0001\u0000\u0000\u0000\u0404\u0405\u0003\u00a6S\u0000\u0405\u009f"+ + "\u0001\u0000\u0000\u0000\u0406\u0408\u0005N\u0000\u0000\u0407\u0409\u0003"+ + "\u00a2Q\u0000\u0408\u0407\u0001\u0000\u0000\u0000\u0408\u0409\u0001\u0000"+ + "\u0000\u0000\u0409\u040a\u0001\u0000\u0000\u0000\u040a\u040b\u0005O\u0000"+ + "\u0000\u040b\u00a1\u0001\u0000\u0000\u0000\u040c\u0411\u0003\u00a4R\u0000"+ + "\u040d\u040e\u0005U\u0000\u0000\u040e\u0410\u0003\u00a4R\u0000\u040f\u040d"+ + "\u0001\u0000\u0000\u0000\u0410\u0413\u0001\u0000\u0000\u0000\u0411\u040f"+ + "\u0001\u0000\u0000\u0000\u0411\u0412\u0001\u0000\u0000\u0000\u0412\u00a3"+ + "\u0001\u0000\u0000\u0000\u0413\u0411\u0001\u0000\u0000\u0000\u0414\u0416"+ + "\u0003\u010a\u0085\u0000\u0415\u0414\u0001\u0000\u0000\u0000\u0415\u0416"+ + "\u0001\u0000\u0000\u0000\u0416\u0417\u0001\u0000\u0000\u0000\u0417\u0418"+ + "\u0003\u00aeW\u0000\u0418\u00a5\u0001\u0000\u0000\u0000\u0419\u041d\u0005"+ + "P\u0000\u0000\u041a\u041c\u0003$\u0012\u0000\u041b\u041a\u0001\u0000\u0000"+ + "\u0000\u041c\u041f\u0001\u0000\u0000\u0000\u041d\u041b\u0001\u0000\u0000"+ + "\u0000\u041d\u041e\u0001\u0000\u0000\u0000\u041e\u0420\u0001\u0000\u0000"+ + "\u0000\u041f\u041d\u0001\u0000\u0000\u0000\u0420\u0421\u0005Q\u0000\u0000"+ + "\u0421\u00a7\u0001\u0000\u0000\u0000\u0422\u0426\u0005P\u0000\u0000\u0423"+ + "\u0425\u0003\u00aaU\u0000\u0424\u0423\u0001\u0000\u0000\u0000\u0425\u0428"+ + "\u0001\u0000\u0000\u0000\u0426\u0424\u0001\u0000\u0000\u0000\u0426\u0427"+ + "\u0001\u0000\u0000\u0000\u0427\u0429\u0001\u0000\u0000\u0000\u0428\u0426"+ + "\u0001\u0000\u0000\u0000\u0429\u042a\u0005Q\u0000\u0000\u042a\u00a9\u0001"+ + "\u0000\u0000\u0000\u042b\u042c\u0003\u00acV\u0000\u042c\u042d\u0005T\u0000"+ + "\u0000\u042d\u0431\u0001\u0000\u0000\u0000\u042e\u0431\u0003\u00b2Y\u0000"+ + "\u042f\u0431\u0003\u00b4Z\u0000\u0430\u042b\u0001\u0000\u0000\u0000\u0430"+ + "\u042e\u0001\u0000\u0000\u0000\u0430\u042f\u0001\u0000\u0000\u0000\u0431"+ + "\u00ab\u0001\u0000\u0000\u0000\u0432\u0434\u0003\f\u0006\u0000\u0433\u0432"+ + "\u0001\u0000\u0000\u0000\u0434\u0437\u0001\u0000\u0000\u0000\u0435\u0433"+ + "\u0001\u0000\u0000\u0000\u0435\u0436\u0001\u0000\u0000\u0000\u0436\u043a"+ + "\u0001\u0000\u0000\u0000\u0437\u0435\u0001\u0000\u0000\u0000\u0438\u043b"+ + "\u0005=\u0000\u0000\u0439\u043b\u0003\u010a\u0085\u0000\u043a\u0438\u0001"+ + "\u0000\u0000\u0000\u043a\u0439\u0001\u0000\u0000\u0000\u043b\u043c\u0001"+ + "\u0000\u0000\u0000\u043c\u043d\u0003L&\u0000\u043d\u00ad\u0001\u0000\u0000"+ + "\u0000\u043e\u043f\u0007\u0004\u0000\u0000\u043f\u00af\u0001\u0000\u0000"+ + "\u0000\u0440\u0441\u0007\u0005\u0000\u0000\u0441\u00b1\u0001\u0000\u0000"+ + "\u0000\u0442\u0444\u0003\n\u0005\u0000\u0443\u0442\u0001\u0000\u0000\u0000"+ + "\u0444\u0447\u0001\u0000\u0000\u0000\u0445\u0443\u0001\u0000\u0000\u0000"+ + "\u0445\u0446\u0001\u0000\u0000\u0000\u0446\u044b\u0001\u0000\u0000\u0000"+ + "\u0447\u0445\u0001\u0000\u0000\u0000\u0448\u044c\u0003\u000e\u0007\u0000"+ + "\u0449\u044c\u0003\u001e\u000f\u0000\u044a\u044c\u0003\u009eO\u0000\u044b"+ + "\u0448\u0001\u0000\u0000\u0000\u044b\u0449\u0001\u0000\u0000\u0000\u044b"+ + "\u044a\u0001\u0000\u0000\u0000\u044c\u044f\u0001\u0000\u0000\u0000\u044d"+ + "\u044f\u0005T\u0000\u0000\u044e\u0445\u0001\u0000\u0000\u0000\u044e\u044d"+ + "\u0001\u0000\u0000\u0000\u044f\u00b3\u0001\u0000\u0000\u0000\u0450\u04be"+ + "\u0003\u00a8T\u0000\u0451\u0452\u0005\u0002\u0000\u0000\u0452\u0455\u0003"+ + "\u00d2i\u0000\u0453\u0454\u0005]\u0000\u0000\u0454\u0456\u0003\u00d2i"+ + "\u0000\u0455\u0453\u0001\u0000\u0000\u0000\u0455\u0456\u0001\u0000\u0000"+ + "\u0000\u0456\u0457\u0001\u0000\u0000\u0000\u0457\u0458\u0005T\u0000\u0000"+ + "\u0458\u04be\u0001\u0000\u0000\u0000\u0459\u045a\u0005\u0016\u0000\u0000"+ + "\u045a\u045b\u0003\u00ccf\u0000\u045b\u045e\u0003\u00b4Z\u0000\u045c\u045d"+ + "\u0005\u000f\u0000\u0000\u045d\u045f\u0003\u00b4Z\u0000\u045e\u045c\u0001"+ + "\u0000\u0000\u0000\u045e\u045f\u0001\u0000\u0000\u0000\u045f\u04be\u0001"+ + "\u0000\u0000\u0000\u0460\u0461\u0005\u0015\u0000\u0000\u0461\u0462\u0005"+ + "N\u0000\u0000\u0462\u0463\u0003\u00c6c\u0000\u0463\u0464\u0005O\u0000"+ + "\u0000\u0464\u0465\u0003\u00b4Z\u0000\u0465\u04be\u0001\u0000\u0000\u0000"+ + "\u0466\u0467\u00052\u0000\u0000\u0467\u0468\u0003\u00ccf\u0000\u0468\u0469"+ + "\u0003\u00b4Z\u0000\u0469\u04be\u0001\u0000\u0000\u0000\u046a\u046b\u0005"+ + "\r\u0000\u0000\u046b\u046c\u0003\u00b4Z\u0000\u046c\u046d\u00052\u0000"+ + "\u0000\u046d\u046e\u0003\u00ccf\u0000\u046e\u046f\u0005T\u0000\u0000\u046f"+ + "\u04be\u0001\u0000\u0000\u0000\u0470\u0471\u0005/\u0000\u0000\u0471\u047b"+ + "\u0003\u00a8T\u0000\u0472\u0474\u0003\u00b6[\u0000\u0473\u0472\u0001\u0000"+ + "\u0000\u0000\u0474\u0475\u0001\u0000\u0000\u0000\u0475\u0473\u0001\u0000"+ + "\u0000\u0000\u0475\u0476\u0001\u0000\u0000\u0000\u0476\u0478\u0001\u0000"+ + "\u0000\u0000\u0477\u0479\u0003\u00ba]\u0000\u0478\u0477\u0001\u0000\u0000"+ + "\u0000\u0478\u0479\u0001\u0000\u0000\u0000\u0479\u047c\u0001\u0000\u0000"+ + "\u0000\u047a\u047c\u0003\u00ba]\u0000\u047b\u0473\u0001\u0000\u0000\u0000"+ + "\u047b\u047a\u0001\u0000\u0000\u0000\u047c\u04be\u0001\u0000\u0000\u0000"+ + "\u047d\u047e\u0005/\u0000\u0000\u047e\u047f\u0003\u00bc^\u0000\u047f\u0483"+ + "\u0003\u00a8T\u0000\u0480\u0482\u0003\u00b6[\u0000\u0481\u0480\u0001\u0000"+ + "\u0000\u0000\u0482\u0485\u0001\u0000\u0000\u0000\u0483\u0481\u0001\u0000"+ + "\u0000\u0000\u0483\u0484\u0001\u0000\u0000\u0000\u0484\u0487\u0001\u0000"+ + "\u0000\u0000\u0485\u0483\u0001\u0000\u0000\u0000\u0486\u0488\u0003\u00ba"+ + "]\u0000\u0487\u0486\u0001\u0000\u0000\u0000\u0487\u0488\u0001\u0000\u0000"+ + "\u0000\u0488\u04be\u0001\u0000\u0000\u0000\u0489\u048a\u0005)\u0000\u0000"+ + "\u048a\u048b\u0003\u00ccf\u0000\u048b\u048f\u0005P\u0000\u0000\u048c\u048e"+ + "\u0003\u00c2a\u0000\u048d\u048c\u0001\u0000\u0000\u0000\u048e\u0491\u0001"+ + "\u0000\u0000\u0000\u048f\u048d\u0001\u0000\u0000\u0000\u048f\u0490\u0001"+ + "\u0000\u0000\u0000\u0490\u0495\u0001\u0000\u0000\u0000\u0491\u048f\u0001"+ + "\u0000\u0000\u0000\u0492\u0494\u0003\u00c4b\u0000\u0493\u0492\u0001\u0000"+ + "\u0000\u0000\u0494\u0497\u0001\u0000\u0000\u0000\u0495\u0493\u0001\u0000"+ + "\u0000\u0000\u0495\u0496\u0001\u0000\u0000\u0000\u0496\u0498\u0001\u0000"+ + "\u0000\u0000\u0497\u0495\u0001\u0000\u0000\u0000\u0498\u0499\u0005Q\u0000"+ + "\u0000\u0499\u04be\u0001\u0000\u0000\u0000\u049a\u049b\u0005*\u0000\u0000"+ + "\u049b\u049c\u0003\u00ccf\u0000\u049c\u049d\u0003\u00a8T\u0000\u049d\u04be"+ + "\u0001\u0000\u0000\u0000\u049e\u04a0\u0005$\u0000\u0000\u049f\u04a1\u0003"+ + "\u00d2i\u0000\u04a0\u049f\u0001\u0000\u0000\u0000\u04a0\u04a1\u0001\u0000"+ + "\u0000\u0000\u04a1\u04a2\u0001\u0000\u0000\u0000\u04a2\u04be\u0005T\u0000"+ + "\u0000\u04a3\u04a4\u0005,\u0000\u0000\u04a4\u04a5\u0003\u00d2i\u0000\u04a5"+ + "\u04a6\u0005T\u0000\u0000\u04a6\u04be\u0001\u0000\u0000\u0000\u04a7\u04a9"+ + "\u0005\u0004\u0000\u0000\u04a8\u04aa\u0003\u00aeW\u0000\u04a9\u04a8\u0001"+ + "\u0000\u0000\u0000\u04a9\u04aa\u0001\u0000\u0000\u0000\u04aa\u04ab\u0001"+ + "\u0000\u0000\u0000\u04ab\u04be\u0005T\u0000\u0000\u04ac\u04ae\u0005\u000b"+ + "\u0000\u0000\u04ad\u04af\u0003\u00aeW\u0000\u04ae\u04ad\u0001\u0000\u0000"+ + "\u0000\u04ae\u04af\u0001\u0000\u0000\u0000\u04af\u04b0\u0001\u0000\u0000"+ + "\u0000\u04b0\u04be\u0005T\u0000\u0000\u04b1\u04b2\u0005>\u0000\u0000\u04b2"+ + "\u04b3\u0003\u00d2i\u0000\u04b3\u04b4\u0005T\u0000\u0000\u04b4\u04be\u0001"+ + "\u0000\u0000\u0000\u04b5\u04be\u0005T\u0000\u0000\u04b6\u04b7\u0003\u00d2"+ + "i\u0000\u04b7\u04b8\u0005T\u0000\u0000\u04b8\u04be\u0001\u0000\u0000\u0000"+ + "\u04b9\u04ba\u0003\u00aeW\u0000\u04ba\u04bb\u0005]\u0000\u0000\u04bb\u04bc"+ + "\u0003\u00b4Z\u0000\u04bc\u04be\u0001\u0000\u0000\u0000\u04bd\u0450\u0001"+ + "\u0000\u0000\u0000\u04bd\u0451\u0001\u0000\u0000\u0000\u04bd\u0459\u0001"+ + "\u0000\u0000\u0000\u04bd\u0460\u0001\u0000\u0000\u0000\u04bd\u0466\u0001"+ + "\u0000\u0000\u0000\u04bd\u046a\u0001\u0000\u0000\u0000\u04bd\u0470\u0001"+ + "\u0000\u0000\u0000\u04bd\u047d\u0001\u0000\u0000\u0000\u04bd\u0489\u0001"+ + "\u0000\u0000\u0000\u04bd\u049a\u0001\u0000\u0000\u0000\u04bd\u049e\u0001"+ + "\u0000\u0000\u0000\u04bd\u04a3\u0001\u0000\u0000\u0000\u04bd\u04a7\u0001"+ + "\u0000\u0000\u0000\u04bd\u04ac\u0001\u0000\u0000\u0000\u04bd\u04b1\u0001"+ + "\u0000\u0000\u0000\u04bd\u04b5\u0001\u0000\u0000\u0000\u04bd\u04b6\u0001"+ + "\u0000\u0000\u0000\u04bd\u04b9\u0001\u0000\u0000\u0000\u04be\u00b5\u0001"+ + "\u0000\u0000\u0000\u04bf\u04c0\u0005\u0007\u0000\u0000\u04c0\u04c4\u0005"+ + "N\u0000\u0000\u04c1\u04c3\u0003\f\u0006\u0000\u04c2\u04c1\u0001\u0000"+ + "\u0000\u0000\u04c3\u04c6\u0001\u0000\u0000\u0000\u04c4\u04c2\u0001\u0000"+ + "\u0000\u0000\u04c4\u04c5\u0001\u0000\u0000\u0000\u04c5\u04c8\u0001\u0000"+ + "\u0000\u0000\u04c6\u04c4\u0001\u0000\u0000\u0000\u04c7\u04c9\u0003\u00b8"+ + "\\\u0000\u04c8\u04c7\u0001\u0000\u0000\u0000\u04c8\u04c9\u0001\u0000\u0000"+ + "\u0000\u04c9\u04ca\u0001\u0000\u0000\u0000\u04ca\u04cb\u0003\u00aeW\u0000"+ + "\u04cb\u04cc\u0005O\u0000\u0000\u04cc\u04cd\u0003\u00a8T\u0000\u04cd\u00b7"+ + "\u0001\u0000\u0000\u0000\u04ce\u04d3\u0003r9\u0000\u04cf\u04d0\u0005k"+ + "\u0000\u0000\u04d0\u04d2\u0003r9\u0000\u04d1\u04cf\u0001\u0000\u0000\u0000"+ + "\u04d2\u04d5\u0001\u0000\u0000\u0000\u04d3\u04d1\u0001\u0000\u0000\u0000"+ + "\u04d3\u04d4\u0001\u0000\u0000\u0000\u04d4\u00b9\u0001\u0000\u0000\u0000"+ + "\u04d5\u04d3\u0001\u0000\u0000\u0000\u04d6\u04d7\u0005\u0013\u0000\u0000"+ + "\u04d7\u04d8\u0003\u00a8T\u0000\u04d8\u00bb\u0001\u0000\u0000\u0000\u04d9"+ + "\u04da\u0005N\u0000\u0000\u04da\u04dc\u0003\u00be_\u0000\u04db\u04dd\u0005"+ + "T\u0000\u0000\u04dc\u04db\u0001\u0000\u0000\u0000\u04dc\u04dd\u0001\u0000"+ + "\u0000\u0000\u04dd\u04de\u0001\u0000\u0000\u0000\u04de\u04df\u0005O\u0000"+ + "\u0000\u04df\u00bd\u0001\u0000\u0000\u0000\u04e0\u04e5\u0003\u00c0`\u0000"+ + "\u04e1\u04e2\u0005T\u0000\u0000\u04e2\u04e4\u0003\u00c0`\u0000\u04e3\u04e1"+ + "\u0001\u0000\u0000\u0000\u04e4\u04e7\u0001\u0000\u0000\u0000\u04e5\u04e3"+ + "\u0001\u0000\u0000\u0000\u04e5\u04e6\u0001\u0000\u0000\u0000\u04e6\u00bf"+ + "\u0001\u0000\u0000\u0000\u04e7\u04e5\u0001\u0000\u0000\u0000\u04e8\u04ea"+ + "\u0003\f\u0006\u0000\u04e9\u04e8\u0001\u0000\u0000\u0000\u04ea\u04ed\u0001"+ + "\u0000\u0000\u0000\u04eb\u04e9\u0001\u0000\u0000\u0000\u04eb\u04ec\u0001"+ + "\u0000\u0000\u0000\u04ec\u04f4\u0001\u0000\u0000\u0000\u04ed\u04eb\u0001"+ + "\u0000\u0000\u0000\u04ee\u04f0\u0003V+\u0000\u04ef\u04ee\u0001\u0000\u0000"+ + "\u0000\u04ef\u04f0\u0001\u0000\u0000\u0000\u04f0\u04f1\u0001\u0000\u0000"+ + "\u0000\u04f1\u04f5\u0003P(\u0000\u04f2\u04f3\u0005=\u0000\u0000\u04f3"+ + "\u04f5\u0003\u00aeW\u0000\u04f4\u04ef\u0001\u0000\u0000\u0000\u04f4\u04f2"+ + "\u0001\u0000\u0000\u0000\u04f5\u04f6\u0001\u0000\u0000\u0000\u04f6\u04f7"+ + "\u0005W\u0000\u0000\u04f7\u04f8\u0003\u00d2i\u0000\u04f8\u04fb\u0001\u0000"+ + "\u0000\u0000\u04f9\u04fb\u0003\u00aeW\u0000\u04fa\u04eb\u0001\u0000\u0000"+ + "\u0000\u04fa\u04f9\u0001\u0000\u0000\u0000\u04fb\u00c1\u0001\u0000\u0000"+ + "\u0000\u04fc\u04fe\u0003\u00c4b\u0000\u04fd\u04fc\u0001\u0000\u0000\u0000"+ + "\u04fe\u04ff\u0001\u0000\u0000\u0000\u04ff\u04fd\u0001\u0000\u0000\u0000"+ + "\u04ff\u0500\u0001\u0000\u0000\u0000\u0500\u0502\u0001\u0000\u0000\u0000"+ + "\u0501\u0503\u0003\u00aaU\u0000\u0502\u0501\u0001\u0000\u0000\u0000\u0503"+ + "\u0504\u0001\u0000\u0000\u0000\u0504\u0502\u0001\u0000\u0000\u0000\u0504"+ + "\u0505\u0001\u0000\u0000\u0000\u0505\u00c3\u0001\u0000\u0000\u0000\u0506"+ + "\u0507\u0005\u0006\u0000\u0000\u0507\u0508\u0003\u00d2i\u0000\u0508\u0509"+ + "\u0005]\u0000\u0000\u0509\u0514\u0001\u0000\u0000\u0000\u050a\u050b\u0005"+ + "\u0006\u0000\u0000\u050b\u050c\u0005\u0080\u0000\u0000\u050c\u0514\u0005"+ + "]\u0000\u0000\u050d\u050e\u0005\u0006\u0000\u0000\u050e\u050f\u0003\u00d4"+ + "j\u0000\u050f\u0510\u0005]\u0000\u0000\u0510\u0514\u0001\u0000\u0000\u0000"+ + "\u0511\u0512\u0005\f\u0000\u0000\u0512\u0514\u0005]\u0000\u0000\u0513"+ + "\u0506\u0001\u0000\u0000\u0000\u0513\u050a\u0001\u0000\u0000\u0000\u0513"+ + "\u050d\u0001\u0000\u0000\u0000\u0513\u0511\u0001\u0000\u0000\u0000\u0514"+ + "\u00c5\u0001\u0000\u0000\u0000\u0515\u0522\u0003\u00cae\u0000\u0516\u0518"+ + "\u0003\u00c8d\u0000\u0517\u0516\u0001\u0000\u0000\u0000\u0517\u0518\u0001"+ + "\u0000\u0000\u0000\u0518\u0519\u0001\u0000\u0000\u0000\u0519\u051b\u0005"+ + "T\u0000\u0000\u051a\u051c\u0003\u00d2i\u0000\u051b\u051a\u0001\u0000\u0000"+ + "\u0000\u051b\u051c\u0001\u0000\u0000\u0000\u051c\u051d\u0001\u0000\u0000"+ + "\u0000\u051d\u051f\u0005T\u0000\u0000\u051e\u0520\u0003\u00ceg\u0000\u051f"+ + "\u051e\u0001\u0000\u0000\u0000\u051f\u0520\u0001\u0000\u0000\u0000\u0520"+ + "\u0522\u0001\u0000\u0000\u0000\u0521\u0515\u0001\u0000\u0000\u0000\u0521"+ + "\u0517\u0001\u0000\u0000\u0000\u0522\u00c7\u0001\u0000\u0000\u0000\u0523"+ + "\u0526\u0003\u00acV\u0000\u0524\u0526\u0003\u00ceg\u0000\u0525\u0523\u0001"+ + "\u0000\u0000\u0000\u0525\u0524\u0001\u0000\u0000\u0000\u0526\u00c9\u0001"+ + "\u0000\u0000\u0000\u0527\u0529\u0003\f\u0006\u0000\u0528\u0527\u0001\u0000"+ + "\u0000\u0000\u0529\u052c\u0001\u0000\u0000\u0000\u052a\u0528\u0001\u0000"+ + "\u0000\u0000\u052a\u052b\u0001\u0000\u0000\u0000\u052b\u0531\u0001\u0000"+ + "\u0000\u0000\u052c\u052a\u0001\u0000\u0000\u0000\u052d\u052f\u0003\u010a"+ + "\u0085\u0000\u052e\u052d\u0001\u0000\u0000\u0000\u052e\u052f\u0001\u0000"+ + "\u0000\u0000\u052f\u0532\u0001\u0000\u0000\u0000\u0530\u0532\u0005=\u0000"+ + "\u0000\u0531\u052e\u0001\u0000\u0000\u0000\u0531\u0530\u0001\u0000\u0000"+ + "\u0000\u0532\u0533\u0001\u0000\u0000\u0000\u0533\u0534\u0003P(\u0000\u0534"+ + "\u0535\u0005]\u0000\u0000\u0535\u0536\u0003\u00d2i\u0000\u0536\u00cb\u0001"+ + "\u0000\u0000\u0000\u0537\u0538\u0005N\u0000\u0000\u0538\u0539\u0003\u00d2"+ + "i\u0000\u0539\u053a\u0005O\u0000\u0000\u053a\u00cd\u0001\u0000\u0000\u0000"+ + "\u053b\u0540\u0003\u00d2i\u0000\u053c\u053d\u0005U\u0000\u0000\u053d\u053f"+ + "\u0003\u00d2i\u0000\u053e\u053c\u0001\u0000\u0000\u0000\u053f\u0542\u0001"+ + "\u0000\u0000\u0000\u0540\u053e\u0001\u0000\u0000\u0000\u0540\u0541\u0001"+ + "\u0000\u0000\u0000\u0541\u00cf\u0001\u0000\u0000\u0000\u0542\u0540\u0001"+ + "\u0000\u0000\u0000\u0543\u0544\u0003\u00aeW\u0000\u0544\u0546\u0005N\u0000"+ + "\u0000\u0545\u0547\u0003\u00ceg\u0000\u0546\u0545\u0001\u0000\u0000\u0000"+ + "\u0546\u0547\u0001\u0000\u0000\u0000\u0547\u0548\u0001\u0000\u0000\u0000"+ + "\u0548\u0549\u0005O\u0000\u0000\u0549\u0557\u0001\u0000\u0000\u0000\u054a"+ + "\u054b\u0005+\u0000\u0000\u054b\u054d\u0005N\u0000\u0000\u054c\u054e\u0003"+ + "\u00ceg\u0000\u054d\u054c\u0001\u0000\u0000\u0000\u054d\u054e\u0001\u0000"+ + "\u0000\u0000\u054e\u054f\u0001\u0000\u0000\u0000\u054f\u0557\u0005O\u0000"+ + "\u0000\u0550\u0551\u0005(\u0000\u0000\u0551\u0553\u0005N\u0000\u0000\u0552"+ + "\u0554\u0003\u00ceg\u0000\u0553\u0552\u0001\u0000\u0000\u0000\u0553\u0554"+ + "\u0001\u0000\u0000\u0000\u0554\u0555\u0001\u0000\u0000\u0000\u0555\u0557"+ + "\u0005O\u0000\u0000\u0556\u0543\u0001\u0000\u0000\u0000\u0556\u054a\u0001"+ + "\u0000\u0000\u0000\u0556\u0550\u0001\u0000\u0000\u0000\u0557\u00d1\u0001"+ + "\u0000\u0000\u0000\u0558\u0559\u0006i\uffff\uffff\u0000\u0559\u0584\u0003"+ + "\u00e8t\u0000\u055a\u0584\u0003\u00d0h\u0000\u055b\u055c\u0005\u001f\u0000"+ + "\u0000\u055c\u0584\u0003\u00f6{\u0000\u055d\u0561\u0005N\u0000\u0000\u055e"+ + "\u0560\u0003|>\u0000\u055f\u055e\u0001\u0000\u0000\u0000\u0560\u0563\u0001"+ + "\u0000\u0000\u0000\u0561\u055f\u0001\u0000\u0000\u0000\u0561\u0562\u0001"+ + "\u0000\u0000\u0000\u0562\u0564\u0001\u0000\u0000\u0000\u0563\u0561\u0001"+ + "\u0000\u0000\u0000\u0564\u0569\u0003\u010a\u0085\u0000\u0565\u0566\u0005"+ + "j\u0000\u0000\u0566\u0568\u0003\u010a\u0085\u0000\u0567\u0565\u0001\u0000"+ + "\u0000\u0000\u0568\u056b\u0001\u0000\u0000\u0000\u0569\u0567\u0001\u0000"+ + "\u0000\u0000\u0569\u056a\u0001\u0000\u0000\u0000\u056a\u056c\u0001\u0000"+ + "\u0000\u0000\u056b\u0569\u0001\u0000\u0000\u0000\u056c\u056d\u0005O\u0000"+ + "\u0000\u056d\u056e\u0003\u00d2i\u0015\u056e\u0584\u0001\u0000\u0000\u0000"+ + "\u056f\u0570\u0007\u0006\u0000\u0000\u0570\u0584\u0003\u00d2i\u0013\u0571"+ + "\u0584\u0003\u00e2q\u0000\u0572\u0584\u0003\u00eau\u0000\u0573\u0574\u0003"+ + "\u010a\u0085\u0000\u0574\u057a\u0005z\u0000\u0000\u0575\u0577\u0003\u010e"+ + "\u0087\u0000\u0576\u0575\u0001\u0000\u0000\u0000\u0576\u0577\u0001\u0000"+ + "\u0000\u0000\u0577\u0578\u0001\u0000\u0000\u0000\u0578\u057b\u0003\u00ae"+ + "W\u0000\u0579\u057b\u0005\u001f\u0000\u0000\u057a\u0576\u0001\u0000\u0000"+ + "\u0000\u057a\u0579\u0001\u0000\u0000\u0000\u057b\u0584\u0001\u0000\u0000"+ + "\u0000\u057c\u057d\u0003\u00f4z\u0000\u057d\u057f\u0005z\u0000\u0000\u057e"+ + "\u0580\u0003\u010e\u0087\u0000\u057f\u057e\u0001\u0000\u0000\u0000\u057f"+ + "\u0580\u0001\u0000\u0000\u0000\u0580\u0581\u0001\u0000\u0000\u0000\u0581"+ + "\u0582\u0005\u001f\u0000\u0000\u0582\u0584\u0001\u0000\u0000\u0000\u0583"+ + "\u0558\u0001\u0000\u0000\u0000\u0583\u055a\u0001\u0000\u0000\u0000\u0583"+ + "\u055b\u0001\u0000\u0000\u0000\u0583\u055d\u0001\u0000\u0000\u0000\u0583"+ + "\u056f\u0001\u0000\u0000\u0000\u0583\u0571\u0001\u0000\u0000\u0000\u0583"+ + "\u0572\u0001\u0000\u0000\u0000\u0583\u0573\u0001\u0000\u0000\u0000\u0583"+ + "\u057c\u0001\u0000\u0000\u0000\u0584\u05d8\u0001\u0000\u0000\u0000\u0585"+ + "\u0586\n\u0012\u0000\u0000\u0586\u0587\u0007\u0007\u0000\u0000\u0587\u05d7"+ + "\u0003\u00d2i\u0013\u0588\u0589\n\u0011\u0000\u0000\u0589\u058a\u0007"+ + "\b\u0000\u0000\u058a\u05d7\u0003\u00d2i\u0012\u058b\u0593\n\u0010\u0000"+ + "\u0000\u058c\u058d\u0005Y\u0000\u0000\u058d\u0594\u0005Y\u0000\u0000\u058e"+ + "\u058f\u0005X\u0000\u0000\u058f\u0590\u0005X\u0000\u0000\u0590\u0594\u0005"+ + "X\u0000\u0000\u0591\u0592\u0005X\u0000\u0000\u0592\u0594\u0005X\u0000"+ + "\u0000\u0593\u058c\u0001\u0000\u0000\u0000\u0593\u058e\u0001\u0000\u0000"+ + "\u0000\u0593\u0591\u0001\u0000\u0000\u0000\u0594\u0595\u0001\u0000\u0000"+ + "\u0000\u0595\u05d7\u0003\u00d2i\u0011\u0596\u0597\n\u000f\u0000\u0000"+ + "\u0597\u0598\u0007\t\u0000\u0000\u0598\u05d7\u0003\u00d2i\u0010\u0599"+ + "\u059a\n\r\u0000\u0000\u059a\u059b\u0007\n\u0000\u0000\u059b\u05d7\u0003"+ + "\u00d2i\u000e\u059c\u059d\n\f\u0000\u0000\u059d\u059e\u0005j\u0000\u0000"+ + "\u059e\u05d7\u0003\u00d2i\r\u059f\u05a0\n\u000b\u0000\u0000\u05a0\u05a1"+ + "\u0005l\u0000\u0000\u05a1\u05d7\u0003\u00d2i\f\u05a2\u05a3\n\n\u0000\u0000"+ + "\u05a3\u05a4\u0005k\u0000\u0000\u05a4\u05d7\u0003\u00d2i\u000b\u05a5\u05a6"+ + "\n\t\u0000\u0000\u05a6\u05a7\u0005b\u0000\u0000\u05a7\u05d7\u0003\u00d2"+ + "i\n\u05a8\u05a9\n\b\u0000\u0000\u05a9\u05aa\u0005c\u0000\u0000\u05aa\u05d7"+ + "\u0003\u00d2i\t\u05ab\u05ac\n\u0007\u0000\u0000\u05ac\u05ad\u0005\\\u0000"+ + "\u0000\u05ad\u05ae\u0003\u00d2i\u0000\u05ae\u05af\u0005]\u0000\u0000\u05af"+ + "\u05b0\u0003\u00d2i\u0007\u05b0\u05d7\u0001\u0000\u0000\u0000\u05b1\u05b2"+ + "\n\u0006\u0000\u0000\u05b2\u05b3\u0007\u000b\u0000\u0000\u05b3\u05d7\u0003"+ + "\u00d2i\u0006\u05b4\u05b5\n\u0019\u0000\u0000\u05b5\u05c1\u0005V\u0000"+ + "\u0000\u05b6\u05c2\u0003\u00aeW\u0000\u05b7\u05c2\u0003\u00d0h\u0000\u05b8"+ + "\u05c2\u0005+\u0000\u0000\u05b9\u05bb\u0005\u001f\u0000\u0000\u05ba\u05bc"+ + "\u0003\u0106\u0083\u0000\u05bb\u05ba\u0001\u0000\u0000\u0000\u05bb\u05bc"+ + "\u0001\u0000\u0000\u0000\u05bc\u05bd\u0001\u0000\u0000\u0000\u05bd\u05c2"+ + "\u0003\u00fa}\u0000\u05be\u05bf\u0005(\u0000\u0000\u05bf\u05c2\u0003\u0110"+ + "\u0088\u0000\u05c0\u05c2\u0003\u0100\u0080\u0000\u05c1\u05b6\u0001\u0000"+ + "\u0000\u0000\u05c1\u05b7\u0001\u0000\u0000\u0000\u05c1\u05b8\u0001\u0000"+ + "\u0000\u0000\u05c1\u05b9\u0001\u0000\u0000\u0000\u05c1\u05be\u0001\u0000"+ + "\u0000\u0000\u05c1\u05c0\u0001\u0000\u0000\u0000\u05c2\u05d7\u0001\u0000"+ + "\u0000\u0000\u05c3\u05c4\n\u0018\u0000\u0000\u05c4\u05c5\u0005R\u0000"+ + "\u0000\u05c5\u05c6\u0003\u00d2i\u0000\u05c6\u05c7\u0005S\u0000\u0000\u05c7"+ + "\u05d7\u0001\u0000\u0000\u0000\u05c8\u05c9\n\u0014\u0000\u0000\u05c9\u05d7"+ + "\u0007\f\u0000\u0000\u05ca\u05cb\n\u000e\u0000\u0000\u05cb\u05ce\u0005"+ + "\u001a\u0000\u0000\u05cc\u05cf\u0003\u010a\u0085\u0000\u05cd\u05cf\u0003"+ + "\u00d4j\u0000\u05ce\u05cc\u0001\u0000\u0000\u0000\u05ce\u05cd\u0001\u0000"+ + "\u0000\u0000\u05cf\u05d7\u0001\u0000\u0000\u0000\u05d0\u05d1\n\u0003\u0000"+ + "\u0000\u05d1\u05d3\u0005z\u0000\u0000\u05d2\u05d4\u0003\u010e\u0087\u0000"+ + "\u05d3\u05d2\u0001\u0000\u0000\u0000\u05d3\u05d4\u0001\u0000\u0000\u0000"+ + "\u05d4\u05d5\u0001\u0000\u0000\u0000\u05d5\u05d7\u0003\u00aeW\u0000\u05d6"+ + "\u0585\u0001\u0000\u0000\u0000\u05d6\u0588\u0001\u0000\u0000\u0000\u05d6"+ + "\u058b\u0001\u0000\u0000\u0000\u05d6\u0596\u0001\u0000\u0000\u0000\u05d6"+ + "\u0599\u0001\u0000\u0000\u0000\u05d6\u059c\u0001\u0000\u0000\u0000\u05d6"+ + "\u059f\u0001\u0000\u0000\u0000\u05d6\u05a2\u0001\u0000\u0000\u0000\u05d6"+ + "\u05a5\u0001\u0000\u0000\u0000\u05d6\u05a8\u0001\u0000\u0000\u0000\u05d6"+ + "\u05ab\u0001\u0000\u0000\u0000\u05d6\u05b1\u0001\u0000\u0000\u0000\u05d6"+ + "\u05b4\u0001\u0000\u0000\u0000\u05d6\u05c3\u0001\u0000\u0000\u0000\u05d6"+ + "\u05c8\u0001\u0000\u0000\u0000\u05d6\u05ca\u0001\u0000\u0000\u0000\u05d6"+ + "\u05d0\u0001\u0000\u0000\u0000\u05d7\u05da\u0001\u0000\u0000\u0000\u05d8"+ + "\u05d6\u0001\u0000\u0000\u0000\u05d8\u05d9\u0001\u0000\u0000\u0000\u05d9"+ + "\u00d3\u0001\u0000\u0000\u0000\u05da\u05d8\u0001\u0000\u0000\u0000\u05db"+ + "\u05de\u0003\u00d6k\u0000\u05dc\u05de\u0003\u00f0x\u0000\u05dd\u05db\u0001"+ + "\u0000\u0000\u0000\u05dd\u05dc\u0001\u0000\u0000\u0000\u05de\u00d5\u0001"+ + "\u0000\u0000\u0000\u05df\u05e6\u0003\u00dam\u0000\u05e0\u05e6\u0003\u00d8"+ + "l\u0000\u05e1\u05e2\u0005N\u0000\u0000\u05e2\u05e3\u0003\u00d4j\u0000"+ + "\u05e3\u05e4\u0005O\u0000\u0000\u05e4\u05e6\u0001\u0000\u0000\u0000\u05e5"+ + "\u05df\u0001\u0000\u0000\u0000\u05e5\u05e0\u0001\u0000\u0000\u0000\u05e5"+ + "\u05e1\u0001\u0000\u0000\u0000\u05e6\u00d7\u0001\u0000\u0000\u0000\u05e7"+ + "\u05e8\u0003\u010a\u0085\u0000\u05e8\u05ea\u0003\u00dcn\u0000\u05e9\u05eb"+ + "\u0003\u00aeW\u0000\u05ea\u05e9\u0001\u0000\u0000\u0000\u05ea\u05eb\u0001"+ + "\u0000\u0000\u0000\u05eb\u00d9\u0001\u0000\u0000\u0000\u05ec\u05ee\u0003"+ + "\f\u0006\u0000\u05ed\u05ec\u0001\u0000\u0000\u0000\u05ee\u05f1\u0001\u0000"+ + "\u0000\u0000\u05ef\u05ed\u0001\u0000\u0000\u0000\u05ef\u05f0\u0001\u0000"+ + "\u0000\u0000\u05f0\u05f2\u0001\u0000\u0000\u0000\u05f1\u05ef\u0001\u0000"+ + "\u0000\u0000\u05f2\u05f3\u0003\u010a\u0085\u0000\u05f3\u05f4\u0003\u00ae"+ + "W\u0000\u05f4\u05fd\u0001\u0000\u0000\u0000\u05f5\u05f7\u0003\f\u0006"+ + "\u0000\u05f6\u05f5\u0001\u0000\u0000\u0000\u05f7\u05fa\u0001\u0000\u0000"+ + "\u0000\u05f8\u05f6\u0001\u0000\u0000\u0000\u05f8\u05f9\u0001\u0000\u0000"+ + "\u0000\u05f9\u05fb\u0001\u0000\u0000\u0000\u05fa\u05f8\u0001\u0000\u0000"+ + "\u0000\u05fb\u05fd\u0003\u00aeW\u0000\u05fc\u05ef\u0001\u0000\u0000\u0000"+ + "\u05fc\u05f8\u0001\u0000\u0000\u0000\u05fd\u00db\u0001\u0000\u0000\u0000"+ + "\u05fe\u0600\u0005N\u0000\u0000\u05ff\u0601\u0003\u00e0p\u0000\u0600\u05ff"+ + "\u0001\u0000\u0000\u0000\u0600\u0601\u0001\u0000\u0000\u0000\u0601\u0602"+ + "\u0001\u0000\u0000\u0000\u0602\u0603\u0005O\u0000\u0000\u0603\u00dd\u0001"+ + "\u0000\u0000\u0000\u0604\u0607\u0003\u00d4j\u0000\u0605\u0607\u0003\u00ae"+ + "W\u0000\u0606\u0604\u0001\u0000\u0000\u0000\u0606\u0605\u0001\u0000\u0000"+ + "\u0000\u0607\u00df\u0001\u0000\u0000\u0000\u0608\u060d\u0003\u00d4j\u0000"+ + "\u0609\u060a\u0005U\u0000\u0000\u060a\u060c\u0003\u00d4j\u0000\u060b\u0609"+ + "\u0001\u0000\u0000\u0000\u060c\u060f\u0001\u0000\u0000\u0000\u060d\u060b"+ + "\u0001\u0000\u0000\u0000\u060d\u060e\u0001\u0000\u0000\u0000\u060e\u00e1"+ + "\u0001\u0000\u0000\u0000\u060f\u060d\u0001\u0000\u0000\u0000\u0610\u0611"+ + "\u0003\u00e4r\u0000\u0611\u0612\u0005y\u0000\u0000\u0612\u0613\u0003\u00e6"+ + "s\u0000\u0613\u00e3\u0001\u0000\u0000\u0000\u0614\u062b\u0003\u00aeW\u0000"+ + "\u0615\u0617\u0005N\u0000\u0000\u0616\u0618\u0003h4\u0000\u0617\u0616"+ + "\u0001\u0000\u0000\u0000\u0617\u0618\u0001\u0000\u0000\u0000\u0618\u0619"+ + "\u0001\u0000\u0000\u0000\u0619\u062b\u0005O\u0000\u0000\u061a\u061b\u0005"+ + "N\u0000\u0000\u061b\u0620\u0003\u00aeW\u0000\u061c\u061d\u0005U\u0000"+ + "\u0000\u061d\u061f\u0003\u00aeW\u0000\u061e\u061c\u0001\u0000\u0000\u0000"+ + "\u061f\u0622\u0001\u0000\u0000\u0000\u0620\u061e\u0001\u0000\u0000\u0000"+ + "\u0620\u0621\u0001\u0000\u0000\u0000\u0621\u0623\u0001\u0000\u0000\u0000"+ + "\u0622\u0620\u0001\u0000\u0000\u0000\u0623\u0624\u0005O\u0000\u0000\u0624"+ + "\u062b\u0001\u0000\u0000\u0000\u0625\u0627\u0005N\u0000\u0000\u0626\u0628"+ + "\u0003n7\u0000\u0627\u0626\u0001\u0000\u0000\u0000\u0627\u0628\u0001\u0000"+ + "\u0000\u0000\u0628\u0629\u0001\u0000\u0000\u0000\u0629\u062b\u0005O\u0000"+ + "\u0000\u062a\u0614\u0001\u0000\u0000\u0000\u062a\u0615\u0001\u0000\u0000"+ + "\u0000\u062a\u061a\u0001\u0000\u0000\u0000\u062a\u0625\u0001\u0000\u0000"+ + "\u0000\u062b\u00e5\u0001\u0000\u0000\u0000\u062c\u062f\u0003\u00d2i\u0000"+ + "\u062d\u062f\u0003\u00a8T\u0000\u062e\u062c\u0001\u0000\u0000\u0000\u062e"+ + "\u062d\u0001\u0000\u0000\u0000\u062f\u00e7\u0001\u0000\u0000\u0000\u0630"+ + "\u0631\u0005N\u0000\u0000\u0631\u0632\u0003\u00d2i\u0000\u0632\u0633\u0005"+ + "O\u0000\u0000\u0633\u0643\u0001\u0000\u0000\u0000\u0634\u0643\u0005+\u0000"+ + "\u0000\u0635\u0643\u0005(\u0000\u0000\u0636\u0643\u0003t:\u0000\u0637"+ + "\u0643\u0003\u00aeW\u0000\u0638\u0639\u00030\u0018\u0000\u0639\u063a\u0005"+ + "V\u0000\u0000\u063a\u063b\u0005\t\u0000\u0000\u063b\u0643\u0001\u0000"+ + "\u0000\u0000\u063c\u0640\u0003\u0106\u0083\u0000\u063d\u0641\u0003\u0112"+ + "\u0089\u0000\u063e\u063f\u0005+\u0000\u0000\u063f\u0641\u0003\u0114\u008a"+ + "\u0000\u0640\u063d\u0001\u0000\u0000\u0000\u0640\u063e\u0001\u0000\u0000"+ + "\u0000\u0641\u0643\u0001\u0000\u0000\u0000\u0642\u0630\u0001\u0000\u0000"+ + "\u0000\u0642\u0634\u0001\u0000\u0000\u0000\u0642\u0635\u0001\u0000\u0000"+ + "\u0000\u0642\u0636\u0001\u0000\u0000\u0000\u0642\u0637\u0001\u0000\u0000"+ + "\u0000\u0642\u0638\u0001\u0000\u0000\u0000\u0642\u063c\u0001\u0000\u0000"+ + "\u0000\u0643\u00e9\u0001\u0000\u0000\u0000\u0644\u0645\u0005)\u0000\u0000"+ + "\u0645\u0646\u0003\u00ccf\u0000\u0646\u064a\u0005P\u0000\u0000\u0647\u0649"+ + "\u0003\u00ecv\u0000\u0648\u0647\u0001\u0000\u0000\u0000\u0649\u064c\u0001"+ + "\u0000\u0000\u0000\u064a\u0648\u0001\u0000\u0000\u0000\u064a\u064b\u0001"+ + "\u0000\u0000\u0000\u064b\u064d\u0001\u0000\u0000\u0000\u064c\u064a\u0001"+ + "\u0000\u0000\u0000\u064d\u064e\u0005Q\u0000\u0000\u064e\u00eb\u0001\u0000"+ + "\u0000\u0000\u064f\u0650\u0003\u00eew\u0000\u0650\u0651\u0003\u00f2y\u0000"+ + "\u0651\u00ed\u0001\u0000\u0000\u0000\u0652\u0653\u0005\u0006\u0000\u0000"+ + "\u0653\u0654\u0005M\u0000\u0000\u0654\u0660\u0007\r\u0000\u0000\u0655"+ + "\u0656\u0005\u0006\u0000\u0000\u0656\u0657\u0003\u00d4j\u0000\u0657\u0658"+ + "\u0007\r\u0000\u0000\u0658\u0660\u0001\u0000\u0000\u0000\u0659\u065a\u0005"+ + "\f\u0000\u0000\u065a\u0660\u0007\r\u0000\u0000\u065b\u065c\u0005\u0006"+ + "\u0000\u0000\u065c\u065d\u0003\u00ceg\u0000\u065d\u065e\u0007\r\u0000"+ + "\u0000\u065e\u0660\u0001\u0000\u0000\u0000\u065f\u0652\u0001\u0000\u0000"+ + "\u0000\u065f\u0655\u0001\u0000\u0000\u0000\u065f\u0659\u0001\u0000\u0000"+ + "\u0000\u065f\u065b\u0001\u0000\u0000\u0000\u0660\u00ef\u0001\u0000\u0000"+ + "\u0000\u0661\u0662\u0003\u00d6k\u0000\u0662\u0663\u0005;\u0000\u0000\u0663"+ + "\u0664\u0003\u00d2i\u0000\u0664\u00f1\u0001\u0000\u0000\u0000\u0665\u066a"+ + "\u0003\u00a8T\u0000\u0666\u0667\u0003\u00d2i\u0000\u0667\u0668\u0005T"+ + "\u0000\u0000\u0668\u066a\u0001\u0000\u0000\u0000\u0669\u0665\u0001\u0000"+ + "\u0000\u0000\u0669\u0666\u0001\u0000\u0000\u0000\u066a\u00f3\u0001\u0000"+ + "\u0000\u0000\u066b\u066c\u0003V+\u0000\u066c\u066d\u0005V\u0000\u0000"+ + "\u066d\u066f\u0001\u0000\u0000\u0000\u066e\u066b\u0001\u0000\u0000\u0000"+ + "\u066e\u066f\u0001\u0000\u0000\u0000\u066f\u0673\u0001\u0000\u0000\u0000"+ + "\u0670\u0672\u0003|>\u0000\u0671\u0670\u0001\u0000\u0000\u0000\u0672\u0675"+ + "\u0001\u0000\u0000\u0000\u0673\u0671\u0001\u0000\u0000\u0000\u0673\u0674"+ + "\u0001\u0000\u0000\u0000\u0674\u0676\u0001\u0000\u0000\u0000\u0675\u0673"+ + "\u0001\u0000\u0000\u0000\u0676\u0678\u0003\u00aeW\u0000\u0677\u0679\u0003"+ + "\u010e\u0087\u0000\u0678\u0677\u0001\u0000\u0000\u0000\u0678\u0679\u0001"+ + "\u0000\u0000\u0000\u0679\u00f5\u0001\u0000\u0000\u0000\u067a\u067b\u0003"+ + "\u0106\u0083\u0000\u067b\u067c\u0003\u00f8|\u0000\u067c\u067d\u0003\u00fe"+ + "\u007f\u0000\u067d\u0684\u0001\u0000\u0000\u0000\u067e\u0681\u0003\u00f8"+ + "|\u0000\u067f\u0682\u0003\u00fc~\u0000\u0680\u0682\u0003\u00fe\u007f\u0000"+ + "\u0681\u067f\u0001\u0000\u0000\u0000\u0681\u0680\u0001\u0000\u0000\u0000"+ + "\u0682\u0684\u0001\u0000\u0000\u0000\u0683\u067a\u0001\u0000\u0000\u0000"+ + "\u0683\u067e\u0001\u0000\u0000\u0000\u0684\u00f7\u0001\u0000\u0000\u0000"+ + "\u0685\u0687\u0003\u00aeW\u0000\u0686\u0688\u0003\u0102\u0081\u0000\u0687"+ + "\u0686\u0001\u0000\u0000\u0000\u0687\u0688\u0001\u0000\u0000\u0000\u0688"+ + "\u068b\u0001\u0000\u0000\u0000\u0689\u068b\u0003\u010c\u0086\u0000\u068a"+ + "\u0685\u0001\u0000\u0000\u0000\u068a\u0689\u0001\u0000\u0000\u0000\u068b"+ + "\u00f9\u0001\u0000\u0000\u0000\u068c\u068e\u0003\u00aeW\u0000\u068d\u068f"+ + "\u0003\u0104\u0082\u0000\u068e\u068d\u0001\u0000\u0000\u0000\u068e\u068f"+ + "\u0001\u0000\u0000\u0000\u068f\u0690\u0001\u0000\u0000\u0000\u0690\u0691"+ + "\u0003\u00fe\u007f\u0000\u0691\u00fb\u0001\u0000\u0000\u0000\u0692\u06ae"+ + "\u0005R\u0000\u0000\u0693\u0698\u0005S\u0000\u0000\u0694\u0695\u0005R"+ + "\u0000\u0000\u0695\u0697\u0005S\u0000\u0000\u0696\u0694\u0001\u0000\u0000"+ + "\u0000\u0697\u069a\u0001\u0000\u0000\u0000\u0698\u0696\u0001\u0000\u0000"+ + "\u0000\u0698\u0699\u0001\u0000\u0000\u0000\u0699\u069b\u0001\u0000\u0000"+ + "\u0000\u069a\u0698\u0001\u0000\u0000\u0000\u069b\u06af\u0003T*\u0000\u069c"+ + "\u069d\u0003\u00d2i\u0000\u069d\u06a4\u0005S\u0000\u0000\u069e\u069f\u0005"+ + "R\u0000\u0000\u069f\u06a0\u0003\u00d2i\u0000\u06a0\u06a1\u0005S\u0000"+ + "\u0000\u06a1\u06a3\u0001\u0000\u0000\u0000\u06a2\u069e\u0001\u0000\u0000"+ + "\u0000\u06a3\u06a6\u0001\u0000\u0000\u0000\u06a4\u06a2\u0001\u0000\u0000"+ + "\u0000\u06a4\u06a5\u0001\u0000\u0000\u0000\u06a5\u06ab\u0001\u0000\u0000"+ + "\u0000\u06a6\u06a4\u0001\u0000\u0000\u0000\u06a7\u06a8\u0005R\u0000\u0000"+ + "\u06a8\u06aa\u0005S\u0000\u0000\u06a9\u06a7\u0001\u0000\u0000\u0000\u06aa"+ + "\u06ad\u0001\u0000\u0000\u0000\u06ab\u06a9\u0001\u0000\u0000\u0000\u06ab"+ + "\u06ac\u0001\u0000\u0000\u0000\u06ac\u06af\u0001\u0000\u0000\u0000\u06ad"+ + "\u06ab\u0001\u0000\u0000\u0000\u06ae\u0693\u0001\u0000\u0000\u0000\u06ae"+ + "\u069c\u0001\u0000\u0000\u0000\u06af\u00fd\u0001\u0000\u0000\u0000\u06b0"+ + "\u06b2\u0003\u0114\u008a\u0000\u06b1\u06b3\u0003 \u0010\u0000\u06b2\u06b1"+ + "\u0001\u0000\u0000\u0000\u06b2\u06b3\u0001\u0000\u0000\u0000\u06b3\u00ff"+ + "\u0001\u0000\u0000\u0000\u06b4\u06b5\u0003\u0106\u0083\u0000\u06b5\u06b6"+ + "\u0003\u0112\u0089\u0000\u06b6\u0101\u0001\u0000\u0000\u0000\u06b7\u06b8"+ + "\u0005Y\u0000\u0000\u06b8\u06bb\u0005X\u0000\u0000\u06b9\u06bb\u0003\u010e"+ + "\u0087\u0000\u06ba\u06b7\u0001\u0000\u0000\u0000\u06ba\u06b9\u0001\u0000"+ + "\u0000\u0000\u06bb\u0103\u0001\u0000\u0000\u0000\u06bc\u06bd\u0005Y\u0000"+ + "\u0000\u06bd\u06c0\u0005X\u0000\u0000\u06be\u06c0\u0003\u0106\u0083\u0000"+ + "\u06bf\u06bc\u0001\u0000\u0000\u0000\u06bf\u06be\u0001\u0000\u0000\u0000"+ + "\u06c0\u0105\u0001\u0000\u0000\u0000\u06c1\u06c2\u0005Y\u0000\u0000\u06c2"+ + "\u06c3\u0003\u0108\u0084\u0000\u06c3\u06c4\u0005X\u0000\u0000\u06c4\u0107"+ + "\u0001\u0000\u0000\u0000\u06c5\u06ca\u0003\u010a\u0085\u0000\u06c6\u06c7"+ + "\u0005U\u0000\u0000\u06c7\u06c9\u0003\u010a\u0085\u0000\u06c8\u06c6\u0001"+ + "\u0000\u0000\u0000\u06c9\u06cc\u0001\u0000\u0000\u0000\u06ca\u06c8\u0001"+ + "\u0000\u0000\u0000\u06ca\u06cb\u0001\u0000\u0000\u0000\u06cb\u0109\u0001"+ + "\u0000\u0000\u0000\u06cc\u06ca\u0001\u0000\u0000\u0000\u06cd\u06cf\u0003"+ + "|>\u0000\u06ce\u06cd\u0001\u0000\u0000\u0000\u06cf\u06d2\u0001\u0000\u0000"+ + "\u0000\u06d0\u06ce\u0001\u0000\u0000\u0000\u06d0\u06d1\u0001\u0000\u0000"+ + "\u0000\u06d1\u06d5\u0001\u0000\u0000\u0000\u06d2\u06d0\u0001\u0000\u0000"+ + "\u0000\u06d3\u06d6\u0003V+\u0000\u06d4\u06d6\u0003\u010c\u0086\u0000\u06d5"+ + "\u06d3\u0001\u0000\u0000\u0000\u06d5\u06d4\u0001\u0000\u0000\u0000\u06d6"+ + "\u06e1\u0001\u0000\u0000\u0000\u06d7\u06d9\u0003|>\u0000\u06d8\u06d7\u0001"+ + "\u0000\u0000\u0000\u06d9\u06dc\u0001\u0000\u0000\u0000\u06da\u06d8\u0001"+ + "\u0000\u0000\u0000\u06da\u06db\u0001\u0000\u0000\u0000\u06db\u06dd\u0001"+ + "\u0000\u0000\u0000\u06dc\u06da\u0001\u0000\u0000\u0000\u06dd\u06de\u0005"+ + "R\u0000\u0000\u06de\u06e0\u0005S\u0000\u0000\u06df\u06da\u0001\u0000\u0000"+ + "\u0000\u06e0\u06e3\u0001\u0000\u0000\u0000\u06e1\u06df\u0001\u0000\u0000"+ + "\u0000\u06e1\u06e2\u0001\u0000\u0000\u0000\u06e2\u010b\u0001\u0000\u0000"+ + "\u0000\u06e3\u06e1\u0001\u0000\u0000\u0000\u06e4\u06e5\u0007\u000e\u0000"+ + "\u0000\u06e5\u010d\u0001\u0000\u0000\u0000\u06e6\u06e7\u0005Y\u0000\u0000"+ + "\u06e7\u06ec\u0003X,\u0000\u06e8\u06e9\u0005U\u0000\u0000\u06e9\u06eb"+ + "\u0003X,\u0000\u06ea\u06e8\u0001\u0000\u0000\u0000\u06eb\u06ee\u0001\u0000"+ + "\u0000\u0000\u06ec\u06ea\u0001\u0000\u0000\u0000\u06ec\u06ed\u0001\u0000"+ + "\u0000\u0000\u06ed\u06ef\u0001\u0000\u0000\u0000\u06ee\u06ec\u0001\u0000"+ + "\u0000\u0000\u06ef\u06f0\u0005X\u0000\u0000\u06f0\u010f\u0001\u0000\u0000"+ + "\u0000\u06f1\u06fb\u0003\u0114\u008a\u0000\u06f2\u06f4\u0005V\u0000\u0000"+ + "\u06f3\u06f5\u0003\u010e\u0087\u0000\u06f4\u06f3\u0001\u0000\u0000\u0000"+ + "\u06f4\u06f5\u0001\u0000\u0000\u0000\u06f5\u06f6\u0001\u0000\u0000\u0000"+ + "\u06f6\u06f8\u0003\u00aeW\u0000\u06f7\u06f9\u0003\u0114\u008a\u0000\u06f8"+ + "\u06f7\u0001\u0000\u0000\u0000\u06f8\u06f9\u0001\u0000\u0000\u0000\u06f9"+ + "\u06fb\u0001\u0000\u0000\u0000\u06fa\u06f1\u0001\u0000\u0000\u0000\u06fa"+ + "\u06f2\u0001\u0000\u0000\u0000\u06fb\u0111\u0001\u0000\u0000\u0000\u06fc"+ + "\u06fd\u0005(\u0000\u0000\u06fd\u0702\u0003\u0110\u0088\u0000\u06fe\u06ff"+ + "\u0003\u00aeW\u0000\u06ff\u0700\u0003\u0114\u008a\u0000\u0700\u0702\u0001"+ + "\u0000\u0000\u0000\u0701\u06fc\u0001\u0000\u0000\u0000\u0701\u06fe\u0001"+ + "\u0000\u0000\u0000\u0702\u0113\u0001\u0000\u0000\u0000\u0703\u0705\u0005"+ + "N\u0000\u0000\u0704\u0706\u0003\u00ceg\u0000\u0705\u0704\u0001\u0000\u0000"+ + "\u0000\u0705\u0706\u0001\u0000\u0000\u0000\u0706\u0707\u0001\u0000\u0000"+ + "\u0000\u0707\u0708\u0005O\u0000\u0000\u0708\u0115\u0001\u0000\u0000\u0000"+ + "\u00e2\u0117\u011c\u0122\u0128\u012d\u0136\u013b\u0142\u014a\u014d\u0154"+ + "\u0160\u0164\u0169\u016d\u0171\u0175\u017f\u0187\u018f\u0193\u019a\u01a1"+ + "\u01a5\u01a8\u01ab\u01b4\u01ba\u01bf\u01c2\u01c8\u01ce\u01d2\u01d6\u01de"+ + "\u01e7\u01ee\u01f4\u01f8\u01fe\u0202\u0207\u020c\u0214\u0219\u021d\u0224"+ + "\u022d\u0232\u023a\u023f\u0245\u0248\u024f\u0259\u0262\u026d\u0272\u027b"+ + "\u027f\u0287\u028c\u0295\u029b\u02a2\u02a7\u02af\u02b3\u02b5\u02bb\u02c1"+ + "\u02c6\u02ca\u02cf\u02d5\u02e2\u02e9\u02ee\u02f1\u02f3\u02f8\u02ff\u0309"+ + "\u030e\u0311\u0316\u031a\u031e\u0323\u0327\u032c\u0337\u033d\u0348\u0352"+ + "\u035d\u0366\u036b\u036e\u0375\u037f\u0387\u038a\u038d\u039a\u03a2\u03a7"+ + "\u03af\u03b1\u03b5\u03bb\u03c3\u03cd\u03d6\u03e0\u03e8\u03f6\u03fd\u0402"+ + "\u0408\u0411\u0415\u041d\u0426\u0430\u0435\u043a\u0445\u044b\u044e\u0455"+ + "\u045e\u0475\u0478\u047b\u0483\u0487\u048f\u0495\u04a0\u04a9\u04ae\u04bd"+ + "\u04c4\u04c8\u04d3\u04dc\u04e5\u04eb\u04ef\u04f4\u04fa\u04ff\u0504\u0513"+ + "\u0517\u051b\u051f\u0521\u0525\u052a\u052e\u0531\u0540\u0546\u054d\u0553"+ + "\u0556\u0561\u0569\u0576\u057a\u057f\u0583\u0593\u05bb\u05c1\u05ce\u05d3"+ + "\u05d6\u05d8\u05dd\u05e5\u05ea\u05ef\u05f8\u05fc\u0600\u0606\u060d\u0617"+ + "\u0620\u0627\u062a\u062e\u0640\u0642\u064a\u065f\u0669\u066e\u0673\u0678"+ + "\u0681\u0683\u0687\u068a\u068e\u0698\u06a4\u06ab\u06ae\u06b2\u06ba\u06bf"+ + "\u06ca\u06d0\u06d5\u06da\u06e1\u06ec\u06f4\u06f8\u06fa\u0701\u0705"; + public static final ATN _ATN = + new ATNDeserializer().deserialize(_serializedATN.toCharArray()); + static { + _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()]; + for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) { + _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i); + } + } +} \ No newline at end of file diff --git a/gen/Java17Parser.tokens b/gen/Java17Parser.tokens new file mode 100644 index 00000000..f811013a --- /dev/null +++ b/gen/Java17Parser.tokens @@ -0,0 +1,242 @@ +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 +MODULE=51 +OPEN=52 +REQUIRES=53 +EXPORTS=54 +OPENS=55 +TO=56 +USES=57 +PROVIDES=58 +WITH=59 +TRANSITIVE=60 +VAR=61 +YIELD=62 +RECORD=63 +SEALED=64 +PERMITS=65 +NON_SEALED=66 +DECIMAL_LITERAL=67 +HEX_LITERAL=68 +OCT_LITERAL=69 +BINARY_LITERAL=70 +FLOAT_LITERAL=71 +HEX_FLOAT_LITERAL=72 +BOOL_LITERAL=73 +CHAR_LITERAL=74 +STRING_LITERAL=75 +TEXT_BLOCK=76 +NULL_LITERAL=77 +LPAREN=78 +RPAREN=79 +LBRACE=80 +RBRACE=81 +LBRACK=82 +RBRACK=83 +SEMI=84 +COMMA=85 +DOT=86 +ASSIGN=87 +GT=88 +LT=89 +BANG=90 +TILDE=91 +QUESTION=92 +COLON=93 +EQUAL=94 +LE=95 +GE=96 +NOTEQUAL=97 +AND=98 +OR=99 +INC=100 +DEC=101 +ADD=102 +SUB=103 +MUL=104 +DIV=105 +BITAND=106 +BITOR=107 +CARET=108 +MOD=109 +ADD_ASSIGN=110 +SUB_ASSIGN=111 +MUL_ASSIGN=112 +DIV_ASSIGN=113 +AND_ASSIGN=114 +OR_ASSIGN=115 +XOR_ASSIGN=116 +MOD_ASSIGN=117 +LSHIFT_ASSIGN=118 +RSHIFT_ASSIGN=119 +URSHIFT_ASSIGN=120 +ARROW=121 +COLONCOLON=122 +AT=123 +ELLIPSIS=124 +WS=125 +COMMENT=126 +LINE_COMMENT=127 +IDENTIFIER=128 +'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 +'module'=51 +'open'=52 +'requires'=53 +'exports'=54 +'opens'=55 +'to'=56 +'uses'=57 +'provides'=58 +'with'=59 +'transitive'=60 +'var'=61 +'yield'=62 +'record'=63 +'sealed'=64 +'permits'=65 +'non-sealed'=66 +'null'=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 +'|='=115 +'^='=116 +'%='=117 +'<<='=118 +'>>='=119 +'>>>='=120 +'->'=121 +'::'=122 +'@'=123 +'...'=124 diff --git a/gen/Java17ParserBaseListener.java b/gen/Java17ParserBaseListener.java new file mode 100644 index 00000000..0d7a7e35 --- /dev/null +++ b/gen/Java17ParserBaseListener.java @@ -0,0 +1,2655 @@ +// Generated from C:/Users/ruben/IdeaProjects/JavaCompilerCore/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java17Parser.g4 by ANTLR 4.13.1 + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link Java17ParserListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +@SuppressWarnings("CheckReturnValue") +public class Java17ParserBaseListener implements Java17ParserListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSrcfile(Java17Parser.SrcfileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSrcfile(Java17Parser.SrcfileContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterModuledecl(Java17Parser.ModuledeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitModuledecl(Java17Parser.ModuledeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterModifier(Java17Parser.ModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitModifier(Java17Parser.ModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFinalvarmod(Java17Parser.FinalvarmodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFinalvarmod(Java17Parser.FinalvarmodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGenericTypeVar(Java17Parser.GenericTypeVarContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericTypeVar(Java17Parser.GenericTypeVarContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterEnumConstants(Java17Parser.EnumConstantsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnumConstants(Java17Parser.EnumConstantsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassblock(Java17Parser.ClassblockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassblock(Java17Parser.ClassblockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberdecl(Java17Parser.MemberdeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberdecl(Java17Parser.MemberdeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberfield(Java17Parser.MemberfieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberfield(Java17Parser.MemberfieldContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMembermethod(Java17Parser.MembermethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMembermethod(Java17Parser.MembermethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMemberconstructor(Java17Parser.MemberconstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMemberconstructor(Java17Parser.MemberconstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethoddecl(Java17Parser.MethoddeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethoddecl(Java17Parser.MethoddeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGenericmethod(Java17Parser.GenericmethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericmethod(Java17Parser.GenericmethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterMethodblock(Java17Parser.MethodblockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodblock(Java17Parser.MethodblockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmptymethod(Java17Parser.EmptymethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptymethod(Java17Parser.EmptymethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRefType2(Java17Parser.RefType2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRefType2(Java17Parser.RefType2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRefvoid(Java17Parser.RefvoidContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRefvoid(Java17Parser.RefvoidContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGenericconstructor(Java17Parser.GenericconstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericconstructor(Java17Parser.GenericconstructorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstructordecl(Java17Parser.ConstructordeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstructordecl(Java17Parser.ConstructordeclContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterInterfacemember(Java17Parser.InterfacememberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfacemember(Java17Parser.InterfacememberContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEmptyinterface(Java17Parser.EmptyinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEmptyinterface(Java17Parser.EmptyinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceconst(Java17Parser.InterfaceconstContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceconst(Java17Parser.InterfaceconstContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfacemethod(Java17Parser.InterfacemethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfacemethod(Java17Parser.InterfacemethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstDeclaration(Java17Parser.ConstDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstDeclaration(Java17Parser.ConstDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterWildcardType(Java17Parser.WildcardTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWildcardType(Java17Parser.WildcardTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQualifiedNameList(Java17Parser.QualifiedNameListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQualifiedNameList(Java17Parser.QualifiedNameListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExceptionList(Java17Parser.ExceptionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExceptionList(Java17Parser.ExceptionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterQualifiedName(Java17Parser.QualifiedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitQualifiedName(Java17Parser.QualifiedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntLiteral(Java17Parser.IntLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntLiteral(Java17Parser.IntLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFltLiteral(Java17Parser.FltLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFltLiteral(Java17Parser.FltLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCharLiteral(Java17Parser.CharLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCharLiteral(Java17Parser.CharLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStringLiteral(Java17Parser.StringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStringLiteral(Java17Parser.StringLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBoolLiteral(Java17Parser.BoolLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBoolLiteral(Java17Parser.BoolLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNullLiteral(Java17Parser.NullLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNullLiteral(Java17Parser.NullLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTextBlock(Java17Parser.TextBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTextBlock(Java17Parser.TextBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterIntegerLiteral(Java17Parser.IntegerLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIntegerLiteral(Java17Parser.IntegerLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterFloatLiteral(Java17Parser.FloatLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFloatLiteral(Java17Parser.FloatLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterElementValuePairs(Java17Parser.ElementValuePairsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitElementValuePairs(Java17Parser.ElementValuePairsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterModuleBody(Java17Parser.ModuleBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitModuleBody(Java17Parser.ModuleBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterModuleDirective(Java17Parser.ModuleDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitModuleDirective(Java17Parser.ModuleDirectiveContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRequiresModifier(Java17Parser.RequiresModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRequiresModifier(Java17Parser.RequiresModifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordDeclaration(Java17Parser.RecordDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordDeclaration(Java17Parser.RecordDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordHeader(Java17Parser.RecordHeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordHeader(Java17Parser.RecordHeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordComponentList(Java17Parser.RecordComponentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordComponentList(Java17Parser.RecordComponentListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordComponent(Java17Parser.RecordComponentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordComponent(Java17Parser.RecordComponentContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordBody(Java17Parser.RecordBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordBody(Java17Parser.RecordBodyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterIdentifier(Java17Parser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitIdentifier(Java17Parser.IdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeIdentifier(Java17Parser.TypeIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeIdentifier(Java17Parser.TypeIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBlockstmt(Java17Parser.BlockstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBlockstmt(Java17Parser.BlockstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssertstmt(Java17Parser.AssertstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssertstmt(Java17Parser.AssertstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionalstmt(Java17Parser.ConditionalstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionalstmt(Java17Parser.ConditionalstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForloop(Java17Parser.ForloopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForloop(Java17Parser.ForloopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterWhileloop(Java17Parser.WhileloopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitWhileloop(Java17Parser.WhileloopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDowhileloop(Java17Parser.DowhileloopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDowhileloop(Java17Parser.DowhileloopContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrycatchblock(Java17Parser.TrycatchblockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrycatchblock(Java17Parser.TrycatchblockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTrycatchresource(Java17Parser.TrycatchresourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTrycatchresource(Java17Parser.TrycatchresourceContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchstmt(Java17Parser.SwitchstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchstmt(Java17Parser.SwitchstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterReturnstmt(Java17Parser.ReturnstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitReturnstmt(Java17Parser.ReturnstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterThrowstmt(Java17Parser.ThrowstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitThrowstmt(Java17Parser.ThrowstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBreakstmt(Java17Parser.BreakstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBreakstmt(Java17Parser.BreakstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterContinuestmt(Java17Parser.ContinuestmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitContinuestmt(Java17Parser.ContinuestmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterYieldstmt(Java17Parser.YieldstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitYieldstmt(Java17Parser.YieldstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSemistmt(Java17Parser.SemistmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSemistmt(Java17Parser.SemistmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterStmtexpression(Java17Parser.StmtexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitStmtexpression(Java17Parser.StmtexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledstmt(Java17Parser.LabeledstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledstmt(Java17Parser.LabeledstmtContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterFinallyBlock(Java17Parser.FinallyBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitFinallyBlock(Java17Parser.FinallyBlockContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterResources(Java17Parser.ResourcesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitResources(Java17Parser.ResourcesContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterForControl(Java17Parser.ForControlContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitForControl(Java17Parser.ForControlContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterEnhancedForControl(Java17Parser.EnhancedForControlContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnhancedForControl(Java17Parser.EnhancedForControlContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterParExpression(Java17Parser.ParExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitParExpression(Java17Parser.ParExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExpressionList(Java17Parser.ExpressionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExpressionList(Java17Parser.ExpressionListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodCall(Java17Parser.MethodCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodCall(Java17Parser.MethodCallContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCastexpression(Java17Parser.CastexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCastexpression(Java17Parser.CastexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterShiftexpression(Java17Parser.ShiftexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitShiftexpression(Java17Parser.ShiftexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchExpression2(Java17Parser.SwitchExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchExpression2(Java17Parser.SwitchExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterDottedexpression(Java17Parser.DottedexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitDottedexpression(Java17Parser.DottedexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOrexpression(Java17Parser.OrexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOrexpression(Java17Parser.OrexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAndexpression(Java17Parser.AndexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAndexpression(Java17Parser.AndexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterAssignexpression(Java17Parser.AssignexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitAssignexpression(Java17Parser.AssignexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEqualityexpression(Java17Parser.EqualityexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEqualityexpression(Java17Parser.EqualityexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPostfixexpression(Java17Parser.PostfixexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPostfixexpression(Java17Parser.PostfixexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrefixexpression(Java17Parser.PrefixexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrefixexpression(Java17Parser.PrefixexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLambdaExpression2(Java17Parser.LambdaExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLambdaExpression2(Java17Parser.LambdaExpression2Context ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRelationalexpression(Java17Parser.RelationalexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRelationalexpression(Java17Parser.RelationalexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPPattern(Java17Parser.PPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPPattern(Java17Parser.PPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGPattern(Java17Parser.GPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGPattern(Java17Parser.GPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTPattern(Java17Parser.TPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTPattern(Java17Parser.TPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRPattern(Java17Parser.RPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRPattern(Java17Parser.RPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEnclosedPattern(Java17Parser.EnclosedPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEnclosedPattern(Java17Parser.EnclosedPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordPattern(Java17Parser.RecordPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordPattern(Java17Parser.RecordPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypePattern(Java17Parser.TypePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypePattern(Java17Parser.TypePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryThis(Java17Parser.PrimaryThisContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryThis(Java17Parser.PrimaryThisContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimarySuper(Java17Parser.PrimarySuperContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimarySuper(Java17Parser.PrimarySuperContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchExpression(Java17Parser.SwitchExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchExpression(Java17Parser.SwitchExpressionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterGuardedPattern(Java17Parser.GuardedPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitGuardedPattern(Java17Parser.GuardedPatternContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterCreator(Java17Parser.CreatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreator(Java17Parser.CreatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterCreatedName(Java17Parser.CreatedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitCreatedName(Java17Parser.CreatedNameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInnerCreator(Java17Parser.InnerCreatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInnerCreator(Java17Parser.InnerCreatorContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeList(Java17Parser.TypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeList(Java17Parser.TypeListContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterTypeType(Java17Parser.TypeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitTypeType(Java17Parser.TypeTypeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void enterSuperSuffix(Java17Parser.SuperSuffixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSuperSuffix(Java17Parser.SuperSuffixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterArguments(Java17Parser.ArgumentsContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitArguments(Java17Parser.ArgumentsContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

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

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/gen/Java17ParserBaseVisitor.java b/gen/Java17ParserBaseVisitor.java new file mode 100644 index 00000000..96100351 --- /dev/null +++ b/gen/Java17ParserBaseVisitor.java @@ -0,0 +1,1540 @@ +// Generated from C:/Users/ruben/IdeaProjects/JavaCompilerCore/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java17Parser.g4 by ANTLR 4.13.1 +import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor; + +/** + * This class provides an empty implementation of {@link Java17ParserVisitor}, + * which can be extended to create a visitor which only needs to handle a subset + * of the available methods. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +@SuppressWarnings("CheckReturnValue") +public class Java17ParserBaseVisitor extends AbstractParseTreeVisitor implements Java17ParserVisitor { + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSrcfile(Java17Parser.SrcfileContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitModuledecl(Java17Parser.ModuledeclContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPackageDeclaration(Java17Parser.PackageDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitImportDeclaration(Java17Parser.ImportDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitModifier(Java17Parser.ModifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFinalvarmod(Java17Parser.FinalvarmodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassDeclaration(Java17Parser.ClassDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericTypeVar(Java17Parser.GenericTypeVarContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeBound(Java17Parser.TypeBoundContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumDeclaration(Java17Parser.EnumDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumConstants(Java17Parser.EnumConstantsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumConstant(Java17Parser.EnumConstantContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnumBodyDeclarations(Java17Parser.EnumBodyDeclarationsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceDeclaration(Java17Parser.InterfaceDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassBody(Java17Parser.ClassBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceBody(Java17Parser.InterfaceBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassblock(Java17Parser.ClassblockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMemberdecl(Java17Parser.MemberdeclContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMemberfield(Java17Parser.MemberfieldContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMembermethod(Java17Parser.MembermethodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMemberconstructor(Java17Parser.MemberconstructorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethoddecl(Java17Parser.MethoddeclContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericmethod(Java17Parser.GenericmethodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodDeclaration(Java17Parser.MethodDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodHeader(Java17Parser.MethodHeaderContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodblock(Java17Parser.MethodblockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEmptymethod(Java17Parser.EmptymethodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRefType2(Java17Parser.RefType2Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRefvoid(Java17Parser.RefvoidContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericconstructor(Java17Parser.GenericconstructorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructordecl(Java17Parser.ConstructordeclContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstructorDeclaration(Java17Parser.ConstructorDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFieldDeclaration(Java17Parser.FieldDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfacemember(Java17Parser.InterfacememberContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEmptyinterface(Java17Parser.EmptyinterfaceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceconst(Java17Parser.InterfaceconstContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfacemethod(Java17Parser.InterfacemethodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstDeclaration(Java17Parser.ConstDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceMethodDeclaration(Java17Parser.InterfaceMethodDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceMethodModifier(Java17Parser.InterfaceMethodModifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariableDeclarator(Java17Parser.VariableDeclaratorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariableDeclaratorId(Java17Parser.VariableDeclaratorIdContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitVariableInitializer(Java17Parser.VariableInitializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayInitializer(Java17Parser.ArrayInitializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassOrInterfaceType(Java17Parser.ClassOrInterfaceTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeArgument(Java17Parser.TypeArgumentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWildcardType(Java17Parser.WildcardTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQualifiedNameList(Java17Parser.QualifiedNameListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExceptionList(Java17Parser.ExceptionListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFormalParameters(Java17Parser.FormalParametersContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReceiverParameter(Java17Parser.ReceiverParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFormalParameterList(Java17Parser.FormalParameterListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFormalParameter(Java17Parser.FormalParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLastFormalParameter(Java17Parser.LastFormalParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitQualifiedName(Java17Parser.QualifiedNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIntLiteral(Java17Parser.IntLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFltLiteral(Java17Parser.FltLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCharLiteral(Java17Parser.CharLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStringLiteral(Java17Parser.StringLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBoolLiteral(Java17Parser.BoolLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNullLiteral(Java17Parser.NullLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTextBlock(Java17Parser.TextBlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIntegerLiteral(Java17Parser.IntegerLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFloatLiteral(Java17Parser.FloatLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotation(Java17Parser.AnnotationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitElementValuePairs(Java17Parser.ElementValuePairsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitElementValuePair(Java17Parser.ElementValuePairContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitElementValue(Java17Parser.ElementValueContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitElementValueArrayInitializer(Java17Parser.ElementValueArrayInitializerContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationTypeDeclaration(Java17Parser.AnnotationTypeDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationTypeBody(Java17Parser.AnnotationTypeBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationTypeElementDeclaration(Java17Parser.AnnotationTypeElementDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDefaultValue(Java17Parser.DefaultValueContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitModuleBody(Java17Parser.ModuleBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitModuleDirective(Java17Parser.ModuleDirectiveContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRequiresModifier(Java17Parser.RequiresModifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordDeclaration(Java17Parser.RecordDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordHeader(Java17Parser.RecordHeaderContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordComponentList(Java17Parser.RecordComponentListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordComponent(Java17Parser.RecordComponentContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordBody(Java17Parser.RecordBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBlock(Java17Parser.BlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBlockStatement(Java17Parser.BlockStatementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLocalVariableDeclaration(Java17Parser.LocalVariableDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitIdentifier(Java17Parser.IdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeIdentifier(Java17Parser.TypeIdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBlockstmt(Java17Parser.BlockstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssertstmt(Java17Parser.AssertstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConditionalstmt(Java17Parser.ConditionalstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForloop(Java17Parser.ForloopContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitWhileloop(Java17Parser.WhileloopContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDowhileloop(Java17Parser.DowhileloopContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTrycatchblock(Java17Parser.TrycatchblockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTrycatchresource(Java17Parser.TrycatchresourceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchstmt(Java17Parser.SwitchstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitReturnstmt(Java17Parser.ReturnstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitThrowstmt(Java17Parser.ThrowstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBreakstmt(Java17Parser.BreakstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitContinuestmt(Java17Parser.ContinuestmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitYieldstmt(Java17Parser.YieldstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSemistmt(Java17Parser.SemistmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitStmtexpression(Java17Parser.StmtexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLabeledstmt(Java17Parser.LabeledstmtContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCatchClause(Java17Parser.CatchClauseContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCatchType(Java17Parser.CatchTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitFinallyBlock(Java17Parser.FinallyBlockContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitResourceSpecification(Java17Parser.ResourceSpecificationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitResources(Java17Parser.ResourcesContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitResource(Java17Parser.ResourceContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchBlockStatementGroup(Java17Parser.SwitchBlockStatementGroupContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForControl(Java17Parser.ForControlContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitForInit(Java17Parser.ForInitContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnhancedForControl(Java17Parser.EnhancedForControlContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitParExpression(Java17Parser.ParExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExpressionList(Java17Parser.ExpressionListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodCall(Java17Parser.MethodCallContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCastexpression(Java17Parser.CastexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitShiftexpression(Java17Parser.ShiftexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchExpression2(Java17Parser.SwitchExpression2Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitDottedexpression(Java17Parser.DottedexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitOrexpression(Java17Parser.OrexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAndexpression(Java17Parser.AndexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitAssignexpression(Java17Parser.AssignexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEqualityexpression(Java17Parser.EqualityexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPostfixexpression(Java17Parser.PostfixexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrefixexpression(Java17Parser.PrefixexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambdaExpression2(Java17Parser.LambdaExpression2Context ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRelationalexpression(Java17Parser.RelationalexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPPattern(Java17Parser.PPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGPattern(Java17Parser.GPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTPattern(Java17Parser.TPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRPattern(Java17Parser.RPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitEnclosedPattern(Java17Parser.EnclosedPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordPattern(Java17Parser.RecordPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypePattern(Java17Parser.TypePatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambdaExpression(Java17Parser.LambdaExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambdaParameters(Java17Parser.LambdaParametersContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLambdaBody(Java17Parser.LambdaBodyContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimaryThis(Java17Parser.PrimaryThisContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimarySuper(Java17Parser.PrimarySuperContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchExpression(Java17Parser.SwitchExpressionContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitGuardedPattern(Java17Parser.GuardedPatternContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassType(Java17Parser.ClassTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreator(Java17Parser.CreatorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitCreatedName(Java17Parser.CreatedNameContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitInnerCreator(Java17Parser.InnerCreatorContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeArgumentsOrDiamond(Java17Parser.TypeArgumentsOrDiamondContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeList(Java17Parser.TypeListContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeType(Java17Parser.TypeTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitPrimitiveType(Java17Parser.PrimitiveTypeContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitTypeArguments(Java17Parser.TypeArgumentsContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitSuperSuffix(Java17Parser.SuperSuffixContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx) { return visitChildren(ctx); } + /** + * {@inheritDoc} + * + *

The default implementation returns the result of calling + * {@link #visitChildren} on {@code ctx}.

+ */ + @Override public T visitArguments(Java17Parser.ArgumentsContext ctx) { return visitChildren(ctx); } +} \ No newline at end of file diff --git a/gen/Java17ParserListener.java b/gen/Java17ParserListener.java new file mode 100644 index 00000000..43977308 --- /dev/null +++ b/gen/Java17ParserListener.java @@ -0,0 +1,2385 @@ +// Generated from C:/Users/ruben/IdeaProjects/JavaCompilerCore/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java17Parser.g4 by ANTLR 4.13.1 +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link Java17Parser}. + */ +public interface Java17ParserListener extends ParseTreeListener { + /** + * Enter a parse tree produced by the {@code srcfile} + * labeled alternative in {@link Java17Parser#sourceFile}. + * @param ctx the parse tree + */ + void enterSrcfile(Java17Parser.SrcfileContext ctx); + /** + * Exit a parse tree produced by the {@code srcfile} + * labeled alternative in {@link Java17Parser#sourceFile}. + * @param ctx the parse tree + */ + void exitSrcfile(Java17Parser.SrcfileContext ctx); + /** + * Enter a parse tree produced by the {@code moduledecl} + * labeled alternative in {@link Java17Parser#sourceFile}. + * @param ctx the parse tree + */ + void enterModuledecl(Java17Parser.ModuledeclContext ctx); + /** + * Exit a parse tree produced by the {@code moduledecl} + * labeled alternative in {@link Java17Parser#sourceFile}. + * @param ctx the parse tree + */ + void exitModuledecl(Java17Parser.ModuledeclContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#packageDeclaration}. + * @param ctx the parse tree + */ + void enterPackageDeclaration(Java17Parser.PackageDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#packageDeclaration}. + * @param ctx the parse tree + */ + void exitPackageDeclaration(Java17Parser.PackageDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#importDeclaration}. + * @param ctx the parse tree + */ + void enterImportDeclaration(Java17Parser.ImportDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#importDeclaration}. + * @param ctx the parse tree + */ + void exitImportDeclaration(Java17Parser.ImportDeclarationContext ctx); + /** + * Enter a parse tree produced by the {@code classorinterfacedecl} + * labeled alternative in {@link Java17Parser#classOrInterface}. + * @param ctx the parse tree + */ + void enterClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx); + /** + * Exit a parse tree produced by the {@code classorinterfacedecl} + * labeled alternative in {@link Java17Parser#classOrInterface}. + * @param ctx the parse tree + */ + void exitClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx); + /** + * Enter a parse tree produced by the {@code noclassorinterface} + * labeled alternative in {@link Java17Parser#classOrInterface}. + * @param ctx the parse tree + */ + void enterNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx); + /** + * Exit a parse tree produced by the {@code noclassorinterface} + * labeled alternative in {@link Java17Parser#classOrInterface}. + * @param ctx the parse tree + */ + void exitNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#modifier}. + * @param ctx the parse tree + */ + void enterModifier(Java17Parser.ModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#modifier}. + * @param ctx the parse tree + */ + void exitModifier(Java17Parser.ModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#classOrInterfaceModifier}. + * @param ctx the parse tree + */ + void enterClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#classOrInterfaceModifier}. + * @param ctx the parse tree + */ + void exitClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx); + /** + * Enter a parse tree produced by the {@code finalvarmod} + * labeled alternative in {@link Java17Parser#variableModifier}. + * @param ctx the parse tree + */ + void enterFinalvarmod(Java17Parser.FinalvarmodContext ctx); + /** + * Exit a parse tree produced by the {@code finalvarmod} + * labeled alternative in {@link Java17Parser#variableModifier}. + * @param ctx the parse tree + */ + void exitFinalvarmod(Java17Parser.FinalvarmodContext ctx); + /** + * Enter a parse tree produced by the {@code annotationvarmod} + * labeled alternative in {@link Java17Parser#variableModifier}. + * @param ctx the parse tree + */ + void enterAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx); + /** + * Exit a parse tree produced by the {@code annotationvarmod} + * labeled alternative in {@link Java17Parser#variableModifier}. + * @param ctx the parse tree + */ + void exitAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#classDeclaration}. + * @param ctx the parse tree + */ + void enterClassDeclaration(Java17Parser.ClassDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#classDeclaration}. + * @param ctx the parse tree + */ + void exitClassDeclaration(Java17Parser.ClassDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#genericDeclarationList}. + * @param ctx the parse tree + */ + void enterGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#genericDeclarationList}. + * @param ctx the parse tree + */ + void exitGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#genericTypeVar}. + * @param ctx the parse tree + */ + void enterGenericTypeVar(Java17Parser.GenericTypeVarContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#genericTypeVar}. + * @param ctx the parse tree + */ + void exitGenericTypeVar(Java17Parser.GenericTypeVarContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typeBound}. + * @param ctx the parse tree + */ + void enterTypeBound(Java17Parser.TypeBoundContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typeBound}. + * @param ctx the parse tree + */ + void exitTypeBound(Java17Parser.TypeBoundContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#enumDeclaration}. + * @param ctx the parse tree + */ + void enterEnumDeclaration(Java17Parser.EnumDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#enumDeclaration}. + * @param ctx the parse tree + */ + void exitEnumDeclaration(Java17Parser.EnumDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#enumConstants}. + * @param ctx the parse tree + */ + void enterEnumConstants(Java17Parser.EnumConstantsContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#enumConstants}. + * @param ctx the parse tree + */ + void exitEnumConstants(Java17Parser.EnumConstantsContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#enumConstant}. + * @param ctx the parse tree + */ + void enterEnumConstant(Java17Parser.EnumConstantContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#enumConstant}. + * @param ctx the parse tree + */ + void exitEnumConstant(Java17Parser.EnumConstantContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#enumBodyDeclarations}. + * @param ctx the parse tree + */ + void enterEnumBodyDeclarations(Java17Parser.EnumBodyDeclarationsContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#enumBodyDeclarations}. + * @param ctx the parse tree + */ + void exitEnumBodyDeclarations(Java17Parser.EnumBodyDeclarationsContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#interfaceDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceDeclaration(Java17Parser.InterfaceDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#interfaceDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceDeclaration(Java17Parser.InterfaceDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#classBody}. + * @param ctx the parse tree + */ + void enterClassBody(Java17Parser.ClassBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#classBody}. + * @param ctx the parse tree + */ + void exitClassBody(Java17Parser.ClassBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#interfaceBody}. + * @param ctx the parse tree + */ + void enterInterfaceBody(Java17Parser.InterfaceBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#interfaceBody}. + * @param ctx the parse tree + */ + void exitInterfaceBody(Java17Parser.InterfaceBodyContext ctx); + /** + * Enter a parse tree produced by the {@code emptyclassbody} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void enterEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx); + /** + * Exit a parse tree produced by the {@code emptyclassbody} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void exitEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx); + /** + * Enter a parse tree produced by the {@code classblock} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void enterClassblock(Java17Parser.ClassblockContext ctx); + /** + * Exit a parse tree produced by the {@code classblock} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void exitClassblock(Java17Parser.ClassblockContext ctx); + /** + * Enter a parse tree produced by the {@code memberdecl} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void enterMemberdecl(Java17Parser.MemberdeclContext ctx); + /** + * Exit a parse tree produced by the {@code memberdecl} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + */ + void exitMemberdecl(Java17Parser.MemberdeclContext ctx); + /** + * Enter a parse tree produced by the {@code memberclassorinterface} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void enterMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx); + /** + * Exit a parse tree produced by the {@code memberclassorinterface} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void exitMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx); + /** + * Enter a parse tree produced by the {@code memberfield} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void enterMemberfield(Java17Parser.MemberfieldContext ctx); + /** + * Exit a parse tree produced by the {@code memberfield} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void exitMemberfield(Java17Parser.MemberfieldContext ctx); + /** + * Enter a parse tree produced by the {@code membermethod} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void enterMembermethod(Java17Parser.MembermethodContext ctx); + /** + * Exit a parse tree produced by the {@code membermethod} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void exitMembermethod(Java17Parser.MembermethodContext ctx); + /** + * Enter a parse tree produced by the {@code memberconstructor} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void enterMemberconstructor(Java17Parser.MemberconstructorContext ctx); + /** + * Exit a parse tree produced by the {@code memberconstructor} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + */ + void exitMemberconstructor(Java17Parser.MemberconstructorContext ctx); + /** + * Enter a parse tree produced by the {@code methoddecl} + * labeled alternative in {@link Java17Parser#method}. + * @param ctx the parse tree + */ + void enterMethoddecl(Java17Parser.MethoddeclContext ctx); + /** + * Exit a parse tree produced by the {@code methoddecl} + * labeled alternative in {@link Java17Parser#method}. + * @param ctx the parse tree + */ + void exitMethoddecl(Java17Parser.MethoddeclContext ctx); + /** + * Enter a parse tree produced by the {@code genericmethod} + * labeled alternative in {@link Java17Parser#method}. + * @param ctx the parse tree + */ + void enterGenericmethod(Java17Parser.GenericmethodContext ctx); + /** + * Exit a parse tree produced by the {@code genericmethod} + * labeled alternative in {@link Java17Parser#method}. + * @param ctx the parse tree + */ + void exitGenericmethod(Java17Parser.GenericmethodContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#methodDeclaration}. + * @param ctx the parse tree + */ + void enterMethodDeclaration(Java17Parser.MethodDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#methodDeclaration}. + * @param ctx the parse tree + */ + void exitMethodDeclaration(Java17Parser.MethodDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#methodHeader}. + * @param ctx the parse tree + */ + void enterMethodHeader(Java17Parser.MethodHeaderContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#methodHeader}. + * @param ctx the parse tree + */ + void exitMethodHeader(Java17Parser.MethodHeaderContext ctx); + /** + * Enter a parse tree produced by the {@code methodblock} + * labeled alternative in {@link Java17Parser#methodBody}. + * @param ctx the parse tree + */ + void enterMethodblock(Java17Parser.MethodblockContext ctx); + /** + * Exit a parse tree produced by the {@code methodblock} + * labeled alternative in {@link Java17Parser#methodBody}. + * @param ctx the parse tree + */ + void exitMethodblock(Java17Parser.MethodblockContext ctx); + /** + * Enter a parse tree produced by the {@code emptymethod} + * labeled alternative in {@link Java17Parser#methodBody}. + * @param ctx the parse tree + */ + void enterEmptymethod(Java17Parser.EmptymethodContext ctx); + /** + * Exit a parse tree produced by the {@code emptymethod} + * labeled alternative in {@link Java17Parser#methodBody}. + * @param ctx the parse tree + */ + void exitEmptymethod(Java17Parser.EmptymethodContext ctx); + /** + * Enter a parse tree produced by the {@code refType2} + * labeled alternative in {@link Java17Parser#refType}. + * @param ctx the parse tree + */ + void enterRefType2(Java17Parser.RefType2Context ctx); + /** + * Exit a parse tree produced by the {@code refType2} + * labeled alternative in {@link Java17Parser#refType}. + * @param ctx the parse tree + */ + void exitRefType2(Java17Parser.RefType2Context ctx); + /** + * Enter a parse tree produced by the {@code refvoid} + * labeled alternative in {@link Java17Parser#refType}. + * @param ctx the parse tree + */ + void enterRefvoid(Java17Parser.RefvoidContext ctx); + /** + * Exit a parse tree produced by the {@code refvoid} + * labeled alternative in {@link Java17Parser#refType}. + * @param ctx the parse tree + */ + void exitRefvoid(Java17Parser.RefvoidContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#genericMethodDeclaration}. + * @param ctx the parse tree + */ + void enterGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#genericMethodDeclaration}. + * @param ctx the parse tree + */ + void exitGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx); + /** + * Enter a parse tree produced by the {@code genericconstructor} + * labeled alternative in {@link Java17Parser#constructor}. + * @param ctx the parse tree + */ + void enterGenericconstructor(Java17Parser.GenericconstructorContext ctx); + /** + * Exit a parse tree produced by the {@code genericconstructor} + * labeled alternative in {@link Java17Parser#constructor}. + * @param ctx the parse tree + */ + void exitGenericconstructor(Java17Parser.GenericconstructorContext ctx); + /** + * Enter a parse tree produced by the {@code constructordecl} + * labeled alternative in {@link Java17Parser#constructor}. + * @param ctx the parse tree + */ + void enterConstructordecl(Java17Parser.ConstructordeclContext ctx); + /** + * Exit a parse tree produced by the {@code constructordecl} + * labeled alternative in {@link Java17Parser#constructor}. + * @param ctx the parse tree + */ + void exitConstructordecl(Java17Parser.ConstructordeclContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#genericConstructorDeclaration}. + * @param ctx the parse tree + */ + void enterGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#genericConstructorDeclaration}. + * @param ctx the parse tree + */ + void exitGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#constructorDeclaration}. + * @param ctx the parse tree + */ + void enterConstructorDeclaration(Java17Parser.ConstructorDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#constructorDeclaration}. + * @param ctx the parse tree + */ + void exitConstructorDeclaration(Java17Parser.ConstructorDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#fieldDeclaration}. + * @param ctx the parse tree + */ + void enterFieldDeclaration(Java17Parser.FieldDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#fieldDeclaration}. + * @param ctx the parse tree + */ + void exitFieldDeclaration(Java17Parser.FieldDeclarationContext ctx); + /** + * Enter a parse tree produced by the {@code interfacemember} + * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}. + * @param ctx the parse tree + */ + void enterInterfacemember(Java17Parser.InterfacememberContext ctx); + /** + * Exit a parse tree produced by the {@code interfacemember} + * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}. + * @param ctx the parse tree + */ + void exitInterfacemember(Java17Parser.InterfacememberContext ctx); + /** + * Enter a parse tree produced by the {@code emptyinterface} + * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}. + * @param ctx the parse tree + */ + void enterEmptyinterface(Java17Parser.EmptyinterfaceContext ctx); + /** + * Exit a parse tree produced by the {@code emptyinterface} + * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}. + * @param ctx the parse tree + */ + void exitEmptyinterface(Java17Parser.EmptyinterfaceContext ctx); + /** + * Enter a parse tree produced by the {@code interfaceconst} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceconst(Java17Parser.InterfaceconstContext ctx); + /** + * Exit a parse tree produced by the {@code interfaceconst} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceconst(Java17Parser.InterfaceconstContext ctx); + /** + * Enter a parse tree produced by the {@code interfacemethod} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void enterInterfacemethod(Java17Parser.InterfacemethodContext ctx); + /** + * Exit a parse tree produced by the {@code interfacemethod} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void exitInterfacemethod(Java17Parser.InterfacemethodContext ctx); + /** + * Enter a parse tree produced by the {@code genericinterfacemethod} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void enterGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx); + /** + * Exit a parse tree produced by the {@code genericinterfacemethod} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void exitGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx); + /** + * Enter a parse tree produced by the {@code subclassorinterface} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void enterSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx); + /** + * Exit a parse tree produced by the {@code subclassorinterface} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + */ + void exitSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#constDeclaration}. + * @param ctx the parse tree + */ + void enterConstDeclaration(Java17Parser.ConstDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#constDeclaration}. + * @param ctx the parse tree + */ + void exitConstDeclaration(Java17Parser.ConstDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#constantDeclarator}. + * @param ctx the parse tree + */ + void enterConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#constantDeclarator}. + * @param ctx the parse tree + */ + void exitConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#interfaceMethodDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceMethodDeclaration(Java17Parser.InterfaceMethodDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#interfaceMethodDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceMethodDeclaration(Java17Parser.InterfaceMethodDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#interfaceMethodModifier}. + * @param ctx the parse tree + */ + void enterInterfaceMethodModifier(Java17Parser.InterfaceMethodModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#interfaceMethodModifier}. + * @param ctx the parse tree + */ + void exitInterfaceMethodModifier(Java17Parser.InterfaceMethodModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#genericInterfaceMethodDeclaration}. + * @param ctx the parse tree + */ + void enterGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#genericInterfaceMethodDeclaration}. + * @param ctx the parse tree + */ + void exitGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#interfaceCommonBodyDeclaration}. + * @param ctx the parse tree + */ + void enterInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#interfaceCommonBodyDeclaration}. + * @param ctx the parse tree + */ + void exitInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#variableDeclarators}. + * @param ctx the parse tree + */ + void enterVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#variableDeclarators}. + * @param ctx the parse tree + */ + void exitVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#variableDeclarator}. + * @param ctx the parse tree + */ + void enterVariableDeclarator(Java17Parser.VariableDeclaratorContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#variableDeclarator}. + * @param ctx the parse tree + */ + void exitVariableDeclarator(Java17Parser.VariableDeclaratorContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#variableDeclaratorId}. + * @param ctx the parse tree + */ + void enterVariableDeclaratorId(Java17Parser.VariableDeclaratorIdContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#variableDeclaratorId}. + * @param ctx the parse tree + */ + void exitVariableDeclaratorId(Java17Parser.VariableDeclaratorIdContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#variableInitializer}. + * @param ctx the parse tree + */ + void enterVariableInitializer(Java17Parser.VariableInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#variableInitializer}. + * @param ctx the parse tree + */ + void exitVariableInitializer(Java17Parser.VariableInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#arrayInitializer}. + * @param ctx the parse tree + */ + void enterArrayInitializer(Java17Parser.ArrayInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#arrayInitializer}. + * @param ctx the parse tree + */ + void exitArrayInitializer(Java17Parser.ArrayInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#classOrInterfaceType}. + * @param ctx the parse tree + */ + void enterClassOrInterfaceType(Java17Parser.ClassOrInterfaceTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#classOrInterfaceType}. + * @param ctx the parse tree + */ + void exitClassOrInterfaceType(Java17Parser.ClassOrInterfaceTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typeArgument}. + * @param ctx the parse tree + */ + void enterTypeArgument(Java17Parser.TypeArgumentContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typeArgument}. + * @param ctx the parse tree + */ + void exitTypeArgument(Java17Parser.TypeArgumentContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#wildcardType}. + * @param ctx the parse tree + */ + void enterWildcardType(Java17Parser.WildcardTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#wildcardType}. + * @param ctx the parse tree + */ + void exitWildcardType(Java17Parser.WildcardTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#extendsWildcardType}. + * @param ctx the parse tree + */ + void enterExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#extendsWildcardType}. + * @param ctx the parse tree + */ + void exitExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#superWildcardType}. + * @param ctx the parse tree + */ + void enterSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#superWildcardType}. + * @param ctx the parse tree + */ + void exitSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#qualifiedNameList}. + * @param ctx the parse tree + */ + void enterQualifiedNameList(Java17Parser.QualifiedNameListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#qualifiedNameList}. + * @param ctx the parse tree + */ + void exitQualifiedNameList(Java17Parser.QualifiedNameListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#exceptionList}. + * @param ctx the parse tree + */ + void enterExceptionList(Java17Parser.ExceptionListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#exceptionList}. + * @param ctx the parse tree + */ + void exitExceptionList(Java17Parser.ExceptionListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#formalParameters}. + * @param ctx the parse tree + */ + void enterFormalParameters(Java17Parser.FormalParametersContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#formalParameters}. + * @param ctx the parse tree + */ + void exitFormalParameters(Java17Parser.FormalParametersContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#receiverParameter}. + * @param ctx the parse tree + */ + void enterReceiverParameter(Java17Parser.ReceiverParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#receiverParameter}. + * @param ctx the parse tree + */ + void exitReceiverParameter(Java17Parser.ReceiverParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#formalParameterList}. + * @param ctx the parse tree + */ + void enterFormalParameterList(Java17Parser.FormalParameterListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#formalParameterList}. + * @param ctx the parse tree + */ + void exitFormalParameterList(Java17Parser.FormalParameterListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#formalParameter}. + * @param ctx the parse tree + */ + void enterFormalParameter(Java17Parser.FormalParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#formalParameter}. + * @param ctx the parse tree + */ + void exitFormalParameter(Java17Parser.FormalParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#lastFormalParameter}. + * @param ctx the parse tree + */ + void enterLastFormalParameter(Java17Parser.LastFormalParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#lastFormalParameter}. + * @param ctx the parse tree + */ + void exitLastFormalParameter(Java17Parser.LastFormalParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#lambdaLVTIList}. + * @param ctx the parse tree + */ + void enterLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#lambdaLVTIList}. + * @param ctx the parse tree + */ + void exitLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#lambdaLVTIParameter}. + * @param ctx the parse tree + */ + void enterLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#lambdaLVTIParameter}. + * @param ctx the parse tree + */ + void exitLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#qualifiedName}. + * @param ctx the parse tree + */ + void enterQualifiedName(Java17Parser.QualifiedNameContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#qualifiedName}. + * @param ctx the parse tree + */ + void exitQualifiedName(Java17Parser.QualifiedNameContext ctx); + /** + * Enter a parse tree produced by the {@code intLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void enterIntLiteral(Java17Parser.IntLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code intLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void exitIntLiteral(Java17Parser.IntLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code fltLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void enterFltLiteral(Java17Parser.FltLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code fltLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void exitFltLiteral(Java17Parser.FltLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code charLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void enterCharLiteral(Java17Parser.CharLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code charLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void exitCharLiteral(Java17Parser.CharLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code stringLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void enterStringLiteral(Java17Parser.StringLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code stringLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void exitStringLiteral(Java17Parser.StringLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code boolLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void enterBoolLiteral(Java17Parser.BoolLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code boolLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void exitBoolLiteral(Java17Parser.BoolLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code nullLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void enterNullLiteral(Java17Parser.NullLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code nullLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void exitNullLiteral(Java17Parser.NullLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code textBlock} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void enterTextBlock(Java17Parser.TextBlockContext ctx); + /** + * Exit a parse tree produced by the {@code textBlock} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + */ + void exitTextBlock(Java17Parser.TextBlockContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#integerLiteral}. + * @param ctx the parse tree + */ + void enterIntegerLiteral(Java17Parser.IntegerLiteralContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#integerLiteral}. + * @param ctx the parse tree + */ + void exitIntegerLiteral(Java17Parser.IntegerLiteralContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#floatLiteral}. + * @param ctx the parse tree + */ + void enterFloatLiteral(Java17Parser.FloatLiteralContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#floatLiteral}. + * @param ctx the parse tree + */ + void exitFloatLiteral(Java17Parser.FloatLiteralContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#altAnnotationQualifiedName}. + * @param ctx the parse tree + */ + void enterAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#altAnnotationQualifiedName}. + * @param ctx the parse tree + */ + void exitAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotation}. + * @param ctx the parse tree + */ + void enterAnnotation(Java17Parser.AnnotationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotation}. + * @param ctx the parse tree + */ + void exitAnnotation(Java17Parser.AnnotationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#elementValuePairs}. + * @param ctx the parse tree + */ + void enterElementValuePairs(Java17Parser.ElementValuePairsContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#elementValuePairs}. + * @param ctx the parse tree + */ + void exitElementValuePairs(Java17Parser.ElementValuePairsContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#elementValuePair}. + * @param ctx the parse tree + */ + void enterElementValuePair(Java17Parser.ElementValuePairContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#elementValuePair}. + * @param ctx the parse tree + */ + void exitElementValuePair(Java17Parser.ElementValuePairContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#elementValue}. + * @param ctx the parse tree + */ + void enterElementValue(Java17Parser.ElementValueContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#elementValue}. + * @param ctx the parse tree + */ + void exitElementValue(Java17Parser.ElementValueContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#elementValueArrayInitializer}. + * @param ctx the parse tree + */ + void enterElementValueArrayInitializer(Java17Parser.ElementValueArrayInitializerContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#elementValueArrayInitializer}. + * @param ctx the parse tree + */ + void exitElementValueArrayInitializer(Java17Parser.ElementValueArrayInitializerContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotationTypeDeclaration}. + * @param ctx the parse tree + */ + void enterAnnotationTypeDeclaration(Java17Parser.AnnotationTypeDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotationTypeDeclaration}. + * @param ctx the parse tree + */ + void exitAnnotationTypeDeclaration(Java17Parser.AnnotationTypeDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotationTypeBody}. + * @param ctx the parse tree + */ + void enterAnnotationTypeBody(Java17Parser.AnnotationTypeBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotationTypeBody}. + * @param ctx the parse tree + */ + void exitAnnotationTypeBody(Java17Parser.AnnotationTypeBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotationTypeElementDeclaration}. + * @param ctx the parse tree + */ + void enterAnnotationTypeElementDeclaration(Java17Parser.AnnotationTypeElementDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotationTypeElementDeclaration}. + * @param ctx the parse tree + */ + void exitAnnotationTypeElementDeclaration(Java17Parser.AnnotationTypeElementDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotationTypeElementRest}. + * @param ctx the parse tree + */ + void enterAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotationTypeElementRest}. + * @param ctx the parse tree + */ + void exitAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotationMethodOrConstantRest}. + * @param ctx the parse tree + */ + void enterAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotationMethodOrConstantRest}. + * @param ctx the parse tree + */ + void exitAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotationMethodRest}. + * @param ctx the parse tree + */ + void enterAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotationMethodRest}. + * @param ctx the parse tree + */ + void exitAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#annotationConstantRest}. + * @param ctx the parse tree + */ + void enterAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#annotationConstantRest}. + * @param ctx the parse tree + */ + void exitAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#defaultValue}. + * @param ctx the parse tree + */ + void enterDefaultValue(Java17Parser.DefaultValueContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#defaultValue}. + * @param ctx the parse tree + */ + void exitDefaultValue(Java17Parser.DefaultValueContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#moduleDeclaration}. + * @param ctx the parse tree + */ + void enterModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#moduleDeclaration}. + * @param ctx the parse tree + */ + void exitModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#moduleBody}. + * @param ctx the parse tree + */ + void enterModuleBody(Java17Parser.ModuleBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#moduleBody}. + * @param ctx the parse tree + */ + void exitModuleBody(Java17Parser.ModuleBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#moduleDirective}. + * @param ctx the parse tree + */ + void enterModuleDirective(Java17Parser.ModuleDirectiveContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#moduleDirective}. + * @param ctx the parse tree + */ + void exitModuleDirective(Java17Parser.ModuleDirectiveContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#requiresModifier}. + * @param ctx the parse tree + */ + void enterRequiresModifier(Java17Parser.RequiresModifierContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#requiresModifier}. + * @param ctx the parse tree + */ + void exitRequiresModifier(Java17Parser.RequiresModifierContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordDeclaration}. + * @param ctx the parse tree + */ + void enterRecordDeclaration(Java17Parser.RecordDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordDeclaration}. + * @param ctx the parse tree + */ + void exitRecordDeclaration(Java17Parser.RecordDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordHeader}. + * @param ctx the parse tree + */ + void enterRecordHeader(Java17Parser.RecordHeaderContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordHeader}. + * @param ctx the parse tree + */ + void exitRecordHeader(Java17Parser.RecordHeaderContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordComponentList}. + * @param ctx the parse tree + */ + void enterRecordComponentList(Java17Parser.RecordComponentListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordComponentList}. + * @param ctx the parse tree + */ + void exitRecordComponentList(Java17Parser.RecordComponentListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordComponent}. + * @param ctx the parse tree + */ + void enterRecordComponent(Java17Parser.RecordComponentContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordComponent}. + * @param ctx the parse tree + */ + void exitRecordComponent(Java17Parser.RecordComponentContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordBody}. + * @param ctx the parse tree + */ + void enterRecordBody(Java17Parser.RecordBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordBody}. + * @param ctx the parse tree + */ + void exitRecordBody(Java17Parser.RecordBodyContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#block}. + * @param ctx the parse tree + */ + void enterBlock(Java17Parser.BlockContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#block}. + * @param ctx the parse tree + */ + void exitBlock(Java17Parser.BlockContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#blockStatement}. + * @param ctx the parse tree + */ + void enterBlockStatement(Java17Parser.BlockStatementContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#blockStatement}. + * @param ctx the parse tree + */ + void exitBlockStatement(Java17Parser.BlockStatementContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#localVariableDeclaration}. + * @param ctx the parse tree + */ + void enterLocalVariableDeclaration(Java17Parser.LocalVariableDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#localVariableDeclaration}. + * @param ctx the parse tree + */ + void exitLocalVariableDeclaration(Java17Parser.LocalVariableDeclarationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#identifier}. + * @param ctx the parse tree + */ + void enterIdentifier(Java17Parser.IdentifierContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#identifier}. + * @param ctx the parse tree + */ + void exitIdentifier(Java17Parser.IdentifierContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typeIdentifier}. + * @param ctx the parse tree + */ + void enterTypeIdentifier(Java17Parser.TypeIdentifierContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typeIdentifier}. + * @param ctx the parse tree + */ + void exitTypeIdentifier(Java17Parser.TypeIdentifierContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#localTypeDeclaration}. + * @param ctx the parse tree + */ + void enterLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#localTypeDeclaration}. + * @param ctx the parse tree + */ + void exitLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx); + /** + * Enter a parse tree produced by the {@code blockstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterBlockstmt(Java17Parser.BlockstmtContext ctx); + /** + * Exit a parse tree produced by the {@code blockstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitBlockstmt(Java17Parser.BlockstmtContext ctx); + /** + * Enter a parse tree produced by the {@code assertstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterAssertstmt(Java17Parser.AssertstmtContext ctx); + /** + * Exit a parse tree produced by the {@code assertstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitAssertstmt(Java17Parser.AssertstmtContext ctx); + /** + * Enter a parse tree produced by the {@code conditionalstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterConditionalstmt(Java17Parser.ConditionalstmtContext ctx); + /** + * Exit a parse tree produced by the {@code conditionalstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitConditionalstmt(Java17Parser.ConditionalstmtContext ctx); + /** + * Enter a parse tree produced by the {@code forloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterForloop(Java17Parser.ForloopContext ctx); + /** + * Exit a parse tree produced by the {@code forloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitForloop(Java17Parser.ForloopContext ctx); + /** + * Enter a parse tree produced by the {@code whileloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterWhileloop(Java17Parser.WhileloopContext ctx); + /** + * Exit a parse tree produced by the {@code whileloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitWhileloop(Java17Parser.WhileloopContext ctx); + /** + * Enter a parse tree produced by the {@code dowhileloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterDowhileloop(Java17Parser.DowhileloopContext ctx); + /** + * Exit a parse tree produced by the {@code dowhileloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitDowhileloop(Java17Parser.DowhileloopContext ctx); + /** + * Enter a parse tree produced by the {@code trycatchblock} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterTrycatchblock(Java17Parser.TrycatchblockContext ctx); + /** + * Exit a parse tree produced by the {@code trycatchblock} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitTrycatchblock(Java17Parser.TrycatchblockContext ctx); + /** + * Enter a parse tree produced by the {@code trycatchresource} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterTrycatchresource(Java17Parser.TrycatchresourceContext ctx); + /** + * Exit a parse tree produced by the {@code trycatchresource} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitTrycatchresource(Java17Parser.TrycatchresourceContext ctx); + /** + * Enter a parse tree produced by the {@code switchstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterSwitchstmt(Java17Parser.SwitchstmtContext ctx); + /** + * Exit a parse tree produced by the {@code switchstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitSwitchstmt(Java17Parser.SwitchstmtContext ctx); + /** + * Enter a parse tree produced by the {@code synchronizedstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx); + /** + * Exit a parse tree produced by the {@code synchronizedstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx); + /** + * Enter a parse tree produced by the {@code returnstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterReturnstmt(Java17Parser.ReturnstmtContext ctx); + /** + * Exit a parse tree produced by the {@code returnstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitReturnstmt(Java17Parser.ReturnstmtContext ctx); + /** + * Enter a parse tree produced by the {@code throwstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterThrowstmt(Java17Parser.ThrowstmtContext ctx); + /** + * Exit a parse tree produced by the {@code throwstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitThrowstmt(Java17Parser.ThrowstmtContext ctx); + /** + * Enter a parse tree produced by the {@code breakstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterBreakstmt(Java17Parser.BreakstmtContext ctx); + /** + * Exit a parse tree produced by the {@code breakstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitBreakstmt(Java17Parser.BreakstmtContext ctx); + /** + * Enter a parse tree produced by the {@code continuestmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterContinuestmt(Java17Parser.ContinuestmtContext ctx); + /** + * Exit a parse tree produced by the {@code continuestmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitContinuestmt(Java17Parser.ContinuestmtContext ctx); + /** + * Enter a parse tree produced by the {@code yieldstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterYieldstmt(Java17Parser.YieldstmtContext ctx); + /** + * Exit a parse tree produced by the {@code yieldstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitYieldstmt(Java17Parser.YieldstmtContext ctx); + /** + * Enter a parse tree produced by the {@code semistmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterSemistmt(Java17Parser.SemistmtContext ctx); + /** + * Exit a parse tree produced by the {@code semistmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitSemistmt(Java17Parser.SemistmtContext ctx); + /** + * Enter a parse tree produced by the {@code stmtexpression} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterStmtexpression(Java17Parser.StmtexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code stmtexpression} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitStmtexpression(Java17Parser.StmtexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code labeledstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void enterLabeledstmt(Java17Parser.LabeledstmtContext ctx); + /** + * Exit a parse tree produced by the {@code labeledstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + */ + void exitLabeledstmt(Java17Parser.LabeledstmtContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#catchClause}. + * @param ctx the parse tree + */ + void enterCatchClause(Java17Parser.CatchClauseContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#catchClause}. + * @param ctx the parse tree + */ + void exitCatchClause(Java17Parser.CatchClauseContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#catchType}. + * @param ctx the parse tree + */ + void enterCatchType(Java17Parser.CatchTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#catchType}. + * @param ctx the parse tree + */ + void exitCatchType(Java17Parser.CatchTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#finallyBlock}. + * @param ctx the parse tree + */ + void enterFinallyBlock(Java17Parser.FinallyBlockContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#finallyBlock}. + * @param ctx the parse tree + */ + void exitFinallyBlock(Java17Parser.FinallyBlockContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#resourceSpecification}. + * @param ctx the parse tree + */ + void enterResourceSpecification(Java17Parser.ResourceSpecificationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#resourceSpecification}. + * @param ctx the parse tree + */ + void exitResourceSpecification(Java17Parser.ResourceSpecificationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#resources}. + * @param ctx the parse tree + */ + void enterResources(Java17Parser.ResourcesContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#resources}. + * @param ctx the parse tree + */ + void exitResources(Java17Parser.ResourcesContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#resource}. + * @param ctx the parse tree + */ + void enterResource(Java17Parser.ResourceContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#resource}. + * @param ctx the parse tree + */ + void exitResource(Java17Parser.ResourceContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#switchBlockStatementGroup}. + * @param ctx the parse tree + */ + void enterSwitchBlockStatementGroup(Java17Parser.SwitchBlockStatementGroupContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#switchBlockStatementGroup}. + * @param ctx the parse tree + */ + void exitSwitchBlockStatementGroup(Java17Parser.SwitchBlockStatementGroupContext ctx); + /** + * Enter a parse tree produced by the {@code switchLabelConst} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void enterSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx); + /** + * Exit a parse tree produced by the {@code switchLabelConst} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void exitSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx); + /** + * Enter a parse tree produced by the {@code switchLabelEnum} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void enterSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx); + /** + * Exit a parse tree produced by the {@code switchLabelEnum} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void exitSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx); + /** + * Enter a parse tree produced by the {@code switchLabelPattern} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void enterSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx); + /** + * Exit a parse tree produced by the {@code switchLabelPattern} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void exitSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx); + /** + * Enter a parse tree produced by the {@code switchLabelDefault} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void enterSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx); + /** + * Exit a parse tree produced by the {@code switchLabelDefault} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + */ + void exitSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#forControl}. + * @param ctx the parse tree + */ + void enterForControl(Java17Parser.ForControlContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#forControl}. + * @param ctx the parse tree + */ + void exitForControl(Java17Parser.ForControlContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#forInit}. + * @param ctx the parse tree + */ + void enterForInit(Java17Parser.ForInitContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#forInit}. + * @param ctx the parse tree + */ + void exitForInit(Java17Parser.ForInitContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#enhancedForControl}. + * @param ctx the parse tree + */ + void enterEnhancedForControl(Java17Parser.EnhancedForControlContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#enhancedForControl}. + * @param ctx the parse tree + */ + void exitEnhancedForControl(Java17Parser.EnhancedForControlContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#parExpression}. + * @param ctx the parse tree + */ + void enterParExpression(Java17Parser.ParExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#parExpression}. + * @param ctx the parse tree + */ + void exitParExpression(Java17Parser.ParExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#expressionList}. + * @param ctx the parse tree + */ + void enterExpressionList(Java17Parser.ExpressionListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#expressionList}. + * @param ctx the parse tree + */ + void exitExpressionList(Java17Parser.ExpressionListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#methodCall}. + * @param ctx the parse tree + */ + void enterMethodCall(Java17Parser.MethodCallContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#methodCall}. + * @param ctx the parse tree + */ + void exitMethodCall(Java17Parser.MethodCallContext ctx); + /** + * Enter a parse tree produced by the {@code castexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterCastexpression(Java17Parser.CastexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code castexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitCastexpression(Java17Parser.CastexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code arrayaccessexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code arrayaccessexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code newinstanceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code newinstanceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code bitwiseandexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code bitwiseandexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code primaryExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx); + /** + * Exit a parse tree produced by the {@code primaryExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx); + /** + * Enter a parse tree produced by the {@code methodcallexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code methodcallexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code conditionalassignexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code conditionalassignexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code methodorcreatorreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code methodorcreatorreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code shiftexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterShiftexpression(Java17Parser.ShiftexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code shiftexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitShiftexpression(Java17Parser.ShiftexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code switchExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterSwitchExpression2(Java17Parser.SwitchExpression2Context ctx); + /** + * Exit a parse tree produced by the {@code switchExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitSwitchExpression2(Java17Parser.SwitchExpression2Context ctx); + /** + * Enter a parse tree produced by the {@code mathaddsubexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code mathaddsubexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code dottedexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterDottedexpression(Java17Parser.DottedexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code dottedexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitDottedexpression(Java17Parser.DottedexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code orexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterOrexpression(Java17Parser.OrexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code orexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitOrexpression(Java17Parser.OrexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code andexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterAndexpression(Java17Parser.AndexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code andexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitAndexpression(Java17Parser.AndexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code assignexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterAssignexpression(Java17Parser.AssignexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code assignexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitAssignexpression(Java17Parser.AssignexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code mathmuldivmodexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code mathmuldivmodexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code equalityexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterEqualityexpression(Java17Parser.EqualityexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code equalityexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitEqualityexpression(Java17Parser.EqualityexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code postfixexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterPostfixexpression(Java17Parser.PostfixexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code postfixexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitPostfixexpression(Java17Parser.PostfixexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code prefixexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterPrefixexpression(Java17Parser.PrefixexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code prefixexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitPrefixexpression(Java17Parser.PrefixexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code bitwiseorexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code bitwiseorexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code creatorreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code creatorreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code lambdaExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterLambdaExpression2(Java17Parser.LambdaExpression2Context ctx); + /** + * Exit a parse tree produced by the {@code lambdaExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitLambdaExpression2(Java17Parser.LambdaExpression2Context ctx); + /** + * Enter a parse tree produced by the {@code bitwisexorexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code bitwisexorexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code relationalexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterRelationalexpression(Java17Parser.RelationalexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code relationalexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitRelationalexpression(Java17Parser.RelationalexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code instanceofexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code instanceofexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code methodreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void enterMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx); + /** + * Exit a parse tree produced by the {@code methodreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + */ + void exitMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx); + /** + * Enter a parse tree produced by the {@code pPattern} + * labeled alternative in {@link Java17Parser#pattern}. + * @param ctx the parse tree + */ + void enterPPattern(Java17Parser.PPatternContext ctx); + /** + * Exit a parse tree produced by the {@code pPattern} + * labeled alternative in {@link Java17Parser#pattern}. + * @param ctx the parse tree + */ + void exitPPattern(Java17Parser.PPatternContext ctx); + /** + * Enter a parse tree produced by the {@code gPattern} + * labeled alternative in {@link Java17Parser#pattern}. + * @param ctx the parse tree + */ + void enterGPattern(Java17Parser.GPatternContext ctx); + /** + * Exit a parse tree produced by the {@code gPattern} + * labeled alternative in {@link Java17Parser#pattern}. + * @param ctx the parse tree + */ + void exitGPattern(Java17Parser.GPatternContext ctx); + /** + * Enter a parse tree produced by the {@code tPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + */ + void enterTPattern(Java17Parser.TPatternContext ctx); + /** + * Exit a parse tree produced by the {@code tPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + */ + void exitTPattern(Java17Parser.TPatternContext ctx); + /** + * Enter a parse tree produced by the {@code rPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + */ + void enterRPattern(Java17Parser.RPatternContext ctx); + /** + * Exit a parse tree produced by the {@code rPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + */ + void exitRPattern(Java17Parser.RPatternContext ctx); + /** + * Enter a parse tree produced by the {@code enclosedPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + */ + void enterEnclosedPattern(Java17Parser.EnclosedPatternContext ctx); + /** + * Exit a parse tree produced by the {@code enclosedPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + */ + void exitEnclosedPattern(Java17Parser.EnclosedPatternContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordPattern}. + * @param ctx the parse tree + */ + void enterRecordPattern(Java17Parser.RecordPatternContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordPattern}. + * @param ctx the parse tree + */ + void exitRecordPattern(Java17Parser.RecordPatternContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typePattern}. + * @param ctx the parse tree + */ + void enterTypePattern(Java17Parser.TypePatternContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typePattern}. + * @param ctx the parse tree + */ + void exitTypePattern(Java17Parser.TypePatternContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordStructurePattern}. + * @param ctx the parse tree + */ + void enterRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordStructurePattern}. + * @param ctx the parse tree + */ + void exitRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordComponentPatternElement}. + * @param ctx the parse tree + */ + void enterRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordComponentPatternElement}. + * @param ctx the parse tree + */ + void exitRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#recordComponentPatternList}. + * @param ctx the parse tree + */ + void enterRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#recordComponentPatternList}. + * @param ctx the parse tree + */ + void exitRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#lambdaExpression}. + * @param ctx the parse tree + */ + void enterLambdaExpression(Java17Parser.LambdaExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#lambdaExpression}. + * @param ctx the parse tree + */ + void exitLambdaExpression(Java17Parser.LambdaExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#lambdaParameters}. + * @param ctx the parse tree + */ + void enterLambdaParameters(Java17Parser.LambdaParametersContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#lambdaParameters}. + * @param ctx the parse tree + */ + void exitLambdaParameters(Java17Parser.LambdaParametersContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#lambdaBody}. + * @param ctx the parse tree + */ + void enterLambdaBody(Java17Parser.LambdaBodyContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#lambdaBody}. + * @param ctx the parse tree + */ + void exitLambdaBody(Java17Parser.LambdaBodyContext ctx); + /** + * Enter a parse tree produced by the {@code primaryExpression} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx); + /** + * Exit a parse tree produced by the {@code primaryExpression} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx); + /** + * Enter a parse tree produced by the {@code primaryThis} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimaryThis(Java17Parser.PrimaryThisContext ctx); + /** + * Exit a parse tree produced by the {@code primaryThis} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimaryThis(Java17Parser.PrimaryThisContext ctx); + /** + * Enter a parse tree produced by the {@code primarySuper} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimarySuper(Java17Parser.PrimarySuperContext ctx); + /** + * Exit a parse tree produced by the {@code primarySuper} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimarySuper(Java17Parser.PrimarySuperContext ctx); + /** + * Enter a parse tree produced by the {@code primaryLiteral} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx); + /** + * Exit a parse tree produced by the {@code primaryLiteral} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx); + /** + * Enter a parse tree produced by the {@code primaryIdentifier} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx); + /** + * Exit a parse tree produced by the {@code primaryIdentifier} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx); + /** + * Enter a parse tree produced by the {@code primaryClassref} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx); + /** + * Exit a parse tree produced by the {@code primaryClassref} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx); + /** + * Enter a parse tree produced by the {@code primaryInvocation} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void enterPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx); + /** + * Exit a parse tree produced by the {@code primaryInvocation} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + */ + void exitPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#switchExpression}. + * @param ctx the parse tree + */ + void enterSwitchExpression(Java17Parser.SwitchExpressionContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#switchExpression}. + * @param ctx the parse tree + */ + void exitSwitchExpression(Java17Parser.SwitchExpressionContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#switchLabeledRule}. + * @param ctx the parse tree + */ + void enterSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#switchLabeledRule}. + * @param ctx the parse tree + */ + void exitSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx); + /** + * Enter a parse tree produced by the {@code labeledRuleNull} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void enterLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx); + /** + * Exit a parse tree produced by the {@code labeledRuleNull} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void exitLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx); + /** + * Enter a parse tree produced by the {@code labeledRulePattern} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void enterLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx); + /** + * Exit a parse tree produced by the {@code labeledRulePattern} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void exitLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx); + /** + * Enter a parse tree produced by the {@code labeledRuleDefault} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void enterLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx); + /** + * Exit a parse tree produced by the {@code labeledRuleDefault} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void exitLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx); + /** + * Enter a parse tree produced by the {@code labeledRuleExprList} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void enterLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx); + /** + * Exit a parse tree produced by the {@code labeledRuleExprList} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + */ + void exitLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#guardedPattern}. + * @param ctx the parse tree + */ + void enterGuardedPattern(Java17Parser.GuardedPatternContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#guardedPattern}. + * @param ctx the parse tree + */ + void exitGuardedPattern(Java17Parser.GuardedPatternContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#switchRuleOutcome}. + * @param ctx the parse tree + */ + void enterSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#switchRuleOutcome}. + * @param ctx the parse tree + */ + void exitSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#classType}. + * @param ctx the parse tree + */ + void enterClassType(Java17Parser.ClassTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#classType}. + * @param ctx the parse tree + */ + void exitClassType(Java17Parser.ClassTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#creator}. + * @param ctx the parse tree + */ + void enterCreator(Java17Parser.CreatorContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#creator}. + * @param ctx the parse tree + */ + void exitCreator(Java17Parser.CreatorContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#createdName}. + * @param ctx the parse tree + */ + void enterCreatedName(Java17Parser.CreatedNameContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#createdName}. + * @param ctx the parse tree + */ + void exitCreatedName(Java17Parser.CreatedNameContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#innerCreator}. + * @param ctx the parse tree + */ + void enterInnerCreator(Java17Parser.InnerCreatorContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#innerCreator}. + * @param ctx the parse tree + */ + void exitInnerCreator(Java17Parser.InnerCreatorContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#arrayCreatorRest}. + * @param ctx the parse tree + */ + void enterArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#arrayCreatorRest}. + * @param ctx the parse tree + */ + void exitArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#classCreatorRest}. + * @param ctx the parse tree + */ + void enterClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#classCreatorRest}. + * @param ctx the parse tree + */ + void exitClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#explicitGenericInvocation}. + * @param ctx the parse tree + */ + void enterExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#explicitGenericInvocation}. + * @param ctx the parse tree + */ + void exitExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typeArgumentsOrDiamond}. + * @param ctx the parse tree + */ + void enterTypeArgumentsOrDiamond(Java17Parser.TypeArgumentsOrDiamondContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typeArgumentsOrDiamond}. + * @param ctx the parse tree + */ + void exitTypeArgumentsOrDiamond(Java17Parser.TypeArgumentsOrDiamondContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#nonWildcardTypeArgumentsOrDiamond}. + * @param ctx the parse tree + */ + void enterNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#nonWildcardTypeArgumentsOrDiamond}. + * @param ctx the parse tree + */ + void exitNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#nonWildcardTypeArguments}. + * @param ctx the parse tree + */ + void enterNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#nonWildcardTypeArguments}. + * @param ctx the parse tree + */ + void exitNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typeList}. + * @param ctx the parse tree + */ + void enterTypeList(Java17Parser.TypeListContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typeList}. + * @param ctx the parse tree + */ + void exitTypeList(Java17Parser.TypeListContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typeType}. + * @param ctx the parse tree + */ + void enterTypeType(Java17Parser.TypeTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typeType}. + * @param ctx the parse tree + */ + void exitTypeType(Java17Parser.TypeTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#primitiveType}. + * @param ctx the parse tree + */ + void enterPrimitiveType(Java17Parser.PrimitiveTypeContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#primitiveType}. + * @param ctx the parse tree + */ + void exitPrimitiveType(Java17Parser.PrimitiveTypeContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#typeArguments}. + * @param ctx the parse tree + */ + void enterTypeArguments(Java17Parser.TypeArgumentsContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#typeArguments}. + * @param ctx the parse tree + */ + void exitTypeArguments(Java17Parser.TypeArgumentsContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#superSuffix}. + * @param ctx the parse tree + */ + void enterSuperSuffix(Java17Parser.SuperSuffixContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#superSuffix}. + * @param ctx the parse tree + */ + void exitSuperSuffix(Java17Parser.SuperSuffixContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#explicitGenericInvocationSuffix}. + * @param ctx the parse tree + */ + void enterExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#explicitGenericInvocationSuffix}. + * @param ctx the parse tree + */ + void exitExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx); + /** + * Enter a parse tree produced by {@link Java17Parser#arguments}. + * @param ctx the parse tree + */ + void enterArguments(Java17Parser.ArgumentsContext ctx); + /** + * Exit a parse tree produced by {@link Java17Parser#arguments}. + * @param ctx the parse tree + */ + void exitArguments(Java17Parser.ArgumentsContext ctx); +} \ No newline at end of file diff --git a/gen/Java17ParserVisitor.java b/gen/Java17ParserVisitor.java new file mode 100644 index 00000000..28bd874a --- /dev/null +++ b/gen/Java17ParserVisitor.java @@ -0,0 +1,1418 @@ +// Generated from C:/Users/ruben/IdeaProjects/JavaCompilerCore/src/main/antlr4/de/dhbwstuttgart/parser/antlr/Java17Parser.g4 by ANTLR 4.13.1 +import org.antlr.v4.runtime.tree.ParseTreeVisitor; + +/** + * This interface defines a complete generic visitor for a parse tree produced + * by {@link Java17Parser}. + * + * @param The return type of the visit operation. Use {@link Void} for + * operations with no return type. + */ +public interface Java17ParserVisitor extends ParseTreeVisitor { + /** + * Visit a parse tree produced by the {@code srcfile} + * labeled alternative in {@link Java17Parser#sourceFile}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSrcfile(Java17Parser.SrcfileContext ctx); + /** + * Visit a parse tree produced by the {@code moduledecl} + * labeled alternative in {@link Java17Parser#sourceFile}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitModuledecl(Java17Parser.ModuledeclContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#packageDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPackageDeclaration(Java17Parser.PackageDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#importDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitImportDeclaration(Java17Parser.ImportDeclarationContext ctx); + /** + * Visit a parse tree produced by the {@code classorinterfacedecl} + * labeled alternative in {@link Java17Parser#classOrInterface}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassorinterfacedecl(Java17Parser.ClassorinterfacedeclContext ctx); + /** + * Visit a parse tree produced by the {@code noclassorinterface} + * labeled alternative in {@link Java17Parser#classOrInterface}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNoclassorinterface(Java17Parser.NoclassorinterfaceContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#modifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitModifier(Java17Parser.ModifierContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#classOrInterfaceModifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassOrInterfaceModifier(Java17Parser.ClassOrInterfaceModifierContext ctx); + /** + * Visit a parse tree produced by the {@code finalvarmod} + * labeled alternative in {@link Java17Parser#variableModifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFinalvarmod(Java17Parser.FinalvarmodContext ctx); + /** + * Visit a parse tree produced by the {@code annotationvarmod} + * labeled alternative in {@link Java17Parser#variableModifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationvarmod(Java17Parser.AnnotationvarmodContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#classDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassDeclaration(Java17Parser.ClassDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#genericDeclarationList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericDeclarationList(Java17Parser.GenericDeclarationListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#genericTypeVar}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericTypeVar(Java17Parser.GenericTypeVarContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typeBound}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeBound(Java17Parser.TypeBoundContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#enumDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumDeclaration(Java17Parser.EnumDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#enumConstants}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumConstants(Java17Parser.EnumConstantsContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#enumConstant}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumConstant(Java17Parser.EnumConstantContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#enumBodyDeclarations}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnumBodyDeclarations(Java17Parser.EnumBodyDeclarationsContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#interfaceDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceDeclaration(Java17Parser.InterfaceDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#classBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassBody(Java17Parser.ClassBodyContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#interfaceBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceBody(Java17Parser.InterfaceBodyContext ctx); + /** + * Visit a parse tree produced by the {@code emptyclassbody} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEmptyclassbody(Java17Parser.EmptyclassbodyContext ctx); + /** + * Visit a parse tree produced by the {@code classblock} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassblock(Java17Parser.ClassblockContext ctx); + /** + * Visit a parse tree produced by the {@code memberdecl} + * labeled alternative in {@link Java17Parser#classBodyDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMemberdecl(Java17Parser.MemberdeclContext ctx); + /** + * Visit a parse tree produced by the {@code memberclassorinterface} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMemberclassorinterface(Java17Parser.MemberclassorinterfaceContext ctx); + /** + * Visit a parse tree produced by the {@code memberfield} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMemberfield(Java17Parser.MemberfieldContext ctx); + /** + * Visit a parse tree produced by the {@code membermethod} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMembermethod(Java17Parser.MembermethodContext ctx); + /** + * Visit a parse tree produced by the {@code memberconstructor} + * labeled alternative in {@link Java17Parser#memberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMemberconstructor(Java17Parser.MemberconstructorContext ctx); + /** + * Visit a parse tree produced by the {@code methoddecl} + * labeled alternative in {@link Java17Parser#method}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethoddecl(Java17Parser.MethoddeclContext ctx); + /** + * Visit a parse tree produced by the {@code genericmethod} + * labeled alternative in {@link Java17Parser#method}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericmethod(Java17Parser.GenericmethodContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#methodDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodDeclaration(Java17Parser.MethodDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#methodHeader}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodHeader(Java17Parser.MethodHeaderContext ctx); + /** + * Visit a parse tree produced by the {@code methodblock} + * labeled alternative in {@link Java17Parser#methodBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodblock(Java17Parser.MethodblockContext ctx); + /** + * Visit a parse tree produced by the {@code emptymethod} + * labeled alternative in {@link Java17Parser#methodBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEmptymethod(Java17Parser.EmptymethodContext ctx); + /** + * Visit a parse tree produced by the {@code refType2} + * labeled alternative in {@link Java17Parser#refType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRefType2(Java17Parser.RefType2Context ctx); + /** + * Visit a parse tree produced by the {@code refvoid} + * labeled alternative in {@link Java17Parser#refType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRefvoid(Java17Parser.RefvoidContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#genericMethodDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericMethodDeclaration(Java17Parser.GenericMethodDeclarationContext ctx); + /** + * Visit a parse tree produced by the {@code genericconstructor} + * labeled alternative in {@link Java17Parser#constructor}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericconstructor(Java17Parser.GenericconstructorContext ctx); + /** + * Visit a parse tree produced by the {@code constructordecl} + * labeled alternative in {@link Java17Parser#constructor}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructordecl(Java17Parser.ConstructordeclContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#genericConstructorDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericConstructorDeclaration(Java17Parser.GenericConstructorDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#constructorDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstructorDeclaration(Java17Parser.ConstructorDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#fieldDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFieldDeclaration(Java17Parser.FieldDeclarationContext ctx); + /** + * Visit a parse tree produced by the {@code interfacemember} + * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfacemember(Java17Parser.InterfacememberContext ctx); + /** + * Visit a parse tree produced by the {@code emptyinterface} + * labeled alternative in {@link Java17Parser#interfaceBodyDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEmptyinterface(Java17Parser.EmptyinterfaceContext ctx); + /** + * Visit a parse tree produced by the {@code interfaceconst} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceconst(Java17Parser.InterfaceconstContext ctx); + /** + * Visit a parse tree produced by the {@code interfacemethod} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfacemethod(Java17Parser.InterfacemethodContext ctx); + /** + * Visit a parse tree produced by the {@code genericinterfacemethod} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericinterfacemethod(Java17Parser.GenericinterfacemethodContext ctx); + /** + * Visit a parse tree produced by the {@code subclassorinterface} + * labeled alternative in {@link Java17Parser#interfaceMemberDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSubclassorinterface(Java17Parser.SubclassorinterfaceContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#constDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstDeclaration(Java17Parser.ConstDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#constantDeclarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConstantDeclarator(Java17Parser.ConstantDeclaratorContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#interfaceMethodDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceMethodDeclaration(Java17Parser.InterfaceMethodDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#interfaceMethodModifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceMethodModifier(Java17Parser.InterfaceMethodModifierContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#genericInterfaceMethodDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGenericInterfaceMethodDeclaration(Java17Parser.GenericInterfaceMethodDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#interfaceCommonBodyDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInterfaceCommonBodyDeclaration(Java17Parser.InterfaceCommonBodyDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#variableDeclarators}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariableDeclarators(Java17Parser.VariableDeclaratorsContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#variableDeclarator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariableDeclarator(Java17Parser.VariableDeclaratorContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#variableDeclaratorId}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariableDeclaratorId(Java17Parser.VariableDeclaratorIdContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#variableInitializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitVariableInitializer(Java17Parser.VariableInitializerContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#arrayInitializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayInitializer(Java17Parser.ArrayInitializerContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#classOrInterfaceType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassOrInterfaceType(Java17Parser.ClassOrInterfaceTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typeArgument}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeArgument(Java17Parser.TypeArgumentContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#wildcardType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWildcardType(Java17Parser.WildcardTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#extendsWildcardType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExtendsWildcardType(Java17Parser.ExtendsWildcardTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#superWildcardType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSuperWildcardType(Java17Parser.SuperWildcardTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#qualifiedNameList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQualifiedNameList(Java17Parser.QualifiedNameListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#exceptionList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExceptionList(Java17Parser.ExceptionListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#formalParameters}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFormalParameters(Java17Parser.FormalParametersContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#receiverParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReceiverParameter(Java17Parser.ReceiverParameterContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#formalParameterList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFormalParameterList(Java17Parser.FormalParameterListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#formalParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFormalParameter(Java17Parser.FormalParameterContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#lastFormalParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLastFormalParameter(Java17Parser.LastFormalParameterContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#lambdaLVTIList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambdaLVTIList(Java17Parser.LambdaLVTIListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#lambdaLVTIParameter}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambdaLVTIParameter(Java17Parser.LambdaLVTIParameterContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#qualifiedName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitQualifiedName(Java17Parser.QualifiedNameContext ctx); + /** + * Visit a parse tree produced by the {@code intLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIntLiteral(Java17Parser.IntLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code fltLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFltLiteral(Java17Parser.FltLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code charLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCharLiteral(Java17Parser.CharLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code stringLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStringLiteral(Java17Parser.StringLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code boolLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBoolLiteral(Java17Parser.BoolLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code nullLiteral} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNullLiteral(Java17Parser.NullLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code textBlock} + * labeled alternative in {@link Java17Parser#literal}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTextBlock(Java17Parser.TextBlockContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#integerLiteral}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIntegerLiteral(Java17Parser.IntegerLiteralContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#floatLiteral}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFloatLiteral(Java17Parser.FloatLiteralContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#altAnnotationQualifiedName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAltAnnotationQualifiedName(Java17Parser.AltAnnotationQualifiedNameContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotation(Java17Parser.AnnotationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#elementValuePairs}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitElementValuePairs(Java17Parser.ElementValuePairsContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#elementValuePair}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitElementValuePair(Java17Parser.ElementValuePairContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#elementValue}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitElementValue(Java17Parser.ElementValueContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#elementValueArrayInitializer}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitElementValueArrayInitializer(Java17Parser.ElementValueArrayInitializerContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotationTypeDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationTypeDeclaration(Java17Parser.AnnotationTypeDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotationTypeBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationTypeBody(Java17Parser.AnnotationTypeBodyContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotationTypeElementDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationTypeElementDeclaration(Java17Parser.AnnotationTypeElementDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotationTypeElementRest}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationTypeElementRest(Java17Parser.AnnotationTypeElementRestContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotationMethodOrConstantRest}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationMethodOrConstantRest(Java17Parser.AnnotationMethodOrConstantRestContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotationMethodRest}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationMethodRest(Java17Parser.AnnotationMethodRestContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#annotationConstantRest}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAnnotationConstantRest(Java17Parser.AnnotationConstantRestContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#defaultValue}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDefaultValue(Java17Parser.DefaultValueContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#moduleDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitModuleDeclaration(Java17Parser.ModuleDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#moduleBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitModuleBody(Java17Parser.ModuleBodyContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#moduleDirective}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitModuleDirective(Java17Parser.ModuleDirectiveContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#requiresModifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRequiresModifier(Java17Parser.RequiresModifierContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordDeclaration(Java17Parser.RecordDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordHeader}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordHeader(Java17Parser.RecordHeaderContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordComponentList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordComponentList(Java17Parser.RecordComponentListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordComponent}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordComponent(Java17Parser.RecordComponentContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordBody(Java17Parser.RecordBodyContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#block}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBlock(Java17Parser.BlockContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#blockStatement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBlockStatement(Java17Parser.BlockStatementContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#localVariableDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLocalVariableDeclaration(Java17Parser.LocalVariableDeclarationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#identifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitIdentifier(Java17Parser.IdentifierContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typeIdentifier}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeIdentifier(Java17Parser.TypeIdentifierContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#localTypeDeclaration}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLocalTypeDeclaration(Java17Parser.LocalTypeDeclarationContext ctx); + /** + * Visit a parse tree produced by the {@code blockstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBlockstmt(Java17Parser.BlockstmtContext ctx); + /** + * Visit a parse tree produced by the {@code assertstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssertstmt(Java17Parser.AssertstmtContext ctx); + /** + * Visit a parse tree produced by the {@code conditionalstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConditionalstmt(Java17Parser.ConditionalstmtContext ctx); + /** + * Visit a parse tree produced by the {@code forloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForloop(Java17Parser.ForloopContext ctx); + /** + * Visit a parse tree produced by the {@code whileloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitWhileloop(Java17Parser.WhileloopContext ctx); + /** + * Visit a parse tree produced by the {@code dowhileloop} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDowhileloop(Java17Parser.DowhileloopContext ctx); + /** + * Visit a parse tree produced by the {@code trycatchblock} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTrycatchblock(Java17Parser.TrycatchblockContext ctx); + /** + * Visit a parse tree produced by the {@code trycatchresource} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTrycatchresource(Java17Parser.TrycatchresourceContext ctx); + /** + * Visit a parse tree produced by the {@code switchstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchstmt(Java17Parser.SwitchstmtContext ctx); + /** + * Visit a parse tree produced by the {@code synchronizedstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSynchronizedstmt(Java17Parser.SynchronizedstmtContext ctx); + /** + * Visit a parse tree produced by the {@code returnstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitReturnstmt(Java17Parser.ReturnstmtContext ctx); + /** + * Visit a parse tree produced by the {@code throwstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitThrowstmt(Java17Parser.ThrowstmtContext ctx); + /** + * Visit a parse tree produced by the {@code breakstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBreakstmt(Java17Parser.BreakstmtContext ctx); + /** + * Visit a parse tree produced by the {@code continuestmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitContinuestmt(Java17Parser.ContinuestmtContext ctx); + /** + * Visit a parse tree produced by the {@code yieldstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitYieldstmt(Java17Parser.YieldstmtContext ctx); + /** + * Visit a parse tree produced by the {@code semistmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSemistmt(Java17Parser.SemistmtContext ctx); + /** + * Visit a parse tree produced by the {@code stmtexpression} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitStmtexpression(Java17Parser.StmtexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code labeledstmt} + * labeled alternative in {@link Java17Parser#statement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLabeledstmt(Java17Parser.LabeledstmtContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#catchClause}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCatchClause(Java17Parser.CatchClauseContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#catchType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCatchType(Java17Parser.CatchTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#finallyBlock}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitFinallyBlock(Java17Parser.FinallyBlockContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#resourceSpecification}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitResourceSpecification(Java17Parser.ResourceSpecificationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#resources}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitResources(Java17Parser.ResourcesContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#resource}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitResource(Java17Parser.ResourceContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#switchBlockStatementGroup}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchBlockStatementGroup(Java17Parser.SwitchBlockStatementGroupContext ctx); + /** + * Visit a parse tree produced by the {@code switchLabelConst} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchLabelConst(Java17Parser.SwitchLabelConstContext ctx); + /** + * Visit a parse tree produced by the {@code switchLabelEnum} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchLabelEnum(Java17Parser.SwitchLabelEnumContext ctx); + /** + * Visit a parse tree produced by the {@code switchLabelPattern} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchLabelPattern(Java17Parser.SwitchLabelPatternContext ctx); + /** + * Visit a parse tree produced by the {@code switchLabelDefault} + * labeled alternative in {@link Java17Parser#switchLabel}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchLabelDefault(Java17Parser.SwitchLabelDefaultContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#forControl}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForControl(Java17Parser.ForControlContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#forInit}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitForInit(Java17Parser.ForInitContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#enhancedForControl}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnhancedForControl(Java17Parser.EnhancedForControlContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#parExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitParExpression(Java17Parser.ParExpressionContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#expressionList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExpressionList(Java17Parser.ExpressionListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#methodCall}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodCall(Java17Parser.MethodCallContext ctx); + /** + * Visit a parse tree produced by the {@code castexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCastexpression(Java17Parser.CastexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code arrayaccessexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayaccessexpression(Java17Parser.ArrayaccessexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code newinstanceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNewinstanceexpression(Java17Parser.NewinstanceexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code bitwiseandexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitwiseandexpression(Java17Parser.BitwiseandexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code primaryExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimaryExpression2(Java17Parser.PrimaryExpression2Context ctx); + /** + * Visit a parse tree produced by the {@code methodcallexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodcallexpression(Java17Parser.MethodcallexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code conditionalassignexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitConditionalassignexpression(Java17Parser.ConditionalassignexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code methodorcreatorreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodorcreatorreferenceexpression(Java17Parser.MethodorcreatorreferenceexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code shiftexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitShiftexpression(Java17Parser.ShiftexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code switchExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchExpression2(Java17Parser.SwitchExpression2Context ctx); + /** + * Visit a parse tree produced by the {@code mathaddsubexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMathaddsubexpression(Java17Parser.MathaddsubexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code dottedexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitDottedexpression(Java17Parser.DottedexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code orexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitOrexpression(Java17Parser.OrexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code andexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAndexpression(Java17Parser.AndexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code assignexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitAssignexpression(Java17Parser.AssignexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code mathmuldivmodexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMathmuldivmodexpression(Java17Parser.MathmuldivmodexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code equalityexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEqualityexpression(Java17Parser.EqualityexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code postfixexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPostfixexpression(Java17Parser.PostfixexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code prefixexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrefixexpression(Java17Parser.PrefixexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code bitwiseorexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitwiseorexpression(Java17Parser.BitwiseorexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code creatorreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreatorreferenceexpression(Java17Parser.CreatorreferenceexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code lambdaExpression2} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambdaExpression2(Java17Parser.LambdaExpression2Context ctx); + /** + * Visit a parse tree produced by the {@code bitwisexorexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitBitwisexorexpression(Java17Parser.BitwisexorexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code relationalexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRelationalexpression(Java17Parser.RelationalexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code instanceofexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInstanceofexpression(Java17Parser.InstanceofexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code methodreferenceexpression} + * labeled alternative in {@link Java17Parser#expression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitMethodreferenceexpression(Java17Parser.MethodreferenceexpressionContext ctx); + /** + * Visit a parse tree produced by the {@code pPattern} + * labeled alternative in {@link Java17Parser#pattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPPattern(Java17Parser.PPatternContext ctx); + /** + * Visit a parse tree produced by the {@code gPattern} + * labeled alternative in {@link Java17Parser#pattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGPattern(Java17Parser.GPatternContext ctx); + /** + * Visit a parse tree produced by the {@code tPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTPattern(Java17Parser.TPatternContext ctx); + /** + * Visit a parse tree produced by the {@code rPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRPattern(Java17Parser.RPatternContext ctx); + /** + * Visit a parse tree produced by the {@code enclosedPattern} + * labeled alternative in {@link Java17Parser#primaryPattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitEnclosedPattern(Java17Parser.EnclosedPatternContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordPattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordPattern(Java17Parser.RecordPatternContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typePattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypePattern(Java17Parser.TypePatternContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordStructurePattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordStructurePattern(Java17Parser.RecordStructurePatternContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordComponentPatternElement}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordComponentPatternElement(Java17Parser.RecordComponentPatternElementContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#recordComponentPatternList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitRecordComponentPatternList(Java17Parser.RecordComponentPatternListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#lambdaExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambdaExpression(Java17Parser.LambdaExpressionContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#lambdaParameters}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambdaParameters(Java17Parser.LambdaParametersContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#lambdaBody}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLambdaBody(Java17Parser.LambdaBodyContext ctx); + /** + * Visit a parse tree produced by the {@code primaryExpression} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimaryExpression(Java17Parser.PrimaryExpressionContext ctx); + /** + * Visit a parse tree produced by the {@code primaryThis} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimaryThis(Java17Parser.PrimaryThisContext ctx); + /** + * Visit a parse tree produced by the {@code primarySuper} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimarySuper(Java17Parser.PrimarySuperContext ctx); + /** + * Visit a parse tree produced by the {@code primaryLiteral} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimaryLiteral(Java17Parser.PrimaryLiteralContext ctx); + /** + * Visit a parse tree produced by the {@code primaryIdentifier} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimaryIdentifier(Java17Parser.PrimaryIdentifierContext ctx); + /** + * Visit a parse tree produced by the {@code primaryClassref} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimaryClassref(Java17Parser.PrimaryClassrefContext ctx); + /** + * Visit a parse tree produced by the {@code primaryInvocation} + * labeled alternative in {@link Java17Parser#primary}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimaryInvocation(Java17Parser.PrimaryInvocationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#switchExpression}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchExpression(Java17Parser.SwitchExpressionContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#switchLabeledRule}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchLabeledRule(Java17Parser.SwitchLabeledRuleContext ctx); + /** + * Visit a parse tree produced by the {@code labeledRuleNull} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLabeledRuleNull(Java17Parser.LabeledRuleNullContext ctx); + /** + * Visit a parse tree produced by the {@code labeledRulePattern} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLabeledRulePattern(Java17Parser.LabeledRulePatternContext ctx); + /** + * Visit a parse tree produced by the {@code labeledRuleDefault} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLabeledRuleDefault(Java17Parser.LabeledRuleDefaultContext ctx); + /** + * Visit a parse tree produced by the {@code labeledRuleExprList} + * labeled alternative in {@link Java17Parser#switchLabelCase}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitLabeledRuleExprList(Java17Parser.LabeledRuleExprListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#guardedPattern}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitGuardedPattern(Java17Parser.GuardedPatternContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#switchRuleOutcome}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSwitchRuleOutcome(Java17Parser.SwitchRuleOutcomeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#classType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassType(Java17Parser.ClassTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#creator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreator(Java17Parser.CreatorContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#createdName}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitCreatedName(Java17Parser.CreatedNameContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#innerCreator}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitInnerCreator(Java17Parser.InnerCreatorContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#arrayCreatorRest}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArrayCreatorRest(Java17Parser.ArrayCreatorRestContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#classCreatorRest}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitClassCreatorRest(Java17Parser.ClassCreatorRestContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#explicitGenericInvocation}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplicitGenericInvocation(Java17Parser.ExplicitGenericInvocationContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typeArgumentsOrDiamond}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeArgumentsOrDiamond(Java17Parser.TypeArgumentsOrDiamondContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#nonWildcardTypeArgumentsOrDiamond}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNonWildcardTypeArgumentsOrDiamond(Java17Parser.NonWildcardTypeArgumentsOrDiamondContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#nonWildcardTypeArguments}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitNonWildcardTypeArguments(Java17Parser.NonWildcardTypeArgumentsContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typeList}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeList(Java17Parser.TypeListContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typeType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeType(Java17Parser.TypeTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#primitiveType}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitPrimitiveType(Java17Parser.PrimitiveTypeContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#typeArguments}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitTypeArguments(Java17Parser.TypeArgumentsContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#superSuffix}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitSuperSuffix(Java17Parser.SuperSuffixContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#explicitGenericInvocationSuffix}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitExplicitGenericInvocationSuffix(Java17Parser.ExplicitGenericInvocationSuffixContext ctx); + /** + * Visit a parse tree produced by {@link Java17Parser#arguments}. + * @param ctx the parse tree + * @return the visitor result + */ + T visitArguments(Java17Parser.ArgumentsContext ctx); +} \ No newline at end of file diff --git a/resources/bytecode/javFiles/SwitchInfered.jav b/resources/bytecode/javFiles/SwitchInfered.jav index cf0e8b40..fb43b702 100644 --- a/resources/bytecode/javFiles/SwitchInfered.jav +++ b/resources/bytecode/javFiles/SwitchInfered.jav @@ -1,14 +1,19 @@ import java.lang.Integer; import java.lang.Object; import java.lang.Float; +import java.lang.String; + +public record Rec(String a, String b) {} + +public class test extends String{ +} -public record Rec(Object a, Object b) {} public class SwitchInfered { public main(o) { return switch (o) { - case Rec(a, b) -> a + b; - case Integer i -> i; + case Rec(a, b) -> a; + case Integer i -> i+1; default -> 0; }; } diff --git a/src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java b/src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java index ad007f60..2affe5bc 100644 --- a/src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java +++ b/src/main/java/de/dhbwstuttgart/parser/SyntaxTreeGenerator/StatementGenerator.java @@ -457,7 +457,7 @@ public class StatementGenerator { case TPatternContext tPattern: TypePatternContext typePattern = tPattern.typePattern(); var text = typePattern.identifier().getText(); - var type = typePattern.typeType() == null ? TypePlaceholder.fresh(typePattern.getStart()) : TypeGenerator.convert(typePattern.typeType(), reg, generics); + var type = typePattern.typeType() == null ? TypePlaceholder.fresh(pPattern.getStart()) : TypeGenerator.convert(typePattern.typeType(), reg, generics); localVars.put(text, type); return new FormalParameter(text, type, typePattern.getStart()); case RPatternContext rPattern: diff --git a/src/test/java/TestComplete.java b/src/test/java/TestComplete.java index e90837e3..8c192abd 100644 --- a/src/test/java/TestComplete.java +++ b/src/test/java/TestComplete.java @@ -687,10 +687,10 @@ public class TestComplete { var record = classFiles.get("Rec"); var ctor = record.getDeclaredConstructor(Object.class, Object.class); - var r1 = ctor.newInstance(1, 2); + var r1 = ctor.newInstance(1, 1); - assertEquals(swtch.invoke(instance, r1), 3); + assertEquals(swtch.invoke(instance, r1), 1); } @Ignore("Not implemented")