| // [The "BSD 3-clause license"] | |
| // Copyright (c) 2005-2007 Terence Parr | |
| // Copyright (c) 2012-2015 Terence Parr | |
| // Copyright (c) 2012-2015 Sam Harwell | |
| // Copyright (c) 2014-2015 Gerald Rosenberg | |
| // Copyright (c) 2023 Google LLC | |
| // All rights reserved. | |
| // Redistribution and use in source and binary forms, with or without | |
| // modification, are permitted provided that the following conditions | |
| // are met: | |
| // 1. Redistributions of source code must retain the above copyright | |
| // notice, this list of conditions and the following disclaimer. | |
| // 2. Redistributions in binary form must reproduce the above copyright | |
| // notice, this list of conditions and the following disclaimer in the | |
| // documentation and/or other materials provided with the distribution. | |
| // 3. Neither the name of the copyright holder nor the names of its | |
| // contributors may be used to endorse or promote products derived from this | |
| // software without specific prior written permission. | |
| // | |
| // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |
| // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |
| // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | |
| // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | |
| // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | |
| // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
| // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
| // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | |
| // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| // Generated from ANTLRv4Parser.g4 by ANTLR 4.11.2 | |
| #include "ANTLRv4Parser.h" | |
| #include "ANTLRv4ParserListener.h" | |
| using namespace antlrcpp; | |
| using namespace antlr4_grammar; | |
| using namespace antlr4; | |
| namespace { | |
| struct ANTLRv4ParserStaticData final { | |
| ANTLRv4ParserStaticData(std::vector<std::string> ruleNames, | |
| std::vector<std::string> literalNames, | |
| std::vector<std::string> symbolicNames) | |
| : ruleNames(std::move(ruleNames)), | |
| literalNames(std::move(literalNames)), | |
| symbolicNames(std::move(symbolicNames)), | |
| vocabulary(this->literalNames, this->symbolicNames) {} | |
| ANTLRv4ParserStaticData(const ANTLRv4ParserStaticData &) = delete; | |
| ANTLRv4ParserStaticData(ANTLRv4ParserStaticData &&) = delete; | |
| ANTLRv4ParserStaticData &operator=(const ANTLRv4ParserStaticData &) = delete; | |
| ANTLRv4ParserStaticData &operator=(ANTLRv4ParserStaticData &&) = delete; | |
| std::vector<antlr4::dfa::DFA> decisionToDFA; | |
| antlr4::atn::PredictionContextCache sharedContextCache; | |
| const std::vector<std::string> ruleNames; | |
| const std::vector<std::string> literalNames; | |
| const std::vector<std::string> symbolicNames; | |
| const antlr4::dfa::Vocabulary vocabulary; | |
| antlr4::atn::SerializedATNView serializedATN; | |
| std::unique_ptr<antlr4::atn::ATN> atn; | |
| }; | |
| ::antlr4::internal::OnceFlag antlrv4parserParserOnceFlag; | |
| ANTLRv4ParserStaticData *antlrv4parserParserStaticData = nullptr; | |
| void antlrv4parserParserInitialize() { | |
| assert(antlrv4parserParserStaticData == nullptr); | |
| auto staticData = std::make_unique<ANTLRv4ParserStaticData>( | |
| std::vector<std::string>{"grammarSpec", "grammarDecl", | |
| "grammarType", "prequelConstruct", | |
| "optionsSpec", "option", | |
| "optionValue", "delegateGrammars", | |
| "delegateGrammar", "tokensSpec", | |
| "channelsSpec", "idList", | |
| "action_", "actionScopeName", | |
| "actionBlock", "argActionBlock", | |
| "modeSpec", "rules", | |
| "ruleSpec", "parserRuleSpec", | |
| "exceptionGroup", "exceptionHandler", | |
| "finallyClause", "rulePrequel", | |
| "ruleReturns", "throwsSpec", | |
| "localsSpec", "ruleAction", | |
| "ruleModifiers", "ruleModifier", | |
| "ruleBlock", "ruleAltList", | |
| "labeledAlt", "lexerRuleSpec", | |
| "lexerRuleBlock", "lexerAltList", | |
| "lexerAlt", "lexerElements", | |
| "lexerElement", "labeledLexerElement", | |
| "lexerBlock", "lexerCommands", | |
| "lexerCommand", "lexerCommandName", | |
| "lexerCommandExpr", "altList", | |
| "alternative", "element", | |
| "labeledElement", "ebnf", | |
| "blockSuffix", "ebnfSuffix", | |
| "lexerAtom", "atom", | |
| "notSet", "blockSet", | |
| "setElement", "block", | |
| "ruleref", "characterRange", | |
| "terminal", "elementOptions", | |
| "elementOption", "identifier"}, | |
| std::vector<std::string>{"", "", "", | |
| "", "", "", | |
| "", "", "", | |
| "", "", "", | |
| "", "", "", | |
| "'import'", "'fragment'", "'lexer'", | |
| "'parser'", "'grammar'", "'protected'", | |
| "'public'", "'private'", "'returns'", | |
| "'locals'", "'throws'", "'catch'", | |
| "'finally'", "'mode'"}, | |
| std::vector<std::string>{"", | |
| "TOKEN_REF", | |
| "RULE_REF", | |
| "LEXER_CHAR_SET", | |
| "DOC_COMMENT", | |
| "BLOCK_COMMENT", | |
| "LINE_COMMENT", | |
| "INT", | |
| "STRING_LITERAL", | |
| "UNTERMINATED_STRING_LITERAL", | |
| "BEGIN_ARGUMENT", | |
| "BEGIN_ACTION", | |
| "OPTIONS", | |
| "TOKENS", | |
| "CHANNELS", | |
| "IMPORT", | |
| "FRAGMENT", | |
| "LEXER", | |
| "PARSER", | |
| "GRAMMAR", | |
| "PROTECTED", | |
| "PUBLIC", | |
| "PRIVATE", | |
| "RETURNS", | |
| "LOCALS", | |
| "THROWS", | |
| "CATCH", | |
| "FINALLY", | |
| "MODE", | |
| "COLON", | |
| "COLONCOLON", | |
| "COMMA", | |
| "SEMI", | |
| "LPAREN", | |
| "RPAREN", | |
| "LBRACE", | |
| "RBRACE", | |
| "RARROW", | |
| "LT", | |
| "GT", | |
| "ASSIGN", | |
| "QUESTION", | |
| "STAR", | |
| "PLUS_ASSIGN", | |
| "PLUS", | |
| "OR", | |
| "DOLLAR", | |
| "RANGE", | |
| "DOT", | |
| "AT", | |
| "POUND", | |
| "NOT", | |
| "ID", | |
| "WS", | |
| "ERRCHAR", | |
| "END_ARGUMENT", | |
| "UNTERMINATED_ARGUMENT", | |
| "ARGUMENT_CONTENT", | |
| "END_ACTION", | |
| "UNTERMINATED_ACTION", | |
| "ACTION_CONTENT", | |
| "UNTERMINATED_CHAR_SET"}); | |
| static const int32_t serializedATNSegment[] = { | |
| 4, 1, 61, 626, 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, 1, 0, 1, 0, 5, 0, 131, 8, 0, 10, | |
| 0, 12, 0, 134, 9, 0, 1, 0, 1, 0, 5, 0, 138, 8, 0, | |
| 10, 0, 12, 0, 141, 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, | |
| 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, | |
| 2, 154, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, | |
| 3, 161, 8, 3, 1, 4, 1, 4, 1, 4, 1, 4, 5, 4, 167, | |
| 8, 4, 10, 4, 12, 4, 170, 9, 4, 1, 4, 1, 4, 1, 5, | |
| 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 5, 6, 181, | |
| 8, 6, 10, 6, 12, 6, 184, 9, 6, 1, 6, 1, 6, 1, 6, | |
| 3, 6, 189, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 5, 7, | |
| 195, 8, 7, 10, 7, 12, 7, 198, 9, 7, 1, 7, 1, 7, 1, | |
| 8, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 207, 8, 8, 1, | |
| 9, 1, 9, 3, 9, 211, 8, 9, 1, 9, 1, 9, 1, 10, 1, | |
| 10, 3, 10, 217, 8, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, | |
| 11, 5, 11, 224, 8, 11, 10, 11, 12, 11, 227, 9, 11, 1, 11, | |
| 3, 11, 230, 8, 11, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, | |
| 236, 8, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, | |
| 3, 13, 244, 8, 13, 1, 14, 1, 14, 5, 14, 248, 8, 14, 10, | |
| 14, 12, 14, 251, 9, 14, 1, 14, 1, 14, 1, 15, 1, 15, 5, | |
| 15, 257, 8, 15, 10, 15, 12, 15, 260, 9, 15, 1, 15, 1, 15, | |
| 1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 268, 8, 16, 10, 16, | |
| 12, 16, 271, 9, 16, 1, 17, 5, 17, 274, 8, 17, 10, 17, 12, | |
| 17, 277, 9, 17, 1, 18, 1, 18, 3, 18, 281, 8, 18, 1, 19, | |
| 3, 19, 284, 8, 19, 1, 19, 1, 19, 3, 19, 288, 8, 19, 1, | |
| 19, 3, 19, 291, 8, 19, 1, 19, 3, 19, 294, 8, 19, 1, 19, | |
| 3, 19, 297, 8, 19, 1, 19, 5, 19, 300, 8, 19, 10, 19, 12, | |
| 19, 303, 9, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, | |
| 20, 5, 20, 311, 8, 20, 10, 20, 12, 20, 314, 9, 20, 1, 20, | |
| 3, 20, 317, 8, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, | |
| 1, 22, 1, 22, 1, 23, 1, 23, 3, 23, 328, 8, 23, 1, 24, | |
| 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 5, 25, 337, | |
| 8, 25, 10, 25, 12, 25, 340, 9, 25, 1, 26, 1, 26, 1, 26, | |
| 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 4, 28, 350, 8, 28, | |
| 11, 28, 12, 28, 351, 1, 29, 1, 29, 1, 30, 1, 30, 1, 31, | |
| 1, 31, 1, 31, 5, 31, 361, 8, 31, 10, 31, 12, 31, 364, 9, | |
| 31, 1, 32, 1, 32, 1, 32, 3, 32, 369, 8, 32, 1, 33, 3, | |
| 33, 372, 8, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, | |
| 34, 1, 34, 1, 35, 1, 35, 1, 35, 5, 35, 384, 8, 35, 10, | |
| 35, 12, 35, 387, 9, 35, 1, 36, 1, 36, 3, 36, 391, 8, 36, | |
| 1, 36, 3, 36, 394, 8, 36, 1, 37, 4, 37, 397, 8, 37, 11, | |
| 37, 12, 37, 398, 1, 37, 3, 37, 402, 8, 37, 1, 38, 1, 38, | |
| 3, 38, 406, 8, 38, 1, 38, 1, 38, 3, 38, 410, 8, 38, 1, | |
| 38, 1, 38, 3, 38, 414, 8, 38, 1, 38, 1, 38, 3, 38, 418, | |
| 8, 38, 3, 38, 420, 8, 38, 1, 39, 1, 39, 1, 39, 1, 39, | |
| 3, 39, 426, 8, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, | |
| 1, 41, 1, 41, 1, 41, 5, 41, 436, 8, 41, 10, 41, 12, 41, | |
| 439, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, | |
| 3, 42, 447, 8, 42, 1, 43, 1, 43, 3, 43, 451, 8, 43, 1, | |
| 44, 1, 44, 3, 44, 455, 8, 44, 1, 45, 1, 45, 1, 45, 5, | |
| 45, 460, 8, 45, 10, 45, 12, 45, 463, 9, 45, 1, 46, 3, 46, | |
| 466, 8, 46, 1, 46, 4, 46, 469, 8, 46, 11, 46, 12, 46, 470, | |
| 1, 46, 3, 46, 474, 8, 46, 1, 47, 1, 47, 1, 47, 3, 47, | |
| 479, 8, 47, 1, 47, 1, 47, 1, 47, 3, 47, 484, 8, 47, 1, | |
| 47, 1, 47, 1, 47, 3, 47, 489, 8, 47, 3, 47, 491, 8, 47, | |
| 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 497, 8, 48, 1, 49, | |
| 1, 49, 3, 49, 501, 8, 49, 1, 50, 1, 50, 1, 51, 1, 51, | |
| 3, 51, 507, 8, 51, 1, 51, 1, 51, 3, 51, 511, 8, 51, 1, | |
| 51, 1, 51, 3, 51, 515, 8, 51, 3, 51, 517, 8, 51, 1, 52, | |
| 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, 525, 8, 52, | |
| 3, 52, 527, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, | |
| 3, 53, 534, 8, 53, 3, 53, 536, 8, 53, 1, 54, 1, 54, 1, | |
| 54, 1, 54, 3, 54, 542, 8, 54, 1, 55, 1, 55, 1, 55, 1, | |
| 55, 5, 55, 548, 8, 55, 10, 55, 12, 55, 551, 9, 55, 1, 55, | |
| 1, 55, 1, 56, 1, 56, 3, 56, 557, 8, 56, 1, 56, 1, 56, | |
| 3, 56, 561, 8, 56, 1, 56, 1, 56, 3, 56, 565, 8, 56, 1, | |
| 57, 1, 57, 3, 57, 569, 8, 57, 1, 57, 5, 57, 572, 8, 57, | |
| 10, 57, 12, 57, 575, 9, 57, 1, 57, 3, 57, 578, 8, 57, 1, | |
| 57, 1, 57, 1, 57, 1, 58, 1, 58, 3, 58, 585, 8, 58, 1, | |
| 58, 3, 58, 588, 8, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, | |
| 60, 1, 60, 3, 60, 596, 8, 60, 1, 60, 1, 60, 3, 60, 600, | |
| 8, 60, 3, 60, 602, 8, 60, 1, 61, 1, 61, 1, 61, 1, 61, | |
| 5, 61, 608, 8, 61, 10, 61, 12, 61, 611, 9, 61, 1, 61, 1, | |
| 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 3, 62, 620, 8, | |
| 62, 3, 62, 622, 8, 62, 1, 63, 1, 63, 1, 63, 0, 0, 64, | |
| 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, 0, 3, 2, 0, 16, 16, 20, 22, 2, 0, 40, | |
| 40, 43, 43, 1, 0, 1, 2, 663, 0, 128, 1, 0, 0, 0, 2, | |
| 144, 1, 0, 0, 0, 4, 153, 1, 0, 0, 0, 6, 160, 1, 0, | |
| 0, 0, 8, 162, 1, 0, 0, 0, 10, 173, 1, 0, 0, 0, 12, | |
| 188, 1, 0, 0, 0, 14, 190, 1, 0, 0, 0, 16, 206, 1, 0, | |
| 0, 0, 18, 208, 1, 0, 0, 0, 20, 214, 1, 0, 0, 0, 22, | |
| 220, 1, 0, 0, 0, 24, 231, 1, 0, 0, 0, 26, 243, 1, 0, | |
| 0, 0, 28, 245, 1, 0, 0, 0, 30, 254, 1, 0, 0, 0, 32, | |
| 263, 1, 0, 0, 0, 34, 275, 1, 0, 0, 0, 36, 280, 1, 0, | |
| 0, 0, 38, 283, 1, 0, 0, 0, 40, 312, 1, 0, 0, 0, 42, | |
| 318, 1, 0, 0, 0, 44, 322, 1, 0, 0, 0, 46, 327, 1, 0, | |
| 0, 0, 48, 329, 1, 0, 0, 0, 50, 332, 1, 0, 0, 0, 52, | |
| 341, 1, 0, 0, 0, 54, 344, 1, 0, 0, 0, 56, 349, 1, 0, | |
| 0, 0, 58, 353, 1, 0, 0, 0, 60, 355, 1, 0, 0, 0, 62, | |
| 357, 1, 0, 0, 0, 64, 365, 1, 0, 0, 0, 66, 371, 1, 0, | |
| 0, 0, 68, 378, 1, 0, 0, 0, 70, 380, 1, 0, 0, 0, 72, | |
| 393, 1, 0, 0, 0, 74, 401, 1, 0, 0, 0, 76, 419, 1, 0, | |
| 0, 0, 78, 421, 1, 0, 0, 0, 80, 427, 1, 0, 0, 0, 82, | |
| 431, 1, 0, 0, 0, 84, 446, 1, 0, 0, 0, 86, 450, 1, 0, | |
| 0, 0, 88, 454, 1, 0, 0, 0, 90, 456, 1, 0, 0, 0, 92, | |
| 473, 1, 0, 0, 0, 94, 490, 1, 0, 0, 0, 96, 492, 1, 0, | |
| 0, 0, 98, 498, 1, 0, 0, 0, 100, 502, 1, 0, 0, 0, 102, | |
| 516, 1, 0, 0, 0, 104, 526, 1, 0, 0, 0, 106, 535, 1, 0, | |
| 0, 0, 108, 541, 1, 0, 0, 0, 110, 543, 1, 0, 0, 0, 112, | |
| 564, 1, 0, 0, 0, 114, 566, 1, 0, 0, 0, 116, 582, 1, 0, | |
| 0, 0, 118, 589, 1, 0, 0, 0, 120, 601, 1, 0, 0, 0, 122, | |
| 603, 1, 0, 0, 0, 124, 621, 1, 0, 0, 0, 126, 623, 1, 0, | |
| 0, 0, 128, 132, 3, 2, 1, 0, 129, 131, 3, 6, 3, 0, 130, | |
| 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130, 1, 0, | |
| 0, 0, 132, 133, 1, 0, 0, 0, 133, 135, 1, 0, 0, 0, 134, | |
| 132, 1, 0, 0, 0, 135, 139, 3, 34, 17, 0, 136, 138, 3, 32, | |
| 16, 0, 137, 136, 1, 0, 0, 0, 138, 141, 1, 0, 0, 0, 139, | |
| 137, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 142, 1, 0, | |
| 0, 0, 141, 139, 1, 0, 0, 0, 142, 143, 5, 0, 0, 1, 143, | |
| 1, 1, 0, 0, 0, 144, 145, 3, 4, 2, 0, 145, 146, 3, 126, | |
| 63, 0, 146, 147, 5, 32, 0, 0, 147, 3, 1, 0, 0, 0, 148, | |
| 149, 5, 17, 0, 0, 149, 154, 5, 19, 0, 0, 150, 151, 5, 18, | |
| 0, 0, 151, 154, 5, 19, 0, 0, 152, 154, 5, 19, 0, 0, 153, | |
| 148, 1, 0, 0, 0, 153, 150, 1, 0, 0, 0, 153, 152, 1, 0, | |
| 0, 0, 154, 5, 1, 0, 0, 0, 155, 161, 3, 8, 4, 0, 156, | |
| 161, 3, 14, 7, 0, 157, 161, 3, 18, 9, 0, 158, 161, 3, 20, | |
| 10, 0, 159, 161, 3, 24, 12, 0, 160, 155, 1, 0, 0, 0, 160, | |
| 156, 1, 0, 0, 0, 160, 157, 1, 0, 0, 0, 160, 158, 1, 0, | |
| 0, 0, 160, 159, 1, 0, 0, 0, 161, 7, 1, 0, 0, 0, 162, | |
| 168, 5, 12, 0, 0, 163, 164, 3, 10, 5, 0, 164, 165, 5, 32, | |
| 0, 0, 165, 167, 1, 0, 0, 0, 166, 163, 1, 0, 0, 0, 167, | |
| 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 169, 1, 0, | |
| 0, 0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, | |
| 172, 5, 36, 0, 0, 172, 9, 1, 0, 0, 0, 173, 174, 3, 126, | |
| 63, 0, 174, 175, 5, 40, 0, 0, 175, 176, 3, 12, 6, 0, 176, | |
| 11, 1, 0, 0, 0, 177, 182, 3, 126, 63, 0, 178, 179, 5, 48, | |
| 0, 0, 179, 181, 3, 126, 63, 0, 180, 178, 1, 0, 0, 0, 181, | |
| 184, 1, 0, 0, 0, 182, 180, 1, 0, 0, 0, 182, 183, 1, 0, | |
| 0, 0, 183, 189, 1, 0, 0, 0, 184, 182, 1, 0, 0, 0, 185, | |
| 189, 5, 8, 0, 0, 186, 189, 3, 28, 14, 0, 187, 189, 5, 7, | |
| 0, 0, 188, 177, 1, 0, 0, 0, 188, 185, 1, 0, 0, 0, 188, | |
| 186, 1, 0, 0, 0, 188, 187, 1, 0, 0, 0, 189, 13, 1, 0, | |
| 0, 0, 190, 191, 5, 15, 0, 0, 191, 196, 3, 16, 8, 0, 192, | |
| 193, 5, 31, 0, 0, 193, 195, 3, 16, 8, 0, 194, 192, 1, 0, | |
| 0, 0, 195, 198, 1, 0, 0, 0, 196, 194, 1, 0, 0, 0, 196, | |
| 197, 1, 0, 0, 0, 197, 199, 1, 0, 0, 0, 198, 196, 1, 0, | |
| 0, 0, 199, 200, 5, 32, 0, 0, 200, 15, 1, 0, 0, 0, 201, | |
| 202, 3, 126, 63, 0, 202, 203, 5, 40, 0, 0, 203, 204, 3, 126, | |
| 63, 0, 204, 207, 1, 0, 0, 0, 205, 207, 3, 126, 63, 0, 206, | |
| 201, 1, 0, 0, 0, 206, 205, 1, 0, 0, 0, 207, 17, 1, 0, | |
| 0, 0, 208, 210, 5, 13, 0, 0, 209, 211, 3, 22, 11, 0, 210, | |
| 209, 1, 0, 0, 0, 210, 211, 1, 0, 0, 0, 211, 212, 1, 0, | |
| 0, 0, 212, 213, 5, 36, 0, 0, 213, 19, 1, 0, 0, 0, 214, | |
| 216, 5, 14, 0, 0, 215, 217, 3, 22, 11, 0, 216, 215, 1, 0, | |
| 0, 0, 216, 217, 1, 0, 0, 0, 217, 218, 1, 0, 0, 0, 218, | |
| 219, 5, 36, 0, 0, 219, 21, 1, 0, 0, 0, 220, 225, 3, 126, | |
| 63, 0, 221, 222, 5, 31, 0, 0, 222, 224, 3, 126, 63, 0, 223, | |
| 221, 1, 0, 0, 0, 224, 227, 1, 0, 0, 0, 225, 223, 1, 0, | |
| 0, 0, 225, 226, 1, 0, 0, 0, 226, 229, 1, 0, 0, 0, 227, | |
| 225, 1, 0, 0, 0, 228, 230, 5, 31, 0, 0, 229, 228, 1, 0, | |
| 0, 0, 229, 230, 1, 0, 0, 0, 230, 23, 1, 0, 0, 0, 231, | |
| 235, 5, 49, 0, 0, 232, 233, 3, 26, 13, 0, 233, 234, 5, 30, | |
| 0, 0, 234, 236, 1, 0, 0, 0, 235, 232, 1, 0, 0, 0, 235, | |
| 236, 1, 0, 0, 0, 236, 237, 1, 0, 0, 0, 237, 238, 3, 126, | |
| 63, 0, 238, 239, 3, 28, 14, 0, 239, 25, 1, 0, 0, 0, 240, | |
| 244, 3, 126, 63, 0, 241, 244, 5, 17, 0, 0, 242, 244, 5, 18, | |
| 0, 0, 243, 240, 1, 0, 0, 0, 243, 241, 1, 0, 0, 0, 243, | |
| 242, 1, 0, 0, 0, 244, 27, 1, 0, 0, 0, 245, 249, 5, 11, | |
| 0, 0, 246, 248, 5, 60, 0, 0, 247, 246, 1, 0, 0, 0, 248, | |
| 251, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 249, 250, 1, 0, | |
| 0, 0, 250, 252, 1, 0, 0, 0, 251, 249, 1, 0, 0, 0, 252, | |
| 253, 5, 58, 0, 0, 253, 29, 1, 0, 0, 0, 254, 258, 5, 10, | |
| 0, 0, 255, 257, 5, 57, 0, 0, 256, 255, 1, 0, 0, 0, 257, | |
| 260, 1, 0, 0, 0, 258, 256, 1, 0, 0, 0, 258, 259, 1, 0, | |
| 0, 0, 259, 261, 1, 0, 0, 0, 260, 258, 1, 0, 0, 0, 261, | |
| 262, 5, 55, 0, 0, 262, 31, 1, 0, 0, 0, 263, 264, 5, 28, | |
| 0, 0, 264, 265, 3, 126, 63, 0, 265, 269, 5, 32, 0, 0, 266, | |
| 268, 3, 66, 33, 0, 267, 266, 1, 0, 0, 0, 268, 271, 1, 0, | |
| 0, 0, 269, 267, 1, 0, 0, 0, 269, 270, 1, 0, 0, 0, 270, | |
| 33, 1, 0, 0, 0, 271, 269, 1, 0, 0, 0, 272, 274, 3, 36, | |
| 18, 0, 273, 272, 1, 0, 0, 0, 274, 277, 1, 0, 0, 0, 275, | |
| 273, 1, 0, 0, 0, 275, 276, 1, 0, 0, 0, 276, 35, 1, 0, | |
| 0, 0, 277, 275, 1, 0, 0, 0, 278, 281, 3, 38, 19, 0, 279, | |
| 281, 3, 66, 33, 0, 280, 278, 1, 0, 0, 0, 280, 279, 1, 0, | |
| 0, 0, 281, 37, 1, 0, 0, 0, 282, 284, 3, 56, 28, 0, 283, | |
| 282, 1, 0, 0, 0, 283, 284, 1, 0, 0, 0, 284, 285, 1, 0, | |
| 0, 0, 285, 287, 5, 2, 0, 0, 286, 288, 3, 30, 15, 0, 287, | |
| 286, 1, 0, 0, 0, 287, 288, 1, 0, 0, 0, 288, 290, 1, 0, | |
| 0, 0, 289, 291, 3, 48, 24, 0, 290, 289, 1, 0, 0, 0, 290, | |
| 291, 1, 0, 0, 0, 291, 293, 1, 0, 0, 0, 292, 294, 3, 50, | |
| 25, 0, 293, 292, 1, 0, 0, 0, 293, 294, 1, 0, 0, 0, 294, | |
| 296, 1, 0, 0, 0, 295, 297, 3, 52, 26, 0, 296, 295, 1, 0, | |
| 0, 0, 296, 297, 1, 0, 0, 0, 297, 301, 1, 0, 0, 0, 298, | |
| 300, 3, 46, 23, 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, 29, | |
| 0, 0, 305, 306, 3, 60, 30, 0, 306, 307, 5, 32, 0, 0, 307, | |
| 308, 3, 40, 20, 0, 308, 39, 1, 0, 0, 0, 309, 311, 3, 42, | |
| 21, 0, 310, 309, 1, 0, 0, 0, 311, 314, 1, 0, 0, 0, 312, | |
| 310, 1, 0, 0, 0, 312, 313, 1, 0, 0, 0, 313, 316, 1, 0, | |
| 0, 0, 314, 312, 1, 0, 0, 0, 315, 317, 3, 44, 22, 0, 316, | |
| 315, 1, 0, 0, 0, 316, 317, 1, 0, 0, 0, 317, 41, 1, 0, | |
| 0, 0, 318, 319, 5, 26, 0, 0, 319, 320, 3, 30, 15, 0, 320, | |
| 321, 3, 28, 14, 0, 321, 43, 1, 0, 0, 0, 322, 323, 5, 27, | |
| 0, 0, 323, 324, 3, 28, 14, 0, 324, 45, 1, 0, 0, 0, 325, | |
| 328, 3, 8, 4, 0, 326, 328, 3, 54, 27, 0, 327, 325, 1, 0, | |
| 0, 0, 327, 326, 1, 0, 0, 0, 328, 47, 1, 0, 0, 0, 329, | |
| 330, 5, 23, 0, 0, 330, 331, 3, 30, 15, 0, 331, 49, 1, 0, | |
| 0, 0, 332, 333, 5, 25, 0, 0, 333, 338, 3, 126, 63, 0, 334, | |
| 335, 5, 31, 0, 0, 335, 337, 3, 126, 63, 0, 336, 334, 1, 0, | |
| 0, 0, 337, 340, 1, 0, 0, 0, 338, 336, 1, 0, 0, 0, 338, | |
| 339, 1, 0, 0, 0, 339, 51, 1, 0, 0, 0, 340, 338, 1, 0, | |
| 0, 0, 341, 342, 5, 24, 0, 0, 342, 343, 3, 30, 15, 0, 343, | |
| 53, 1, 0, 0, 0, 344, 345, 5, 49, 0, 0, 345, 346, 3, 126, | |
| 63, 0, 346, 347, 3, 28, 14, 0, 347, 55, 1, 0, 0, 0, 348, | |
| 350, 3, 58, 29, 0, 349, 348, 1, 0, 0, 0, 350, 351, 1, 0, | |
| 0, 0, 351, 349, 1, 0, 0, 0, 351, 352, 1, 0, 0, 0, 352, | |
| 57, 1, 0, 0, 0, 353, 354, 7, 0, 0, 0, 354, 59, 1, 0, | |
| 0, 0, 355, 356, 3, 62, 31, 0, 356, 61, 1, 0, 0, 0, 357, | |
| 362, 3, 64, 32, 0, 358, 359, 5, 45, 0, 0, 359, 361, 3, 64, | |
| 32, 0, 360, 358, 1, 0, 0, 0, 361, 364, 1, 0, 0, 0, 362, | |
| 360, 1, 0, 0, 0, 362, 363, 1, 0, 0, 0, 363, 63, 1, 0, | |
| 0, 0, 364, 362, 1, 0, 0, 0, 365, 368, 3, 92, 46, 0, 366, | |
| 367, 5, 50, 0, 0, 367, 369, 3, 126, 63, 0, 368, 366, 1, 0, | |
| 0, 0, 368, 369, 1, 0, 0, 0, 369, 65, 1, 0, 0, 0, 370, | |
| 372, 5, 16, 0, 0, 371, 370, 1, 0, 0, 0, 371, 372, 1, 0, | |
| 0, 0, 372, 373, 1, 0, 0, 0, 373, 374, 5, 1, 0, 0, 374, | |
| 375, 5, 29, 0, 0, 375, 376, 3, 68, 34, 0, 376, 377, 5, 32, | |
| 0, 0, 377, 67, 1, 0, 0, 0, 378, 379, 3, 70, 35, 0, 379, | |
| 69, 1, 0, 0, 0, 380, 385, 3, 72, 36, 0, 381, 382, 5, 45, | |
| 0, 0, 382, 384, 3, 72, 36, 0, 383, 381, 1, 0, 0, 0, 384, | |
| 387, 1, 0, 0, 0, 385, 383, 1, 0, 0, 0, 385, 386, 1, 0, | |
| 0, 0, 386, 71, 1, 0, 0, 0, 387, 385, 1, 0, 0, 0, 388, | |
| 390, 3, 74, 37, 0, 389, 391, 3, 82, 41, 0, 390, 389, 1, 0, | |
| 0, 0, 390, 391, 1, 0, 0, 0, 391, 394, 1, 0, 0, 0, 392, | |
| 394, 1, 0, 0, 0, 393, 388, 1, 0, 0, 0, 393, 392, 1, 0, | |
| 0, 0, 394, 73, 1, 0, 0, 0, 395, 397, 3, 76, 38, 0, 396, | |
| 395, 1, 0, 0, 0, 397, 398, 1, 0, 0, 0, 398, 396, 1, 0, | |
| 0, 0, 398, 399, 1, 0, 0, 0, 399, 402, 1, 0, 0, 0, 400, | |
| 402, 1, 0, 0, 0, 401, 396, 1, 0, 0, 0, 401, 400, 1, 0, | |
| 0, 0, 402, 75, 1, 0, 0, 0, 403, 405, 3, 78, 39, 0, 404, | |
| 406, 3, 102, 51, 0, 405, 404, 1, 0, 0, 0, 405, 406, 1, 0, | |
| 0, 0, 406, 420, 1, 0, 0, 0, 407, 409, 3, 104, 52, 0, 408, | |
| 410, 3, 102, 51, 0, 409, 408, 1, 0, 0, 0, 409, 410, 1, 0, | |
| 0, 0, 410, 420, 1, 0, 0, 0, 411, 413, 3, 80, 40, 0, 412, | |
| 414, 3, 102, 51, 0, 413, 412, 1, 0, 0, 0, 413, 414, 1, 0, | |
| 0, 0, 414, 420, 1, 0, 0, 0, 415, 417, 3, 28, 14, 0, 416, | |
| 418, 5, 41, 0, 0, 417, 416, 1, 0, 0, 0, 417, 418, 1, 0, | |
| 0, 0, 418, 420, 1, 0, 0, 0, 419, 403, 1, 0, 0, 0, 419, | |
| 407, 1, 0, 0, 0, 419, 411, 1, 0, 0, 0, 419, 415, 1, 0, | |
| 0, 0, 420, 77, 1, 0, 0, 0, 421, 422, 3, 126, 63, 0, 422, | |
| 425, 7, 1, 0, 0, 423, 426, 3, 104, 52, 0, 424, 426, 3, 80, | |
| 40, 0, 425, 423, 1, 0, 0, 0, 425, 424, 1, 0, 0, 0, 426, | |
| 79, 1, 0, 0, 0, 427, 428, 5, 33, 0, 0, 428, 429, 3, 70, | |
| 35, 0, 429, 430, 5, 34, 0, 0, 430, 81, 1, 0, 0, 0, 431, | |
| 432, 5, 37, 0, 0, 432, 437, 3, 84, 42, 0, 433, 434, 5, 31, | |
| 0, 0, 434, 436, 3, 84, 42, 0, 435, 433, 1, 0, 0, 0, 436, | |
| 439, 1, 0, 0, 0, 437, 435, 1, 0, 0, 0, 437, 438, 1, 0, | |
| 0, 0, 438, 83, 1, 0, 0, 0, 439, 437, 1, 0, 0, 0, 440, | |
| 441, 3, 86, 43, 0, 441, 442, 5, 33, 0, 0, 442, 443, 3, 88, | |
| 44, 0, 443, 444, 5, 34, 0, 0, 444, 447, 1, 0, 0, 0, 445, | |
| 447, 3, 86, 43, 0, 446, 440, 1, 0, 0, 0, 446, 445, 1, 0, | |
| 0, 0, 447, 85, 1, 0, 0, 0, 448, 451, 3, 126, 63, 0, 449, | |
| 451, 5, 28, 0, 0, 450, 448, 1, 0, 0, 0, 450, 449, 1, 0, | |
| 0, 0, 451, 87, 1, 0, 0, 0, 452, 455, 3, 126, 63, 0, 453, | |
| 455, 5, 7, 0, 0, 454, 452, 1, 0, 0, 0, 454, 453, 1, 0, | |
| 0, 0, 455, 89, 1, 0, 0, 0, 456, 461, 3, 92, 46, 0, 457, | |
| 458, 5, 45, 0, 0, 458, 460, 3, 92, 46, 0, 459, 457, 1, 0, | |
| 0, 0, 460, 463, 1, 0, 0, 0, 461, 459, 1, 0, 0, 0, 461, | |
| 462, 1, 0, 0, 0, 462, 91, 1, 0, 0, 0, 463, 461, 1, 0, | |
| 0, 0, 464, 466, 3, 122, 61, 0, 465, 464, 1, 0, 0, 0, 465, | |
| 466, 1, 0, 0, 0, 466, 468, 1, 0, 0, 0, 467, 469, 3, 94, | |
| 47, 0, 468, 467, 1, 0, 0, 0, 469, 470, 1, 0, 0, 0, 470, | |
| 468, 1, 0, 0, 0, 470, 471, 1, 0, 0, 0, 471, 474, 1, 0, | |
| 0, 0, 472, 474, 1, 0, 0, 0, 473, 465, 1, 0, 0, 0, 473, | |
| 472, 1, 0, 0, 0, 474, 93, 1, 0, 0, 0, 475, 478, 3, 96, | |
| 48, 0, 476, 479, 3, 102, 51, 0, 477, 479, 1, 0, 0, 0, 478, | |
| 476, 1, 0, 0, 0, 478, 477, 1, 0, 0, 0, 479, 491, 1, 0, | |
| 0, 0, 480, 483, 3, 106, 53, 0, 481, 484, 3, 102, 51, 0, 482, | |
| 484, 1, 0, 0, 0, 483, 481, 1, 0, 0, 0, 483, 482, 1, 0, | |
| 0, 0, 484, 491, 1, 0, 0, 0, 485, 491, 3, 98, 49, 0, 486, | |
| 488, 3, 28, 14, 0, 487, 489, 5, 41, 0, 0, 488, 487, 1, 0, | |
| 0, 0, 488, 489, 1, 0, 0, 0, 489, 491, 1, 0, 0, 0, 490, | |
| 475, 1, 0, 0, 0, 490, 480, 1, 0, 0, 0, 490, 485, 1, 0, | |
| 0, 0, 490, 486, 1, 0, 0, 0, 491, 95, 1, 0, 0, 0, 492, | |
| 493, 3, 126, 63, 0, 493, 496, 7, 1, 0, 0, 494, 497, 3, 106, | |
| 53, 0, 495, 497, 3, 114, 57, 0, 496, 494, 1, 0, 0, 0, 496, | |
| 495, 1, 0, 0, 0, 497, 97, 1, 0, 0, 0, 498, 500, 3, 114, | |
| 57, 0, 499, 501, 3, 100, 50, 0, 500, 499, 1, 0, 0, 0, 500, | |
| 501, 1, 0, 0, 0, 501, 99, 1, 0, 0, 0, 502, 503, 3, 102, | |
| 51, 0, 503, 101, 1, 0, 0, 0, 504, 506, 5, 41, 0, 0, 505, | |
| 507, 5, 41, 0, 0, 506, 505, 1, 0, 0, 0, 506, 507, 1, 0, | |
| 0, 0, 507, 517, 1, 0, 0, 0, 508, 510, 5, 42, 0, 0, 509, | |
| 511, 5, 41, 0, 0, 510, 509, 1, 0, 0, 0, 510, 511, 1, 0, | |
| 0, 0, 511, 517, 1, 0, 0, 0, 512, 514, 5, 44, 0, 0, 513, | |
| 515, 5, 41, 0, 0, 514, 513, 1, 0, 0, 0, 514, 515, 1, 0, | |
| 0, 0, 515, 517, 1, 0, 0, 0, 516, 504, 1, 0, 0, 0, 516, | |
| 508, 1, 0, 0, 0, 516, 512, 1, 0, 0, 0, 517, 103, 1, 0, | |
| 0, 0, 518, 527, 3, 118, 59, 0, 519, 527, 3, 120, 60, 0, 520, | |
| 527, 3, 108, 54, 0, 521, 527, 5, 3, 0, 0, 522, 524, 5, 48, | |
| 0, 0, 523, 525, 3, 122, 61, 0, 524, 523, 1, 0, 0, 0, 524, | |
| 525, 1, 0, 0, 0, 525, 527, 1, 0, 0, 0, 526, 518, 1, 0, | |
| 0, 0, 526, 519, 1, 0, 0, 0, 526, 520, 1, 0, 0, 0, 526, | |
| 521, 1, 0, 0, 0, 526, 522, 1, 0, 0, 0, 527, 105, 1, 0, | |
| 0, 0, 528, 536, 3, 120, 60, 0, 529, 536, 3, 116, 58, 0, 530, | |
| 536, 3, 108, 54, 0, 531, 533, 5, 48, 0, 0, 532, 534, 3, 122, | |
| 61, 0, 533, 532, 1, 0, 0, 0, 533, 534, 1, 0, 0, 0, 534, | |
| 536, 1, 0, 0, 0, 535, 528, 1, 0, 0, 0, 535, 529, 1, 0, | |
| 0, 0, 535, 530, 1, 0, 0, 0, 535, 531, 1, 0, 0, 0, 536, | |
| 107, 1, 0, 0, 0, 537, 538, 5, 51, 0, 0, 538, 542, 3, 112, | |
| 56, 0, 539, 540, 5, 51, 0, 0, 540, 542, 3, 110, 55, 0, 541, | |
| 537, 1, 0, 0, 0, 541, 539, 1, 0, 0, 0, 542, 109, 1, 0, | |
| 0, 0, 543, 544, 5, 33, 0, 0, 544, 549, 3, 112, 56, 0, 545, | |
| 546, 5, 45, 0, 0, 546, 548, 3, 112, 56, 0, 547, 545, 1, 0, | |
| 0, 0, 548, 551, 1, 0, 0, 0, 549, 547, 1, 0, 0, 0, 549, | |
| 550, 1, 0, 0, 0, 550, 552, 1, 0, 0, 0, 551, 549, 1, 0, | |
| 0, 0, 552, 553, 5, 34, 0, 0, 553, 111, 1, 0, 0, 0, 554, | |
| 556, 5, 1, 0, 0, 555, 557, 3, 122, 61, 0, 556, 555, 1, 0, | |
| 0, 0, 556, 557, 1, 0, 0, 0, 557, 565, 1, 0, 0, 0, 558, | |
| 560, 5, 8, 0, 0, 559, 561, 3, 122, 61, 0, 560, 559, 1, 0, | |
| 0, 0, 560, 561, 1, 0, 0, 0, 561, 565, 1, 0, 0, 0, 562, | |
| 565, 3, 118, 59, 0, 563, 565, 5, 3, 0, 0, 564, 554, 1, 0, | |
| 0, 0, 564, 558, 1, 0, 0, 0, 564, 562, 1, 0, 0, 0, 564, | |
| 563, 1, 0, 0, 0, 565, 113, 1, 0, 0, 0, 566, 577, 5, 33, | |
| 0, 0, 567, 569, 3, 8, 4, 0, 568, 567, 1, 0, 0, 0, 568, | |
| 569, 1, 0, 0, 0, 569, 573, 1, 0, 0, 0, 570, 572, 3, 54, | |
| 27, 0, 571, 570, 1, 0, 0, 0, 572, 575, 1, 0, 0, 0, 573, | |
| 571, 1, 0, 0, 0, 573, 574, 1, 0, 0, 0, 574, 576, 1, 0, | |
| 0, 0, 575, 573, 1, 0, 0, 0, 576, 578, 5, 29, 0, 0, 577, | |
| 568, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 579, 1, 0, | |
| 0, 0, 579, 580, 3, 90, 45, 0, 580, 581, 5, 34, 0, 0, 581, | |
| 115, 1, 0, 0, 0, 582, 584, 5, 2, 0, 0, 583, 585, 3, 30, | |
| 15, 0, 584, 583, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585, | |
| 587, 1, 0, 0, 0, 586, 588, 3, 122, 61, 0, 587, 586, 1, 0, | |
| 0, 0, 587, 588, 1, 0, 0, 0, 588, 117, 1, 0, 0, 0, 589, | |
| 590, 5, 8, 0, 0, 590, 591, 5, 47, 0, 0, 591, 592, 5, 8, | |
| 0, 0, 592, 119, 1, 0, 0, 0, 593, 595, 5, 1, 0, 0, 594, | |
| 596, 3, 122, 61, 0, 595, 594, 1, 0, 0, 0, 595, 596, 1, 0, | |
| 0, 0, 596, 602, 1, 0, 0, 0, 597, 599, 5, 8, 0, 0, 598, | |
| 600, 3, 122, 61, 0, 599, 598, 1, 0, 0, 0, 599, 600, 1, 0, | |
| 0, 0, 600, 602, 1, 0, 0, 0, 601, 593, 1, 0, 0, 0, 601, | |
| 597, 1, 0, 0, 0, 602, 121, 1, 0, 0, 0, 603, 604, 5, 38, | |
| 0, 0, 604, 609, 3, 124, 62, 0, 605, 606, 5, 31, 0, 0, 606, | |
| 608, 3, 124, 62, 0, 607, 605, 1, 0, 0, 0, 608, 611, 1, 0, | |
| 0, 0, 609, 607, 1, 0, 0, 0, 609, 610, 1, 0, 0, 0, 610, | |
| 612, 1, 0, 0, 0, 611, 609, 1, 0, 0, 0, 612, 613, 5, 39, | |
| 0, 0, 613, 123, 1, 0, 0, 0, 614, 622, 3, 126, 63, 0, 615, | |
| 616, 3, 126, 63, 0, 616, 619, 5, 40, 0, 0, 617, 620, 3, 126, | |
| 63, 0, 618, 620, 5, 8, 0, 0, 619, 617, 1, 0, 0, 0, 619, | |
| 618, 1, 0, 0, 0, 620, 622, 1, 0, 0, 0, 621, 614, 1, 0, | |
| 0, 0, 621, 615, 1, 0, 0, 0, 622, 125, 1, 0, 0, 0, 623, | |
| 624, 7, 2, 0, 0, 624, 127, 1, 0, 0, 0, 83, 132, 139, 153, | |
| 160, 168, 182, 188, 196, 206, 210, 216, 225, 229, 235, 243, 249, 258, 269, | |
| 275, 280, 283, 287, 290, 293, 296, 301, 312, 316, 327, 338, 351, 362, 368, | |
| 371, 385, 390, 393, 398, 401, 405, 409, 413, 417, 419, 425, 437, 446, 450, | |
| 454, 461, 465, 470, 473, 478, 483, 488, 490, 496, 500, 506, 510, 514, 516, | |
| 524, 526, 533, 535, 541, 549, 556, 560, 564, 568, 573, 577, 584, 587, 595, | |
| 599, 601, 609, 619, 621}; | |
| staticData->serializedATN = antlr4::atn::SerializedATNView( | |
| serializedATNSegment, | |
| sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0])); | |
| antlr4::atn::ATNDeserializer deserializer; | |
| staticData->atn = deserializer.deserialize(staticData->serializedATN); | |
| const size_t count = staticData->atn->getNumberOfDecisions(); | |
| staticData->decisionToDFA.reserve(count); | |
| for (size_t i = 0; i < count; i++) { | |
| staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), | |
| i); | |
| } | |
| antlrv4parserParserStaticData = staticData.release(); | |
| } | |
| } // namespace | |
| ANTLRv4Parser::ANTLRv4Parser(TokenStream *input) | |
| : ANTLRv4Parser(input, antlr4::atn::ParserATNSimulatorOptions()) {} | |
| ANTLRv4Parser::ANTLRv4Parser( | |
| TokenStream *input, const antlr4::atn::ParserATNSimulatorOptions &options) | |
| : Parser(input) { | |
| ANTLRv4Parser::initialize(); | |
| _interpreter = new atn::ParserATNSimulator( | |
| this, *antlrv4parserParserStaticData->atn, | |
| antlrv4parserParserStaticData->decisionToDFA, | |
| antlrv4parserParserStaticData->sharedContextCache, options); | |
| } | |
| ANTLRv4Parser::~ANTLRv4Parser() { delete _interpreter; } | |
| const atn::ATN &ANTLRv4Parser::getATN() const { | |
| return *antlrv4parserParserStaticData->atn; | |
| } | |
| std::string ANTLRv4Parser::getGrammarFileName() const { | |
| return "ANTLRv4Parser.g4"; | |
| } | |
| const std::vector<std::string> &ANTLRv4Parser::getRuleNames() const { | |
| return antlrv4parserParserStaticData->ruleNames; | |
| } | |
| const dfa::Vocabulary &ANTLRv4Parser::getVocabulary() const { | |
| return antlrv4parserParserStaticData->vocabulary; | |
| } | |
| antlr4::atn::SerializedATNView ANTLRv4Parser::getSerializedATN() const { | |
| return antlrv4parserParserStaticData->serializedATN; | |
| } | |
| //----------------- GrammarSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::GrammarSpecContext::GrammarSpecContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::GrammarDeclContext * | |
| ANTLRv4Parser::GrammarSpecContext::grammarDecl() { | |
| return getRuleContext<ANTLRv4Parser::GrammarDeclContext>(0); | |
| } | |
| ANTLRv4Parser::RulesContext *ANTLRv4Parser::GrammarSpecContext::rules() { | |
| return getRuleContext<ANTLRv4Parser::RulesContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::GrammarSpecContext::EOF() { | |
| return getToken(ANTLRv4Parser::EOF, 0); | |
| } | |
| std::vector<ANTLRv4Parser::PrequelConstructContext *> | |
| ANTLRv4Parser::GrammarSpecContext::prequelConstruct() { | |
| return getRuleContexts<ANTLRv4Parser::PrequelConstructContext>(); | |
| } | |
| ANTLRv4Parser::PrequelConstructContext * | |
| ANTLRv4Parser::GrammarSpecContext::prequelConstruct(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::PrequelConstructContext>(i); | |
| } | |
| std::vector<ANTLRv4Parser::ModeSpecContext *> | |
| ANTLRv4Parser::GrammarSpecContext::modeSpec() { | |
| return getRuleContexts<ANTLRv4Parser::ModeSpecContext>(); | |
| } | |
| ANTLRv4Parser::ModeSpecContext *ANTLRv4Parser::GrammarSpecContext::modeSpec( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::ModeSpecContext>(i); | |
| } | |
| size_t ANTLRv4Parser::GrammarSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleGrammarSpec; | |
| } | |
| void ANTLRv4Parser::GrammarSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterGrammarSpec(this); | |
| } | |
| void ANTLRv4Parser::GrammarSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitGrammarSpec(this); | |
| } | |
| ANTLRv4Parser::GrammarSpecContext *ANTLRv4Parser::grammarSpec() { | |
| GrammarSpecContext *_localctx = | |
| _tracker.createInstance<GrammarSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 0, ANTLRv4Parser::RuleGrammarSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(128); | |
| grammarDecl(); | |
| setState(132); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while ( | |
| (((_la & ~0x3fULL) == 0) && ((1ULL << _la) & 562949953482752) != 0)) { | |
| setState(129); | |
| prequelConstruct(); | |
| setState(134); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(135); | |
| rules(); | |
| setState(139); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::MODE) { | |
| setState(136); | |
| modeSpec(); | |
| setState(141); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(142); | |
| match(ANTLRv4Parser::EOF); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- GrammarDeclContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::GrammarDeclContext::GrammarDeclContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::GrammarTypeContext * | |
| ANTLRv4Parser::GrammarDeclContext::grammarType() { | |
| return getRuleContext<ANTLRv4Parser::GrammarTypeContext>(0); | |
| } | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::GrammarDeclContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::GrammarDeclContext::SEMI() { | |
| return getToken(ANTLRv4Parser::SEMI, 0); | |
| } | |
| size_t ANTLRv4Parser::GrammarDeclContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleGrammarDecl; | |
| } | |
| void ANTLRv4Parser::GrammarDeclContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterGrammarDecl(this); | |
| } | |
| void ANTLRv4Parser::GrammarDeclContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitGrammarDecl(this); | |
| } | |
| ANTLRv4Parser::GrammarDeclContext *ANTLRv4Parser::grammarDecl() { | |
| GrammarDeclContext *_localctx = | |
| _tracker.createInstance<GrammarDeclContext>(_ctx, getState()); | |
| enterRule(_localctx, 2, ANTLRv4Parser::RuleGrammarDecl); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(144); | |
| grammarType(); | |
| setState(145); | |
| identifier(); | |
| setState(146); | |
| match(ANTLRv4Parser::SEMI); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- GrammarTypeContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::GrammarTypeContext::GrammarTypeContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::GrammarTypeContext::LEXER() { | |
| return getToken(ANTLRv4Parser::LEXER, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::GrammarTypeContext::GRAMMAR() { | |
| return getToken(ANTLRv4Parser::GRAMMAR, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::GrammarTypeContext::PARSER() { | |
| return getToken(ANTLRv4Parser::PARSER, 0); | |
| } | |
| size_t ANTLRv4Parser::GrammarTypeContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleGrammarType; | |
| } | |
| void ANTLRv4Parser::GrammarTypeContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterGrammarType(this); | |
| } | |
| void ANTLRv4Parser::GrammarTypeContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitGrammarType(this); | |
| } | |
| ANTLRv4Parser::GrammarTypeContext *ANTLRv4Parser::grammarType() { | |
| GrammarTypeContext *_localctx = | |
| _tracker.createInstance<GrammarTypeContext>(_ctx, getState()); | |
| enterRule(_localctx, 4, ANTLRv4Parser::RuleGrammarType); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(153); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::LEXER: { | |
| setState(148); | |
| match(ANTLRv4Parser::LEXER); | |
| setState(149); | |
| match(ANTLRv4Parser::GRAMMAR); | |
| break; | |
| } | |
| case ANTLRv4Parser::PARSER: { | |
| setState(150); | |
| match(ANTLRv4Parser::PARSER); | |
| setState(151); | |
| match(ANTLRv4Parser::GRAMMAR); | |
| break; | |
| } | |
| case ANTLRv4Parser::GRAMMAR: { | |
| setState(152); | |
| match(ANTLRv4Parser::GRAMMAR); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- PrequelConstructContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::PrequelConstructContext::PrequelConstructContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::OptionsSpecContext * | |
| ANTLRv4Parser::PrequelConstructContext::optionsSpec() { | |
| return getRuleContext<ANTLRv4Parser::OptionsSpecContext>(0); | |
| } | |
| ANTLRv4Parser::DelegateGrammarsContext * | |
| ANTLRv4Parser::PrequelConstructContext::delegateGrammars() { | |
| return getRuleContext<ANTLRv4Parser::DelegateGrammarsContext>(0); | |
| } | |
| ANTLRv4Parser::TokensSpecContext * | |
| ANTLRv4Parser::PrequelConstructContext::tokensSpec() { | |
| return getRuleContext<ANTLRv4Parser::TokensSpecContext>(0); | |
| } | |
| ANTLRv4Parser::ChannelsSpecContext * | |
| ANTLRv4Parser::PrequelConstructContext::channelsSpec() { | |
| return getRuleContext<ANTLRv4Parser::ChannelsSpecContext>(0); | |
| } | |
| ANTLRv4Parser::Action_Context * | |
| ANTLRv4Parser::PrequelConstructContext::action_() { | |
| return getRuleContext<ANTLRv4Parser::Action_Context>(0); | |
| } | |
| size_t ANTLRv4Parser::PrequelConstructContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RulePrequelConstruct; | |
| } | |
| void ANTLRv4Parser::PrequelConstructContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterPrequelConstruct(this); | |
| } | |
| void ANTLRv4Parser::PrequelConstructContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitPrequelConstruct(this); | |
| } | |
| ANTLRv4Parser::PrequelConstructContext *ANTLRv4Parser::prequelConstruct() { | |
| PrequelConstructContext *_localctx = | |
| _tracker.createInstance<PrequelConstructContext>(_ctx, getState()); | |
| enterRule(_localctx, 6, ANTLRv4Parser::RulePrequelConstruct); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(160); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::OPTIONS: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(155); | |
| optionsSpec(); | |
| break; | |
| } | |
| case ANTLRv4Parser::IMPORT: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(156); | |
| delegateGrammars(); | |
| break; | |
| } | |
| case ANTLRv4Parser::TOKENS: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(157); | |
| tokensSpec(); | |
| break; | |
| } | |
| case ANTLRv4Parser::CHANNELS: { | |
| enterOuterAlt(_localctx, 4); | |
| setState(158); | |
| channelsSpec(); | |
| break; | |
| } | |
| case ANTLRv4Parser::AT: { | |
| enterOuterAlt(_localctx, 5); | |
| setState(159); | |
| action_(); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- OptionsSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::OptionsSpecContext::OptionsSpecContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::OptionsSpecContext::OPTIONS() { | |
| return getToken(ANTLRv4Parser::OPTIONS, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::OptionsSpecContext::RBRACE() { | |
| return getToken(ANTLRv4Parser::RBRACE, 0); | |
| } | |
| std::vector<ANTLRv4Parser::OptionContext *> | |
| ANTLRv4Parser::OptionsSpecContext::option() { | |
| return getRuleContexts<ANTLRv4Parser::OptionContext>(); | |
| } | |
| ANTLRv4Parser::OptionContext *ANTLRv4Parser::OptionsSpecContext::option( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::OptionContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::OptionsSpecContext::SEMI() { | |
| return getTokens(ANTLRv4Parser::SEMI); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::OptionsSpecContext::SEMI(size_t i) { | |
| return getToken(ANTLRv4Parser::SEMI, i); | |
| } | |
| size_t ANTLRv4Parser::OptionsSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleOptionsSpec; | |
| } | |
| void ANTLRv4Parser::OptionsSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterOptionsSpec(this); | |
| } | |
| void ANTLRv4Parser::OptionsSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitOptionsSpec(this); | |
| } | |
| ANTLRv4Parser::OptionsSpecContext *ANTLRv4Parser::optionsSpec() { | |
| OptionsSpecContext *_localctx = | |
| _tracker.createInstance<OptionsSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 8, ANTLRv4Parser::RuleOptionsSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(162); | |
| match(ANTLRv4Parser::OPTIONS); | |
| setState(168); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::TOKEN_REF | |
| || _la == ANTLRv4Parser::RULE_REF) { | |
| setState(163); | |
| option(); | |
| setState(164); | |
| match(ANTLRv4Parser::SEMI); | |
| setState(170); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(171); | |
| match(ANTLRv4Parser::RBRACE); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- OptionContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::OptionContext::OptionContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::IdentifierContext *ANTLRv4Parser::OptionContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::OptionContext::ASSIGN() { | |
| return getToken(ANTLRv4Parser::ASSIGN, 0); | |
| } | |
| ANTLRv4Parser::OptionValueContext *ANTLRv4Parser::OptionContext::optionValue() { | |
| return getRuleContext<ANTLRv4Parser::OptionValueContext>(0); | |
| } | |
| size_t ANTLRv4Parser::OptionContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleOption; | |
| } | |
| void ANTLRv4Parser::OptionContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterOption(this); | |
| } | |
| void ANTLRv4Parser::OptionContext::exitRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitOption(this); | |
| } | |
| ANTLRv4Parser::OptionContext *ANTLRv4Parser::option() { | |
| OptionContext *_localctx = | |
| _tracker.createInstance<OptionContext>(_ctx, getState()); | |
| enterRule(_localctx, 10, ANTLRv4Parser::RuleOption); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(173); | |
| identifier(); | |
| setState(174); | |
| match(ANTLRv4Parser::ASSIGN); | |
| setState(175); | |
| optionValue(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- OptionValueContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::OptionValueContext::OptionValueContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::IdentifierContext *> | |
| ANTLRv4Parser::OptionValueContext::identifier() { | |
| return getRuleContexts<ANTLRv4Parser::IdentifierContext>(); | |
| } | |
| ANTLRv4Parser::IdentifierContext *ANTLRv4Parser::OptionValueContext::identifier( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::OptionValueContext::DOT() { | |
| return getTokens(ANTLRv4Parser::DOT); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::OptionValueContext::DOT(size_t i) { | |
| return getToken(ANTLRv4Parser::DOT, i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::OptionValueContext::STRING_LITERAL() { | |
| return getToken(ANTLRv4Parser::STRING_LITERAL, 0); | |
| } | |
| ANTLRv4Parser::ActionBlockContext * | |
| ANTLRv4Parser::OptionValueContext::actionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ActionBlockContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::OptionValueContext::INT() { | |
| return getToken(ANTLRv4Parser::INT, 0); | |
| } | |
| size_t ANTLRv4Parser::OptionValueContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleOptionValue; | |
| } | |
| void ANTLRv4Parser::OptionValueContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterOptionValue(this); | |
| } | |
| void ANTLRv4Parser::OptionValueContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitOptionValue(this); | |
| } | |
| ANTLRv4Parser::OptionValueContext *ANTLRv4Parser::optionValue() { | |
| OptionValueContext *_localctx = | |
| _tracker.createInstance<OptionValueContext>(_ctx, getState()); | |
| enterRule(_localctx, 12, ANTLRv4Parser::RuleOptionValue); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(188); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(177); | |
| identifier(); | |
| setState(182); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::DOT) { | |
| setState(178); | |
| match(ANTLRv4Parser::DOT); | |
| setState(179); | |
| identifier(); | |
| setState(184); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| break; | |
| } | |
| case ANTLRv4Parser::STRING_LITERAL: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(185); | |
| match(ANTLRv4Parser::STRING_LITERAL); | |
| break; | |
| } | |
| case ANTLRv4Parser::BEGIN_ACTION: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(186); | |
| actionBlock(); | |
| break; | |
| } | |
| case ANTLRv4Parser::INT: { | |
| enterOuterAlt(_localctx, 4); | |
| setState(187); | |
| match(ANTLRv4Parser::INT); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- DelegateGrammarsContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::DelegateGrammarsContext::DelegateGrammarsContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::DelegateGrammarsContext::IMPORT() { | |
| return getToken(ANTLRv4Parser::IMPORT, 0); | |
| } | |
| std::vector<ANTLRv4Parser::DelegateGrammarContext *> | |
| ANTLRv4Parser::DelegateGrammarsContext::delegateGrammar() { | |
| return getRuleContexts<ANTLRv4Parser::DelegateGrammarContext>(); | |
| } | |
| ANTLRv4Parser::DelegateGrammarContext * | |
| ANTLRv4Parser::DelegateGrammarsContext::delegateGrammar(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::DelegateGrammarContext>(i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::DelegateGrammarsContext::SEMI() { | |
| return getToken(ANTLRv4Parser::SEMI, 0); | |
| } | |
| std::vector<tree::TerminalNode *> | |
| ANTLRv4Parser::DelegateGrammarsContext::COMMA() { | |
| return getTokens(ANTLRv4Parser::COMMA); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::DelegateGrammarsContext::COMMA(size_t i) { | |
| return getToken(ANTLRv4Parser::COMMA, i); | |
| } | |
| size_t ANTLRv4Parser::DelegateGrammarsContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleDelegateGrammars; | |
| } | |
| void ANTLRv4Parser::DelegateGrammarsContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterDelegateGrammars(this); | |
| } | |
| void ANTLRv4Parser::DelegateGrammarsContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitDelegateGrammars(this); | |
| } | |
| ANTLRv4Parser::DelegateGrammarsContext *ANTLRv4Parser::delegateGrammars() { | |
| DelegateGrammarsContext *_localctx = | |
| _tracker.createInstance<DelegateGrammarsContext>(_ctx, getState()); | |
| enterRule(_localctx, 14, ANTLRv4Parser::RuleDelegateGrammars); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(190); | |
| match(ANTLRv4Parser::IMPORT); | |
| setState(191); | |
| delegateGrammar(); | |
| setState(196); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::COMMA) { | |
| setState(192); | |
| match(ANTLRv4Parser::COMMA); | |
| setState(193); | |
| delegateGrammar(); | |
| setState(198); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(199); | |
| match(ANTLRv4Parser::SEMI); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- DelegateGrammarContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::DelegateGrammarContext::DelegateGrammarContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::IdentifierContext *> | |
| ANTLRv4Parser::DelegateGrammarContext::identifier() { | |
| return getRuleContexts<ANTLRv4Parser::IdentifierContext>(); | |
| } | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::DelegateGrammarContext::identifier(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::DelegateGrammarContext::ASSIGN() { | |
| return getToken(ANTLRv4Parser::ASSIGN, 0); | |
| } | |
| size_t ANTLRv4Parser::DelegateGrammarContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleDelegateGrammar; | |
| } | |
| void ANTLRv4Parser::DelegateGrammarContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterDelegateGrammar(this); | |
| } | |
| void ANTLRv4Parser::DelegateGrammarContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitDelegateGrammar(this); | |
| } | |
| ANTLRv4Parser::DelegateGrammarContext *ANTLRv4Parser::delegateGrammar() { | |
| DelegateGrammarContext *_localctx = | |
| _tracker.createInstance<DelegateGrammarContext>(_ctx, getState()); | |
| enterRule(_localctx, 16, ANTLRv4Parser::RuleDelegateGrammar); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(206); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 8, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(201); | |
| identifier(); | |
| setState(202); | |
| match(ANTLRv4Parser::ASSIGN); | |
| setState(203); | |
| identifier(); | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(205); | |
| identifier(); | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- TokensSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::TokensSpecContext::TokensSpecContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::TokensSpecContext::TOKENS() { | |
| return getToken(ANTLRv4Parser::TOKENS, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::TokensSpecContext::RBRACE() { | |
| return getToken(ANTLRv4Parser::RBRACE, 0); | |
| } | |
| ANTLRv4Parser::IdListContext *ANTLRv4Parser::TokensSpecContext::idList() { | |
| return getRuleContext<ANTLRv4Parser::IdListContext>(0); | |
| } | |
| size_t ANTLRv4Parser::TokensSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleTokensSpec; | |
| } | |
| void ANTLRv4Parser::TokensSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterTokensSpec(this); | |
| } | |
| void ANTLRv4Parser::TokensSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitTokensSpec(this); | |
| } | |
| ANTLRv4Parser::TokensSpecContext *ANTLRv4Parser::tokensSpec() { | |
| TokensSpecContext *_localctx = | |
| _tracker.createInstance<TokensSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 18, ANTLRv4Parser::RuleTokensSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(208); | |
| match(ANTLRv4Parser::TOKENS); | |
| setState(210); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::TOKEN_REF | |
| || _la == ANTLRv4Parser::RULE_REF) { | |
| setState(209); | |
| idList(); | |
| } | |
| setState(212); | |
| match(ANTLRv4Parser::RBRACE); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ChannelsSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ChannelsSpecContext::ChannelsSpecContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ChannelsSpecContext::CHANNELS() { | |
| return getToken(ANTLRv4Parser::CHANNELS, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ChannelsSpecContext::RBRACE() { | |
| return getToken(ANTLRv4Parser::RBRACE, 0); | |
| } | |
| ANTLRv4Parser::IdListContext *ANTLRv4Parser::ChannelsSpecContext::idList() { | |
| return getRuleContext<ANTLRv4Parser::IdListContext>(0); | |
| } | |
| size_t ANTLRv4Parser::ChannelsSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleChannelsSpec; | |
| } | |
| void ANTLRv4Parser::ChannelsSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterChannelsSpec(this); | |
| } | |
| void ANTLRv4Parser::ChannelsSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitChannelsSpec(this); | |
| } | |
| ANTLRv4Parser::ChannelsSpecContext *ANTLRv4Parser::channelsSpec() { | |
| ChannelsSpecContext *_localctx = | |
| _tracker.createInstance<ChannelsSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 20, ANTLRv4Parser::RuleChannelsSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(214); | |
| match(ANTLRv4Parser::CHANNELS); | |
| setState(216); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::TOKEN_REF | |
| || _la == ANTLRv4Parser::RULE_REF) { | |
| setState(215); | |
| idList(); | |
| } | |
| setState(218); | |
| match(ANTLRv4Parser::RBRACE); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- IdListContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::IdListContext::IdListContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::IdentifierContext *> | |
| ANTLRv4Parser::IdListContext::identifier() { | |
| return getRuleContexts<ANTLRv4Parser::IdentifierContext>(); | |
| } | |
| ANTLRv4Parser::IdentifierContext *ANTLRv4Parser::IdListContext::identifier( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::IdListContext::COMMA() { | |
| return getTokens(ANTLRv4Parser::COMMA); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::IdListContext::COMMA(size_t i) { | |
| return getToken(ANTLRv4Parser::COMMA, i); | |
| } | |
| size_t ANTLRv4Parser::IdListContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleIdList; | |
| } | |
| void ANTLRv4Parser::IdListContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterIdList(this); | |
| } | |
| void ANTLRv4Parser::IdListContext::exitRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitIdList(this); | |
| } | |
| ANTLRv4Parser::IdListContext *ANTLRv4Parser::idList() { | |
| IdListContext *_localctx = | |
| _tracker.createInstance<IdListContext>(_ctx, getState()); | |
| enterRule(_localctx, 22, ANTLRv4Parser::RuleIdList); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| size_t alt; | |
| enterOuterAlt(_localctx, 1); | |
| setState(220); | |
| identifier(); | |
| setState(225); | |
| _errHandler->sync(this); | |
| alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 11, | |
| _ctx); | |
| while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) { | |
| if (alt == 1) { | |
| setState(221); | |
| match(ANTLRv4Parser::COMMA); | |
| setState(222); | |
| identifier(); | |
| } | |
| setState(227); | |
| _errHandler->sync(this); | |
| alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 11, _ctx); | |
| } | |
| setState(229); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::COMMA) { | |
| setState(228); | |
| match(ANTLRv4Parser::COMMA); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- Action_Context | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::Action_Context::Action_Context(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::Action_Context::AT() { | |
| return getToken(ANTLRv4Parser::AT, 0); | |
| } | |
| ANTLRv4Parser::IdentifierContext *ANTLRv4Parser::Action_Context::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| ANTLRv4Parser::ActionBlockContext * | |
| ANTLRv4Parser::Action_Context::actionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ActionBlockContext>(0); | |
| } | |
| ANTLRv4Parser::ActionScopeNameContext * | |
| ANTLRv4Parser::Action_Context::actionScopeName() { | |
| return getRuleContext<ANTLRv4Parser::ActionScopeNameContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::Action_Context::COLONCOLON() { | |
| return getToken(ANTLRv4Parser::COLONCOLON, 0); | |
| } | |
| size_t ANTLRv4Parser::Action_Context::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleAction_; | |
| } | |
| void ANTLRv4Parser::Action_Context::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterAction_(this); | |
| } | |
| void ANTLRv4Parser::Action_Context::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitAction_(this); | |
| } | |
| ANTLRv4Parser::Action_Context *ANTLRv4Parser::action_() { | |
| Action_Context *_localctx = | |
| _tracker.createInstance<Action_Context>(_ctx, getState()); | |
| enterRule(_localctx, 24, ANTLRv4Parser::RuleAction_); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(231); | |
| match(ANTLRv4Parser::AT); | |
| setState(235); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 13, _ctx)) { | |
| case 1: { | |
| setState(232); | |
| actionScopeName(); | |
| setState(233); | |
| match(ANTLRv4Parser::COLONCOLON); | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| setState(237); | |
| identifier(); | |
| setState(238); | |
| actionBlock(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ActionScopeNameContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ActionScopeNameContext::ActionScopeNameContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::ActionScopeNameContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ActionScopeNameContext::LEXER() { | |
| return getToken(ANTLRv4Parser::LEXER, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ActionScopeNameContext::PARSER() { | |
| return getToken(ANTLRv4Parser::PARSER, 0); | |
| } | |
| size_t ANTLRv4Parser::ActionScopeNameContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleActionScopeName; | |
| } | |
| void ANTLRv4Parser::ActionScopeNameContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterActionScopeName(this); | |
| } | |
| void ANTLRv4Parser::ActionScopeNameContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitActionScopeName(this); | |
| } | |
| ANTLRv4Parser::ActionScopeNameContext *ANTLRv4Parser::actionScopeName() { | |
| ActionScopeNameContext *_localctx = | |
| _tracker.createInstance<ActionScopeNameContext>(_ctx, getState()); | |
| enterRule(_localctx, 26, ANTLRv4Parser::RuleActionScopeName); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(243); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(240); | |
| identifier(); | |
| break; | |
| } | |
| case ANTLRv4Parser::LEXER: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(241); | |
| match(ANTLRv4Parser::LEXER); | |
| break; | |
| } | |
| case ANTLRv4Parser::PARSER: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(242); | |
| match(ANTLRv4Parser::PARSER); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ActionBlockContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ActionBlockContext::ActionBlockContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ActionBlockContext::BEGIN_ACTION() { | |
| return getToken(ANTLRv4Parser::BEGIN_ACTION, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ActionBlockContext::END_ACTION() { | |
| return getToken(ANTLRv4Parser::END_ACTION, 0); | |
| } | |
| std::vector<tree::TerminalNode *> | |
| ANTLRv4Parser::ActionBlockContext::ACTION_CONTENT() { | |
| return getTokens(ANTLRv4Parser::ACTION_CONTENT); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ActionBlockContext::ACTION_CONTENT( | |
| size_t i) { | |
| return getToken(ANTLRv4Parser::ACTION_CONTENT, i); | |
| } | |
| size_t ANTLRv4Parser::ActionBlockContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleActionBlock; | |
| } | |
| void ANTLRv4Parser::ActionBlockContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterActionBlock(this); | |
| } | |
| void ANTLRv4Parser::ActionBlockContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitActionBlock(this); | |
| } | |
| ANTLRv4Parser::ActionBlockContext *ANTLRv4Parser::actionBlock() { | |
| ActionBlockContext *_localctx = | |
| _tracker.createInstance<ActionBlockContext>(_ctx, getState()); | |
| enterRule(_localctx, 28, ANTLRv4Parser::RuleActionBlock); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(245); | |
| match(ANTLRv4Parser::BEGIN_ACTION); | |
| setState(249); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::ACTION_CONTENT) { | |
| setState(246); | |
| match(ANTLRv4Parser::ACTION_CONTENT); | |
| setState(251); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(252); | |
| match(ANTLRv4Parser::END_ACTION); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ArgActionBlockContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ArgActionBlockContext::ArgActionBlockContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ArgActionBlockContext::BEGIN_ARGUMENT() { | |
| return getToken(ANTLRv4Parser::BEGIN_ARGUMENT, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ArgActionBlockContext::END_ARGUMENT() { | |
| return getToken(ANTLRv4Parser::END_ARGUMENT, 0); | |
| } | |
| std::vector<tree::TerminalNode *> | |
| ANTLRv4Parser::ArgActionBlockContext::ARGUMENT_CONTENT() { | |
| return getTokens(ANTLRv4Parser::ARGUMENT_CONTENT); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ArgActionBlockContext::ARGUMENT_CONTENT( | |
| size_t i) { | |
| return getToken(ANTLRv4Parser::ARGUMENT_CONTENT, i); | |
| } | |
| size_t ANTLRv4Parser::ArgActionBlockContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleArgActionBlock; | |
| } | |
| void ANTLRv4Parser::ArgActionBlockContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterArgActionBlock(this); | |
| } | |
| void ANTLRv4Parser::ArgActionBlockContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitArgActionBlock(this); | |
| } | |
| ANTLRv4Parser::ArgActionBlockContext *ANTLRv4Parser::argActionBlock() { | |
| ArgActionBlockContext *_localctx = | |
| _tracker.createInstance<ArgActionBlockContext>(_ctx, getState()); | |
| enterRule(_localctx, 30, ANTLRv4Parser::RuleArgActionBlock); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(254); | |
| match(ANTLRv4Parser::BEGIN_ARGUMENT); | |
| setState(258); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::ARGUMENT_CONTENT) { | |
| setState(255); | |
| match(ANTLRv4Parser::ARGUMENT_CONTENT); | |
| setState(260); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(261); | |
| match(ANTLRv4Parser::END_ARGUMENT); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ModeSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ModeSpecContext::ModeSpecContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ModeSpecContext::MODE() { | |
| return getToken(ANTLRv4Parser::MODE, 0); | |
| } | |
| ANTLRv4Parser::IdentifierContext *ANTLRv4Parser::ModeSpecContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ModeSpecContext::SEMI() { | |
| return getToken(ANTLRv4Parser::SEMI, 0); | |
| } | |
| std::vector<ANTLRv4Parser::LexerRuleSpecContext *> | |
| ANTLRv4Parser::ModeSpecContext::lexerRuleSpec() { | |
| return getRuleContexts<ANTLRv4Parser::LexerRuleSpecContext>(); | |
| } | |
| ANTLRv4Parser::LexerRuleSpecContext * | |
| ANTLRv4Parser::ModeSpecContext::lexerRuleSpec(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::LexerRuleSpecContext>(i); | |
| } | |
| size_t ANTLRv4Parser::ModeSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleModeSpec; | |
| } | |
| void ANTLRv4Parser::ModeSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterModeSpec(this); | |
| } | |
| void ANTLRv4Parser::ModeSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitModeSpec(this); | |
| } | |
| ANTLRv4Parser::ModeSpecContext *ANTLRv4Parser::modeSpec() { | |
| ModeSpecContext *_localctx = | |
| _tracker.createInstance<ModeSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 32, ANTLRv4Parser::RuleModeSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(263); | |
| match(ANTLRv4Parser::MODE); | |
| setState(264); | |
| identifier(); | |
| setState(265); | |
| match(ANTLRv4Parser::SEMI); | |
| setState(269); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::TOKEN_REF | |
| || _la == ANTLRv4Parser::FRAGMENT) { | |
| setState(266); | |
| lexerRuleSpec(); | |
| setState(271); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RulesContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RulesContext::RulesContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::RuleSpecContext *> | |
| ANTLRv4Parser::RulesContext::ruleSpec() { | |
| return getRuleContexts<ANTLRv4Parser::RuleSpecContext>(); | |
| } | |
| ANTLRv4Parser::RuleSpecContext *ANTLRv4Parser::RulesContext::ruleSpec( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::RuleSpecContext>(i); | |
| } | |
| size_t ANTLRv4Parser::RulesContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRules; | |
| } | |
| void ANTLRv4Parser::RulesContext::enterRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRules(this); | |
| } | |
| void ANTLRv4Parser::RulesContext::exitRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRules(this); | |
| } | |
| ANTLRv4Parser::RulesContext *ANTLRv4Parser::rules() { | |
| RulesContext *_localctx = | |
| _tracker.createInstance<RulesContext>(_ctx, getState()); | |
| enterRule(_localctx, 34, ANTLRv4Parser::RuleRules); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(275); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while ((((_la & ~0x3fULL) == 0) && ((1ULL << _la) & 7405574) != 0)) { | |
| setState(272); | |
| ruleSpec(); | |
| setState(277); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RuleSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RuleSpecContext::RuleSpecContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::ParserRuleSpecContext * | |
| ANTLRv4Parser::RuleSpecContext::parserRuleSpec() { | |
| return getRuleContext<ANTLRv4Parser::ParserRuleSpecContext>(0); | |
| } | |
| ANTLRv4Parser::LexerRuleSpecContext * | |
| ANTLRv4Parser::RuleSpecContext::lexerRuleSpec() { | |
| return getRuleContext<ANTLRv4Parser::LexerRuleSpecContext>(0); | |
| } | |
| size_t ANTLRv4Parser::RuleSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleSpec; | |
| } | |
| void ANTLRv4Parser::RuleSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleSpec(this); | |
| } | |
| void ANTLRv4Parser::RuleSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleSpec(this); | |
| } | |
| ANTLRv4Parser::RuleSpecContext *ANTLRv4Parser::ruleSpec() { | |
| RuleSpecContext *_localctx = | |
| _tracker.createInstance<RuleSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 36, ANTLRv4Parser::RuleRuleSpec); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(280); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 19, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(278); | |
| parserRuleSpec(); | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(279); | |
| lexerRuleSpec(); | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ParserRuleSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ParserRuleSpecContext::ParserRuleSpecContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ParserRuleSpecContext::RULE_REF() { | |
| return getToken(ANTLRv4Parser::RULE_REF, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ParserRuleSpecContext::COLON() { | |
| return getToken(ANTLRv4Parser::COLON, 0); | |
| } | |
| ANTLRv4Parser::RuleBlockContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::ruleBlock() { | |
| return getRuleContext<ANTLRv4Parser::RuleBlockContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ParserRuleSpecContext::SEMI() { | |
| return getToken(ANTLRv4Parser::SEMI, 0); | |
| } | |
| ANTLRv4Parser::ExceptionGroupContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::exceptionGroup() { | |
| return getRuleContext<ANTLRv4Parser::ExceptionGroupContext>(0); | |
| } | |
| ANTLRv4Parser::RuleModifiersContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::ruleModifiers() { | |
| return getRuleContext<ANTLRv4Parser::RuleModifiersContext>(0); | |
| } | |
| ANTLRv4Parser::ArgActionBlockContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::argActionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ArgActionBlockContext>(0); | |
| } | |
| ANTLRv4Parser::RuleReturnsContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::ruleReturns() { | |
| return getRuleContext<ANTLRv4Parser::RuleReturnsContext>(0); | |
| } | |
| ANTLRv4Parser::ThrowsSpecContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::throwsSpec() { | |
| return getRuleContext<ANTLRv4Parser::ThrowsSpecContext>(0); | |
| } | |
| ANTLRv4Parser::LocalsSpecContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::localsSpec() { | |
| return getRuleContext<ANTLRv4Parser::LocalsSpecContext>(0); | |
| } | |
| std::vector<ANTLRv4Parser::RulePrequelContext *> | |
| ANTLRv4Parser::ParserRuleSpecContext::rulePrequel() { | |
| return getRuleContexts<ANTLRv4Parser::RulePrequelContext>(); | |
| } | |
| ANTLRv4Parser::RulePrequelContext * | |
| ANTLRv4Parser::ParserRuleSpecContext::rulePrequel(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::RulePrequelContext>(i); | |
| } | |
| size_t ANTLRv4Parser::ParserRuleSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleParserRuleSpec; | |
| } | |
| void ANTLRv4Parser::ParserRuleSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterParserRuleSpec(this); | |
| } | |
| void ANTLRv4Parser::ParserRuleSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitParserRuleSpec(this); | |
| } | |
| ANTLRv4Parser::ParserRuleSpecContext *ANTLRv4Parser::parserRuleSpec() { | |
| ParserRuleSpecContext *_localctx = | |
| _tracker.createInstance<ParserRuleSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 38, ANTLRv4Parser::RuleParserRuleSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(283); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if ((((_la & ~0x3fULL) == 0) && ((1ULL << _la) & 7405568) != 0)) { | |
| setState(282); | |
| ruleModifiers(); | |
| } | |
| setState(285); | |
| match(ANTLRv4Parser::RULE_REF); | |
| setState(287); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::BEGIN_ARGUMENT) { | |
| setState(286); | |
| argActionBlock(); | |
| } | |
| setState(290); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::RETURNS) { | |
| setState(289); | |
| ruleReturns(); | |
| } | |
| setState(293); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::THROWS) { | |
| setState(292); | |
| throwsSpec(); | |
| } | |
| setState(296); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LOCALS) { | |
| setState(295); | |
| localsSpec(); | |
| } | |
| setState(301); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::OPTIONS | |
| || _la == ANTLRv4Parser::AT) { | |
| setState(298); | |
| rulePrequel(); | |
| setState(303); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(304); | |
| match(ANTLRv4Parser::COLON); | |
| setState(305); | |
| ruleBlock(); | |
| setState(306); | |
| match(ANTLRv4Parser::SEMI); | |
| setState(307); | |
| exceptionGroup(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ExceptionGroupContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ExceptionGroupContext::ExceptionGroupContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::ExceptionHandlerContext *> | |
| ANTLRv4Parser::ExceptionGroupContext::exceptionHandler() { | |
| return getRuleContexts<ANTLRv4Parser::ExceptionHandlerContext>(); | |
| } | |
| ANTLRv4Parser::ExceptionHandlerContext * | |
| ANTLRv4Parser::ExceptionGroupContext::exceptionHandler(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::ExceptionHandlerContext>(i); | |
| } | |
| ANTLRv4Parser::FinallyClauseContext * | |
| ANTLRv4Parser::ExceptionGroupContext::finallyClause() { | |
| return getRuleContext<ANTLRv4Parser::FinallyClauseContext>(0); | |
| } | |
| size_t ANTLRv4Parser::ExceptionGroupContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleExceptionGroup; | |
| } | |
| void ANTLRv4Parser::ExceptionGroupContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterExceptionGroup(this); | |
| } | |
| void ANTLRv4Parser::ExceptionGroupContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitExceptionGroup(this); | |
| } | |
| ANTLRv4Parser::ExceptionGroupContext *ANTLRv4Parser::exceptionGroup() { | |
| ExceptionGroupContext *_localctx = | |
| _tracker.createInstance<ExceptionGroupContext>(_ctx, getState()); | |
| enterRule(_localctx, 40, ANTLRv4Parser::RuleExceptionGroup); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(312); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::CATCH) { | |
| setState(309); | |
| exceptionHandler(); | |
| setState(314); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(316); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::FINALLY) { | |
| setState(315); | |
| finallyClause(); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ExceptionHandlerContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ExceptionHandlerContext::ExceptionHandlerContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ExceptionHandlerContext::CATCH() { | |
| return getToken(ANTLRv4Parser::CATCH, 0); | |
| } | |
| ANTLRv4Parser::ArgActionBlockContext * | |
| ANTLRv4Parser::ExceptionHandlerContext::argActionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ArgActionBlockContext>(0); | |
| } | |
| ANTLRv4Parser::ActionBlockContext * | |
| ANTLRv4Parser::ExceptionHandlerContext::actionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ActionBlockContext>(0); | |
| } | |
| size_t ANTLRv4Parser::ExceptionHandlerContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleExceptionHandler; | |
| } | |
| void ANTLRv4Parser::ExceptionHandlerContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterExceptionHandler(this); | |
| } | |
| void ANTLRv4Parser::ExceptionHandlerContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitExceptionHandler(this); | |
| } | |
| ANTLRv4Parser::ExceptionHandlerContext *ANTLRv4Parser::exceptionHandler() { | |
| ExceptionHandlerContext *_localctx = | |
| _tracker.createInstance<ExceptionHandlerContext>(_ctx, getState()); | |
| enterRule(_localctx, 42, ANTLRv4Parser::RuleExceptionHandler); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(318); | |
| match(ANTLRv4Parser::CATCH); | |
| setState(319); | |
| argActionBlock(); | |
| setState(320); | |
| actionBlock(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- FinallyClauseContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::FinallyClauseContext::FinallyClauseContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::FinallyClauseContext::FINALLY() { | |
| return getToken(ANTLRv4Parser::FINALLY, 0); | |
| } | |
| ANTLRv4Parser::ActionBlockContext * | |
| ANTLRv4Parser::FinallyClauseContext::actionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ActionBlockContext>(0); | |
| } | |
| size_t ANTLRv4Parser::FinallyClauseContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleFinallyClause; | |
| } | |
| void ANTLRv4Parser::FinallyClauseContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterFinallyClause(this); | |
| } | |
| void ANTLRv4Parser::FinallyClauseContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitFinallyClause(this); | |
| } | |
| ANTLRv4Parser::FinallyClauseContext *ANTLRv4Parser::finallyClause() { | |
| FinallyClauseContext *_localctx = | |
| _tracker.createInstance<FinallyClauseContext>(_ctx, getState()); | |
| enterRule(_localctx, 44, ANTLRv4Parser::RuleFinallyClause); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(322); | |
| match(ANTLRv4Parser::FINALLY); | |
| setState(323); | |
| actionBlock(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RulePrequelContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RulePrequelContext::RulePrequelContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::OptionsSpecContext * | |
| ANTLRv4Parser::RulePrequelContext::optionsSpec() { | |
| return getRuleContext<ANTLRv4Parser::OptionsSpecContext>(0); | |
| } | |
| ANTLRv4Parser::RuleActionContext * | |
| ANTLRv4Parser::RulePrequelContext::ruleAction() { | |
| return getRuleContext<ANTLRv4Parser::RuleActionContext>(0); | |
| } | |
| size_t ANTLRv4Parser::RulePrequelContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRulePrequel; | |
| } | |
| void ANTLRv4Parser::RulePrequelContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRulePrequel(this); | |
| } | |
| void ANTLRv4Parser::RulePrequelContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRulePrequel(this); | |
| } | |
| ANTLRv4Parser::RulePrequelContext *ANTLRv4Parser::rulePrequel() { | |
| RulePrequelContext *_localctx = | |
| _tracker.createInstance<RulePrequelContext>(_ctx, getState()); | |
| enterRule(_localctx, 46, ANTLRv4Parser::RuleRulePrequel); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(327); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::OPTIONS: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(325); | |
| optionsSpec(); | |
| break; | |
| } | |
| case ANTLRv4Parser::AT: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(326); | |
| ruleAction(); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RuleReturnsContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RuleReturnsContext::RuleReturnsContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::RuleReturnsContext::RETURNS() { | |
| return getToken(ANTLRv4Parser::RETURNS, 0); | |
| } | |
| ANTLRv4Parser::ArgActionBlockContext * | |
| ANTLRv4Parser::RuleReturnsContext::argActionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ArgActionBlockContext>(0); | |
| } | |
| size_t ANTLRv4Parser::RuleReturnsContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleReturns; | |
| } | |
| void ANTLRv4Parser::RuleReturnsContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleReturns(this); | |
| } | |
| void ANTLRv4Parser::RuleReturnsContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleReturns(this); | |
| } | |
| ANTLRv4Parser::RuleReturnsContext *ANTLRv4Parser::ruleReturns() { | |
| RuleReturnsContext *_localctx = | |
| _tracker.createInstance<RuleReturnsContext>(_ctx, getState()); | |
| enterRule(_localctx, 48, ANTLRv4Parser::RuleRuleReturns); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(329); | |
| match(ANTLRv4Parser::RETURNS); | |
| setState(330); | |
| argActionBlock(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ThrowsSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ThrowsSpecContext::ThrowsSpecContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ThrowsSpecContext::THROWS() { | |
| return getToken(ANTLRv4Parser::THROWS, 0); | |
| } | |
| std::vector<ANTLRv4Parser::IdentifierContext *> | |
| ANTLRv4Parser::ThrowsSpecContext::identifier() { | |
| return getRuleContexts<ANTLRv4Parser::IdentifierContext>(); | |
| } | |
| ANTLRv4Parser::IdentifierContext *ANTLRv4Parser::ThrowsSpecContext::identifier( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::ThrowsSpecContext::COMMA() { | |
| return getTokens(ANTLRv4Parser::COMMA); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ThrowsSpecContext::COMMA(size_t i) { | |
| return getToken(ANTLRv4Parser::COMMA, i); | |
| } | |
| size_t ANTLRv4Parser::ThrowsSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleThrowsSpec; | |
| } | |
| void ANTLRv4Parser::ThrowsSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterThrowsSpec(this); | |
| } | |
| void ANTLRv4Parser::ThrowsSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitThrowsSpec(this); | |
| } | |
| ANTLRv4Parser::ThrowsSpecContext *ANTLRv4Parser::throwsSpec() { | |
| ThrowsSpecContext *_localctx = | |
| _tracker.createInstance<ThrowsSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 50, ANTLRv4Parser::RuleThrowsSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(332); | |
| match(ANTLRv4Parser::THROWS); | |
| setState(333); | |
| identifier(); | |
| setState(338); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::COMMA) { | |
| setState(334); | |
| match(ANTLRv4Parser::COMMA); | |
| setState(335); | |
| identifier(); | |
| setState(340); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LocalsSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LocalsSpecContext::LocalsSpecContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::LocalsSpecContext::LOCALS() { | |
| return getToken(ANTLRv4Parser::LOCALS, 0); | |
| } | |
| ANTLRv4Parser::ArgActionBlockContext * | |
| ANTLRv4Parser::LocalsSpecContext::argActionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ArgActionBlockContext>(0); | |
| } | |
| size_t ANTLRv4Parser::LocalsSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLocalsSpec; | |
| } | |
| void ANTLRv4Parser::LocalsSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLocalsSpec(this); | |
| } | |
| void ANTLRv4Parser::LocalsSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLocalsSpec(this); | |
| } | |
| ANTLRv4Parser::LocalsSpecContext *ANTLRv4Parser::localsSpec() { | |
| LocalsSpecContext *_localctx = | |
| _tracker.createInstance<LocalsSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 52, ANTLRv4Parser::RuleLocalsSpec); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(341); | |
| match(ANTLRv4Parser::LOCALS); | |
| setState(342); | |
| argActionBlock(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RuleActionContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RuleActionContext::RuleActionContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::RuleActionContext::AT() { | |
| return getToken(ANTLRv4Parser::AT, 0); | |
| } | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::RuleActionContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| ANTLRv4Parser::ActionBlockContext * | |
| ANTLRv4Parser::RuleActionContext::actionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ActionBlockContext>(0); | |
| } | |
| size_t ANTLRv4Parser::RuleActionContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleAction; | |
| } | |
| void ANTLRv4Parser::RuleActionContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleAction(this); | |
| } | |
| void ANTLRv4Parser::RuleActionContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleAction(this); | |
| } | |
| ANTLRv4Parser::RuleActionContext *ANTLRv4Parser::ruleAction() { | |
| RuleActionContext *_localctx = | |
| _tracker.createInstance<RuleActionContext>(_ctx, getState()); | |
| enterRule(_localctx, 54, ANTLRv4Parser::RuleRuleAction); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(344); | |
| match(ANTLRv4Parser::AT); | |
| setState(345); | |
| identifier(); | |
| setState(346); | |
| actionBlock(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RuleModifiersContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RuleModifiersContext::RuleModifiersContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::RuleModifierContext *> | |
| ANTLRv4Parser::RuleModifiersContext::ruleModifier() { | |
| return getRuleContexts<ANTLRv4Parser::RuleModifierContext>(); | |
| } | |
| ANTLRv4Parser::RuleModifierContext * | |
| ANTLRv4Parser::RuleModifiersContext::ruleModifier(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::RuleModifierContext>(i); | |
| } | |
| size_t ANTLRv4Parser::RuleModifiersContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleModifiers; | |
| } | |
| void ANTLRv4Parser::RuleModifiersContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleModifiers(this); | |
| } | |
| void ANTLRv4Parser::RuleModifiersContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleModifiers(this); | |
| } | |
| ANTLRv4Parser::RuleModifiersContext *ANTLRv4Parser::ruleModifiers() { | |
| RuleModifiersContext *_localctx = | |
| _tracker.createInstance<RuleModifiersContext>(_ctx, getState()); | |
| enterRule(_localctx, 56, ANTLRv4Parser::RuleRuleModifiers); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(349); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| do { | |
| setState(348); | |
| ruleModifier(); | |
| setState(351); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } while ((((_la & ~0x3fULL) == 0) && ((1ULL << _la) & 7405568) != 0)); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RuleModifierContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RuleModifierContext::RuleModifierContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::RuleModifierContext::PUBLIC() { | |
| return getToken(ANTLRv4Parser::PUBLIC, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::RuleModifierContext::PRIVATE() { | |
| return getToken(ANTLRv4Parser::PRIVATE, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::RuleModifierContext::PROTECTED() { | |
| return getToken(ANTLRv4Parser::PROTECTED, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::RuleModifierContext::FRAGMENT() { | |
| return getToken(ANTLRv4Parser::FRAGMENT, 0); | |
| } | |
| size_t ANTLRv4Parser::RuleModifierContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleModifier; | |
| } | |
| void ANTLRv4Parser::RuleModifierContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleModifier(this); | |
| } | |
| void ANTLRv4Parser::RuleModifierContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleModifier(this); | |
| } | |
| ANTLRv4Parser::RuleModifierContext *ANTLRv4Parser::ruleModifier() { | |
| RuleModifierContext *_localctx = | |
| _tracker.createInstance<RuleModifierContext>(_ctx, getState()); | |
| enterRule(_localctx, 58, ANTLRv4Parser::RuleRuleModifier); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(353); | |
| _la = _input->LA(1); | |
| if (!((((_la & ~0x3fULL) == 0) && ((1ULL << _la) & 7405568) != 0))) { | |
| _errHandler->recoverInline(this); | |
| } else { | |
| _errHandler->reportMatch(this); | |
| consume(); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RuleBlockContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RuleBlockContext::RuleBlockContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::RuleAltListContext * | |
| ANTLRv4Parser::RuleBlockContext::ruleAltList() { | |
| return getRuleContext<ANTLRv4Parser::RuleAltListContext>(0); | |
| } | |
| size_t ANTLRv4Parser::RuleBlockContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleBlock; | |
| } | |
| void ANTLRv4Parser::RuleBlockContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleBlock(this); | |
| } | |
| void ANTLRv4Parser::RuleBlockContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleBlock(this); | |
| } | |
| ANTLRv4Parser::RuleBlockContext *ANTLRv4Parser::ruleBlock() { | |
| RuleBlockContext *_localctx = | |
| _tracker.createInstance<RuleBlockContext>(_ctx, getState()); | |
| enterRule(_localctx, 60, ANTLRv4Parser::RuleRuleBlock); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(355); | |
| ruleAltList(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RuleAltListContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RuleAltListContext::RuleAltListContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::LabeledAltContext *> | |
| ANTLRv4Parser::RuleAltListContext::labeledAlt() { | |
| return getRuleContexts<ANTLRv4Parser::LabeledAltContext>(); | |
| } | |
| ANTLRv4Parser::LabeledAltContext *ANTLRv4Parser::RuleAltListContext::labeledAlt( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::LabeledAltContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::RuleAltListContext::OR() { | |
| return getTokens(ANTLRv4Parser::OR); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::RuleAltListContext::OR(size_t i) { | |
| return getToken(ANTLRv4Parser::OR, i); | |
| } | |
| size_t ANTLRv4Parser::RuleAltListContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleAltList; | |
| } | |
| void ANTLRv4Parser::RuleAltListContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleAltList(this); | |
| } | |
| void ANTLRv4Parser::RuleAltListContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleAltList(this); | |
| } | |
| ANTLRv4Parser::RuleAltListContext *ANTLRv4Parser::ruleAltList() { | |
| RuleAltListContext *_localctx = | |
| _tracker.createInstance<RuleAltListContext>(_ctx, getState()); | |
| enterRule(_localctx, 62, ANTLRv4Parser::RuleRuleAltList); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(357); | |
| labeledAlt(); | |
| setState(362); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::OR) { | |
| setState(358); | |
| match(ANTLRv4Parser::OR); | |
| setState(359); | |
| labeledAlt(); | |
| setState(364); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LabeledAltContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LabeledAltContext::LabeledAltContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::AlternativeContext * | |
| ANTLRv4Parser::LabeledAltContext::alternative() { | |
| return getRuleContext<ANTLRv4Parser::AlternativeContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LabeledAltContext::POUND() { | |
| return getToken(ANTLRv4Parser::POUND, 0); | |
| } | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::LabeledAltContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| size_t ANTLRv4Parser::LabeledAltContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLabeledAlt; | |
| } | |
| void ANTLRv4Parser::LabeledAltContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLabeledAlt(this); | |
| } | |
| void ANTLRv4Parser::LabeledAltContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLabeledAlt(this); | |
| } | |
| ANTLRv4Parser::LabeledAltContext *ANTLRv4Parser::labeledAlt() { | |
| LabeledAltContext *_localctx = | |
| _tracker.createInstance<LabeledAltContext>(_ctx, getState()); | |
| enterRule(_localctx, 64, ANTLRv4Parser::RuleLabeledAlt); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(365); | |
| alternative(); | |
| setState(368); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::POUND) { | |
| setState(366); | |
| match(ANTLRv4Parser::POUND); | |
| setState(367); | |
| identifier(); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerRuleSpecContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerRuleSpecContext::LexerRuleSpecContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::LexerRuleSpecContext::TOKEN_REF() { | |
| return getToken(ANTLRv4Parser::TOKEN_REF, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerRuleSpecContext::COLON() { | |
| return getToken(ANTLRv4Parser::COLON, 0); | |
| } | |
| ANTLRv4Parser::LexerRuleBlockContext * | |
| ANTLRv4Parser::LexerRuleSpecContext::lexerRuleBlock() { | |
| return getRuleContext<ANTLRv4Parser::LexerRuleBlockContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerRuleSpecContext::SEMI() { | |
| return getToken(ANTLRv4Parser::SEMI, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerRuleSpecContext::FRAGMENT() { | |
| return getToken(ANTLRv4Parser::FRAGMENT, 0); | |
| } | |
| size_t ANTLRv4Parser::LexerRuleSpecContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerRuleSpec; | |
| } | |
| void ANTLRv4Parser::LexerRuleSpecContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerRuleSpec(this); | |
| } | |
| void ANTLRv4Parser::LexerRuleSpecContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerRuleSpec(this); | |
| } | |
| ANTLRv4Parser::LexerRuleSpecContext *ANTLRv4Parser::lexerRuleSpec() { | |
| LexerRuleSpecContext *_localctx = | |
| _tracker.createInstance<LexerRuleSpecContext>(_ctx, getState()); | |
| enterRule(_localctx, 66, ANTLRv4Parser::RuleLexerRuleSpec); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(371); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::FRAGMENT) { | |
| setState(370); | |
| match(ANTLRv4Parser::FRAGMENT); | |
| } | |
| setState(373); | |
| match(ANTLRv4Parser::TOKEN_REF); | |
| setState(374); | |
| match(ANTLRv4Parser::COLON); | |
| setState(375); | |
| lexerRuleBlock(); | |
| setState(376); | |
| match(ANTLRv4Parser::SEMI); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerRuleBlockContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerRuleBlockContext::LexerRuleBlockContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::LexerAltListContext * | |
| ANTLRv4Parser::LexerRuleBlockContext::lexerAltList() { | |
| return getRuleContext<ANTLRv4Parser::LexerAltListContext>(0); | |
| } | |
| size_t ANTLRv4Parser::LexerRuleBlockContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerRuleBlock; | |
| } | |
| void ANTLRv4Parser::LexerRuleBlockContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerRuleBlock(this); | |
| } | |
| void ANTLRv4Parser::LexerRuleBlockContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerRuleBlock(this); | |
| } | |
| ANTLRv4Parser::LexerRuleBlockContext *ANTLRv4Parser::lexerRuleBlock() { | |
| LexerRuleBlockContext *_localctx = | |
| _tracker.createInstance<LexerRuleBlockContext>(_ctx, getState()); | |
| enterRule(_localctx, 68, ANTLRv4Parser::RuleLexerRuleBlock); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(378); | |
| lexerAltList(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerAltListContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerAltListContext::LexerAltListContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::LexerAltContext *> | |
| ANTLRv4Parser::LexerAltListContext::lexerAlt() { | |
| return getRuleContexts<ANTLRv4Parser::LexerAltContext>(); | |
| } | |
| ANTLRv4Parser::LexerAltContext *ANTLRv4Parser::LexerAltListContext::lexerAlt( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::LexerAltContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::LexerAltListContext::OR() { | |
| return getTokens(ANTLRv4Parser::OR); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerAltListContext::OR(size_t i) { | |
| return getToken(ANTLRv4Parser::OR, i); | |
| } | |
| size_t ANTLRv4Parser::LexerAltListContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerAltList; | |
| } | |
| void ANTLRv4Parser::LexerAltListContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerAltList(this); | |
| } | |
| void ANTLRv4Parser::LexerAltListContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerAltList(this); | |
| } | |
| ANTLRv4Parser::LexerAltListContext *ANTLRv4Parser::lexerAltList() { | |
| LexerAltListContext *_localctx = | |
| _tracker.createInstance<LexerAltListContext>(_ctx, getState()); | |
| enterRule(_localctx, 70, ANTLRv4Parser::RuleLexerAltList); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(380); | |
| lexerAlt(); | |
| setState(385); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::OR) { | |
| setState(381); | |
| match(ANTLRv4Parser::OR); | |
| setState(382); | |
| lexerAlt(); | |
| setState(387); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerAltContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerAltContext::LexerAltContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::LexerElementsContext * | |
| ANTLRv4Parser::LexerAltContext::lexerElements() { | |
| return getRuleContext<ANTLRv4Parser::LexerElementsContext>(0); | |
| } | |
| ANTLRv4Parser::LexerCommandsContext * | |
| ANTLRv4Parser::LexerAltContext::lexerCommands() { | |
| return getRuleContext<ANTLRv4Parser::LexerCommandsContext>(0); | |
| } | |
| size_t ANTLRv4Parser::LexerAltContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerAlt; | |
| } | |
| void ANTLRv4Parser::LexerAltContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerAlt(this); | |
| } | |
| void ANTLRv4Parser::LexerAltContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerAlt(this); | |
| } | |
| ANTLRv4Parser::LexerAltContext *ANTLRv4Parser::lexerAlt() { | |
| LexerAltContext *_localctx = | |
| _tracker.createInstance<LexerAltContext>(_ctx, getState()); | |
| enterRule(_localctx, 72, ANTLRv4Parser::RuleLexerAlt); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(393); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 36, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(388); | |
| lexerElements(); | |
| setState(390); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::RARROW) { | |
| setState(389); | |
| lexerCommands(); | |
| } | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerElementsContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerElementsContext::LexerElementsContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::LexerElementContext *> | |
| ANTLRv4Parser::LexerElementsContext::lexerElement() { | |
| return getRuleContexts<ANTLRv4Parser::LexerElementContext>(); | |
| } | |
| ANTLRv4Parser::LexerElementContext * | |
| ANTLRv4Parser::LexerElementsContext::lexerElement(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::LexerElementContext>(i); | |
| } | |
| size_t ANTLRv4Parser::LexerElementsContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerElements; | |
| } | |
| void ANTLRv4Parser::LexerElementsContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerElements(this); | |
| } | |
| void ANTLRv4Parser::LexerElementsContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerElements(this); | |
| } | |
| ANTLRv4Parser::LexerElementsContext *ANTLRv4Parser::lexerElements() { | |
| LexerElementsContext *_localctx = | |
| _tracker.createInstance<LexerElementsContext>(_ctx, getState()); | |
| enterRule(_localctx, 74, ANTLRv4Parser::RuleLexerElements); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(401); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: | |
| case ANTLRv4Parser::LEXER_CHAR_SET: | |
| case ANTLRv4Parser::STRING_LITERAL: | |
| case ANTLRv4Parser::BEGIN_ACTION: | |
| case ANTLRv4Parser::LPAREN: | |
| case ANTLRv4Parser::DOT: | |
| case ANTLRv4Parser::NOT: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(396); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| do { | |
| setState(395); | |
| lexerElement(); | |
| setState(398); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } while ((((_la & ~0x3fULL) == 0) && | |
| ((1ULL << _la) & 2533283380332814) != 0)); | |
| break; | |
| } | |
| case ANTLRv4Parser::SEMI: | |
| case ANTLRv4Parser::RPAREN: | |
| case ANTLRv4Parser::RARROW: | |
| case ANTLRv4Parser::OR: { | |
| enterOuterAlt(_localctx, 2); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerElementContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerElementContext::LexerElementContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::LabeledLexerElementContext * | |
| ANTLRv4Parser::LexerElementContext::labeledLexerElement() { | |
| return getRuleContext<ANTLRv4Parser::LabeledLexerElementContext>(0); | |
| } | |
| ANTLRv4Parser::EbnfSuffixContext * | |
| ANTLRv4Parser::LexerElementContext::ebnfSuffix() { | |
| return getRuleContext<ANTLRv4Parser::EbnfSuffixContext>(0); | |
| } | |
| ANTLRv4Parser::LexerAtomContext * | |
| ANTLRv4Parser::LexerElementContext::lexerAtom() { | |
| return getRuleContext<ANTLRv4Parser::LexerAtomContext>(0); | |
| } | |
| ANTLRv4Parser::LexerBlockContext * | |
| ANTLRv4Parser::LexerElementContext::lexerBlock() { | |
| return getRuleContext<ANTLRv4Parser::LexerBlockContext>(0); | |
| } | |
| ANTLRv4Parser::ActionBlockContext * | |
| ANTLRv4Parser::LexerElementContext::actionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ActionBlockContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerElementContext::QUESTION() { | |
| return getToken(ANTLRv4Parser::QUESTION, 0); | |
| } | |
| size_t ANTLRv4Parser::LexerElementContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerElement; | |
| } | |
| void ANTLRv4Parser::LexerElementContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerElement(this); | |
| } | |
| void ANTLRv4Parser::LexerElementContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerElement(this); | |
| } | |
| ANTLRv4Parser::LexerElementContext *ANTLRv4Parser::lexerElement() { | |
| LexerElementContext *_localctx = | |
| _tracker.createInstance<LexerElementContext>(_ctx, getState()); | |
| enterRule(_localctx, 76, ANTLRv4Parser::RuleLexerElement); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(419); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 43, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(403); | |
| labeledLexerElement(); | |
| setState(405); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if ((((_la & ~0x3fULL) == 0) && | |
| ((1ULL << _la) & 24189255811072) != 0)) { | |
| setState(404); | |
| ebnfSuffix(); | |
| } | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(407); | |
| lexerAtom(); | |
| setState(409); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if ((((_la & ~0x3fULL) == 0) && | |
| ((1ULL << _la) & 24189255811072) != 0)) { | |
| setState(408); | |
| ebnfSuffix(); | |
| } | |
| break; | |
| } | |
| case 3: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(411); | |
| lexerBlock(); | |
| setState(413); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if ((((_la & ~0x3fULL) == 0) && | |
| ((1ULL << _la) & 24189255811072) != 0)) { | |
| setState(412); | |
| ebnfSuffix(); | |
| } | |
| break; | |
| } | |
| case 4: { | |
| enterOuterAlt(_localctx, 4); | |
| setState(415); | |
| actionBlock(); | |
| setState(417); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::QUESTION) { | |
| setState(416); | |
| match(ANTLRv4Parser::QUESTION); | |
| } | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LabeledLexerElementContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LabeledLexerElementContext::LabeledLexerElementContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::LabeledLexerElementContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LabeledLexerElementContext::ASSIGN() { | |
| return getToken(ANTLRv4Parser::ASSIGN, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LabeledLexerElementContext::PLUS_ASSIGN() { | |
| return getToken(ANTLRv4Parser::PLUS_ASSIGN, 0); | |
| } | |
| ANTLRv4Parser::LexerAtomContext * | |
| ANTLRv4Parser::LabeledLexerElementContext::lexerAtom() { | |
| return getRuleContext<ANTLRv4Parser::LexerAtomContext>(0); | |
| } | |
| ANTLRv4Parser::LexerBlockContext * | |
| ANTLRv4Parser::LabeledLexerElementContext::lexerBlock() { | |
| return getRuleContext<ANTLRv4Parser::LexerBlockContext>(0); | |
| } | |
| size_t ANTLRv4Parser::LabeledLexerElementContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLabeledLexerElement; | |
| } | |
| void ANTLRv4Parser::LabeledLexerElementContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLabeledLexerElement(this); | |
| } | |
| void ANTLRv4Parser::LabeledLexerElementContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLabeledLexerElement(this); | |
| } | |
| ANTLRv4Parser::LabeledLexerElementContext * | |
| ANTLRv4Parser::labeledLexerElement() { | |
| LabeledLexerElementContext *_localctx = | |
| _tracker.createInstance<LabeledLexerElementContext>(_ctx, getState()); | |
| enterRule(_localctx, 78, ANTLRv4Parser::RuleLabeledLexerElement); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(421); | |
| identifier(); | |
| setState(422); | |
| _la = _input->LA(1); | |
| if (!(_la == ANTLRv4Parser::ASSIGN | |
| || _la == ANTLRv4Parser::PLUS_ASSIGN)) { | |
| _errHandler->recoverInline(this); | |
| } else { | |
| _errHandler->reportMatch(this); | |
| consume(); | |
| } | |
| setState(425); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::LEXER_CHAR_SET: | |
| case ANTLRv4Parser::STRING_LITERAL: | |
| case ANTLRv4Parser::DOT: | |
| case ANTLRv4Parser::NOT: { | |
| setState(423); | |
| lexerAtom(); | |
| break; | |
| } | |
| case ANTLRv4Parser::LPAREN: { | |
| setState(424); | |
| lexerBlock(); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerBlockContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerBlockContext::LexerBlockContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::LexerBlockContext::LPAREN() { | |
| return getToken(ANTLRv4Parser::LPAREN, 0); | |
| } | |
| ANTLRv4Parser::LexerAltListContext * | |
| ANTLRv4Parser::LexerBlockContext::lexerAltList() { | |
| return getRuleContext<ANTLRv4Parser::LexerAltListContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerBlockContext::RPAREN() { | |
| return getToken(ANTLRv4Parser::RPAREN, 0); | |
| } | |
| size_t ANTLRv4Parser::LexerBlockContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerBlock; | |
| } | |
| void ANTLRv4Parser::LexerBlockContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerBlock(this); | |
| } | |
| void ANTLRv4Parser::LexerBlockContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerBlock(this); | |
| } | |
| ANTLRv4Parser::LexerBlockContext *ANTLRv4Parser::lexerBlock() { | |
| LexerBlockContext *_localctx = | |
| _tracker.createInstance<LexerBlockContext>(_ctx, getState()); | |
| enterRule(_localctx, 80, ANTLRv4Parser::RuleLexerBlock); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(427); | |
| match(ANTLRv4Parser::LPAREN); | |
| setState(428); | |
| lexerAltList(); | |
| setState(429); | |
| match(ANTLRv4Parser::RPAREN); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerCommandsContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerCommandsContext::LexerCommandsContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::LexerCommandsContext::RARROW() { | |
| return getToken(ANTLRv4Parser::RARROW, 0); | |
| } | |
| std::vector<ANTLRv4Parser::LexerCommandContext *> | |
| ANTLRv4Parser::LexerCommandsContext::lexerCommand() { | |
| return getRuleContexts<ANTLRv4Parser::LexerCommandContext>(); | |
| } | |
| ANTLRv4Parser::LexerCommandContext * | |
| ANTLRv4Parser::LexerCommandsContext::lexerCommand(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::LexerCommandContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::LexerCommandsContext::COMMA() { | |
| return getTokens(ANTLRv4Parser::COMMA); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerCommandsContext::COMMA(size_t i) { | |
| return getToken(ANTLRv4Parser::COMMA, i); | |
| } | |
| size_t ANTLRv4Parser::LexerCommandsContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerCommands; | |
| } | |
| void ANTLRv4Parser::LexerCommandsContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerCommands(this); | |
| } | |
| void ANTLRv4Parser::LexerCommandsContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerCommands(this); | |
| } | |
| ANTLRv4Parser::LexerCommandsContext *ANTLRv4Parser::lexerCommands() { | |
| LexerCommandsContext *_localctx = | |
| _tracker.createInstance<LexerCommandsContext>(_ctx, getState()); | |
| enterRule(_localctx, 82, ANTLRv4Parser::RuleLexerCommands); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(431); | |
| match(ANTLRv4Parser::RARROW); | |
| setState(432); | |
| lexerCommand(); | |
| setState(437); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::COMMA) { | |
| setState(433); | |
| match(ANTLRv4Parser::COMMA); | |
| setState(434); | |
| lexerCommand(); | |
| setState(439); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerCommandContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerCommandContext::LexerCommandContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::LexerCommandNameContext * | |
| ANTLRv4Parser::LexerCommandContext::lexerCommandName() { | |
| return getRuleContext<ANTLRv4Parser::LexerCommandNameContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerCommandContext::LPAREN() { | |
| return getToken(ANTLRv4Parser::LPAREN, 0); | |
| } | |
| ANTLRv4Parser::LexerCommandExprContext * | |
| ANTLRv4Parser::LexerCommandContext::lexerCommandExpr() { | |
| return getRuleContext<ANTLRv4Parser::LexerCommandExprContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerCommandContext::RPAREN() { | |
| return getToken(ANTLRv4Parser::RPAREN, 0); | |
| } | |
| size_t ANTLRv4Parser::LexerCommandContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerCommand; | |
| } | |
| void ANTLRv4Parser::LexerCommandContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerCommand(this); | |
| } | |
| void ANTLRv4Parser::LexerCommandContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerCommand(this); | |
| } | |
| ANTLRv4Parser::LexerCommandContext *ANTLRv4Parser::lexerCommand() { | |
| LexerCommandContext *_localctx = | |
| _tracker.createInstance<LexerCommandContext>(_ctx, getState()); | |
| enterRule(_localctx, 84, ANTLRv4Parser::RuleLexerCommand); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(446); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 46, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(440); | |
| lexerCommandName(); | |
| setState(441); | |
| match(ANTLRv4Parser::LPAREN); | |
| setState(442); | |
| lexerCommandExpr(); | |
| setState(443); | |
| match(ANTLRv4Parser::RPAREN); | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(445); | |
| lexerCommandName(); | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerCommandNameContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerCommandNameContext::LexerCommandNameContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::LexerCommandNameContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerCommandNameContext::MODE() { | |
| return getToken(ANTLRv4Parser::MODE, 0); | |
| } | |
| size_t ANTLRv4Parser::LexerCommandNameContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerCommandName; | |
| } | |
| void ANTLRv4Parser::LexerCommandNameContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerCommandName(this); | |
| } | |
| void ANTLRv4Parser::LexerCommandNameContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerCommandName(this); | |
| } | |
| ANTLRv4Parser::LexerCommandNameContext *ANTLRv4Parser::lexerCommandName() { | |
| LexerCommandNameContext *_localctx = | |
| _tracker.createInstance<LexerCommandNameContext>(_ctx, getState()); | |
| enterRule(_localctx, 86, ANTLRv4Parser::RuleLexerCommandName); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(450); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(448); | |
| identifier(); | |
| break; | |
| } | |
| case ANTLRv4Parser::MODE: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(449); | |
| match(ANTLRv4Parser::MODE); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerCommandExprContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerCommandExprContext::LexerCommandExprContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::LexerCommandExprContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerCommandExprContext::INT() { | |
| return getToken(ANTLRv4Parser::INT, 0); | |
| } | |
| size_t ANTLRv4Parser::LexerCommandExprContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerCommandExpr; | |
| } | |
| void ANTLRv4Parser::LexerCommandExprContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerCommandExpr(this); | |
| } | |
| void ANTLRv4Parser::LexerCommandExprContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerCommandExpr(this); | |
| } | |
| ANTLRv4Parser::LexerCommandExprContext *ANTLRv4Parser::lexerCommandExpr() { | |
| LexerCommandExprContext *_localctx = | |
| _tracker.createInstance<LexerCommandExprContext>(_ctx, getState()); | |
| enterRule(_localctx, 88, ANTLRv4Parser::RuleLexerCommandExpr); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(454); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(452); | |
| identifier(); | |
| break; | |
| } | |
| case ANTLRv4Parser::INT: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(453); | |
| match(ANTLRv4Parser::INT); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- AltListContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::AltListContext::AltListContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::AlternativeContext *> | |
| ANTLRv4Parser::AltListContext::alternative() { | |
| return getRuleContexts<ANTLRv4Parser::AlternativeContext>(); | |
| } | |
| ANTLRv4Parser::AlternativeContext *ANTLRv4Parser::AltListContext::alternative( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::AlternativeContext>(i); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::AltListContext::OR() { | |
| return getTokens(ANTLRv4Parser::OR); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::AltListContext::OR(size_t i) { | |
| return getToken(ANTLRv4Parser::OR, i); | |
| } | |
| size_t ANTLRv4Parser::AltListContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleAltList; | |
| } | |
| void ANTLRv4Parser::AltListContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterAltList(this); | |
| } | |
| void ANTLRv4Parser::AltListContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitAltList(this); | |
| } | |
| ANTLRv4Parser::AltListContext *ANTLRv4Parser::altList() { | |
| AltListContext *_localctx = | |
| _tracker.createInstance<AltListContext>(_ctx, getState()); | |
| enterRule(_localctx, 90, ANTLRv4Parser::RuleAltList); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(456); | |
| alternative(); | |
| setState(461); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::OR) { | |
| setState(457); | |
| match(ANTLRv4Parser::OR); | |
| setState(458); | |
| alternative(); | |
| setState(463); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- AlternativeContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::AlternativeContext::AlternativeContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::ElementOptionsContext * | |
| ANTLRv4Parser::AlternativeContext::elementOptions() { | |
| return getRuleContext<ANTLRv4Parser::ElementOptionsContext>(0); | |
| } | |
| std::vector<ANTLRv4Parser::ElementContext *> | |
| ANTLRv4Parser::AlternativeContext::element() { | |
| return getRuleContexts<ANTLRv4Parser::ElementContext>(); | |
| } | |
| ANTLRv4Parser::ElementContext *ANTLRv4Parser::AlternativeContext::element( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::ElementContext>(i); | |
| } | |
| size_t ANTLRv4Parser::AlternativeContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleAlternative; | |
| } | |
| void ANTLRv4Parser::AlternativeContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterAlternative(this); | |
| } | |
| void ANTLRv4Parser::AlternativeContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitAlternative(this); | |
| } | |
| ANTLRv4Parser::AlternativeContext *ANTLRv4Parser::alternative() { | |
| AlternativeContext *_localctx = | |
| _tracker.createInstance<AlternativeContext>(_ctx, getState()); | |
| enterRule(_localctx, 92, ANTLRv4Parser::RuleAlternative); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(473); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: | |
| case ANTLRv4Parser::STRING_LITERAL: | |
| case ANTLRv4Parser::BEGIN_ACTION: | |
| case ANTLRv4Parser::LPAREN: | |
| case ANTLRv4Parser::LT: | |
| case ANTLRv4Parser::DOT: | |
| case ANTLRv4Parser::NOT: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(465); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(464); | |
| elementOptions(); | |
| } | |
| setState(468); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| do { | |
| setState(467); | |
| element(); | |
| setState(470); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } while ((((_la & ~0x3fULL) == 0) && | |
| ((1ULL << _la) & 2533283380332806) != 0)); | |
| break; | |
| } | |
| case ANTLRv4Parser::SEMI: | |
| case ANTLRv4Parser::RPAREN: | |
| case ANTLRv4Parser::OR: | |
| case ANTLRv4Parser::POUND: { | |
| enterOuterAlt(_localctx, 2); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ElementContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ElementContext::ElementContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::LabeledElementContext * | |
| ANTLRv4Parser::ElementContext::labeledElement() { | |
| return getRuleContext<ANTLRv4Parser::LabeledElementContext>(0); | |
| } | |
| ANTLRv4Parser::EbnfSuffixContext *ANTLRv4Parser::ElementContext::ebnfSuffix() { | |
| return getRuleContext<ANTLRv4Parser::EbnfSuffixContext>(0); | |
| } | |
| ANTLRv4Parser::AtomContext *ANTLRv4Parser::ElementContext::atom() { | |
| return getRuleContext<ANTLRv4Parser::AtomContext>(0); | |
| } | |
| ANTLRv4Parser::EbnfContext *ANTLRv4Parser::ElementContext::ebnf() { | |
| return getRuleContext<ANTLRv4Parser::EbnfContext>(0); | |
| } | |
| ANTLRv4Parser::ActionBlockContext * | |
| ANTLRv4Parser::ElementContext::actionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ActionBlockContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ElementContext::QUESTION() { | |
| return getToken(ANTLRv4Parser::QUESTION, 0); | |
| } | |
| size_t ANTLRv4Parser::ElementContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleElement; | |
| } | |
| void ANTLRv4Parser::ElementContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterElement(this); | |
| } | |
| void ANTLRv4Parser::ElementContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitElement(this); | |
| } | |
| ANTLRv4Parser::ElementContext *ANTLRv4Parser::element() { | |
| ElementContext *_localctx = | |
| _tracker.createInstance<ElementContext>(_ctx, getState()); | |
| enterRule(_localctx, 94, ANTLRv4Parser::RuleElement); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(490); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 56, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(475); | |
| labeledElement(); | |
| setState(478); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::QUESTION: | |
| case ANTLRv4Parser::STAR: | |
| case ANTLRv4Parser::PLUS: { | |
| setState(476); | |
| ebnfSuffix(); | |
| break; | |
| } | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: | |
| case ANTLRv4Parser::STRING_LITERAL: | |
| case ANTLRv4Parser::BEGIN_ACTION: | |
| case ANTLRv4Parser::SEMI: | |
| case ANTLRv4Parser::LPAREN: | |
| case ANTLRv4Parser::RPAREN: | |
| case ANTLRv4Parser::OR: | |
| case ANTLRv4Parser::DOT: | |
| case ANTLRv4Parser::POUND: | |
| case ANTLRv4Parser::NOT: { | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(480); | |
| atom(); | |
| setState(483); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::QUESTION: | |
| case ANTLRv4Parser::STAR: | |
| case ANTLRv4Parser::PLUS: { | |
| setState(481); | |
| ebnfSuffix(); | |
| break; | |
| } | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: | |
| case ANTLRv4Parser::STRING_LITERAL: | |
| case ANTLRv4Parser::BEGIN_ACTION: | |
| case ANTLRv4Parser::SEMI: | |
| case ANTLRv4Parser::LPAREN: | |
| case ANTLRv4Parser::RPAREN: | |
| case ANTLRv4Parser::OR: | |
| case ANTLRv4Parser::DOT: | |
| case ANTLRv4Parser::POUND: | |
| case ANTLRv4Parser::NOT: { | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| break; | |
| } | |
| case 3: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(485); | |
| ebnf(); | |
| break; | |
| } | |
| case 4: { | |
| enterOuterAlt(_localctx, 4); | |
| setState(486); | |
| actionBlock(); | |
| setState(488); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::QUESTION) { | |
| setState(487); | |
| match(ANTLRv4Parser::QUESTION); | |
| } | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LabeledElementContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LabeledElementContext::LabeledElementContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::LabeledElementContext::identifier() { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LabeledElementContext::ASSIGN() { | |
| return getToken(ANTLRv4Parser::ASSIGN, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LabeledElementContext::PLUS_ASSIGN() { | |
| return getToken(ANTLRv4Parser::PLUS_ASSIGN, 0); | |
| } | |
| ANTLRv4Parser::AtomContext *ANTLRv4Parser::LabeledElementContext::atom() { | |
| return getRuleContext<ANTLRv4Parser::AtomContext>(0); | |
| } | |
| ANTLRv4Parser::BlockContext *ANTLRv4Parser::LabeledElementContext::block() { | |
| return getRuleContext<ANTLRv4Parser::BlockContext>(0); | |
| } | |
| size_t ANTLRv4Parser::LabeledElementContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLabeledElement; | |
| } | |
| void ANTLRv4Parser::LabeledElementContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLabeledElement(this); | |
| } | |
| void ANTLRv4Parser::LabeledElementContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLabeledElement(this); | |
| } | |
| ANTLRv4Parser::LabeledElementContext *ANTLRv4Parser::labeledElement() { | |
| LabeledElementContext *_localctx = | |
| _tracker.createInstance<LabeledElementContext>(_ctx, getState()); | |
| enterRule(_localctx, 96, ANTLRv4Parser::RuleLabeledElement); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(492); | |
| identifier(); | |
| setState(493); | |
| _la = _input->LA(1); | |
| if (!(_la == ANTLRv4Parser::ASSIGN | |
| || _la == ANTLRv4Parser::PLUS_ASSIGN)) { | |
| _errHandler->recoverInline(this); | |
| } else { | |
| _errHandler->reportMatch(this); | |
| consume(); | |
| } | |
| setState(496); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: | |
| case ANTLRv4Parser::STRING_LITERAL: | |
| case ANTLRv4Parser::DOT: | |
| case ANTLRv4Parser::NOT: { | |
| setState(494); | |
| atom(); | |
| break; | |
| } | |
| case ANTLRv4Parser::LPAREN: { | |
| setState(495); | |
| block(); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- EbnfContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::EbnfContext::EbnfContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::BlockContext *ANTLRv4Parser::EbnfContext::block() { | |
| return getRuleContext<ANTLRv4Parser::BlockContext>(0); | |
| } | |
| ANTLRv4Parser::BlockSuffixContext *ANTLRv4Parser::EbnfContext::blockSuffix() { | |
| return getRuleContext<ANTLRv4Parser::BlockSuffixContext>(0); | |
| } | |
| size_t ANTLRv4Parser::EbnfContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleEbnf; | |
| } | |
| void ANTLRv4Parser::EbnfContext::enterRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterEbnf(this); | |
| } | |
| void ANTLRv4Parser::EbnfContext::exitRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitEbnf(this); | |
| } | |
| ANTLRv4Parser::EbnfContext *ANTLRv4Parser::ebnf() { | |
| EbnfContext *_localctx = | |
| _tracker.createInstance<EbnfContext>(_ctx, getState()); | |
| enterRule(_localctx, 98, ANTLRv4Parser::RuleEbnf); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(498); | |
| block(); | |
| setState(500); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if ((((_la & ~0x3fULL) == 0) && ((1ULL << _la) & 24189255811072) != 0)) { | |
| setState(499); | |
| blockSuffix(); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- BlockSuffixContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::BlockSuffixContext::BlockSuffixContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::EbnfSuffixContext * | |
| ANTLRv4Parser::BlockSuffixContext::ebnfSuffix() { | |
| return getRuleContext<ANTLRv4Parser::EbnfSuffixContext>(0); | |
| } | |
| size_t ANTLRv4Parser::BlockSuffixContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleBlockSuffix; | |
| } | |
| void ANTLRv4Parser::BlockSuffixContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterBlockSuffix(this); | |
| } | |
| void ANTLRv4Parser::BlockSuffixContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitBlockSuffix(this); | |
| } | |
| ANTLRv4Parser::BlockSuffixContext *ANTLRv4Parser::blockSuffix() { | |
| BlockSuffixContext *_localctx = | |
| _tracker.createInstance<BlockSuffixContext>(_ctx, getState()); | |
| enterRule(_localctx, 100, ANTLRv4Parser::RuleBlockSuffix); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(502); | |
| ebnfSuffix(); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- EbnfSuffixContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::EbnfSuffixContext::EbnfSuffixContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::EbnfSuffixContext::QUESTION() { | |
| return getTokens(ANTLRv4Parser::QUESTION); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::EbnfSuffixContext::QUESTION(size_t i) { | |
| return getToken(ANTLRv4Parser::QUESTION, i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::EbnfSuffixContext::STAR() { | |
| return getToken(ANTLRv4Parser::STAR, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::EbnfSuffixContext::PLUS() { | |
| return getToken(ANTLRv4Parser::PLUS, 0); | |
| } | |
| size_t ANTLRv4Parser::EbnfSuffixContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleEbnfSuffix; | |
| } | |
| void ANTLRv4Parser::EbnfSuffixContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterEbnfSuffix(this); | |
| } | |
| void ANTLRv4Parser::EbnfSuffixContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitEbnfSuffix(this); | |
| } | |
| ANTLRv4Parser::EbnfSuffixContext *ANTLRv4Parser::ebnfSuffix() { | |
| EbnfSuffixContext *_localctx = | |
| _tracker.createInstance<EbnfSuffixContext>(_ctx, getState()); | |
| enterRule(_localctx, 102, ANTLRv4Parser::RuleEbnfSuffix); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(516); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::QUESTION: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(504); | |
| match(ANTLRv4Parser::QUESTION); | |
| setState(506); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::QUESTION) { | |
| setState(505); | |
| match(ANTLRv4Parser::QUESTION); | |
| } | |
| break; | |
| } | |
| case ANTLRv4Parser::STAR: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(508); | |
| match(ANTLRv4Parser::STAR); | |
| setState(510); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::QUESTION) { | |
| setState(509); | |
| match(ANTLRv4Parser::QUESTION); | |
| } | |
| break; | |
| } | |
| case ANTLRv4Parser::PLUS: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(512); | |
| match(ANTLRv4Parser::PLUS); | |
| setState(514); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::QUESTION) { | |
| setState(513); | |
| match(ANTLRv4Parser::QUESTION); | |
| } | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- LexerAtomContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::LexerAtomContext::LexerAtomContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::CharacterRangeContext * | |
| ANTLRv4Parser::LexerAtomContext::characterRange() { | |
| return getRuleContext<ANTLRv4Parser::CharacterRangeContext>(0); | |
| } | |
| ANTLRv4Parser::TerminalContext *ANTLRv4Parser::LexerAtomContext::terminal() { | |
| return getRuleContext<ANTLRv4Parser::TerminalContext>(0); | |
| } | |
| ANTLRv4Parser::NotSetContext *ANTLRv4Parser::LexerAtomContext::notSet() { | |
| return getRuleContext<ANTLRv4Parser::NotSetContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerAtomContext::LEXER_CHAR_SET() { | |
| return getToken(ANTLRv4Parser::LEXER_CHAR_SET, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::LexerAtomContext::DOT() { | |
| return getToken(ANTLRv4Parser::DOT, 0); | |
| } | |
| ANTLRv4Parser::ElementOptionsContext * | |
| ANTLRv4Parser::LexerAtomContext::elementOptions() { | |
| return getRuleContext<ANTLRv4Parser::ElementOptionsContext>(0); | |
| } | |
| size_t ANTLRv4Parser::LexerAtomContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleLexerAtom; | |
| } | |
| void ANTLRv4Parser::LexerAtomContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterLexerAtom(this); | |
| } | |
| void ANTLRv4Parser::LexerAtomContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitLexerAtom(this); | |
| } | |
| ANTLRv4Parser::LexerAtomContext *ANTLRv4Parser::lexerAtom() { | |
| LexerAtomContext *_localctx = | |
| _tracker.createInstance<LexerAtomContext>(_ctx, getState()); | |
| enterRule(_localctx, 104, ANTLRv4Parser::RuleLexerAtom); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(526); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 64, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(518); | |
| characterRange(); | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(519); | |
| terminal(); | |
| break; | |
| } | |
| case 3: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(520); | |
| notSet(); | |
| break; | |
| } | |
| case 4: { | |
| enterOuterAlt(_localctx, 4); | |
| setState(521); | |
| match(ANTLRv4Parser::LEXER_CHAR_SET); | |
| break; | |
| } | |
| case 5: { | |
| enterOuterAlt(_localctx, 5); | |
| setState(522); | |
| match(ANTLRv4Parser::DOT); | |
| setState(524); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(523); | |
| elementOptions(); | |
| } | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- AtomContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::AtomContext::AtomContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| ANTLRv4Parser::TerminalContext *ANTLRv4Parser::AtomContext::terminal() { | |
| return getRuleContext<ANTLRv4Parser::TerminalContext>(0); | |
| } | |
| ANTLRv4Parser::RulerefContext *ANTLRv4Parser::AtomContext::ruleref() { | |
| return getRuleContext<ANTLRv4Parser::RulerefContext>(0); | |
| } | |
| ANTLRv4Parser::NotSetContext *ANTLRv4Parser::AtomContext::notSet() { | |
| return getRuleContext<ANTLRv4Parser::NotSetContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::AtomContext::DOT() { | |
| return getToken(ANTLRv4Parser::DOT, 0); | |
| } | |
| ANTLRv4Parser::ElementOptionsContext * | |
| ANTLRv4Parser::AtomContext::elementOptions() { | |
| return getRuleContext<ANTLRv4Parser::ElementOptionsContext>(0); | |
| } | |
| size_t ANTLRv4Parser::AtomContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleAtom; | |
| } | |
| void ANTLRv4Parser::AtomContext::enterRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterAtom(this); | |
| } | |
| void ANTLRv4Parser::AtomContext::exitRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitAtom(this); | |
| } | |
| ANTLRv4Parser::AtomContext *ANTLRv4Parser::atom() { | |
| AtomContext *_localctx = | |
| _tracker.createInstance<AtomContext>(_ctx, getState()); | |
| enterRule(_localctx, 106, ANTLRv4Parser::RuleAtom); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(535); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::STRING_LITERAL: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(528); | |
| terminal(); | |
| break; | |
| } | |
| case ANTLRv4Parser::RULE_REF: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(529); | |
| ruleref(); | |
| break; | |
| } | |
| case ANTLRv4Parser::NOT: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(530); | |
| notSet(); | |
| break; | |
| } | |
| case ANTLRv4Parser::DOT: { | |
| enterOuterAlt(_localctx, 4); | |
| setState(531); | |
| match(ANTLRv4Parser::DOT); | |
| setState(533); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(532); | |
| elementOptions(); | |
| } | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- NotSetContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::NotSetContext::NotSetContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::NotSetContext::NOT() { | |
| return getToken(ANTLRv4Parser::NOT, 0); | |
| } | |
| ANTLRv4Parser::SetElementContext *ANTLRv4Parser::NotSetContext::setElement() { | |
| return getRuleContext<ANTLRv4Parser::SetElementContext>(0); | |
| } | |
| ANTLRv4Parser::BlockSetContext *ANTLRv4Parser::NotSetContext::blockSet() { | |
| return getRuleContext<ANTLRv4Parser::BlockSetContext>(0); | |
| } | |
| size_t ANTLRv4Parser::NotSetContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleNotSet; | |
| } | |
| void ANTLRv4Parser::NotSetContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterNotSet(this); | |
| } | |
| void ANTLRv4Parser::NotSetContext::exitRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitNotSet(this); | |
| } | |
| ANTLRv4Parser::NotSetContext *ANTLRv4Parser::notSet() { | |
| NotSetContext *_localctx = | |
| _tracker.createInstance<NotSetContext>(_ctx, getState()); | |
| enterRule(_localctx, 108, ANTLRv4Parser::RuleNotSet); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(541); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 67, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(537); | |
| match(ANTLRv4Parser::NOT); | |
| setState(538); | |
| setElement(); | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(539); | |
| match(ANTLRv4Parser::NOT); | |
| setState(540); | |
| blockSet(); | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- BlockSetContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::BlockSetContext::BlockSetContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::BlockSetContext::LPAREN() { | |
| return getToken(ANTLRv4Parser::LPAREN, 0); | |
| } | |
| std::vector<ANTLRv4Parser::SetElementContext *> | |
| ANTLRv4Parser::BlockSetContext::setElement() { | |
| return getRuleContexts<ANTLRv4Parser::SetElementContext>(); | |
| } | |
| ANTLRv4Parser::SetElementContext *ANTLRv4Parser::BlockSetContext::setElement( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::SetElementContext>(i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::BlockSetContext::RPAREN() { | |
| return getToken(ANTLRv4Parser::RPAREN, 0); | |
| } | |
| std::vector<tree::TerminalNode *> ANTLRv4Parser::BlockSetContext::OR() { | |
| return getTokens(ANTLRv4Parser::OR); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::BlockSetContext::OR(size_t i) { | |
| return getToken(ANTLRv4Parser::OR, i); | |
| } | |
| size_t ANTLRv4Parser::BlockSetContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleBlockSet; | |
| } | |
| void ANTLRv4Parser::BlockSetContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterBlockSet(this); | |
| } | |
| void ANTLRv4Parser::BlockSetContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitBlockSet(this); | |
| } | |
| ANTLRv4Parser::BlockSetContext *ANTLRv4Parser::blockSet() { | |
| BlockSetContext *_localctx = | |
| _tracker.createInstance<BlockSetContext>(_ctx, getState()); | |
| enterRule(_localctx, 110, ANTLRv4Parser::RuleBlockSet); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(543); | |
| match(ANTLRv4Parser::LPAREN); | |
| setState(544); | |
| setElement(); | |
| setState(549); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::OR) { | |
| setState(545); | |
| match(ANTLRv4Parser::OR); | |
| setState(546); | |
| setElement(); | |
| setState(551); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(552); | |
| match(ANTLRv4Parser::RPAREN); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- SetElementContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::SetElementContext::SetElementContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::SetElementContext::TOKEN_REF() { | |
| return getToken(ANTLRv4Parser::TOKEN_REF, 0); | |
| } | |
| ANTLRv4Parser::ElementOptionsContext * | |
| ANTLRv4Parser::SetElementContext::elementOptions() { | |
| return getRuleContext<ANTLRv4Parser::ElementOptionsContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::SetElementContext::STRING_LITERAL() { | |
| return getToken(ANTLRv4Parser::STRING_LITERAL, 0); | |
| } | |
| ANTLRv4Parser::CharacterRangeContext * | |
| ANTLRv4Parser::SetElementContext::characterRange() { | |
| return getRuleContext<ANTLRv4Parser::CharacterRangeContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::SetElementContext::LEXER_CHAR_SET() { | |
| return getToken(ANTLRv4Parser::LEXER_CHAR_SET, 0); | |
| } | |
| size_t ANTLRv4Parser::SetElementContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleSetElement; | |
| } | |
| void ANTLRv4Parser::SetElementContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterSetElement(this); | |
| } | |
| void ANTLRv4Parser::SetElementContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitSetElement(this); | |
| } | |
| ANTLRv4Parser::SetElementContext *ANTLRv4Parser::setElement() { | |
| SetElementContext *_localctx = | |
| _tracker.createInstance<SetElementContext>(_ctx, getState()); | |
| enterRule(_localctx, 112, ANTLRv4Parser::RuleSetElement); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(564); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 71, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(554); | |
| match(ANTLRv4Parser::TOKEN_REF); | |
| setState(556); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(555); | |
| elementOptions(); | |
| } | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(558); | |
| match(ANTLRv4Parser::STRING_LITERAL); | |
| setState(560); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(559); | |
| elementOptions(); | |
| } | |
| break; | |
| } | |
| case 3: { | |
| enterOuterAlt(_localctx, 3); | |
| setState(562); | |
| characterRange(); | |
| break; | |
| } | |
| case 4: { | |
| enterOuterAlt(_localctx, 4); | |
| setState(563); | |
| match(ANTLRv4Parser::LEXER_CHAR_SET); | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- BlockContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::BlockContext::BlockContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::BlockContext::LPAREN() { | |
| return getToken(ANTLRv4Parser::LPAREN, 0); | |
| } | |
| ANTLRv4Parser::AltListContext *ANTLRv4Parser::BlockContext::altList() { | |
| return getRuleContext<ANTLRv4Parser::AltListContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::BlockContext::RPAREN() { | |
| return getToken(ANTLRv4Parser::RPAREN, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::BlockContext::COLON() { | |
| return getToken(ANTLRv4Parser::COLON, 0); | |
| } | |
| ANTLRv4Parser::OptionsSpecContext *ANTLRv4Parser::BlockContext::optionsSpec() { | |
| return getRuleContext<ANTLRv4Parser::OptionsSpecContext>(0); | |
| } | |
| std::vector<ANTLRv4Parser::RuleActionContext *> | |
| ANTLRv4Parser::BlockContext::ruleAction() { | |
| return getRuleContexts<ANTLRv4Parser::RuleActionContext>(); | |
| } | |
| ANTLRv4Parser::RuleActionContext *ANTLRv4Parser::BlockContext::ruleAction( | |
| size_t i) { | |
| return getRuleContext<ANTLRv4Parser::RuleActionContext>(i); | |
| } | |
| size_t ANTLRv4Parser::BlockContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleBlock; | |
| } | |
| void ANTLRv4Parser::BlockContext::enterRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterBlock(this); | |
| } | |
| void ANTLRv4Parser::BlockContext::exitRule(tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitBlock(this); | |
| } | |
| ANTLRv4Parser::BlockContext *ANTLRv4Parser::block() { | |
| BlockContext *_localctx = | |
| _tracker.createInstance<BlockContext>(_ctx, getState()); | |
| enterRule(_localctx, 114, ANTLRv4Parser::RuleBlock); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(566); | |
| match(ANTLRv4Parser::LPAREN); | |
| setState(577); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if ((((_la & ~0x3fULL) == 0) && ((1ULL << _la) & 562950490296320) != 0)) { | |
| setState(568); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::OPTIONS) { | |
| setState(567); | |
| optionsSpec(); | |
| } | |
| setState(573); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::AT) { | |
| setState(570); | |
| ruleAction(); | |
| setState(575); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(576); | |
| match(ANTLRv4Parser::COLON); | |
| } | |
| setState(579); | |
| altList(); | |
| setState(580); | |
| match(ANTLRv4Parser::RPAREN); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- RulerefContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::RulerefContext::RulerefContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::RulerefContext::RULE_REF() { | |
| return getToken(ANTLRv4Parser::RULE_REF, 0); | |
| } | |
| ANTLRv4Parser::ArgActionBlockContext * | |
| ANTLRv4Parser::RulerefContext::argActionBlock() { | |
| return getRuleContext<ANTLRv4Parser::ArgActionBlockContext>(0); | |
| } | |
| ANTLRv4Parser::ElementOptionsContext * | |
| ANTLRv4Parser::RulerefContext::elementOptions() { | |
| return getRuleContext<ANTLRv4Parser::ElementOptionsContext>(0); | |
| } | |
| size_t ANTLRv4Parser::RulerefContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleRuleref; | |
| } | |
| void ANTLRv4Parser::RulerefContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterRuleref(this); | |
| } | |
| void ANTLRv4Parser::RulerefContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitRuleref(this); | |
| } | |
| ANTLRv4Parser::RulerefContext *ANTLRv4Parser::ruleref() { | |
| RulerefContext *_localctx = | |
| _tracker.createInstance<RulerefContext>(_ctx, getState()); | |
| enterRule(_localctx, 116, ANTLRv4Parser::RuleRuleref); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(582); | |
| match(ANTLRv4Parser::RULE_REF); | |
| setState(584); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::BEGIN_ARGUMENT) { | |
| setState(583); | |
| argActionBlock(); | |
| } | |
| setState(587); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(586); | |
| elementOptions(); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- CharacterRangeContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::CharacterRangeContext::CharacterRangeContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<tree::TerminalNode *> | |
| ANTLRv4Parser::CharacterRangeContext::STRING_LITERAL() { | |
| return getTokens(ANTLRv4Parser::STRING_LITERAL); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::CharacterRangeContext::STRING_LITERAL( | |
| size_t i) { | |
| return getToken(ANTLRv4Parser::STRING_LITERAL, i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::CharacterRangeContext::RANGE() { | |
| return getToken(ANTLRv4Parser::RANGE, 0); | |
| } | |
| size_t ANTLRv4Parser::CharacterRangeContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleCharacterRange; | |
| } | |
| void ANTLRv4Parser::CharacterRangeContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterCharacterRange(this); | |
| } | |
| void ANTLRv4Parser::CharacterRangeContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitCharacterRange(this); | |
| } | |
| ANTLRv4Parser::CharacterRangeContext *ANTLRv4Parser::characterRange() { | |
| CharacterRangeContext *_localctx = | |
| _tracker.createInstance<CharacterRangeContext>(_ctx, getState()); | |
| enterRule(_localctx, 118, ANTLRv4Parser::RuleCharacterRange); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(589); | |
| match(ANTLRv4Parser::STRING_LITERAL); | |
| setState(590); | |
| match(ANTLRv4Parser::RANGE); | |
| setState(591); | |
| match(ANTLRv4Parser::STRING_LITERAL); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- TerminalContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::TerminalContext::TerminalContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::TerminalContext::TOKEN_REF() { | |
| return getToken(ANTLRv4Parser::TOKEN_REF, 0); | |
| } | |
| ANTLRv4Parser::ElementOptionsContext * | |
| ANTLRv4Parser::TerminalContext::elementOptions() { | |
| return getRuleContext<ANTLRv4Parser::ElementOptionsContext>(0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::TerminalContext::STRING_LITERAL() { | |
| return getToken(ANTLRv4Parser::STRING_LITERAL, 0); | |
| } | |
| size_t ANTLRv4Parser::TerminalContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleTerminal; | |
| } | |
| void ANTLRv4Parser::TerminalContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterTerminal(this); | |
| } | |
| void ANTLRv4Parser::TerminalContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitTerminal(this); | |
| } | |
| ANTLRv4Parser::TerminalContext *ANTLRv4Parser::terminal() { | |
| TerminalContext *_localctx = | |
| _tracker.createInstance<TerminalContext>(_ctx, getState()); | |
| enterRule(_localctx, 120, ANTLRv4Parser::RuleTerminal); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(601); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(593); | |
| match(ANTLRv4Parser::TOKEN_REF); | |
| setState(595); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(594); | |
| elementOptions(); | |
| } | |
| break; | |
| } | |
| case ANTLRv4Parser::STRING_LITERAL: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(597); | |
| match(ANTLRv4Parser::STRING_LITERAL); | |
| setState(599); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| if (_la == ANTLRv4Parser::LT) { | |
| setState(598); | |
| elementOptions(); | |
| } | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ElementOptionsContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ElementOptionsContext::ElementOptionsContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::ElementOptionsContext::LT() { | |
| return getToken(ANTLRv4Parser::LT, 0); | |
| } | |
| std::vector<ANTLRv4Parser::ElementOptionContext *> | |
| ANTLRv4Parser::ElementOptionsContext::elementOption() { | |
| return getRuleContexts<ANTLRv4Parser::ElementOptionContext>(); | |
| } | |
| ANTLRv4Parser::ElementOptionContext * | |
| ANTLRv4Parser::ElementOptionsContext::elementOption(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::ElementOptionContext>(i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ElementOptionsContext::GT() { | |
| return getToken(ANTLRv4Parser::GT, 0); | |
| } | |
| std::vector<tree::TerminalNode *> | |
| ANTLRv4Parser::ElementOptionsContext::COMMA() { | |
| return getTokens(ANTLRv4Parser::COMMA); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ElementOptionsContext::COMMA(size_t i) { | |
| return getToken(ANTLRv4Parser::COMMA, i); | |
| } | |
| size_t ANTLRv4Parser::ElementOptionsContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleElementOptions; | |
| } | |
| void ANTLRv4Parser::ElementOptionsContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterElementOptions(this); | |
| } | |
| void ANTLRv4Parser::ElementOptionsContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitElementOptions(this); | |
| } | |
| ANTLRv4Parser::ElementOptionsContext *ANTLRv4Parser::elementOptions() { | |
| ElementOptionsContext *_localctx = | |
| _tracker.createInstance<ElementOptionsContext>(_ctx, getState()); | |
| enterRule(_localctx, 122, ANTLRv4Parser::RuleElementOptions); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(603); | |
| match(ANTLRv4Parser::LT); | |
| setState(604); | |
| elementOption(); | |
| setState(609); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| while (_la == ANTLRv4Parser::COMMA) { | |
| setState(605); | |
| match(ANTLRv4Parser::COMMA); | |
| setState(606); | |
| elementOption(); | |
| setState(611); | |
| _errHandler->sync(this); | |
| _la = _input->LA(1); | |
| } | |
| setState(612); | |
| match(ANTLRv4Parser::GT); | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- ElementOptionContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::ElementOptionContext::ElementOptionContext( | |
| ParserRuleContext *parent, size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| std::vector<ANTLRv4Parser::IdentifierContext *> | |
| ANTLRv4Parser::ElementOptionContext::identifier() { | |
| return getRuleContexts<ANTLRv4Parser::IdentifierContext>(); | |
| } | |
| ANTLRv4Parser::IdentifierContext * | |
| ANTLRv4Parser::ElementOptionContext::identifier(size_t i) { | |
| return getRuleContext<ANTLRv4Parser::IdentifierContext>(i); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ElementOptionContext::ASSIGN() { | |
| return getToken(ANTLRv4Parser::ASSIGN, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::ElementOptionContext::STRING_LITERAL() { | |
| return getToken(ANTLRv4Parser::STRING_LITERAL, 0); | |
| } | |
| size_t ANTLRv4Parser::ElementOptionContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleElementOption; | |
| } | |
| void ANTLRv4Parser::ElementOptionContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterElementOption(this); | |
| } | |
| void ANTLRv4Parser::ElementOptionContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitElementOption(this); | |
| } | |
| ANTLRv4Parser::ElementOptionContext *ANTLRv4Parser::elementOption() { | |
| ElementOptionContext *_localctx = | |
| _tracker.createInstance<ElementOptionContext>(_ctx, getState()); | |
| enterRule(_localctx, 124, ANTLRv4Parser::RuleElementOption); | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| setState(621); | |
| _errHandler->sync(this); | |
| switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict( | |
| _input, 82, _ctx)) { | |
| case 1: { | |
| enterOuterAlt(_localctx, 1); | |
| setState(614); | |
| identifier(); | |
| break; | |
| } | |
| case 2: { | |
| enterOuterAlt(_localctx, 2); | |
| setState(615); | |
| identifier(); | |
| setState(616); | |
| match(ANTLRv4Parser::ASSIGN); | |
| setState(619); | |
| _errHandler->sync(this); | |
| switch (_input->LA(1)) { | |
| case ANTLRv4Parser::TOKEN_REF: | |
| case ANTLRv4Parser::RULE_REF: { | |
| setState(617); | |
| identifier(); | |
| break; | |
| } | |
| case ANTLRv4Parser::STRING_LITERAL: { | |
| setState(618); | |
| match(ANTLRv4Parser::STRING_LITERAL); | |
| break; | |
| } | |
| default: | |
| throw NoViableAltException(this); | |
| } | |
| break; | |
| } | |
| default: | |
| break; | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| //----------------- IdentifierContext | |
| //------------------------------------------------------------------ | |
| ANTLRv4Parser::IdentifierContext::IdentifierContext(ParserRuleContext *parent, | |
| size_t invokingState) | |
| : ParserRuleContext(parent, invokingState) {} | |
| tree::TerminalNode *ANTLRv4Parser::IdentifierContext::RULE_REF() { | |
| return getToken(ANTLRv4Parser::RULE_REF, 0); | |
| } | |
| tree::TerminalNode *ANTLRv4Parser::IdentifierContext::TOKEN_REF() { | |
| return getToken(ANTLRv4Parser::TOKEN_REF, 0); | |
| } | |
| size_t ANTLRv4Parser::IdentifierContext::getRuleIndex() const { | |
| return ANTLRv4Parser::RuleIdentifier; | |
| } | |
| void ANTLRv4Parser::IdentifierContext::enterRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->enterIdentifier(this); | |
| } | |
| void ANTLRv4Parser::IdentifierContext::exitRule( | |
| tree::ParseTreeListener *listener) { | |
| auto parserListener = dynamic_cast<ANTLRv4ParserListener *>(listener); | |
| if (parserListener != nullptr) parserListener->exitIdentifier(this); | |
| } | |
| ANTLRv4Parser::IdentifierContext *ANTLRv4Parser::identifier() { | |
| IdentifierContext *_localctx = | |
| _tracker.createInstance<IdentifierContext>(_ctx, getState()); | |
| enterRule(_localctx, 126, ANTLRv4Parser::RuleIdentifier); | |
| size_t _la = 0; | |
| #if __cplusplus > 201703L | |
| auto onExit = finally([=, this] { | |
| #else | |
| auto onExit = finally([=] { | |
| #endif | |
| exitRule(); | |
| }); | |
| try { | |
| enterOuterAlt(_localctx, 1); | |
| setState(623); | |
| _la = _input->LA(1); | |
| if (!(_la == ANTLRv4Parser::TOKEN_REF | |
| || _la == ANTLRv4Parser::RULE_REF)) { | |
| _errHandler->recoverInline(this); | |
| } else { | |
| _errHandler->reportMatch(this); | |
| consume(); | |
| } | |
| } catch (RecognitionException &e) { | |
| _errHandler->reportError(this, e); | |
| _localctx->exception = std::current_exception(); | |
| _errHandler->recover(this, _localctx->exception); | |
| } | |
| return _localctx; | |
| } | |
| void ANTLRv4Parser::initialize() { | |
| ::antlr4::internal::call_once(antlrv4parserParserOnceFlag, | |
| antlrv4parserParserInitialize); | |
| } |