blob: 72ab474f2a90d42b0844b32f1a2cb511362cf3fa [file] [log] [blame]
// [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);
}