2 // Generated from Toc.g4 by ANTLR 4.9.2
\r
5 #include "TocListener.h"
\r
7 #include "TocParser.h"
\r
10 using namespace antlrcpp;
\r
11 using namespace antlr4;
\r
13 TocParser::TocParser(TokenStream *input) : Parser(input) {
\r
14 _interpreter = new atn::ParserATNSimulator(this, _atn, _decisionToDFA, _sharedContextCache);
\r
17 TocParser::~TocParser() {
\r
18 delete _interpreter;
\r
21 std::string TocParser::getGrammarFileName() const {
\r
25 const std::vector<std::string>& TocParser::getRuleNames() const {
\r
29 dfa::Vocabulary& TocParser::getVocabulary() const {
\r
34 //----------------- ProgContext ------------------------------------------------------------------
\r
36 TocParser::ProgContext::ProgContext(ParserRuleContext *parent, size_t invokingState)
\r
37 : ParserRuleContext(parent, invokingState) {
\r
40 tree::TerminalNode* TocParser::ProgContext::EOF() {
\r
41 return getToken(TocParser::EOF, 0);
\r
44 std::vector<TocParser::DeclContext *> TocParser::ProgContext::decl() {
\r
45 return getRuleContexts<TocParser::DeclContext>();
\r
48 TocParser::DeclContext* TocParser::ProgContext::decl(size_t i) {
\r
49 return getRuleContext<TocParser::DeclContext>(i);
\r
53 size_t TocParser::ProgContext::getRuleIndex() const {
\r
54 return TocParser::RuleProg;
\r
57 void TocParser::ProgContext::enterRule(tree::ParseTreeListener *listener) {
\r
58 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
59 if (parserListener != nullptr)
\r
60 parserListener->enterProg(this);
\r
63 void TocParser::ProgContext::exitRule(tree::ParseTreeListener *listener) {
\r
64 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
65 if (parserListener != nullptr)
\r
66 parserListener->exitProg(this);
\r
69 TocParser::ProgContext* TocParser::prog() {
\r
70 ProgContext *_localctx = _tracker.createInstance<ProgContext>(_ctx, getState());
\r
71 enterRule(_localctx, 0, TocParser::RuleProg);
\r
74 #if __cplusplus > 201703L
\r
75 auto onExit = finally([=, this] {
\r
77 auto onExit = finally([=] {
\r
82 enterOuterAlt(_localctx, 1);
\r
84 _errHandler->sync(this);
\r
85 _la = _input->LA(1);
\r
90 _errHandler->sync(this);
\r
91 _la = _input->LA(1);
\r
92 } while ((((_la & ~ 0x3fULL) == 0) &&
\r
93 ((1ULL << _la) & ((1ULL << TocParser::T__0)
\r
94 | (1ULL << TocParser::T__6)
\r
95 | (1ULL << TocParser::T__12))) != 0));
\r
97 match(TocParser::EOF);
\r
100 catch (RecognitionException &e) {
\r
101 _errHandler->reportError(this, e);
\r
102 _localctx->exception = std::current_exception();
\r
103 _errHandler->recover(this, _localctx->exception);
\r
109 //----------------- DeclContext ------------------------------------------------------------------
\r
111 TocParser::DeclContext::DeclContext(ParserRuleContext *parent, size_t invokingState)
\r
112 : ParserRuleContext(parent, invokingState) {
\r
115 TocParser::VarDeclContext* TocParser::DeclContext::varDecl() {
\r
116 return getRuleContext<TocParser::VarDeclContext>(0);
\r
119 TocParser::FuncDeclContext* TocParser::DeclContext::funcDecl() {
\r
120 return getRuleContext<TocParser::FuncDeclContext>(0);
\r
123 TocParser::StructDeclContext* TocParser::DeclContext::structDecl() {
\r
124 return getRuleContext<TocParser::StructDeclContext>(0);
\r
128 size_t TocParser::DeclContext::getRuleIndex() const {
\r
129 return TocParser::RuleDecl;
\r
132 void TocParser::DeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
133 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
134 if (parserListener != nullptr)
\r
135 parserListener->enterDecl(this);
\r
138 void TocParser::DeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
139 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
140 if (parserListener != nullptr)
\r
141 parserListener->exitDecl(this);
\r
144 TocParser::DeclContext* TocParser::decl() {
\r
145 DeclContext *_localctx = _tracker.createInstance<DeclContext>(_ctx, getState());
\r
146 enterRule(_localctx, 2, TocParser::RuleDecl);
\r
148 #if __cplusplus > 201703L
\r
149 auto onExit = finally([=, this] {
\r
151 auto onExit = finally([=] {
\r
157 _errHandler->sync(this);
\r
158 switch (_input->LA(1)) {
\r
159 case TocParser::T__0: {
\r
160 enterOuterAlt(_localctx, 1);
\r
166 case TocParser::T__6: {
\r
167 enterOuterAlt(_localctx, 2);
\r
173 case TocParser::T__12: {
\r
174 enterOuterAlt(_localctx, 3);
\r
181 throw NoViableAltException(this);
\r
185 catch (RecognitionException &e) {
\r
186 _errHandler->reportError(this, e);
\r
187 _localctx->exception = std::current_exception();
\r
188 _errHandler->recover(this, _localctx->exception);
\r
194 //----------------- VarDeclContext ------------------------------------------------------------------
\r
196 TocParser::VarDeclContext::VarDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
197 : ParserRuleContext(parent, invokingState) {
\r
200 TocParser::VarContext* TocParser::VarDeclContext::var() {
\r
201 return getRuleContext<TocParser::VarContext>(0);
\r
205 size_t TocParser::VarDeclContext::getRuleIndex() const {
\r
206 return TocParser::RuleVarDecl;
\r
209 void TocParser::VarDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
210 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
211 if (parserListener != nullptr)
\r
212 parserListener->enterVarDecl(this);
\r
215 void TocParser::VarDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
216 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
217 if (parserListener != nullptr)
\r
218 parserListener->exitVarDecl(this);
\r
221 TocParser::VarDeclContext* TocParser::varDecl() {
\r
222 VarDeclContext *_localctx = _tracker.createInstance<VarDeclContext>(_ctx, getState());
\r
223 enterRule(_localctx, 4, TocParser::RuleVarDecl);
\r
225 #if __cplusplus > 201703L
\r
226 auto onExit = finally([=, this] {
\r
228 auto onExit = finally([=] {
\r
233 enterOuterAlt(_localctx, 1);
\r
235 match(TocParser::T__0);
\r
240 catch (RecognitionException &e) {
\r
241 _errHandler->reportError(this, e);
\r
242 _localctx->exception = std::current_exception();
\r
243 _errHandler->recover(this, _localctx->exception);
\r
249 //----------------- VarContext ------------------------------------------------------------------
\r
251 TocParser::VarContext::VarContext(ParserRuleContext *parent, size_t invokingState)
\r
252 : ParserRuleContext(parent, invokingState) {
\r
255 TocParser::VarNameContext* TocParser::VarContext::varName() {
\r
256 return getRuleContext<TocParser::VarNameContext>(0);
\r
259 TocParser::TypeContext* TocParser::VarContext::type() {
\r
260 return getRuleContext<TocParser::TypeContext>(0);
\r
263 TocParser::ExprContext* TocParser::VarContext::expr() {
\r
264 return getRuleContext<TocParser::ExprContext>(0);
\r
268 size_t TocParser::VarContext::getRuleIndex() const {
\r
269 return TocParser::RuleVar;
\r
272 void TocParser::VarContext::enterRule(tree::ParseTreeListener *listener) {
\r
273 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
274 if (parserListener != nullptr)
\r
275 parserListener->enterVar(this);
\r
278 void TocParser::VarContext::exitRule(tree::ParseTreeListener *listener) {
\r
279 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
280 if (parserListener != nullptr)
\r
281 parserListener->exitVar(this);
\r
284 TocParser::VarContext* TocParser::var() {
\r
285 VarContext *_localctx = _tracker.createInstance<VarContext>(_ctx, getState());
\r
286 enterRule(_localctx, 6, TocParser::RuleVar);
\r
289 #if __cplusplus > 201703L
\r
290 auto onExit = finally([=, this] {
\r
292 auto onExit = finally([=] {
\r
297 enterOuterAlt(_localctx, 1);
\r
302 match(TocParser::T__1);
\r
306 _errHandler->sync(this);
\r
308 _la = _input->LA(1);
\r
309 if (_la == TocParser::T__2) {
\r
311 match(TocParser::T__2);
\r
317 catch (RecognitionException &e) {
\r
318 _errHandler->reportError(this, e);
\r
319 _localctx->exception = std::current_exception();
\r
320 _errHandler->recover(this, _localctx->exception);
\r
326 //----------------- VarInitContext ------------------------------------------------------------------
\r
328 TocParser::VarInitContext::VarInitContext(ParserRuleContext *parent, size_t invokingState)
\r
329 : ParserRuleContext(parent, invokingState) {
\r
332 TocParser::VarNameContext* TocParser::VarInitContext::varName() {
\r
333 return getRuleContext<TocParser::VarNameContext>(0);
\r
336 TocParser::TypeContext* TocParser::VarInitContext::type() {
\r
337 return getRuleContext<TocParser::TypeContext>(0);
\r
340 TocParser::ExprContext* TocParser::VarInitContext::expr() {
\r
341 return getRuleContext<TocParser::ExprContext>(0);
\r
345 size_t TocParser::VarInitContext::getRuleIndex() const {
\r
346 return TocParser::RuleVarInit;
\r
349 void TocParser::VarInitContext::enterRule(tree::ParseTreeListener *listener) {
\r
350 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
351 if (parserListener != nullptr)
\r
352 parserListener->enterVarInit(this);
\r
355 void TocParser::VarInitContext::exitRule(tree::ParseTreeListener *listener) {
\r
356 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
357 if (parserListener != nullptr)
\r
358 parserListener->exitVarInit(this);
\r
361 TocParser::VarInitContext* TocParser::varInit() {
\r
362 VarInitContext *_localctx = _tracker.createInstance<VarInitContext>(_ctx, getState());
\r
363 enterRule(_localctx, 8, TocParser::RuleVarInit);
\r
365 #if __cplusplus > 201703L
\r
366 auto onExit = finally([=, this] {
\r
368 auto onExit = finally([=] {
\r
373 enterOuterAlt(_localctx, 1);
\r
378 match(TocParser::T__1);
\r
383 match(TocParser::T__2);
\r
388 catch (RecognitionException &e) {
\r
389 _errHandler->reportError(this, e);
\r
390 _localctx->exception = std::current_exception();
\r
391 _errHandler->recover(this, _localctx->exception);
\r
397 //----------------- TypeContext ------------------------------------------------------------------
\r
399 TocParser::TypeContext::TypeContext(ParserRuleContext *parent, size_t invokingState)
\r
400 : ParserRuleContext(parent, invokingState) {
\r
403 TocParser::TypeNameContext* TocParser::TypeContext::typeName() {
\r
404 return getRuleContext<TocParser::TypeNameContext>(0);
\r
407 std::vector<TocParser::TypeModifierContext *> TocParser::TypeContext::typeModifier() {
\r
408 return getRuleContexts<TocParser::TypeModifierContext>();
\r
411 TocParser::TypeModifierContext* TocParser::TypeContext::typeModifier(size_t i) {
\r
412 return getRuleContext<TocParser::TypeModifierContext>(i);
\r
416 size_t TocParser::TypeContext::getRuleIndex() const {
\r
417 return TocParser::RuleType;
\r
420 void TocParser::TypeContext::enterRule(tree::ParseTreeListener *listener) {
\r
421 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
422 if (parserListener != nullptr)
\r
423 parserListener->enterType(this);
\r
426 void TocParser::TypeContext::exitRule(tree::ParseTreeListener *listener) {
\r
427 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
428 if (parserListener != nullptr)
\r
429 parserListener->exitType(this);
\r
432 TocParser::TypeContext* TocParser::type() {
\r
433 TypeContext *_localctx = _tracker.createInstance<TypeContext>(_ctx, getState());
\r
434 enterRule(_localctx, 10, TocParser::RuleType);
\r
436 #if __cplusplus > 201703L
\r
437 auto onExit = finally([=, this] {
\r
439 auto onExit = finally([=] {
\r
445 enterOuterAlt(_localctx, 1);
\r
449 _errHandler->sync(this);
\r
450 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 3, _ctx);
\r
451 while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
\r
457 _errHandler->sync(this);
\r
458 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 3, _ctx);
\r
462 catch (RecognitionException &e) {
\r
463 _errHandler->reportError(this, e);
\r
464 _localctx->exception = std::current_exception();
\r
465 _errHandler->recover(this, _localctx->exception);
\r
471 //----------------- TypeModifierContext ------------------------------------------------------------------
\r
473 TocParser::TypeModifierContext::TypeModifierContext(ParserRuleContext *parent, size_t invokingState)
\r
474 : ParserRuleContext(parent, invokingState) {
\r
477 tree::TerminalNode* TocParser::TypeModifierContext::NUMBER() {
\r
478 return getToken(TocParser::NUMBER, 0);
\r
482 size_t TocParser::TypeModifierContext::getRuleIndex() const {
\r
483 return TocParser::RuleTypeModifier;
\r
486 void TocParser::TypeModifierContext::enterRule(tree::ParseTreeListener *listener) {
\r
487 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
488 if (parserListener != nullptr)
\r
489 parserListener->enterTypeModifier(this);
\r
492 void TocParser::TypeModifierContext::exitRule(tree::ParseTreeListener *listener) {
\r
493 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
494 if (parserListener != nullptr)
\r
495 parserListener->exitTypeModifier(this);
\r
498 TocParser::TypeModifierContext* TocParser::typeModifier() {
\r
499 TypeModifierContext *_localctx = _tracker.createInstance<TypeModifierContext>(_ctx, getState());
\r
500 enterRule(_localctx, 12, TocParser::RuleTypeModifier);
\r
503 #if __cplusplus > 201703L
\r
504 auto onExit = finally([=, this] {
\r
506 auto onExit = finally([=] {
\r
512 _errHandler->sync(this);
\r
513 switch (_input->LA(1)) {
\r
514 case TocParser::T__3: {
\r
515 enterOuterAlt(_localctx, 1);
\r
517 match(TocParser::T__3);
\r
521 case TocParser::T__4: {
\r
522 enterOuterAlt(_localctx, 2);
\r
524 match(TocParser::T__4);
\r
526 _errHandler->sync(this);
\r
528 _la = _input->LA(1);
\r
529 if (_la == TocParser::NUMBER) {
\r
531 match(TocParser::NUMBER);
\r
534 match(TocParser::T__5);
\r
539 throw NoViableAltException(this);
\r
543 catch (RecognitionException &e) {
\r
544 _errHandler->reportError(this, e);
\r
545 _localctx->exception = std::current_exception();
\r
546 _errHandler->recover(this, _localctx->exception);
\r
552 //----------------- FuncDeclContext ------------------------------------------------------------------
\r
554 TocParser::FuncDeclContext::FuncDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
555 : ParserRuleContext(parent, invokingState) {
\r
558 TocParser::FuncContext* TocParser::FuncDeclContext::func() {
\r
559 return getRuleContext<TocParser::FuncContext>(0);
\r
563 size_t TocParser::FuncDeclContext::getRuleIndex() const {
\r
564 return TocParser::RuleFuncDecl;
\r
567 void TocParser::FuncDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
568 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
569 if (parserListener != nullptr)
\r
570 parserListener->enterFuncDecl(this);
\r
573 void TocParser::FuncDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
574 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
575 if (parserListener != nullptr)
\r
576 parserListener->exitFuncDecl(this);
\r
579 TocParser::FuncDeclContext* TocParser::funcDecl() {
\r
580 FuncDeclContext *_localctx = _tracker.createInstance<FuncDeclContext>(_ctx, getState());
\r
581 enterRule(_localctx, 14, TocParser::RuleFuncDecl);
\r
583 #if __cplusplus > 201703L
\r
584 auto onExit = finally([=, this] {
\r
586 auto onExit = finally([=] {
\r
591 enterOuterAlt(_localctx, 1);
\r
593 match(TocParser::T__6);
\r
598 catch (RecognitionException &e) {
\r
599 _errHandler->reportError(this, e);
\r
600 _localctx->exception = std::current_exception();
\r
601 _errHandler->recover(this, _localctx->exception);
\r
607 //----------------- FuncContext ------------------------------------------------------------------
\r
609 TocParser::FuncContext::FuncContext(ParserRuleContext *parent, size_t invokingState)
\r
610 : ParserRuleContext(parent, invokingState) {
\r
613 TocParser::FuncNameContext* TocParser::FuncContext::funcName() {
\r
614 return getRuleContext<TocParser::FuncNameContext>(0);
\r
617 TocParser::ParameterContext* TocParser::FuncContext::parameter() {
\r
618 return getRuleContext<TocParser::ParameterContext>(0);
\r
621 TocParser::BodyContext* TocParser::FuncContext::body() {
\r
622 return getRuleContext<TocParser::BodyContext>(0);
\r
625 TocParser::TypeContext* TocParser::FuncContext::type() {
\r
626 return getRuleContext<TocParser::TypeContext>(0);
\r
630 size_t TocParser::FuncContext::getRuleIndex() const {
\r
631 return TocParser::RuleFunc;
\r
634 void TocParser::FuncContext::enterRule(tree::ParseTreeListener *listener) {
\r
635 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
636 if (parserListener != nullptr)
\r
637 parserListener->enterFunc(this);
\r
640 void TocParser::FuncContext::exitRule(tree::ParseTreeListener *listener) {
\r
641 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
642 if (parserListener != nullptr)
\r
643 parserListener->exitFunc(this);
\r
646 TocParser::FuncContext* TocParser::func() {
\r
647 FuncContext *_localctx = _tracker.createInstance<FuncContext>(_ctx, getState());
\r
648 enterRule(_localctx, 16, TocParser::RuleFunc);
\r
650 #if __cplusplus > 201703L
\r
651 auto onExit = finally([=, this] {
\r
653 auto onExit = finally([=] {
\r
658 enterOuterAlt(_localctx, 1);
\r
662 match(TocParser::T__7);
\r
666 match(TocParser::T__8);
\r
669 match(TocParser::T__1);
\r
676 catch (RecognitionException &e) {
\r
677 _errHandler->reportError(this, e);
\r
678 _localctx->exception = std::current_exception();
\r
679 _errHandler->recover(this, _localctx->exception);
\r
685 //----------------- ParameterContext ------------------------------------------------------------------
\r
687 TocParser::ParameterContext::ParameterContext(ParserRuleContext *parent, size_t invokingState)
\r
688 : ParserRuleContext(parent, invokingState) {
\r
691 std::vector<TocParser::VarContext *> TocParser::ParameterContext::var() {
\r
692 return getRuleContexts<TocParser::VarContext>();
\r
695 TocParser::VarContext* TocParser::ParameterContext::var(size_t i) {
\r
696 return getRuleContext<TocParser::VarContext>(i);
\r
700 size_t TocParser::ParameterContext::getRuleIndex() const {
\r
701 return TocParser::RuleParameter;
\r
704 void TocParser::ParameterContext::enterRule(tree::ParseTreeListener *listener) {
\r
705 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
706 if (parserListener != nullptr)
\r
707 parserListener->enterParameter(this);
\r
710 void TocParser::ParameterContext::exitRule(tree::ParseTreeListener *listener) {
\r
711 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
712 if (parserListener != nullptr)
\r
713 parserListener->exitParameter(this);
\r
716 TocParser::ParameterContext* TocParser::parameter() {
\r
717 ParameterContext *_localctx = _tracker.createInstance<ParameterContext>(_ctx, getState());
\r
718 enterRule(_localctx, 18, TocParser::RuleParameter);
\r
721 #if __cplusplus > 201703L
\r
722 auto onExit = finally([=, this] {
\r
724 auto onExit = finally([=] {
\r
729 enterOuterAlt(_localctx, 1);
\r
731 _errHandler->sync(this);
\r
733 _la = _input->LA(1);
\r
734 if (_la == TocParser::NAME) {
\r
738 _errHandler->sync(this);
\r
739 _la = _input->LA(1);
\r
740 while (_la == TocParser::T__9) {
\r
742 match(TocParser::T__9);
\r
746 _errHandler->sync(this);
\r
747 _la = _input->LA(1);
\r
752 catch (RecognitionException &e) {
\r
753 _errHandler->reportError(this, e);
\r
754 _localctx->exception = std::current_exception();
\r
755 _errHandler->recover(this, _localctx->exception);
\r
761 //----------------- BodyContext ------------------------------------------------------------------
\r
763 TocParser::BodyContext::BodyContext(ParserRuleContext *parent, size_t invokingState)
\r
764 : ParserRuleContext(parent, invokingState) {
\r
767 std::vector<TocParser::StmtContext *> TocParser::BodyContext::stmt() {
\r
768 return getRuleContexts<TocParser::StmtContext>();
\r
771 TocParser::StmtContext* TocParser::BodyContext::stmt(size_t i) {
\r
772 return getRuleContext<TocParser::StmtContext>(i);
\r
776 size_t TocParser::BodyContext::getRuleIndex() const {
\r
777 return TocParser::RuleBody;
\r
780 void TocParser::BodyContext::enterRule(tree::ParseTreeListener *listener) {
\r
781 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
782 if (parserListener != nullptr)
\r
783 parserListener->enterBody(this);
\r
786 void TocParser::BodyContext::exitRule(tree::ParseTreeListener *listener) {
\r
787 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
788 if (parserListener != nullptr)
\r
789 parserListener->exitBody(this);
\r
792 TocParser::BodyContext* TocParser::body() {
\r
793 BodyContext *_localctx = _tracker.createInstance<BodyContext>(_ctx, getState());
\r
794 enterRule(_localctx, 20, TocParser::RuleBody);
\r
797 #if __cplusplus > 201703L
\r
798 auto onExit = finally([=, this] {
\r
800 auto onExit = finally([=] {
\r
805 enterOuterAlt(_localctx, 1);
\r
807 match(TocParser::T__10);
\r
809 _errHandler->sync(this);
\r
810 _la = _input->LA(1);
\r
811 while ((((_la & ~ 0x3fULL) == 0) &&
\r
812 ((1ULL << _la) & ((1ULL << TocParser::T__0)
\r
813 | (1ULL << TocParser::T__3)
\r
814 | (1ULL << TocParser::T__7)
\r
815 | (1ULL << TocParser::T__13)
\r
816 | (1ULL << TocParser::T__15)
\r
817 | (1ULL << TocParser::T__17)
\r
818 | (1ULL << TocParser::T__18)
\r
819 | (1ULL << TocParser::T__19)
\r
820 | (1ULL << TocParser::T__23)
\r
821 | (1ULL << TocParser::T__24)
\r
822 | (1ULL << TocParser::T__25)
\r
823 | (1ULL << TocParser::T__26)
\r
824 | (1ULL << TocParser::T__27)
\r
825 | (1ULL << TocParser::T__28)
\r
826 | (1ULL << TocParser::T__29)
\r
827 | (1ULL << TocParser::INT_LIT)
\r
828 | (1ULL << TocParser::DECIMAL_LIT)
\r
829 | (1ULL << TocParser::STRING_LIT)
\r
830 | (1ULL << TocParser::BOOL_LIT)
\r
831 | (1ULL << TocParser::NAME))) != 0)) {
\r
835 _errHandler->sync(this);
\r
836 _la = _input->LA(1);
\r
839 match(TocParser::T__11);
\r
842 catch (RecognitionException &e) {
\r
843 _errHandler->reportError(this, e);
\r
844 _localctx->exception = std::current_exception();
\r
845 _errHandler->recover(this, _localctx->exception);
\r
851 //----------------- StructDeclContext ------------------------------------------------------------------
\r
853 TocParser::StructDeclContext::StructDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
854 : ParserRuleContext(parent, invokingState) {
\r
857 TocParser::StructNameContext* TocParser::StructDeclContext::structName() {
\r
858 return getRuleContext<TocParser::StructNameContext>(0);
\r
861 std::vector<TocParser::StructMemberContext *> TocParser::StructDeclContext::structMember() {
\r
862 return getRuleContexts<TocParser::StructMemberContext>();
\r
865 TocParser::StructMemberContext* TocParser::StructDeclContext::structMember(size_t i) {
\r
866 return getRuleContext<TocParser::StructMemberContext>(i);
\r
870 size_t TocParser::StructDeclContext::getRuleIndex() const {
\r
871 return TocParser::RuleStructDecl;
\r
874 void TocParser::StructDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
875 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
876 if (parserListener != nullptr)
\r
877 parserListener->enterStructDecl(this);
\r
880 void TocParser::StructDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
881 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
882 if (parserListener != nullptr)
\r
883 parserListener->exitStructDecl(this);
\r
886 TocParser::StructDeclContext* TocParser::structDecl() {
\r
887 StructDeclContext *_localctx = _tracker.createInstance<StructDeclContext>(_ctx, getState());
\r
888 enterRule(_localctx, 22, TocParser::RuleStructDecl);
\r
891 #if __cplusplus > 201703L
\r
892 auto onExit = finally([=, this] {
\r
894 auto onExit = finally([=] {
\r
899 enterOuterAlt(_localctx, 1);
\r
901 match(TocParser::T__12);
\r
905 match(TocParser::T__10);
\r
907 _errHandler->sync(this);
\r
908 _la = _input->LA(1);
\r
909 while (_la == TocParser::NAME) {
\r
913 _errHandler->sync(this);
\r
914 _la = _input->LA(1);
\r
917 match(TocParser::T__11);
\r
920 catch (RecognitionException &e) {
\r
921 _errHandler->reportError(this, e);
\r
922 _localctx->exception = std::current_exception();
\r
923 _errHandler->recover(this, _localctx->exception);
\r
929 //----------------- StructMemberContext ------------------------------------------------------------------
\r
931 TocParser::StructMemberContext::StructMemberContext(ParserRuleContext *parent, size_t invokingState)
\r
932 : ParserRuleContext(parent, invokingState) {
\r
935 TocParser::StructVarContext* TocParser::StructMemberContext::structVar() {
\r
936 return getRuleContext<TocParser::StructVarContext>(0);
\r
939 TocParser::StructMethodContext* TocParser::StructMemberContext::structMethod() {
\r
940 return getRuleContext<TocParser::StructMethodContext>(0);
\r
944 size_t TocParser::StructMemberContext::getRuleIndex() const {
\r
945 return TocParser::RuleStructMember;
\r
948 void TocParser::StructMemberContext::enterRule(tree::ParseTreeListener *listener) {
\r
949 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
950 if (parserListener != nullptr)
\r
951 parserListener->enterStructMember(this);
\r
954 void TocParser::StructMemberContext::exitRule(tree::ParseTreeListener *listener) {
\r
955 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
956 if (parserListener != nullptr)
\r
957 parserListener->exitStructMember(this);
\r
960 TocParser::StructMemberContext* TocParser::structMember() {
\r
961 StructMemberContext *_localctx = _tracker.createInstance<StructMemberContext>(_ctx, getState());
\r
962 enterRule(_localctx, 24, TocParser::RuleStructMember);
\r
964 #if __cplusplus > 201703L
\r
965 auto onExit = finally([=, this] {
\r
967 auto onExit = finally([=] {
\r
973 _errHandler->sync(this);
\r
974 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 10, _ctx)) {
\r
976 enterOuterAlt(_localctx, 1);
\r
983 enterOuterAlt(_localctx, 2);
\r
994 catch (RecognitionException &e) {
\r
995 _errHandler->reportError(this, e);
\r
996 _localctx->exception = std::current_exception();
\r
997 _errHandler->recover(this, _localctx->exception);
\r
1003 //----------------- StructVarContext ------------------------------------------------------------------
\r
1005 TocParser::StructVarContext::StructVarContext(ParserRuleContext *parent, size_t invokingState)
\r
1006 : ParserRuleContext(parent, invokingState) {
\r
1009 TocParser::VarContext* TocParser::StructVarContext::var() {
\r
1010 return getRuleContext<TocParser::VarContext>(0);
\r
1014 size_t TocParser::StructVarContext::getRuleIndex() const {
\r
1015 return TocParser::RuleStructVar;
\r
1018 void TocParser::StructVarContext::enterRule(tree::ParseTreeListener *listener) {
\r
1019 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1020 if (parserListener != nullptr)
\r
1021 parserListener->enterStructVar(this);
\r
1024 void TocParser::StructVarContext::exitRule(tree::ParseTreeListener *listener) {
\r
1025 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1026 if (parserListener != nullptr)
\r
1027 parserListener->exitStructVar(this);
\r
1030 TocParser::StructVarContext* TocParser::structVar() {
\r
1031 StructVarContext *_localctx = _tracker.createInstance<StructVarContext>(_ctx, getState());
\r
1032 enterRule(_localctx, 26, TocParser::RuleStructVar);
\r
1034 #if __cplusplus > 201703L
\r
1035 auto onExit = finally([=, this] {
\r
1037 auto onExit = finally([=] {
\r
1042 enterOuterAlt(_localctx, 1);
\r
1047 catch (RecognitionException &e) {
\r
1048 _errHandler->reportError(this, e);
\r
1049 _localctx->exception = std::current_exception();
\r
1050 _errHandler->recover(this, _localctx->exception);
\r
1056 //----------------- StructMethodContext ------------------------------------------------------------------
\r
1058 TocParser::StructMethodContext::StructMethodContext(ParserRuleContext *parent, size_t invokingState)
\r
1059 : ParserRuleContext(parent, invokingState) {
\r
1062 TocParser::FuncContext* TocParser::StructMethodContext::func() {
\r
1063 return getRuleContext<TocParser::FuncContext>(0);
\r
1067 size_t TocParser::StructMethodContext::getRuleIndex() const {
\r
1068 return TocParser::RuleStructMethod;
\r
1071 void TocParser::StructMethodContext::enterRule(tree::ParseTreeListener *listener) {
\r
1072 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1073 if (parserListener != nullptr)
\r
1074 parserListener->enterStructMethod(this);
\r
1077 void TocParser::StructMethodContext::exitRule(tree::ParseTreeListener *listener) {
\r
1078 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1079 if (parserListener != nullptr)
\r
1080 parserListener->exitStructMethod(this);
\r
1083 TocParser::StructMethodContext* TocParser::structMethod() {
\r
1084 StructMethodContext *_localctx = _tracker.createInstance<StructMethodContext>(_ctx, getState());
\r
1085 enterRule(_localctx, 28, TocParser::RuleStructMethod);
\r
1087 #if __cplusplus > 201703L
\r
1088 auto onExit = finally([=, this] {
\r
1090 auto onExit = finally([=] {
\r
1095 enterOuterAlt(_localctx, 1);
\r
1100 catch (RecognitionException &e) {
\r
1101 _errHandler->reportError(this, e);
\r
1102 _localctx->exception = std::current_exception();
\r
1103 _errHandler->recover(this, _localctx->exception);
\r
1109 //----------------- StmtContext ------------------------------------------------------------------
\r
1111 TocParser::StmtContext::StmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1112 : ParserRuleContext(parent, invokingState) {
\r
1115 TocParser::VarDeclContext* TocParser::StmtContext::varDecl() {
\r
1116 return getRuleContext<TocParser::VarDeclContext>(0);
\r
1119 TocParser::IfStmtContext* TocParser::StmtContext::ifStmt() {
\r
1120 return getRuleContext<TocParser::IfStmtContext>(0);
\r
1123 TocParser::SwitchStmtContext* TocParser::StmtContext::switchStmt() {
\r
1124 return getRuleContext<TocParser::SwitchStmtContext>(0);
\r
1127 TocParser::ForStmtContext* TocParser::StmtContext::forStmt() {
\r
1128 return getRuleContext<TocParser::ForStmtContext>(0);
\r
1131 TocParser::WhileStmtContext* TocParser::StmtContext::whileStmt() {
\r
1132 return getRuleContext<TocParser::WhileStmtContext>(0);
\r
1135 TocParser::AssignStmtContext* TocParser::StmtContext::assignStmt() {
\r
1136 return getRuleContext<TocParser::AssignStmtContext>(0);
\r
1139 TocParser::ReturnStmtContext* TocParser::StmtContext::returnStmt() {
\r
1140 return getRuleContext<TocParser::ReturnStmtContext>(0);
\r
1143 TocParser::ExprContext* TocParser::StmtContext::expr() {
\r
1144 return getRuleContext<TocParser::ExprContext>(0);
\r
1148 size_t TocParser::StmtContext::getRuleIndex() const {
\r
1149 return TocParser::RuleStmt;
\r
1152 void TocParser::StmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1153 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1154 if (parserListener != nullptr)
\r
1155 parserListener->enterStmt(this);
\r
1158 void TocParser::StmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1159 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1160 if (parserListener != nullptr)
\r
1161 parserListener->exitStmt(this);
\r
1164 TocParser::StmtContext* TocParser::stmt() {
\r
1165 StmtContext *_localctx = _tracker.createInstance<StmtContext>(_ctx, getState());
\r
1166 enterRule(_localctx, 30, TocParser::RuleStmt);
\r
1168 #if __cplusplus > 201703L
\r
1169 auto onExit = finally([=, this] {
\r
1171 auto onExit = finally([=] {
\r
1177 _errHandler->sync(this);
\r
1178 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 11, _ctx)) {
\r
1180 enterOuterAlt(_localctx, 1);
\r
1187 enterOuterAlt(_localctx, 2);
\r
1194 enterOuterAlt(_localctx, 3);
\r
1201 enterOuterAlt(_localctx, 4);
\r
1208 enterOuterAlt(_localctx, 5);
\r
1215 enterOuterAlt(_localctx, 6);
\r
1222 enterOuterAlt(_localctx, 7);
\r
1229 enterOuterAlt(_localctx, 8);
\r
1240 catch (RecognitionException &e) {
\r
1241 _errHandler->reportError(this, e);
\r
1242 _localctx->exception = std::current_exception();
\r
1243 _errHandler->recover(this, _localctx->exception);
\r
1249 //----------------- IfStmtContext ------------------------------------------------------------------
\r
1251 TocParser::IfStmtContext::IfStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1252 : ParserRuleContext(parent, invokingState) {
\r
1255 TocParser::ExprContext* TocParser::IfStmtContext::expr() {
\r
1256 return getRuleContext<TocParser::ExprContext>(0);
\r
1259 TocParser::BodyContext* TocParser::IfStmtContext::body() {
\r
1260 return getRuleContext<TocParser::BodyContext>(0);
\r
1263 std::vector<TocParser::ElseIfStmtContext *> TocParser::IfStmtContext::elseIfStmt() {
\r
1264 return getRuleContexts<TocParser::ElseIfStmtContext>();
\r
1267 TocParser::ElseIfStmtContext* TocParser::IfStmtContext::elseIfStmt(size_t i) {
\r
1268 return getRuleContext<TocParser::ElseIfStmtContext>(i);
\r
1271 TocParser::ElseStmtContext* TocParser::IfStmtContext::elseStmt() {
\r
1272 return getRuleContext<TocParser::ElseStmtContext>(0);
\r
1276 size_t TocParser::IfStmtContext::getRuleIndex() const {
\r
1277 return TocParser::RuleIfStmt;
\r
1280 void TocParser::IfStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1281 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1282 if (parserListener != nullptr)
\r
1283 parserListener->enterIfStmt(this);
\r
1286 void TocParser::IfStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1287 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1288 if (parserListener != nullptr)
\r
1289 parserListener->exitIfStmt(this);
\r
1292 TocParser::IfStmtContext* TocParser::ifStmt() {
\r
1293 IfStmtContext *_localctx = _tracker.createInstance<IfStmtContext>(_ctx, getState());
\r
1294 enterRule(_localctx, 32, TocParser::RuleIfStmt);
\r
1297 #if __cplusplus > 201703L
\r
1298 auto onExit = finally([=, this] {
\r
1300 auto onExit = finally([=] {
\r
1306 enterOuterAlt(_localctx, 1);
\r
1308 match(TocParser::T__13);
\r
1314 _errHandler->sync(this);
\r
1315 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 12, _ctx);
\r
1316 while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
\r
1322 _errHandler->sync(this);
\r
1323 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 12, _ctx);
\r
1326 _errHandler->sync(this);
\r
1328 _la = _input->LA(1);
\r
1329 if (_la == TocParser::T__14) {
\r
1335 catch (RecognitionException &e) {
\r
1336 _errHandler->reportError(this, e);
\r
1337 _localctx->exception = std::current_exception();
\r
1338 _errHandler->recover(this, _localctx->exception);
\r
1344 //----------------- ElseIfStmtContext ------------------------------------------------------------------
\r
1346 TocParser::ElseIfStmtContext::ElseIfStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1347 : ParserRuleContext(parent, invokingState) {
\r
1350 TocParser::ExprContext* TocParser::ElseIfStmtContext::expr() {
\r
1351 return getRuleContext<TocParser::ExprContext>(0);
\r
1354 TocParser::BodyContext* TocParser::ElseIfStmtContext::body() {
\r
1355 return getRuleContext<TocParser::BodyContext>(0);
\r
1359 size_t TocParser::ElseIfStmtContext::getRuleIndex() const {
\r
1360 return TocParser::RuleElseIfStmt;
\r
1363 void TocParser::ElseIfStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1364 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1365 if (parserListener != nullptr)
\r
1366 parserListener->enterElseIfStmt(this);
\r
1369 void TocParser::ElseIfStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1370 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1371 if (parserListener != nullptr)
\r
1372 parserListener->exitElseIfStmt(this);
\r
1375 TocParser::ElseIfStmtContext* TocParser::elseIfStmt() {
\r
1376 ElseIfStmtContext *_localctx = _tracker.createInstance<ElseIfStmtContext>(_ctx, getState());
\r
1377 enterRule(_localctx, 34, TocParser::RuleElseIfStmt);
\r
1379 #if __cplusplus > 201703L
\r
1380 auto onExit = finally([=, this] {
\r
1382 auto onExit = finally([=] {
\r
1387 enterOuterAlt(_localctx, 1);
\r
1389 match(TocParser::T__14);
\r
1391 match(TocParser::T__13);
\r
1398 catch (RecognitionException &e) {
\r
1399 _errHandler->reportError(this, e);
\r
1400 _localctx->exception = std::current_exception();
\r
1401 _errHandler->recover(this, _localctx->exception);
\r
1407 //----------------- ElseStmtContext ------------------------------------------------------------------
\r
1409 TocParser::ElseStmtContext::ElseStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1410 : ParserRuleContext(parent, invokingState) {
\r
1413 TocParser::BodyContext* TocParser::ElseStmtContext::body() {
\r
1414 return getRuleContext<TocParser::BodyContext>(0);
\r
1418 size_t TocParser::ElseStmtContext::getRuleIndex() const {
\r
1419 return TocParser::RuleElseStmt;
\r
1422 void TocParser::ElseStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1423 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1424 if (parserListener != nullptr)
\r
1425 parserListener->enterElseStmt(this);
\r
1428 void TocParser::ElseStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1429 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1430 if (parserListener != nullptr)
\r
1431 parserListener->exitElseStmt(this);
\r
1434 TocParser::ElseStmtContext* TocParser::elseStmt() {
\r
1435 ElseStmtContext *_localctx = _tracker.createInstance<ElseStmtContext>(_ctx, getState());
\r
1436 enterRule(_localctx, 36, TocParser::RuleElseStmt);
\r
1438 #if __cplusplus > 201703L
\r
1439 auto onExit = finally([=, this] {
\r
1441 auto onExit = finally([=] {
\r
1446 enterOuterAlt(_localctx, 1);
\r
1448 match(TocParser::T__14);
\r
1453 catch (RecognitionException &e) {
\r
1454 _errHandler->reportError(this, e);
\r
1455 _localctx->exception = std::current_exception();
\r
1456 _errHandler->recover(this, _localctx->exception);
\r
1462 //----------------- SwitchStmtContext ------------------------------------------------------------------
\r
1464 TocParser::SwitchStmtContext::SwitchStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1465 : ParserRuleContext(parent, invokingState) {
\r
1468 TocParser::IdentifierExprContext* TocParser::SwitchStmtContext::identifierExpr() {
\r
1469 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1472 TocParser::SwitchBodyContext* TocParser::SwitchStmtContext::switchBody() {
\r
1473 return getRuleContext<TocParser::SwitchBodyContext>(0);
\r
1477 size_t TocParser::SwitchStmtContext::getRuleIndex() const {
\r
1478 return TocParser::RuleSwitchStmt;
\r
1481 void TocParser::SwitchStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1482 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1483 if (parserListener != nullptr)
\r
1484 parserListener->enterSwitchStmt(this);
\r
1487 void TocParser::SwitchStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1488 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1489 if (parserListener != nullptr)
\r
1490 parserListener->exitSwitchStmt(this);
\r
1493 TocParser::SwitchStmtContext* TocParser::switchStmt() {
\r
1494 SwitchStmtContext *_localctx = _tracker.createInstance<SwitchStmtContext>(_ctx, getState());
\r
1495 enterRule(_localctx, 38, TocParser::RuleSwitchStmt);
\r
1497 #if __cplusplus > 201703L
\r
1498 auto onExit = finally([=, this] {
\r
1500 auto onExit = finally([=] {
\r
1505 enterOuterAlt(_localctx, 1);
\r
1507 match(TocParser::T__15);
\r
1514 catch (RecognitionException &e) {
\r
1515 _errHandler->reportError(this, e);
\r
1516 _localctx->exception = std::current_exception();
\r
1517 _errHandler->recover(this, _localctx->exception);
\r
1523 //----------------- SwitchBodyContext ------------------------------------------------------------------
\r
1525 TocParser::SwitchBodyContext::SwitchBodyContext(ParserRuleContext *parent, size_t invokingState)
\r
1526 : ParserRuleContext(parent, invokingState) {
\r
1529 std::vector<TocParser::SwitchCaseContext *> TocParser::SwitchBodyContext::switchCase() {
\r
1530 return getRuleContexts<TocParser::SwitchCaseContext>();
\r
1533 TocParser::SwitchCaseContext* TocParser::SwitchBodyContext::switchCase(size_t i) {
\r
1534 return getRuleContext<TocParser::SwitchCaseContext>(i);
\r
1538 size_t TocParser::SwitchBodyContext::getRuleIndex() const {
\r
1539 return TocParser::RuleSwitchBody;
\r
1542 void TocParser::SwitchBodyContext::enterRule(tree::ParseTreeListener *listener) {
\r
1543 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1544 if (parserListener != nullptr)
\r
1545 parserListener->enterSwitchBody(this);
\r
1548 void TocParser::SwitchBodyContext::exitRule(tree::ParseTreeListener *listener) {
\r
1549 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1550 if (parserListener != nullptr)
\r
1551 parserListener->exitSwitchBody(this);
\r
1554 TocParser::SwitchBodyContext* TocParser::switchBody() {
\r
1555 SwitchBodyContext *_localctx = _tracker.createInstance<SwitchBodyContext>(_ctx, getState());
\r
1556 enterRule(_localctx, 40, TocParser::RuleSwitchBody);
\r
1559 #if __cplusplus > 201703L
\r
1560 auto onExit = finally([=, this] {
\r
1562 auto onExit = finally([=] {
\r
1567 enterOuterAlt(_localctx, 1);
\r
1569 match(TocParser::T__10);
\r
1571 _errHandler->sync(this);
\r
1572 _la = _input->LA(1);
\r
1573 while (_la == TocParser::T__16) {
\r
1577 _errHandler->sync(this);
\r
1578 _la = _input->LA(1);
\r
1581 match(TocParser::T__11);
\r
1584 catch (RecognitionException &e) {
\r
1585 _errHandler->reportError(this, e);
\r
1586 _localctx->exception = std::current_exception();
\r
1587 _errHandler->recover(this, _localctx->exception);
\r
1593 //----------------- SwitchCaseContext ------------------------------------------------------------------
\r
1595 TocParser::SwitchCaseContext::SwitchCaseContext(ParserRuleContext *parent, size_t invokingState)
\r
1596 : ParserRuleContext(parent, invokingState) {
\r
1599 TocParser::ExprContext* TocParser::SwitchCaseContext::expr() {
\r
1600 return getRuleContext<TocParser::ExprContext>(0);
\r
1603 TocParser::BodyContext* TocParser::SwitchCaseContext::body() {
\r
1604 return getRuleContext<TocParser::BodyContext>(0);
\r
1608 size_t TocParser::SwitchCaseContext::getRuleIndex() const {
\r
1609 return TocParser::RuleSwitchCase;
\r
1612 void TocParser::SwitchCaseContext::enterRule(tree::ParseTreeListener *listener) {
\r
1613 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1614 if (parserListener != nullptr)
\r
1615 parserListener->enterSwitchCase(this);
\r
1618 void TocParser::SwitchCaseContext::exitRule(tree::ParseTreeListener *listener) {
\r
1619 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1620 if (parserListener != nullptr)
\r
1621 parserListener->exitSwitchCase(this);
\r
1624 TocParser::SwitchCaseContext* TocParser::switchCase() {
\r
1625 SwitchCaseContext *_localctx = _tracker.createInstance<SwitchCaseContext>(_ctx, getState());
\r
1626 enterRule(_localctx, 42, TocParser::RuleSwitchCase);
\r
1628 #if __cplusplus > 201703L
\r
1629 auto onExit = finally([=, this] {
\r
1631 auto onExit = finally([=] {
\r
1636 enterOuterAlt(_localctx, 1);
\r
1638 match(TocParser::T__16);
\r
1645 catch (RecognitionException &e) {
\r
1646 _errHandler->reportError(this, e);
\r
1647 _localctx->exception = std::current_exception();
\r
1648 _errHandler->recover(this, _localctx->exception);
\r
1654 //----------------- ForStmtContext ------------------------------------------------------------------
\r
1656 TocParser::ForStmtContext::ForStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1657 : ParserRuleContext(parent, invokingState) {
\r
1660 std::vector<TocParser::ExprContext *> TocParser::ForStmtContext::expr() {
\r
1661 return getRuleContexts<TocParser::ExprContext>();
\r
1664 TocParser::ExprContext* TocParser::ForStmtContext::expr(size_t i) {
\r
1665 return getRuleContext<TocParser::ExprContext>(i);
\r
1668 TocParser::BodyContext* TocParser::ForStmtContext::body() {
\r
1669 return getRuleContext<TocParser::BodyContext>(0);
\r
1672 TocParser::VarInitContext* TocParser::ForStmtContext::varInit() {
\r
1673 return getRuleContext<TocParser::VarInitContext>(0);
\r
1676 TocParser::AssignStmtContext* TocParser::ForStmtContext::assignStmt() {
\r
1677 return getRuleContext<TocParser::AssignStmtContext>(0);
\r
1681 size_t TocParser::ForStmtContext::getRuleIndex() const {
\r
1682 return TocParser::RuleForStmt;
\r
1685 void TocParser::ForStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1686 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1687 if (parserListener != nullptr)
\r
1688 parserListener->enterForStmt(this);
\r
1691 void TocParser::ForStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1692 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1693 if (parserListener != nullptr)
\r
1694 parserListener->exitForStmt(this);
\r
1697 TocParser::ForStmtContext* TocParser::forStmt() {
\r
1698 ForStmtContext *_localctx = _tracker.createInstance<ForStmtContext>(_ctx, getState());
\r
1699 enterRule(_localctx, 44, TocParser::RuleForStmt);
\r
1701 #if __cplusplus > 201703L
\r
1702 auto onExit = finally([=, this] {
\r
1704 auto onExit = finally([=] {
\r
1709 enterOuterAlt(_localctx, 1);
\r
1711 match(TocParser::T__17);
\r
1713 _errHandler->sync(this);
\r
1714 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 15, _ctx)) {
\r
1731 match(TocParser::T__9);
\r
1735 match(TocParser::T__9);
\r
1742 catch (RecognitionException &e) {
\r
1743 _errHandler->reportError(this, e);
\r
1744 _localctx->exception = std::current_exception();
\r
1745 _errHandler->recover(this, _localctx->exception);
\r
1751 //----------------- WhileStmtContext ------------------------------------------------------------------
\r
1753 TocParser::WhileStmtContext::WhileStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1754 : ParserRuleContext(parent, invokingState) {
\r
1757 TocParser::ExprContext* TocParser::WhileStmtContext::expr() {
\r
1758 return getRuleContext<TocParser::ExprContext>(0);
\r
1761 TocParser::BodyContext* TocParser::WhileStmtContext::body() {
\r
1762 return getRuleContext<TocParser::BodyContext>(0);
\r
1766 size_t TocParser::WhileStmtContext::getRuleIndex() const {
\r
1767 return TocParser::RuleWhileStmt;
\r
1770 void TocParser::WhileStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1771 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1772 if (parserListener != nullptr)
\r
1773 parserListener->enterWhileStmt(this);
\r
1776 void TocParser::WhileStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1777 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1778 if (parserListener != nullptr)
\r
1779 parserListener->exitWhileStmt(this);
\r
1782 TocParser::WhileStmtContext* TocParser::whileStmt() {
\r
1783 WhileStmtContext *_localctx = _tracker.createInstance<WhileStmtContext>(_ctx, getState());
\r
1784 enterRule(_localctx, 46, TocParser::RuleWhileStmt);
\r
1786 #if __cplusplus > 201703L
\r
1787 auto onExit = finally([=, this] {
\r
1789 auto onExit = finally([=] {
\r
1794 enterOuterAlt(_localctx, 1);
\r
1796 match(TocParser::T__18);
\r
1803 catch (RecognitionException &e) {
\r
1804 _errHandler->reportError(this, e);
\r
1805 _localctx->exception = std::current_exception();
\r
1806 _errHandler->recover(this, _localctx->exception);
\r
1812 //----------------- AssignStmtContext ------------------------------------------------------------------
\r
1814 TocParser::AssignStmtContext::AssignStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1815 : ParserRuleContext(parent, invokingState) {
\r
1818 TocParser::IdentifierExprContext* TocParser::AssignStmtContext::identifierExpr() {
\r
1819 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1822 TocParser::ExprContext* TocParser::AssignStmtContext::expr() {
\r
1823 return getRuleContext<TocParser::ExprContext>(0);
\r
1827 size_t TocParser::AssignStmtContext::getRuleIndex() const {
\r
1828 return TocParser::RuleAssignStmt;
\r
1831 void TocParser::AssignStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1832 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1833 if (parserListener != nullptr)
\r
1834 parserListener->enterAssignStmt(this);
\r
1837 void TocParser::AssignStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1838 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1839 if (parserListener != nullptr)
\r
1840 parserListener->exitAssignStmt(this);
\r
1843 TocParser::AssignStmtContext* TocParser::assignStmt() {
\r
1844 AssignStmtContext *_localctx = _tracker.createInstance<AssignStmtContext>(_ctx, getState());
\r
1845 enterRule(_localctx, 48, TocParser::RuleAssignStmt);
\r
1847 #if __cplusplus > 201703L
\r
1848 auto onExit = finally([=, this] {
\r
1850 auto onExit = finally([=] {
\r
1855 enterOuterAlt(_localctx, 1);
\r
1859 match(TocParser::T__2);
\r
1864 catch (RecognitionException &e) {
\r
1865 _errHandler->reportError(this, e);
\r
1866 _localctx->exception = std::current_exception();
\r
1867 _errHandler->recover(this, _localctx->exception);
\r
1873 //----------------- ReturnStmtContext ------------------------------------------------------------------
\r
1875 TocParser::ReturnStmtContext::ReturnStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1876 : ParserRuleContext(parent, invokingState) {
\r
1879 TocParser::ExprContext* TocParser::ReturnStmtContext::expr() {
\r
1880 return getRuleContext<TocParser::ExprContext>(0);
\r
1884 size_t TocParser::ReturnStmtContext::getRuleIndex() const {
\r
1885 return TocParser::RuleReturnStmt;
\r
1888 void TocParser::ReturnStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1889 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1890 if (parserListener != nullptr)
\r
1891 parserListener->enterReturnStmt(this);
\r
1894 void TocParser::ReturnStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1895 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1896 if (parserListener != nullptr)
\r
1897 parserListener->exitReturnStmt(this);
\r
1900 TocParser::ReturnStmtContext* TocParser::returnStmt() {
\r
1901 ReturnStmtContext *_localctx = _tracker.createInstance<ReturnStmtContext>(_ctx, getState());
\r
1902 enterRule(_localctx, 50, TocParser::RuleReturnStmt);
\r
1904 #if __cplusplus > 201703L
\r
1905 auto onExit = finally([=, this] {
\r
1907 auto onExit = finally([=] {
\r
1912 enterOuterAlt(_localctx, 1);
\r
1914 match(TocParser::T__19);
\r
1919 catch (RecognitionException &e) {
\r
1920 _errHandler->reportError(this, e);
\r
1921 _localctx->exception = std::current_exception();
\r
1922 _errHandler->recover(this, _localctx->exception);
\r
1928 //----------------- ExprContext ------------------------------------------------------------------
\r
1930 TocParser::ExprContext::ExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1931 : ParserRuleContext(parent, invokingState) {
\r
1934 TocParser::FuncExprContext* TocParser::ExprContext::funcExpr() {
\r
1935 return getRuleContext<TocParser::FuncExprContext>(0);
\r
1938 TocParser::LitExprContext* TocParser::ExprContext::litExpr() {
\r
1939 return getRuleContext<TocParser::LitExprContext>(0);
\r
1942 TocParser::IdentifierExprContext* TocParser::ExprContext::identifierExpr() {
\r
1943 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1946 TocParser::ParenExprContext* TocParser::ExprContext::parenExpr() {
\r
1947 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1950 TocParser::AccessExprContext* TocParser::ExprContext::accessExpr() {
\r
1951 return getRuleContext<TocParser::AccessExprContext>(0);
\r
1954 TocParser::OpExprContext* TocParser::ExprContext::opExpr() {
\r
1955 return getRuleContext<TocParser::OpExprContext>(0);
\r
1959 size_t TocParser::ExprContext::getRuleIndex() const {
\r
1960 return TocParser::RuleExpr;
\r
1963 void TocParser::ExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1964 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1965 if (parserListener != nullptr)
\r
1966 parserListener->enterExpr(this);
\r
1969 void TocParser::ExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1970 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1971 if (parserListener != nullptr)
\r
1972 parserListener->exitExpr(this);
\r
1975 TocParser::ExprContext* TocParser::expr() {
\r
1976 ExprContext *_localctx = _tracker.createInstance<ExprContext>(_ctx, getState());
\r
1977 enterRule(_localctx, 52, TocParser::RuleExpr);
\r
1979 #if __cplusplus > 201703L
\r
1980 auto onExit = finally([=, this] {
\r
1982 auto onExit = finally([=] {
\r
1988 _errHandler->sync(this);
\r
1989 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 16, _ctx)) {
\r
1991 enterOuterAlt(_localctx, 1);
\r
1998 enterOuterAlt(_localctx, 2);
\r
2005 enterOuterAlt(_localctx, 3);
\r
2012 enterOuterAlt(_localctx, 4);
\r
2019 enterOuterAlt(_localctx, 5);
\r
2026 enterOuterAlt(_localctx, 6);
\r
2037 catch (RecognitionException &e) {
\r
2038 _errHandler->reportError(this, e);
\r
2039 _localctx->exception = std::current_exception();
\r
2040 _errHandler->recover(this, _localctx->exception);
\r
2046 //----------------- NonOpExprContext ------------------------------------------------------------------
\r
2048 TocParser::NonOpExprContext::NonOpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2049 : ParserRuleContext(parent, invokingState) {
\r
2052 TocParser::FuncExprContext* TocParser::NonOpExprContext::funcExpr() {
\r
2053 return getRuleContext<TocParser::FuncExprContext>(0);
\r
2056 TocParser::LitExprContext* TocParser::NonOpExprContext::litExpr() {
\r
2057 return getRuleContext<TocParser::LitExprContext>(0);
\r
2060 TocParser::IdentifierExprContext* TocParser::NonOpExprContext::identifierExpr() {
\r
2061 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
2064 TocParser::ParenExprContext* TocParser::NonOpExprContext::parenExpr() {
\r
2065 return getRuleContext<TocParser::ParenExprContext>(0);
\r
2068 TocParser::AccessExprContext* TocParser::NonOpExprContext::accessExpr() {
\r
2069 return getRuleContext<TocParser::AccessExprContext>(0);
\r
2073 size_t TocParser::NonOpExprContext::getRuleIndex() const {
\r
2074 return TocParser::RuleNonOpExpr;
\r
2077 void TocParser::NonOpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2078 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2079 if (parserListener != nullptr)
\r
2080 parserListener->enterNonOpExpr(this);
\r
2083 void TocParser::NonOpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2084 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2085 if (parserListener != nullptr)
\r
2086 parserListener->exitNonOpExpr(this);
\r
2089 TocParser::NonOpExprContext* TocParser::nonOpExpr() {
\r
2090 NonOpExprContext *_localctx = _tracker.createInstance<NonOpExprContext>(_ctx, getState());
\r
2091 enterRule(_localctx, 54, TocParser::RuleNonOpExpr);
\r
2093 #if __cplusplus > 201703L
\r
2094 auto onExit = finally([=, this] {
\r
2096 auto onExit = finally([=] {
\r
2102 _errHandler->sync(this);
\r
2103 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 17, _ctx)) {
\r
2105 enterOuterAlt(_localctx, 1);
\r
2112 enterOuterAlt(_localctx, 2);
\r
2119 enterOuterAlt(_localctx, 3);
\r
2126 enterOuterAlt(_localctx, 4);
\r
2133 enterOuterAlt(_localctx, 5);
\r
2144 catch (RecognitionException &e) {
\r
2145 _errHandler->reportError(this, e);
\r
2146 _localctx->exception = std::current_exception();
\r
2147 _errHandler->recover(this, _localctx->exception);
\r
2153 //----------------- NonAccessExprContext ------------------------------------------------------------------
\r
2155 TocParser::NonAccessExprContext::NonAccessExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2156 : ParserRuleContext(parent, invokingState) {
\r
2159 TocParser::FuncExprContext* TocParser::NonAccessExprContext::funcExpr() {
\r
2160 return getRuleContext<TocParser::FuncExprContext>(0);
\r
2163 TocParser::IdentifierExprContext* TocParser::NonAccessExprContext::identifierExpr() {
\r
2164 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
2167 TocParser::ParenExprContext* TocParser::NonAccessExprContext::parenExpr() {
\r
2168 return getRuleContext<TocParser::ParenExprContext>(0);
\r
2172 size_t TocParser::NonAccessExprContext::getRuleIndex() const {
\r
2173 return TocParser::RuleNonAccessExpr;
\r
2176 void TocParser::NonAccessExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2177 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2178 if (parserListener != nullptr)
\r
2179 parserListener->enterNonAccessExpr(this);
\r
2182 void TocParser::NonAccessExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2183 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2184 if (parserListener != nullptr)
\r
2185 parserListener->exitNonAccessExpr(this);
\r
2188 TocParser::NonAccessExprContext* TocParser::nonAccessExpr() {
\r
2189 NonAccessExprContext *_localctx = _tracker.createInstance<NonAccessExprContext>(_ctx, getState());
\r
2190 enterRule(_localctx, 56, TocParser::RuleNonAccessExpr);
\r
2192 #if __cplusplus > 201703L
\r
2193 auto onExit = finally([=, this] {
\r
2195 auto onExit = finally([=] {
\r
2201 _errHandler->sync(this);
\r
2202 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 18, _ctx)) {
\r
2204 enterOuterAlt(_localctx, 1);
\r
2211 enterOuterAlt(_localctx, 2);
\r
2218 enterOuterAlt(_localctx, 3);
\r
2229 catch (RecognitionException &e) {
\r
2230 _errHandler->reportError(this, e);
\r
2231 _localctx->exception = std::current_exception();
\r
2232 _errHandler->recover(this, _localctx->exception);
\r
2238 //----------------- FuncExprContext ------------------------------------------------------------------
\r
2240 TocParser::FuncExprContext::FuncExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2241 : ParserRuleContext(parent, invokingState) {
\r
2244 TocParser::FuncNameContext* TocParser::FuncExprContext::funcName() {
\r
2245 return getRuleContext<TocParser::FuncNameContext>(0);
\r
2248 std::vector<TocParser::ExprContext *> TocParser::FuncExprContext::expr() {
\r
2249 return getRuleContexts<TocParser::ExprContext>();
\r
2252 TocParser::ExprContext* TocParser::FuncExprContext::expr(size_t i) {
\r
2253 return getRuleContext<TocParser::ExprContext>(i);
\r
2257 size_t TocParser::FuncExprContext::getRuleIndex() const {
\r
2258 return TocParser::RuleFuncExpr;
\r
2261 void TocParser::FuncExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2262 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2263 if (parserListener != nullptr)
\r
2264 parserListener->enterFuncExpr(this);
\r
2267 void TocParser::FuncExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2268 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2269 if (parserListener != nullptr)
\r
2270 parserListener->exitFuncExpr(this);
\r
2273 TocParser::FuncExprContext* TocParser::funcExpr() {
\r
2274 FuncExprContext *_localctx = _tracker.createInstance<FuncExprContext>(_ctx, getState());
\r
2275 enterRule(_localctx, 58, TocParser::RuleFuncExpr);
\r
2278 #if __cplusplus > 201703L
\r
2279 auto onExit = finally([=, this] {
\r
2281 auto onExit = finally([=] {
\r
2286 enterOuterAlt(_localctx, 1);
\r
2290 match(TocParser::T__7);
\r
2292 _errHandler->sync(this);
\r
2294 _la = _input->LA(1);
\r
2295 if ((((_la & ~ 0x3fULL) == 0) &&
\r
2296 ((1ULL << _la) & ((1ULL << TocParser::T__3)
\r
2297 | (1ULL << TocParser::T__7)
\r
2298 | (1ULL << TocParser::T__23)
\r
2299 | (1ULL << TocParser::T__24)
\r
2300 | (1ULL << TocParser::T__25)
\r
2301 | (1ULL << TocParser::T__26)
\r
2302 | (1ULL << TocParser::T__27)
\r
2303 | (1ULL << TocParser::T__28)
\r
2304 | (1ULL << TocParser::T__29)
\r
2305 | (1ULL << TocParser::INT_LIT)
\r
2306 | (1ULL << TocParser::DECIMAL_LIT)
\r
2307 | (1ULL << TocParser::STRING_LIT)
\r
2308 | (1ULL << TocParser::BOOL_LIT)
\r
2309 | (1ULL << TocParser::NAME))) != 0)) {
\r
2313 _errHandler->sync(this);
\r
2314 _la = _input->LA(1);
\r
2315 while (_la == TocParser::T__9) {
\r
2317 match(TocParser::T__9);
\r
2321 _errHandler->sync(this);
\r
2322 _la = _input->LA(1);
\r
2326 match(TocParser::T__8);
\r
2329 catch (RecognitionException &e) {
\r
2330 _errHandler->reportError(this, e);
\r
2331 _localctx->exception = std::current_exception();
\r
2332 _errHandler->recover(this, _localctx->exception);
\r
2338 //----------------- OpExprContext ------------------------------------------------------------------
\r
2340 TocParser::OpExprContext::OpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2341 : ParserRuleContext(parent, invokingState) {
\r
2344 TocParser::BinaryOpContext* TocParser::OpExprContext::binaryOp() {
\r
2345 return getRuleContext<TocParser::BinaryOpContext>(0);
\r
2348 TocParser::PrefixOpContext* TocParser::OpExprContext::prefixOp() {
\r
2349 return getRuleContext<TocParser::PrefixOpContext>(0);
\r
2352 TocParser::PostfixOpContext* TocParser::OpExprContext::postfixOp() {
\r
2353 return getRuleContext<TocParser::PostfixOpContext>(0);
\r
2356 TocParser::TernaryOpContext* TocParser::OpExprContext::ternaryOp() {
\r
2357 return getRuleContext<TocParser::TernaryOpContext>(0);
\r
2361 size_t TocParser::OpExprContext::getRuleIndex() const {
\r
2362 return TocParser::RuleOpExpr;
\r
2365 void TocParser::OpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2366 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2367 if (parserListener != nullptr)
\r
2368 parserListener->enterOpExpr(this);
\r
2371 void TocParser::OpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2372 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2373 if (parserListener != nullptr)
\r
2374 parserListener->exitOpExpr(this);
\r
2377 TocParser::OpExprContext* TocParser::opExpr() {
\r
2378 OpExprContext *_localctx = _tracker.createInstance<OpExprContext>(_ctx, getState());
\r
2379 enterRule(_localctx, 60, TocParser::RuleOpExpr);
\r
2381 #if __cplusplus > 201703L
\r
2382 auto onExit = finally([=, this] {
\r
2384 auto onExit = finally([=] {
\r
2390 _errHandler->sync(this);
\r
2391 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 21, _ctx)) {
\r
2393 enterOuterAlt(_localctx, 1);
\r
2400 enterOuterAlt(_localctx, 2);
\r
2407 enterOuterAlt(_localctx, 3);
\r
2414 enterOuterAlt(_localctx, 4);
\r
2425 catch (RecognitionException &e) {
\r
2426 _errHandler->reportError(this, e);
\r
2427 _localctx->exception = std::current_exception();
\r
2428 _errHandler->recover(this, _localctx->exception);
\r
2434 //----------------- BinaryOpContext ------------------------------------------------------------------
\r
2436 TocParser::BinaryOpContext::BinaryOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2437 : ParserRuleContext(parent, invokingState) {
\r
2440 std::vector<TocParser::NonOpExprContext *> TocParser::BinaryOpContext::nonOpExpr() {
\r
2441 return getRuleContexts<TocParser::NonOpExprContext>();
\r
2444 TocParser::NonOpExprContext* TocParser::BinaryOpContext::nonOpExpr(size_t i) {
\r
2445 return getRuleContext<TocParser::NonOpExprContext>(i);
\r
2448 std::vector<TocParser::Binary_opContext *> TocParser::BinaryOpContext::binary_op() {
\r
2449 return getRuleContexts<TocParser::Binary_opContext>();
\r
2452 TocParser::Binary_opContext* TocParser::BinaryOpContext::binary_op(size_t i) {
\r
2453 return getRuleContext<TocParser::Binary_opContext>(i);
\r
2457 size_t TocParser::BinaryOpContext::getRuleIndex() const {
\r
2458 return TocParser::RuleBinaryOp;
\r
2461 void TocParser::BinaryOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2462 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2463 if (parserListener != nullptr)
\r
2464 parserListener->enterBinaryOp(this);
\r
2467 void TocParser::BinaryOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2468 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2469 if (parserListener != nullptr)
\r
2470 parserListener->exitBinaryOp(this);
\r
2473 TocParser::BinaryOpContext* TocParser::binaryOp() {
\r
2474 BinaryOpContext *_localctx = _tracker.createInstance<BinaryOpContext>(_ctx, getState());
\r
2475 enterRule(_localctx, 62, TocParser::RuleBinaryOp);
\r
2477 #if __cplusplus > 201703L
\r
2478 auto onExit = finally([=, this] {
\r
2480 auto onExit = finally([=] {
\r
2486 enterOuterAlt(_localctx, 1);
\r
2494 _errHandler->sync(this);
\r
2495 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 22, _ctx);
\r
2496 while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
\r
2504 _errHandler->sync(this);
\r
2505 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 22, _ctx);
\r
2509 catch (RecognitionException &e) {
\r
2510 _errHandler->reportError(this, e);
\r
2511 _localctx->exception = std::current_exception();
\r
2512 _errHandler->recover(this, _localctx->exception);
\r
2518 //----------------- PrefixOpContext ------------------------------------------------------------------
\r
2520 TocParser::PrefixOpContext::PrefixOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2521 : ParserRuleContext(parent, invokingState) {
\r
2524 TocParser::Prefix_opContext* TocParser::PrefixOpContext::prefix_op() {
\r
2525 return getRuleContext<TocParser::Prefix_opContext>(0);
\r
2528 TocParser::NonOpExprContext* TocParser::PrefixOpContext::nonOpExpr() {
\r
2529 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2533 size_t TocParser::PrefixOpContext::getRuleIndex() const {
\r
2534 return TocParser::RulePrefixOp;
\r
2537 void TocParser::PrefixOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2538 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2539 if (parserListener != nullptr)
\r
2540 parserListener->enterPrefixOp(this);
\r
2543 void TocParser::PrefixOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2544 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2545 if (parserListener != nullptr)
\r
2546 parserListener->exitPrefixOp(this);
\r
2549 TocParser::PrefixOpContext* TocParser::prefixOp() {
\r
2550 PrefixOpContext *_localctx = _tracker.createInstance<PrefixOpContext>(_ctx, getState());
\r
2551 enterRule(_localctx, 64, TocParser::RulePrefixOp);
\r
2553 #if __cplusplus > 201703L
\r
2554 auto onExit = finally([=, this] {
\r
2556 auto onExit = finally([=] {
\r
2561 enterOuterAlt(_localctx, 1);
\r
2568 catch (RecognitionException &e) {
\r
2569 _errHandler->reportError(this, e);
\r
2570 _localctx->exception = std::current_exception();
\r
2571 _errHandler->recover(this, _localctx->exception);
\r
2577 //----------------- PostfixOpContext ------------------------------------------------------------------
\r
2579 TocParser::PostfixOpContext::PostfixOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2580 : ParserRuleContext(parent, invokingState) {
\r
2583 TocParser::NonOpExprContext* TocParser::PostfixOpContext::nonOpExpr() {
\r
2584 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2587 TocParser::Postfix_opContext* TocParser::PostfixOpContext::postfix_op() {
\r
2588 return getRuleContext<TocParser::Postfix_opContext>(0);
\r
2592 size_t TocParser::PostfixOpContext::getRuleIndex() const {
\r
2593 return TocParser::RulePostfixOp;
\r
2596 void TocParser::PostfixOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2597 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2598 if (parserListener != nullptr)
\r
2599 parserListener->enterPostfixOp(this);
\r
2602 void TocParser::PostfixOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2603 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2604 if (parserListener != nullptr)
\r
2605 parserListener->exitPostfixOp(this);
\r
2608 TocParser::PostfixOpContext* TocParser::postfixOp() {
\r
2609 PostfixOpContext *_localctx = _tracker.createInstance<PostfixOpContext>(_ctx, getState());
\r
2610 enterRule(_localctx, 66, TocParser::RulePostfixOp);
\r
2612 #if __cplusplus > 201703L
\r
2613 auto onExit = finally([=, this] {
\r
2615 auto onExit = finally([=] {
\r
2620 enterOuterAlt(_localctx, 1);
\r
2627 catch (RecognitionException &e) {
\r
2628 _errHandler->reportError(this, e);
\r
2629 _localctx->exception = std::current_exception();
\r
2630 _errHandler->recover(this, _localctx->exception);
\r
2636 //----------------- TernaryOpContext ------------------------------------------------------------------
\r
2638 TocParser::TernaryOpContext::TernaryOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2639 : ParserRuleContext(parent, invokingState) {
\r
2642 TocParser::NonOpExprContext* TocParser::TernaryOpContext::nonOpExpr() {
\r
2643 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2646 std::vector<TocParser::ExprContext *> TocParser::TernaryOpContext::expr() {
\r
2647 return getRuleContexts<TocParser::ExprContext>();
\r
2650 TocParser::ExprContext* TocParser::TernaryOpContext::expr(size_t i) {
\r
2651 return getRuleContext<TocParser::ExprContext>(i);
\r
2655 size_t TocParser::TernaryOpContext::getRuleIndex() const {
\r
2656 return TocParser::RuleTernaryOp;
\r
2659 void TocParser::TernaryOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2660 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2661 if (parserListener != nullptr)
\r
2662 parserListener->enterTernaryOp(this);
\r
2665 void TocParser::TernaryOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2666 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2667 if (parserListener != nullptr)
\r
2668 parserListener->exitTernaryOp(this);
\r
2671 TocParser::TernaryOpContext* TocParser::ternaryOp() {
\r
2672 TernaryOpContext *_localctx = _tracker.createInstance<TernaryOpContext>(_ctx, getState());
\r
2673 enterRule(_localctx, 68, TocParser::RuleTernaryOp);
\r
2675 #if __cplusplus > 201703L
\r
2676 auto onExit = finally([=, this] {
\r
2678 auto onExit = finally([=] {
\r
2683 enterOuterAlt(_localctx, 1);
\r
2687 match(TocParser::T__20);
\r
2691 match(TocParser::T__1);
\r
2696 catch (RecognitionException &e) {
\r
2697 _errHandler->reportError(this, e);
\r
2698 _localctx->exception = std::current_exception();
\r
2699 _errHandler->recover(this, _localctx->exception);
\r
2705 //----------------- IdentifierExprContext ------------------------------------------------------------------
\r
2707 TocParser::IdentifierExprContext::IdentifierExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2708 : ParserRuleContext(parent, invokingState) {
\r
2711 TocParser::VarNameContext* TocParser::IdentifierExprContext::varName() {
\r
2712 return getRuleContext<TocParser::VarNameContext>(0);
\r
2716 size_t TocParser::IdentifierExprContext::getRuleIndex() const {
\r
2717 return TocParser::RuleIdentifierExpr;
\r
2720 void TocParser::IdentifierExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2721 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2722 if (parserListener != nullptr)
\r
2723 parserListener->enterIdentifierExpr(this);
\r
2726 void TocParser::IdentifierExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2727 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2728 if (parserListener != nullptr)
\r
2729 parserListener->exitIdentifierExpr(this);
\r
2732 TocParser::IdentifierExprContext* TocParser::identifierExpr() {
\r
2733 IdentifierExprContext *_localctx = _tracker.createInstance<IdentifierExprContext>(_ctx, getState());
\r
2734 enterRule(_localctx, 70, TocParser::RuleIdentifierExpr);
\r
2736 #if __cplusplus > 201703L
\r
2737 auto onExit = finally([=, this] {
\r
2739 auto onExit = finally([=] {
\r
2744 enterOuterAlt(_localctx, 1);
\r
2749 catch (RecognitionException &e) {
\r
2750 _errHandler->reportError(this, e);
\r
2751 _localctx->exception = std::current_exception();
\r
2752 _errHandler->recover(this, _localctx->exception);
\r
2758 //----------------- LitExprContext ------------------------------------------------------------------
\r
2760 TocParser::LitExprContext::LitExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2761 : ParserRuleContext(parent, invokingState) {
\r
2764 tree::TerminalNode* TocParser::LitExprContext::INT_LIT() {
\r
2765 return getToken(TocParser::INT_LIT, 0);
\r
2768 tree::TerminalNode* TocParser::LitExprContext::DECIMAL_LIT() {
\r
2769 return getToken(TocParser::DECIMAL_LIT, 0);
\r
2772 tree::TerminalNode* TocParser::LitExprContext::STRING_LIT() {
\r
2773 return getToken(TocParser::STRING_LIT, 0);
\r
2776 tree::TerminalNode* TocParser::LitExprContext::BOOL_LIT() {
\r
2777 return getToken(TocParser::BOOL_LIT, 0);
\r
2781 size_t TocParser::LitExprContext::getRuleIndex() const {
\r
2782 return TocParser::RuleLitExpr;
\r
2785 void TocParser::LitExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2786 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2787 if (parserListener != nullptr)
\r
2788 parserListener->enterLitExpr(this);
\r
2791 void TocParser::LitExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2792 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2793 if (parserListener != nullptr)
\r
2794 parserListener->exitLitExpr(this);
\r
2797 TocParser::LitExprContext* TocParser::litExpr() {
\r
2798 LitExprContext *_localctx = _tracker.createInstance<LitExprContext>(_ctx, getState());
\r
2799 enterRule(_localctx, 72, TocParser::RuleLitExpr);
\r
2802 #if __cplusplus > 201703L
\r
2803 auto onExit = finally([=, this] {
\r
2805 auto onExit = finally([=] {
\r
2810 enterOuterAlt(_localctx, 1);
\r
2812 _la = _input->LA(1);
\r
2813 if (!((((_la & ~ 0x3fULL) == 0) &&
\r
2814 ((1ULL << _la) & ((1ULL << TocParser::INT_LIT)
\r
2815 | (1ULL << TocParser::DECIMAL_LIT)
\r
2816 | (1ULL << TocParser::STRING_LIT)
\r
2817 | (1ULL << TocParser::BOOL_LIT))) != 0))) {
\r
2818 _errHandler->recoverInline(this);
\r
2821 _errHandler->reportMatch(this);
\r
2826 catch (RecognitionException &e) {
\r
2827 _errHandler->reportError(this, e);
\r
2828 _localctx->exception = std::current_exception();
\r
2829 _errHandler->recover(this, _localctx->exception);
\r
2835 //----------------- AccessExprContext ------------------------------------------------------------------
\r
2837 TocParser::AccessExprContext::AccessExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2838 : ParserRuleContext(parent, invokingState) {
\r
2841 TocParser::NonAccessExprContext* TocParser::AccessExprContext::nonAccessExpr() {
\r
2842 return getRuleContext<TocParser::NonAccessExprContext>(0);
\r
2845 std::vector<TocParser::AccessSubExprContext *> TocParser::AccessExprContext::accessSubExpr() {
\r
2846 return getRuleContexts<TocParser::AccessSubExprContext>();
\r
2849 TocParser::AccessSubExprContext* TocParser::AccessExprContext::accessSubExpr(size_t i) {
\r
2850 return getRuleContext<TocParser::AccessSubExprContext>(i);
\r
2854 size_t TocParser::AccessExprContext::getRuleIndex() const {
\r
2855 return TocParser::RuleAccessExpr;
\r
2858 void TocParser::AccessExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2859 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2860 if (parserListener != nullptr)
\r
2861 parserListener->enterAccessExpr(this);
\r
2864 void TocParser::AccessExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2865 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2866 if (parserListener != nullptr)
\r
2867 parserListener->exitAccessExpr(this);
\r
2870 TocParser::AccessExprContext* TocParser::accessExpr() {
\r
2871 AccessExprContext *_localctx = _tracker.createInstance<AccessExprContext>(_ctx, getState());
\r
2872 enterRule(_localctx, 74, TocParser::RuleAccessExpr);
\r
2875 #if __cplusplus > 201703L
\r
2876 auto onExit = finally([=, this] {
\r
2878 auto onExit = finally([=] {
\r
2883 enterOuterAlt(_localctx, 1);
\r
2887 _errHandler->sync(this);
\r
2888 _la = _input->LA(1);
\r
2893 _errHandler->sync(this);
\r
2894 _la = _input->LA(1);
\r
2895 } while ((((_la & ~ 0x3fULL) == 0) &&
\r
2896 ((1ULL << _la) & ((1ULL << TocParser::T__4)
\r
2897 | (1ULL << TocParser::T__21)
\r
2898 | (1ULL << TocParser::T__22))) != 0));
\r
2901 catch (RecognitionException &e) {
\r
2902 _errHandler->reportError(this, e);
\r
2903 _localctx->exception = std::current_exception();
\r
2904 _errHandler->recover(this, _localctx->exception);
\r
2910 //----------------- AccessSubExprContext ------------------------------------------------------------------
\r
2912 TocParser::AccessSubExprContext::AccessSubExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2913 : ParserRuleContext(parent, invokingState) {
\r
2916 TocParser::AccessMemberContext* TocParser::AccessSubExprContext::accessMember() {
\r
2917 return getRuleContext<TocParser::AccessMemberContext>(0);
\r
2920 TocParser::AccessBracketsContext* TocParser::AccessSubExprContext::accessBrackets() {
\r
2921 return getRuleContext<TocParser::AccessBracketsContext>(0);
\r
2925 size_t TocParser::AccessSubExprContext::getRuleIndex() const {
\r
2926 return TocParser::RuleAccessSubExpr;
\r
2929 void TocParser::AccessSubExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2930 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2931 if (parserListener != nullptr)
\r
2932 parserListener->enterAccessSubExpr(this);
\r
2935 void TocParser::AccessSubExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2936 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2937 if (parserListener != nullptr)
\r
2938 parserListener->exitAccessSubExpr(this);
\r
2941 TocParser::AccessSubExprContext* TocParser::accessSubExpr() {
\r
2942 AccessSubExprContext *_localctx = _tracker.createInstance<AccessSubExprContext>(_ctx, getState());
\r
2943 enterRule(_localctx, 76, TocParser::RuleAccessSubExpr);
\r
2945 #if __cplusplus > 201703L
\r
2946 auto onExit = finally([=, this] {
\r
2948 auto onExit = finally([=] {
\r
2954 _errHandler->sync(this);
\r
2955 switch (_input->LA(1)) {
\r
2956 case TocParser::T__21:
\r
2957 case TocParser::T__22: {
\r
2958 enterOuterAlt(_localctx, 1);
\r
2964 case TocParser::T__4: {
\r
2965 enterOuterAlt(_localctx, 2);
\r
2972 throw NoViableAltException(this);
\r
2976 catch (RecognitionException &e) {
\r
2977 _errHandler->reportError(this, e);
\r
2978 _localctx->exception = std::current_exception();
\r
2979 _errHandler->recover(this, _localctx->exception);
\r
2985 //----------------- AccessMemberContext ------------------------------------------------------------------
\r
2987 TocParser::AccessMemberContext::AccessMemberContext(ParserRuleContext *parent, size_t invokingState)
\r
2988 : ParserRuleContext(parent, invokingState) {
\r
2991 TocParser::IdentifierExprContext* TocParser::AccessMemberContext::identifierExpr() {
\r
2992 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
2996 size_t TocParser::AccessMemberContext::getRuleIndex() const {
\r
2997 return TocParser::RuleAccessMember;
\r
3000 void TocParser::AccessMemberContext::enterRule(tree::ParseTreeListener *listener) {
\r
3001 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3002 if (parserListener != nullptr)
\r
3003 parserListener->enterAccessMember(this);
\r
3006 void TocParser::AccessMemberContext::exitRule(tree::ParseTreeListener *listener) {
\r
3007 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3008 if (parserListener != nullptr)
\r
3009 parserListener->exitAccessMember(this);
\r
3012 TocParser::AccessMemberContext* TocParser::accessMember() {
\r
3013 AccessMemberContext *_localctx = _tracker.createInstance<AccessMemberContext>(_ctx, getState());
\r
3014 enterRule(_localctx, 78, TocParser::RuleAccessMember);
\r
3017 #if __cplusplus > 201703L
\r
3018 auto onExit = finally([=, this] {
\r
3020 auto onExit = finally([=] {
\r
3025 enterOuterAlt(_localctx, 1);
\r
3027 _la = _input->LA(1);
\r
3028 if (!(_la == TocParser::T__21
\r
3030 || _la == TocParser::T__22)) {
\r
3031 _errHandler->recoverInline(this);
\r
3034 _errHandler->reportMatch(this);
\r
3041 catch (RecognitionException &e) {
\r
3042 _errHandler->reportError(this, e);
\r
3043 _localctx->exception = std::current_exception();
\r
3044 _errHandler->recover(this, _localctx->exception);
\r
3050 //----------------- AccessBracketsContext ------------------------------------------------------------------
\r
3052 TocParser::AccessBracketsContext::AccessBracketsContext(ParserRuleContext *parent, size_t invokingState)
\r
3053 : ParserRuleContext(parent, invokingState) {
\r
3056 TocParser::ExprContext* TocParser::AccessBracketsContext::expr() {
\r
3057 return getRuleContext<TocParser::ExprContext>(0);
\r
3061 size_t TocParser::AccessBracketsContext::getRuleIndex() const {
\r
3062 return TocParser::RuleAccessBrackets;
\r
3065 void TocParser::AccessBracketsContext::enterRule(tree::ParseTreeListener *listener) {
\r
3066 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3067 if (parserListener != nullptr)
\r
3068 parserListener->enterAccessBrackets(this);
\r
3071 void TocParser::AccessBracketsContext::exitRule(tree::ParseTreeListener *listener) {
\r
3072 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3073 if (parserListener != nullptr)
\r
3074 parserListener->exitAccessBrackets(this);
\r
3077 TocParser::AccessBracketsContext* TocParser::accessBrackets() {
\r
3078 AccessBracketsContext *_localctx = _tracker.createInstance<AccessBracketsContext>(_ctx, getState());
\r
3079 enterRule(_localctx, 80, TocParser::RuleAccessBrackets);
\r
3081 #if __cplusplus > 201703L
\r
3082 auto onExit = finally([=, this] {
\r
3084 auto onExit = finally([=] {
\r
3089 enterOuterAlt(_localctx, 1);
\r
3091 match(TocParser::T__4);
\r
3095 match(TocParser::T__5);
\r
3098 catch (RecognitionException &e) {
\r
3099 _errHandler->reportError(this, e);
\r
3100 _localctx->exception = std::current_exception();
\r
3101 _errHandler->recover(this, _localctx->exception);
\r
3107 //----------------- ParenExprContext ------------------------------------------------------------------
\r
3109 TocParser::ParenExprContext::ParenExprContext(ParserRuleContext *parent, size_t invokingState)
\r
3110 : ParserRuleContext(parent, invokingState) {
\r
3113 TocParser::ExprContext* TocParser::ParenExprContext::expr() {
\r
3114 return getRuleContext<TocParser::ExprContext>(0);
\r
3118 size_t TocParser::ParenExprContext::getRuleIndex() const {
\r
3119 return TocParser::RuleParenExpr;
\r
3122 void TocParser::ParenExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
3123 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3124 if (parserListener != nullptr)
\r
3125 parserListener->enterParenExpr(this);
\r
3128 void TocParser::ParenExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
3129 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3130 if (parserListener != nullptr)
\r
3131 parserListener->exitParenExpr(this);
\r
3134 TocParser::ParenExprContext* TocParser::parenExpr() {
\r
3135 ParenExprContext *_localctx = _tracker.createInstance<ParenExprContext>(_ctx, getState());
\r
3136 enterRule(_localctx, 82, TocParser::RuleParenExpr);
\r
3138 #if __cplusplus > 201703L
\r
3139 auto onExit = finally([=, this] {
\r
3141 auto onExit = finally([=] {
\r
3146 enterOuterAlt(_localctx, 1);
\r
3148 match(TocParser::T__7);
\r
3152 match(TocParser::T__8);
\r
3155 catch (RecognitionException &e) {
\r
3156 _errHandler->reportError(this, e);
\r
3157 _localctx->exception = std::current_exception();
\r
3158 _errHandler->recover(this, _localctx->exception);
\r
3164 //----------------- FuncNameContext ------------------------------------------------------------------
\r
3166 TocParser::FuncNameContext::FuncNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3167 : ParserRuleContext(parent, invokingState) {
\r
3170 tree::TerminalNode* TocParser::FuncNameContext::NAME() {
\r
3171 return getToken(TocParser::NAME, 0);
\r
3175 size_t TocParser::FuncNameContext::getRuleIndex() const {
\r
3176 return TocParser::RuleFuncName;
\r
3179 void TocParser::FuncNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3180 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3181 if (parserListener != nullptr)
\r
3182 parserListener->enterFuncName(this);
\r
3185 void TocParser::FuncNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3186 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3187 if (parserListener != nullptr)
\r
3188 parserListener->exitFuncName(this);
\r
3191 TocParser::FuncNameContext* TocParser::funcName() {
\r
3192 FuncNameContext *_localctx = _tracker.createInstance<FuncNameContext>(_ctx, getState());
\r
3193 enterRule(_localctx, 84, TocParser::RuleFuncName);
\r
3195 #if __cplusplus > 201703L
\r
3196 auto onExit = finally([=, this] {
\r
3198 auto onExit = finally([=] {
\r
3203 enterOuterAlt(_localctx, 1);
\r
3205 match(TocParser::NAME);
\r
3208 catch (RecognitionException &e) {
\r
3209 _errHandler->reportError(this, e);
\r
3210 _localctx->exception = std::current_exception();
\r
3211 _errHandler->recover(this, _localctx->exception);
\r
3217 //----------------- VarNameContext ------------------------------------------------------------------
\r
3219 TocParser::VarNameContext::VarNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3220 : ParserRuleContext(parent, invokingState) {
\r
3223 tree::TerminalNode* TocParser::VarNameContext::NAME() {
\r
3224 return getToken(TocParser::NAME, 0);
\r
3228 size_t TocParser::VarNameContext::getRuleIndex() const {
\r
3229 return TocParser::RuleVarName;
\r
3232 void TocParser::VarNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3233 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3234 if (parserListener != nullptr)
\r
3235 parserListener->enterVarName(this);
\r
3238 void TocParser::VarNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3239 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3240 if (parserListener != nullptr)
\r
3241 parserListener->exitVarName(this);
\r
3244 TocParser::VarNameContext* TocParser::varName() {
\r
3245 VarNameContext *_localctx = _tracker.createInstance<VarNameContext>(_ctx, getState());
\r
3246 enterRule(_localctx, 86, TocParser::RuleVarName);
\r
3248 #if __cplusplus > 201703L
\r
3249 auto onExit = finally([=, this] {
\r
3251 auto onExit = finally([=] {
\r
3256 enterOuterAlt(_localctx, 1);
\r
3258 match(TocParser::NAME);
\r
3261 catch (RecognitionException &e) {
\r
3262 _errHandler->reportError(this, e);
\r
3263 _localctx->exception = std::current_exception();
\r
3264 _errHandler->recover(this, _localctx->exception);
\r
3270 //----------------- TypeNameContext ------------------------------------------------------------------
\r
3272 TocParser::TypeNameContext::TypeNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3273 : ParserRuleContext(parent, invokingState) {
\r
3276 tree::TerminalNode* TocParser::TypeNameContext::NAME() {
\r
3277 return getToken(TocParser::NAME, 0);
\r
3281 size_t TocParser::TypeNameContext::getRuleIndex() const {
\r
3282 return TocParser::RuleTypeName;
\r
3285 void TocParser::TypeNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3286 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3287 if (parserListener != nullptr)
\r
3288 parserListener->enterTypeName(this);
\r
3291 void TocParser::TypeNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3292 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3293 if (parserListener != nullptr)
\r
3294 parserListener->exitTypeName(this);
\r
3297 TocParser::TypeNameContext* TocParser::typeName() {
\r
3298 TypeNameContext *_localctx = _tracker.createInstance<TypeNameContext>(_ctx, getState());
\r
3299 enterRule(_localctx, 88, TocParser::RuleTypeName);
\r
3301 #if __cplusplus > 201703L
\r
3302 auto onExit = finally([=, this] {
\r
3304 auto onExit = finally([=] {
\r
3309 enterOuterAlt(_localctx, 1);
\r
3311 match(TocParser::NAME);
\r
3314 catch (RecognitionException &e) {
\r
3315 _errHandler->reportError(this, e);
\r
3316 _localctx->exception = std::current_exception();
\r
3317 _errHandler->recover(this, _localctx->exception);
\r
3323 //----------------- StructNameContext ------------------------------------------------------------------
\r
3325 TocParser::StructNameContext::StructNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3326 : ParserRuleContext(parent, invokingState) {
\r
3329 tree::TerminalNode* TocParser::StructNameContext::NAME() {
\r
3330 return getToken(TocParser::NAME, 0);
\r
3334 size_t TocParser::StructNameContext::getRuleIndex() const {
\r
3335 return TocParser::RuleStructName;
\r
3338 void TocParser::StructNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3339 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3340 if (parserListener != nullptr)
\r
3341 parserListener->enterStructName(this);
\r
3344 void TocParser::StructNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3345 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3346 if (parserListener != nullptr)
\r
3347 parserListener->exitStructName(this);
\r
3350 TocParser::StructNameContext* TocParser::structName() {
\r
3351 StructNameContext *_localctx = _tracker.createInstance<StructNameContext>(_ctx, getState());
\r
3352 enterRule(_localctx, 90, TocParser::RuleStructName);
\r
3354 #if __cplusplus > 201703L
\r
3355 auto onExit = finally([=, this] {
\r
3357 auto onExit = finally([=] {
\r
3362 enterOuterAlt(_localctx, 1);
\r
3364 match(TocParser::NAME);
\r
3367 catch (RecognitionException &e) {
\r
3368 _errHandler->reportError(this, e);
\r
3369 _localctx->exception = std::current_exception();
\r
3370 _errHandler->recover(this, _localctx->exception);
\r
3376 //----------------- Postfix_opContext ------------------------------------------------------------------
\r
3378 TocParser::Postfix_opContext::Postfix_opContext(ParserRuleContext *parent, size_t invokingState)
\r
3379 : ParserRuleContext(parent, invokingState) {
\r
3383 size_t TocParser::Postfix_opContext::getRuleIndex() const {
\r
3384 return TocParser::RulePostfix_op;
\r
3387 void TocParser::Postfix_opContext::enterRule(tree::ParseTreeListener *listener) {
\r
3388 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3389 if (parserListener != nullptr)
\r
3390 parserListener->enterPostfix_op(this);
\r
3393 void TocParser::Postfix_opContext::exitRule(tree::ParseTreeListener *listener) {
\r
3394 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3395 if (parserListener != nullptr)
\r
3396 parserListener->exitPostfix_op(this);
\r
3399 TocParser::Postfix_opContext* TocParser::postfix_op() {
\r
3400 Postfix_opContext *_localctx = _tracker.createInstance<Postfix_opContext>(_ctx, getState());
\r
3401 enterRule(_localctx, 92, TocParser::RulePostfix_op);
\r
3404 #if __cplusplus > 201703L
\r
3405 auto onExit = finally([=, this] {
\r
3407 auto onExit = finally([=] {
\r
3412 enterOuterAlt(_localctx, 1);
\r
3414 _la = _input->LA(1);
\r
3415 if (!(_la == TocParser::T__23
\r
3417 || _la == TocParser::T__24)) {
\r
3418 _errHandler->recoverInline(this);
\r
3421 _errHandler->reportMatch(this);
\r
3426 catch (RecognitionException &e) {
\r
3427 _errHandler->reportError(this, e);
\r
3428 _localctx->exception = std::current_exception();
\r
3429 _errHandler->recover(this, _localctx->exception);
\r
3435 //----------------- Prefix_opContext ------------------------------------------------------------------
\r
3437 TocParser::Prefix_opContext::Prefix_opContext(ParserRuleContext *parent, size_t invokingState)
\r
3438 : ParserRuleContext(parent, invokingState) {
\r
3441 TocParser::Postfix_opContext* TocParser::Prefix_opContext::postfix_op() {
\r
3442 return getRuleContext<TocParser::Postfix_opContext>(0);
\r
3446 size_t TocParser::Prefix_opContext::getRuleIndex() const {
\r
3447 return TocParser::RulePrefix_op;
\r
3450 void TocParser::Prefix_opContext::enterRule(tree::ParseTreeListener *listener) {
\r
3451 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3452 if (parserListener != nullptr)
\r
3453 parserListener->enterPrefix_op(this);
\r
3456 void TocParser::Prefix_opContext::exitRule(tree::ParseTreeListener *listener) {
\r
3457 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3458 if (parserListener != nullptr)
\r
3459 parserListener->exitPrefix_op(this);
\r
3462 TocParser::Prefix_opContext* TocParser::prefix_op() {
\r
3463 Prefix_opContext *_localctx = _tracker.createInstance<Prefix_opContext>(_ctx, getState());
\r
3464 enterRule(_localctx, 94, TocParser::RulePrefix_op);
\r
3466 #if __cplusplus > 201703L
\r
3467 auto onExit = finally([=, this] {
\r
3469 auto onExit = finally([=] {
\r
3475 _errHandler->sync(this);
\r
3476 switch (_input->LA(1)) {
\r
3477 case TocParser::T__25: {
\r
3478 enterOuterAlt(_localctx, 1);
\r
3480 match(TocParser::T__25);
\r
3484 case TocParser::T__26: {
\r
3485 enterOuterAlt(_localctx, 2);
\r
3487 match(TocParser::T__26);
\r
3491 case TocParser::T__27: {
\r
3492 enterOuterAlt(_localctx, 3);
\r
3494 match(TocParser::T__27);
\r
3498 case TocParser::T__28: {
\r
3499 enterOuterAlt(_localctx, 4);
\r
3501 match(TocParser::T__28);
\r
3505 case TocParser::T__29: {
\r
3506 enterOuterAlt(_localctx, 5);
\r
3508 match(TocParser::T__29);
\r
3512 case TocParser::T__3: {
\r
3513 enterOuterAlt(_localctx, 6);
\r
3515 match(TocParser::T__3);
\r
3519 case TocParser::T__23:
\r
3520 case TocParser::T__24: {
\r
3521 enterOuterAlt(_localctx, 7);
\r
3528 throw NoViableAltException(this);
\r
3532 catch (RecognitionException &e) {
\r
3533 _errHandler->reportError(this, e);
\r
3534 _localctx->exception = std::current_exception();
\r
3535 _errHandler->recover(this, _localctx->exception);
\r
3541 //----------------- Binary_opContext ------------------------------------------------------------------
\r
3543 TocParser::Binary_opContext::Binary_opContext(ParserRuleContext *parent, size_t invokingState)
\r
3544 : ParserRuleContext(parent, invokingState) {
\r
3548 size_t TocParser::Binary_opContext::getRuleIndex() const {
\r
3549 return TocParser::RuleBinary_op;
\r
3552 void TocParser::Binary_opContext::enterRule(tree::ParseTreeListener *listener) {
\r
3553 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3554 if (parserListener != nullptr)
\r
3555 parserListener->enterBinary_op(this);
\r
3558 void TocParser::Binary_opContext::exitRule(tree::ParseTreeListener *listener) {
\r
3559 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3560 if (parserListener != nullptr)
\r
3561 parserListener->exitBinary_op(this);
\r
3564 TocParser::Binary_opContext* TocParser::binary_op() {
\r
3565 Binary_opContext *_localctx = _tracker.createInstance<Binary_opContext>(_ctx, getState());
\r
3566 enterRule(_localctx, 96, TocParser::RuleBinary_op);
\r
3569 #if __cplusplus > 201703L
\r
3570 auto onExit = finally([=, this] {
\r
3572 auto onExit = finally([=] {
\r
3577 enterOuterAlt(_localctx, 1);
\r
3579 _la = _input->LA(1);
\r
3580 if (!((((_la & ~ 0x3fULL) == 0) &&
\r
3581 ((1ULL << _la) & ((1ULL << TocParser::T__3)
\r
3582 | (1ULL << TocParser::T__25)
\r
3583 | (1ULL << TocParser::T__26)
\r
3584 | (1ULL << TocParser::T__29)
\r
3585 | (1ULL << TocParser::T__30)
\r
3586 | (1ULL << TocParser::T__31)
\r
3587 | (1ULL << TocParser::T__32)
\r
3588 | (1ULL << TocParser::T__33)
\r
3589 | (1ULL << TocParser::T__34)
\r
3590 | (1ULL << TocParser::T__35)
\r
3591 | (1ULL << TocParser::T__36)
\r
3592 | (1ULL << TocParser::T__37)
\r
3593 | (1ULL << TocParser::T__38)
\r
3594 | (1ULL << TocParser::T__39)
\r
3595 | (1ULL << TocParser::T__40)
\r
3596 | (1ULL << TocParser::T__41)
\r
3597 | (1ULL << TocParser::T__42)
\r
3598 | (1ULL << TocParser::T__43)
\r
3599 | (1ULL << TocParser::T__44)
\r
3600 | (1ULL << TocParser::T__45)
\r
3601 | (1ULL << TocParser::T__46)
\r
3602 | (1ULL << TocParser::T__47)
\r
3603 | (1ULL << TocParser::T__48)
\r
3604 | (1ULL << TocParser::T__49)
\r
3605 | (1ULL << TocParser::T__50)
\r
3606 | (1ULL << TocParser::T__51)
\r
3607 | (1ULL << TocParser::T__52)
\r
3608 | (1ULL << TocParser::T__53))) != 0))) {
\r
3609 _errHandler->recoverInline(this);
\r
3612 _errHandler->reportMatch(this);
\r
3617 catch (RecognitionException &e) {
\r
3618 _errHandler->reportError(this, e);
\r
3619 _localctx->exception = std::current_exception();
\r
3620 _errHandler->recover(this, _localctx->exception);
\r
3626 // Static vars and initialization.
\r
3627 std::vector<dfa::DFA> TocParser::_decisionToDFA;
\r
3628 atn::PredictionContextCache TocParser::_sharedContextCache;
\r
3630 // We own the ATN which in turn owns the ATN states.
\r
3631 atn::ATN TocParser::_atn;
\r
3632 std::vector<uint16_t> TocParser::_serializedATN;
\r
3634 std::vector<std::string> TocParser::_ruleNames = {
\r
3635 "prog", "decl", "varDecl", "var", "varInit", "type", "typeModifier", "funcDecl",
\r
3636 "func", "parameter", "body", "structDecl", "structMember", "structVar",
\r
3637 "structMethod", "stmt", "ifStmt", "elseIfStmt", "elseStmt", "switchStmt",
\r
3638 "switchBody", "switchCase", "forStmt", "whileStmt", "assignStmt", "returnStmt",
\r
3639 "expr", "nonOpExpr", "nonAccessExpr", "funcExpr", "opExpr", "binaryOp",
\r
3640 "prefixOp", "postfixOp", "ternaryOp", "identifierExpr", "litExpr", "accessExpr",
\r
3641 "accessSubExpr", "accessMember", "accessBrackets", "parenExpr", "funcName",
\r
3642 "varName", "typeName", "structName", "postfix_op", "prefix_op", "binary_op"
\r
3645 std::vector<std::string> TocParser::_literalNames = {
\r
3646 "", "'var'", "':'", "'='", "'*'", "'['", "']'", "'func'", "'('", "')'",
\r
3647 "','", "'{'", "'}'", "'struct'", "'if'", "'else'", "'switch'", "'case'",
\r
3648 "'for'", "'while'", "'return'", "'\u003F'", "'.'", "'->'", "'++'", "'--'",
\r
3649 "'+'", "'-'", "'!'", "'~'", "'&'", "'/'", "'%'", "'<'", "'|'", "'^'",
\r
3650 "'>'", "'=='", "'!='", "'<='", "'>='", "'<<'", "'>>'", "'||'", "'&&'",
\r
3651 "'&='", "'|='", "'^='", "'<<='", "'>>='", "'+='", "'-='", "'*='", "'/='",
\r
3655 std::vector<std::string> TocParser::_symbolicNames = {
\r
3656 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
\r
3657 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
\r
3658 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
\r
3659 "", "INT_LIT", "DECIMAL_LIT", "STRING_LIT", "BOOL_LIT", "NAME", "WS",
\r
3660 "NEWLINE", "NUMBER"
\r
3663 dfa::Vocabulary TocParser::_vocabulary(_literalNames, _symbolicNames);
\r
3665 std::vector<std::string> TocParser::_tokenNames;
\r
3667 TocParser::Initializer::Initializer() {
\r
3668 for (size_t i = 0; i < _symbolicNames.size(); ++i) {
\r
3669 std::string name = _vocabulary.getLiteralName(i);
\r
3670 if (name.empty()) {
\r
3671 name = _vocabulary.getSymbolicName(i);
\r
3674 if (name.empty()) {
\r
3675 _tokenNames.push_back("<INVALID>");
\r
3677 _tokenNames.push_back(name);
\r
3681 static const uint16_t serializedATNSegment0[] = {
\r
3682 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964,
\r
3683 0x3, 0x40, 0x176, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4,
\r
3684 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9,
\r
3685 0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa,
\r
3686 0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4,
\r
3687 0xe, 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11,
\r
3688 0x9, 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14,
\r
3689 0x9, 0x14, 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17,
\r
3690 0x9, 0x17, 0x4, 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a,
\r
3691 0x9, 0x1a, 0x4, 0x1b, 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d,
\r
3692 0x9, 0x1d, 0x4, 0x1e, 0x9, 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20,
\r
3693 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, 0x4, 0x22, 0x9, 0x22, 0x4, 0x23,
\r
3694 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, 0x25, 0x9, 0x25, 0x4, 0x26,
\r
3695 0x9, 0x26, 0x4, 0x27, 0x9, 0x27, 0x4, 0x28, 0x9, 0x28, 0x4, 0x29,
\r
3696 0x9, 0x29, 0x4, 0x2a, 0x9, 0x2a, 0x4, 0x2b, 0x9, 0x2b, 0x4, 0x2c,
\r
3697 0x9, 0x2c, 0x4, 0x2d, 0x9, 0x2d, 0x4, 0x2e, 0x9, 0x2e, 0x4, 0x2f,
\r
3698 0x9, 0x2f, 0x4, 0x30, 0x9, 0x30, 0x4, 0x31, 0x9, 0x31, 0x4, 0x32,
\r
3699 0x9, 0x32, 0x3, 0x2, 0x6, 0x2, 0x66, 0xa, 0x2, 0xd, 0x2, 0xe, 0x2,
\r
3700 0x67, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x5, 0x3,
\r
3701 0x6f, 0xa, 0x3, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x5, 0x3, 0x5,
\r
3702 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x5, 0x5, 0x7a, 0xa, 0x5,
\r
3703 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3,
\r
3704 0x6, 0x3, 0x7, 0x3, 0x7, 0x7, 0x7, 0x85, 0xa, 0x7, 0xc, 0x7, 0xe,
\r
3705 0x7, 0x88, 0xb, 0x7, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x5, 0x8, 0x8d,
\r
3706 0xa, 0x8, 0x3, 0x8, 0x5, 0x8, 0x90, 0xa, 0x8, 0x3, 0x9, 0x3, 0x9,
\r
3707 0x3, 0x9, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3,
\r
3708 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb,
\r
3709 0x7, 0xb, 0xa1, 0xa, 0xb, 0xc, 0xb, 0xe, 0xb, 0xa4, 0xb, 0xb, 0x5,
\r
3710 0xb, 0xa6, 0xa, 0xb, 0x3, 0xc, 0x3, 0xc, 0x7, 0xc, 0xaa, 0xa, 0xc,
\r
3711 0xc, 0xc, 0xe, 0xc, 0xad, 0xb, 0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xd,
\r
3712 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x7, 0xd, 0xb5, 0xa, 0xd, 0xc, 0xd,
\r
3713 0xe, 0xd, 0xb8, 0xb, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xe, 0x3, 0xe,
\r
3714 0x5, 0xe, 0xbe, 0xa, 0xe, 0x3, 0xf, 0x3, 0xf, 0x3, 0x10, 0x3, 0x10,
\r
3715 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11,
\r
3716 0x3, 0x11, 0x3, 0x11, 0x5, 0x11, 0xcc, 0xa, 0x11, 0x3, 0x12, 0x3,
\r
3717 0x12, 0x3, 0x12, 0x3, 0x12, 0x7, 0x12, 0xd2, 0xa, 0x12, 0xc, 0x12,
\r
3718 0xe, 0x12, 0xd5, 0xb, 0x12, 0x3, 0x12, 0x5, 0x12, 0xd8, 0xa, 0x12,
\r
3719 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x14,
\r
3720 0x3, 0x14, 0x3, 0x14, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15,
\r
3721 0x3, 0x16, 0x3, 0x16, 0x7, 0x16, 0xe8, 0xa, 0x16, 0xc, 0x16, 0xe,
\r
3722 0x16, 0xeb, 0xb, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x17, 0x3, 0x17,
\r
3723 0x3, 0x17, 0x3, 0x17, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x5, 0x18,
\r
3724 0xf6, 0xa, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3,
\r
3725 0x18, 0x3, 0x18, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3,
\r
3726 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1b, 0x3, 0x1b, 0x3,
\r
3727 0x1b, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3,
\r
3728 0x1c, 0x5, 0x1c, 0x10f, 0xa, 0x1c, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d,
\r
3729 0x3, 0x1d, 0x3, 0x1d, 0x5, 0x1d, 0x116, 0xa, 0x1d, 0x3, 0x1e, 0x3,
\r
3730 0x1e, 0x3, 0x1e, 0x5, 0x1e, 0x11b, 0xa, 0x1e, 0x3, 0x1f, 0x3, 0x1f,
\r
3731 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x7, 0x1f, 0x122, 0xa, 0x1f, 0xc,
\r
3732 0x1f, 0xe, 0x1f, 0x125, 0xb, 0x1f, 0x5, 0x1f, 0x127, 0xa, 0x1f, 0x3,
\r
3733 0x1f, 0x3, 0x1f, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x5,
\r
3734 0x20, 0x12f, 0xa, 0x20, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21,
\r
3735 0x3, 0x21, 0x3, 0x21, 0x7, 0x21, 0x137, 0xa, 0x21, 0xc, 0x21, 0xe,
\r
3736 0x21, 0x13a, 0xb, 0x21, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x23,
\r
3737 0x3, 0x23, 0x3, 0x23, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24,
\r
3738 0x3, 0x24, 0x3, 0x24, 0x3, 0x25, 0x3, 0x25, 0x3, 0x26, 0x3, 0x26,
\r
3739 0x3, 0x27, 0x3, 0x27, 0x6, 0x27, 0x14e, 0xa, 0x27, 0xd, 0x27, 0xe,
\r
3740 0x27, 0x14f, 0x3, 0x28, 0x3, 0x28, 0x5, 0x28, 0x154, 0xa, 0x28, 0x3,
\r
3741 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3,
\r
3742 0x2a, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2c, 0x3,
\r
3743 0x2c, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2f, 0x3,
\r
3744 0x2f, 0x3, 0x30, 0x3, 0x30, 0x3, 0x31, 0x3, 0x31, 0x3, 0x31, 0x3,
\r
3745 0x31, 0x3, 0x31, 0x3, 0x31, 0x3, 0x31, 0x5, 0x31, 0x172, 0xa, 0x31,
\r
3746 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x2, 0x2, 0x33, 0x2, 0x4, 0x6, 0x8,
\r
3747 0xa, 0xc, 0xe, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20,
\r
3748 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36,
\r
3749 0x38, 0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c,
\r
3750 0x4e, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x62,
\r
3751 0x2, 0x6, 0x3, 0x2, 0x39, 0x3c, 0x3, 0x2, 0x18, 0x19, 0x3, 0x2, 0x1a,
\r
3752 0x1b, 0x5, 0x2, 0x6, 0x6, 0x1c, 0x1d, 0x20, 0x38, 0x2, 0x174, 0x2,
\r
3753 0x65, 0x3, 0x2, 0x2, 0x2, 0x4, 0x6e, 0x3, 0x2, 0x2, 0x2, 0x6, 0x70,
\r
3754 0x3, 0x2, 0x2, 0x2, 0x8, 0x73, 0x3, 0x2, 0x2, 0x2, 0xa, 0x7b, 0x3,
\r
3755 0x2, 0x2, 0x2, 0xc, 0x82, 0x3, 0x2, 0x2, 0x2, 0xe, 0x8f, 0x3, 0x2,
\r
3756 0x2, 0x2, 0x10, 0x91, 0x3, 0x2, 0x2, 0x2, 0x12, 0x94, 0x3, 0x2, 0x2,
\r
3757 0x2, 0x14, 0xa5, 0x3, 0x2, 0x2, 0x2, 0x16, 0xa7, 0x3, 0x2, 0x2, 0x2,
\r
3758 0x18, 0xb0, 0x3, 0x2, 0x2, 0x2, 0x1a, 0xbd, 0x3, 0x2, 0x2, 0x2, 0x1c,
\r
3759 0xbf, 0x3, 0x2, 0x2, 0x2, 0x1e, 0xc1, 0x3, 0x2, 0x2, 0x2, 0x20, 0xcb,
\r
3760 0x3, 0x2, 0x2, 0x2, 0x22, 0xcd, 0x3, 0x2, 0x2, 0x2, 0x24, 0xd9, 0x3,
\r
3761 0x2, 0x2, 0x2, 0x26, 0xde, 0x3, 0x2, 0x2, 0x2, 0x28, 0xe1, 0x3, 0x2,
\r
3762 0x2, 0x2, 0x2a, 0xe5, 0x3, 0x2, 0x2, 0x2, 0x2c, 0xee, 0x3, 0x2, 0x2,
\r
3763 0x2, 0x2e, 0xf2, 0x3, 0x2, 0x2, 0x2, 0x30, 0xfd, 0x3, 0x2, 0x2, 0x2,
\r
3764 0x32, 0x101, 0x3, 0x2, 0x2, 0x2, 0x34, 0x105, 0x3, 0x2, 0x2, 0x2,
\r
3765 0x36, 0x10e, 0x3, 0x2, 0x2, 0x2, 0x38, 0x115, 0x3, 0x2, 0x2, 0x2,
\r
3766 0x3a, 0x11a, 0x3, 0x2, 0x2, 0x2, 0x3c, 0x11c, 0x3, 0x2, 0x2, 0x2,
\r
3767 0x3e, 0x12e, 0x3, 0x2, 0x2, 0x2, 0x40, 0x130, 0x3, 0x2, 0x2, 0x2,
\r
3768 0x42, 0x13b, 0x3, 0x2, 0x2, 0x2, 0x44, 0x13e, 0x3, 0x2, 0x2, 0x2,
\r
3769 0x46, 0x141, 0x3, 0x2, 0x2, 0x2, 0x48, 0x147, 0x3, 0x2, 0x2, 0x2,
\r
3770 0x4a, 0x149, 0x3, 0x2, 0x2, 0x2, 0x4c, 0x14b, 0x3, 0x2, 0x2, 0x2,
\r
3771 0x4e, 0x153, 0x3, 0x2, 0x2, 0x2, 0x50, 0x155, 0x3, 0x2, 0x2, 0x2,
\r
3772 0x52, 0x158, 0x3, 0x2, 0x2, 0x2, 0x54, 0x15c, 0x3, 0x2, 0x2, 0x2,
\r
3773 0x56, 0x160, 0x3, 0x2, 0x2, 0x2, 0x58, 0x162, 0x3, 0x2, 0x2, 0x2,
\r
3774 0x5a, 0x164, 0x3, 0x2, 0x2, 0x2, 0x5c, 0x166, 0x3, 0x2, 0x2, 0x2,
\r
3775 0x5e, 0x168, 0x3, 0x2, 0x2, 0x2, 0x60, 0x171, 0x3, 0x2, 0x2, 0x2,
\r
3776 0x62, 0x173, 0x3, 0x2, 0x2, 0x2, 0x64, 0x66, 0x5, 0x4, 0x3, 0x2,
\r
3777 0x65, 0x64, 0x3, 0x2, 0x2, 0x2, 0x66, 0x67, 0x3, 0x2, 0x2, 0x2, 0x67,
\r
3778 0x65, 0x3, 0x2, 0x2, 0x2, 0x67, 0x68, 0x3, 0x2, 0x2, 0x2, 0x68, 0x69,
\r
3779 0x3, 0x2, 0x2, 0x2, 0x69, 0x6a, 0x7, 0x2, 0x2, 0x3, 0x6a, 0x3, 0x3,
\r
3780 0x2, 0x2, 0x2, 0x6b, 0x6f, 0x5, 0x6, 0x4, 0x2, 0x6c, 0x6f, 0x5, 0x10,
\r
3781 0x9, 0x2, 0x6d, 0x6f, 0x5, 0x18, 0xd, 0x2, 0x6e, 0x6b, 0x3, 0x2,
\r
3782 0x2, 0x2, 0x6e, 0x6c, 0x3, 0x2, 0x2, 0x2, 0x6e, 0x6d, 0x3, 0x2, 0x2,
\r
3783 0x2, 0x6f, 0x5, 0x3, 0x2, 0x2, 0x2, 0x70, 0x71, 0x7, 0x3, 0x2, 0x2,
\r
3784 0x71, 0x72, 0x5, 0x8, 0x5, 0x2, 0x72, 0x7, 0x3, 0x2, 0x2, 0x2, 0x73,
\r
3785 0x74, 0x5, 0x58, 0x2d, 0x2, 0x74, 0x75, 0x7, 0x4, 0x2, 0x2, 0x75,
\r
3786 0x76, 0x5, 0xc, 0x7, 0x2, 0x76, 0x79, 0x3, 0x2, 0x2, 0x2, 0x77, 0x78,
\r
3787 0x7, 0x5, 0x2, 0x2, 0x78, 0x7a, 0x5, 0x36, 0x1c, 0x2, 0x79, 0x77,
\r
3788 0x3, 0x2, 0x2, 0x2, 0x79, 0x7a, 0x3, 0x2, 0x2, 0x2, 0x7a, 0x9, 0x3,
\r
3789 0x2, 0x2, 0x2, 0x7b, 0x7c, 0x5, 0x58, 0x2d, 0x2, 0x7c, 0x7d, 0x7,
\r
3790 0x4, 0x2, 0x2, 0x7d, 0x7e, 0x5, 0xc, 0x7, 0x2, 0x7e, 0x7f, 0x3, 0x2,
\r
3791 0x2, 0x2, 0x7f, 0x80, 0x7, 0x5, 0x2, 0x2, 0x80, 0x81, 0x5, 0x36,
\r
3792 0x1c, 0x2, 0x81, 0xb, 0x3, 0x2, 0x2, 0x2, 0x82, 0x86, 0x5, 0x5a,
\r
3793 0x2e, 0x2, 0x83, 0x85, 0x5, 0xe, 0x8, 0x2, 0x84, 0x83, 0x3, 0x2,
\r
3794 0x2, 0x2, 0x85, 0x88, 0x3, 0x2, 0x2, 0x2, 0x86, 0x84, 0x3, 0x2, 0x2,
\r
3795 0x2, 0x86, 0x87, 0x3, 0x2, 0x2, 0x2, 0x87, 0xd, 0x3, 0x2, 0x2, 0x2,
\r
3796 0x88, 0x86, 0x3, 0x2, 0x2, 0x2, 0x89, 0x90, 0x7, 0x6, 0x2, 0x2, 0x8a,
\r
3797 0x8c, 0x7, 0x7, 0x2, 0x2, 0x8b, 0x8d, 0x7, 0x40, 0x2, 0x2, 0x8c,
\r
3798 0x8b, 0x3, 0x2, 0x2, 0x2, 0x8c, 0x8d, 0x3, 0x2, 0x2, 0x2, 0x8d, 0x8e,
\r
3799 0x3, 0x2, 0x2, 0x2, 0x8e, 0x90, 0x7, 0x8, 0x2, 0x2, 0x8f, 0x89, 0x3,
\r
3800 0x2, 0x2, 0x2, 0x8f, 0x8a, 0x3, 0x2, 0x2, 0x2, 0x90, 0xf, 0x3, 0x2,
\r
3801 0x2, 0x2, 0x91, 0x92, 0x7, 0x9, 0x2, 0x2, 0x92, 0x93, 0x5, 0x12,
\r
3802 0xa, 0x2, 0x93, 0x11, 0x3, 0x2, 0x2, 0x2, 0x94, 0x95, 0x5, 0x56,
\r
3803 0x2c, 0x2, 0x95, 0x96, 0x7, 0xa, 0x2, 0x2, 0x96, 0x97, 0x5, 0x14,
\r
3804 0xb, 0x2, 0x97, 0x98, 0x7, 0xb, 0x2, 0x2, 0x98, 0x99, 0x7, 0x4, 0x2,
\r
3805 0x2, 0x99, 0x9a, 0x5, 0xc, 0x7, 0x2, 0x9a, 0x9b, 0x3, 0x2, 0x2, 0x2,
\r
3806 0x9b, 0x9c, 0x5, 0x16, 0xc, 0x2, 0x9c, 0x13, 0x3, 0x2, 0x2, 0x2,
\r
3807 0x9d, 0xa2, 0x5, 0x8, 0x5, 0x2, 0x9e, 0x9f, 0x7, 0xc, 0x2, 0x2, 0x9f,
\r
3808 0xa1, 0x5, 0x8, 0x5, 0x2, 0xa0, 0x9e, 0x3, 0x2, 0x2, 0x2, 0xa1, 0xa4,
\r
3809 0x3, 0x2, 0x2, 0x2, 0xa2, 0xa0, 0x3, 0x2, 0x2, 0x2, 0xa2, 0xa3, 0x3,
\r
3810 0x2, 0x2, 0x2, 0xa3, 0xa6, 0x3, 0x2, 0x2, 0x2, 0xa4, 0xa2, 0x3, 0x2,
\r
3811 0x2, 0x2, 0xa5, 0x9d, 0x3, 0x2, 0x2, 0x2, 0xa5, 0xa6, 0x3, 0x2, 0x2,
\r
3812 0x2, 0xa6, 0x15, 0x3, 0x2, 0x2, 0x2, 0xa7, 0xab, 0x7, 0xd, 0x2, 0x2,
\r
3813 0xa8, 0xaa, 0x5, 0x20, 0x11, 0x2, 0xa9, 0xa8, 0x3, 0x2, 0x2, 0x2,
\r
3814 0xaa, 0xad, 0x3, 0x2, 0x2, 0x2, 0xab, 0xa9, 0x3, 0x2, 0x2, 0x2, 0xab,
\r
3815 0xac, 0x3, 0x2, 0x2, 0x2, 0xac, 0xae, 0x3, 0x2, 0x2, 0x2, 0xad, 0xab,
\r
3816 0x3, 0x2, 0x2, 0x2, 0xae, 0xaf, 0x7, 0xe, 0x2, 0x2, 0xaf, 0x17, 0x3,
\r
3817 0x2, 0x2, 0x2, 0xb0, 0xb1, 0x7, 0xf, 0x2, 0x2, 0xb1, 0xb2, 0x5, 0x5c,
\r
3818 0x2f, 0x2, 0xb2, 0xb6, 0x7, 0xd, 0x2, 0x2, 0xb3, 0xb5, 0x5, 0x1a,
\r
3819 0xe, 0x2, 0xb4, 0xb3, 0x3, 0x2, 0x2, 0x2, 0xb5, 0xb8, 0x3, 0x2, 0x2,
\r
3820 0x2, 0xb6, 0xb4, 0x3, 0x2, 0x2, 0x2, 0xb6, 0xb7, 0x3, 0x2, 0x2, 0x2,
\r
3821 0xb7, 0xb9, 0x3, 0x2, 0x2, 0x2, 0xb8, 0xb6, 0x3, 0x2, 0x2, 0x2, 0xb9,
\r
3822 0xba, 0x7, 0xe, 0x2, 0x2, 0xba, 0x19, 0x3, 0x2, 0x2, 0x2, 0xbb, 0xbe,
\r
3823 0x5, 0x1c, 0xf, 0x2, 0xbc, 0xbe, 0x5, 0x1e, 0x10, 0x2, 0xbd, 0xbb,
\r
3824 0x3, 0x2, 0x2, 0x2, 0xbd, 0xbc, 0x3, 0x2, 0x2, 0x2, 0xbe, 0x1b, 0x3,
\r
3825 0x2, 0x2, 0x2, 0xbf, 0xc0, 0x5, 0x8, 0x5, 0x2, 0xc0, 0x1d, 0x3, 0x2,
\r
3826 0x2, 0x2, 0xc1, 0xc2, 0x5, 0x12, 0xa, 0x2, 0xc2, 0x1f, 0x3, 0x2,
\r
3827 0x2, 0x2, 0xc3, 0xcc, 0x5, 0x6, 0x4, 0x2, 0xc4, 0xcc, 0x5, 0x22,
\r
3828 0x12, 0x2, 0xc5, 0xcc, 0x5, 0x28, 0x15, 0x2, 0xc6, 0xcc, 0x5, 0x2e,
\r
3829 0x18, 0x2, 0xc7, 0xcc, 0x5, 0x30, 0x19, 0x2, 0xc8, 0xcc, 0x5, 0x32,
\r
3830 0x1a, 0x2, 0xc9, 0xcc, 0x5, 0x34, 0x1b, 0x2, 0xca, 0xcc, 0x5, 0x36,
\r
3831 0x1c, 0x2, 0xcb, 0xc3, 0x3, 0x2, 0x2, 0x2, 0xcb, 0xc4, 0x3, 0x2,
\r
3832 0x2, 0x2, 0xcb, 0xc5, 0x3, 0x2, 0x2, 0x2, 0xcb, 0xc6, 0x3, 0x2, 0x2,
\r
3833 0x2, 0xcb, 0xc7, 0x3, 0x2, 0x2, 0x2, 0xcb, 0xc8, 0x3, 0x2, 0x2, 0x2,
\r
3834 0xcb, 0xc9, 0x3, 0x2, 0x2, 0x2, 0xcb, 0xca, 0x3, 0x2, 0x2, 0x2, 0xcc,
\r
3835 0x21, 0x3, 0x2, 0x2, 0x2, 0xcd, 0xce, 0x7, 0x10, 0x2, 0x2, 0xce,
\r
3836 0xcf, 0x5, 0x36, 0x1c, 0x2, 0xcf, 0xd3, 0x5, 0x16, 0xc, 0x2, 0xd0,
\r
3837 0xd2, 0x5, 0x24, 0x13, 0x2, 0xd1, 0xd0, 0x3, 0x2, 0x2, 0x2, 0xd2,
\r
3838 0xd5, 0x3, 0x2, 0x2, 0x2, 0xd3, 0xd1, 0x3, 0x2, 0x2, 0x2, 0xd3, 0xd4,
\r
3839 0x3, 0x2, 0x2, 0x2, 0xd4, 0xd7, 0x3, 0x2, 0x2, 0x2, 0xd5, 0xd3, 0x3,
\r
3840 0x2, 0x2, 0x2, 0xd6, 0xd8, 0x5, 0x26, 0x14, 0x2, 0xd7, 0xd6, 0x3,
\r
3841 0x2, 0x2, 0x2, 0xd7, 0xd8, 0x3, 0x2, 0x2, 0x2, 0xd8, 0x23, 0x3, 0x2,
\r
3842 0x2, 0x2, 0xd9, 0xda, 0x7, 0x11, 0x2, 0x2, 0xda, 0xdb, 0x7, 0x10,
\r
3843 0x2, 0x2, 0xdb, 0xdc, 0x5, 0x36, 0x1c, 0x2, 0xdc, 0xdd, 0x5, 0x16,
\r
3844 0xc, 0x2, 0xdd, 0x25, 0x3, 0x2, 0x2, 0x2, 0xde, 0xdf, 0x7, 0x11,
\r
3845 0x2, 0x2, 0xdf, 0xe0, 0x5, 0x16, 0xc, 0x2, 0xe0, 0x27, 0x3, 0x2,
\r
3846 0x2, 0x2, 0xe1, 0xe2, 0x7, 0x12, 0x2, 0x2, 0xe2, 0xe3, 0x5, 0x48,
\r
3847 0x25, 0x2, 0xe3, 0xe4, 0x5, 0x2a, 0x16, 0x2, 0xe4, 0x29, 0x3, 0x2,
\r
3848 0x2, 0x2, 0xe5, 0xe9, 0x7, 0xd, 0x2, 0x2, 0xe6, 0xe8, 0x5, 0x2c,
\r
3849 0x17, 0x2, 0xe7, 0xe6, 0x3, 0x2, 0x2, 0x2, 0xe8, 0xeb, 0x3, 0x2,
\r
3850 0x2, 0x2, 0xe9, 0xe7, 0x3, 0x2, 0x2, 0x2, 0xe9, 0xea, 0x3, 0x2, 0x2,
\r
3851 0x2, 0xea, 0xec, 0x3, 0x2, 0x2, 0x2, 0xeb, 0xe9, 0x3, 0x2, 0x2, 0x2,
\r
3852 0xec, 0xed, 0x7, 0xe, 0x2, 0x2, 0xed, 0x2b, 0x3, 0x2, 0x2, 0x2, 0xee,
\r
3853 0xef, 0x7, 0x13, 0x2, 0x2, 0xef, 0xf0, 0x5, 0x36, 0x1c, 0x2, 0xf0,
\r
3854 0xf1, 0x5, 0x16, 0xc, 0x2, 0xf1, 0x2d, 0x3, 0x2, 0x2, 0x2, 0xf2,
\r
3855 0xf5, 0x7, 0x14, 0x2, 0x2, 0xf3, 0xf6, 0x5, 0xa, 0x6, 0x2, 0xf4,
\r
3856 0xf6, 0x5, 0x32, 0x1a, 0x2, 0xf5, 0xf3, 0x3, 0x2, 0x2, 0x2, 0xf5,
\r
3857 0xf4, 0x3, 0x2, 0x2, 0x2, 0xf6, 0xf7, 0x3, 0x2, 0x2, 0x2, 0xf7, 0xf8,
\r
3858 0x7, 0xc, 0x2, 0x2, 0xf8, 0xf9, 0x5, 0x36, 0x1c, 0x2, 0xf9, 0xfa,
\r
3859 0x7, 0xc, 0x2, 0x2, 0xfa, 0xfb, 0x5, 0x36, 0x1c, 0x2, 0xfb, 0xfc,
\r
3860 0x5, 0x16, 0xc, 0x2, 0xfc, 0x2f, 0x3, 0x2, 0x2, 0x2, 0xfd, 0xfe,
\r
3861 0x7, 0x15, 0x2, 0x2, 0xfe, 0xff, 0x5, 0x36, 0x1c, 0x2, 0xff, 0x100,
\r
3862 0x5, 0x16, 0xc, 0x2, 0x100, 0x31, 0x3, 0x2, 0x2, 0x2, 0x101, 0x102,
\r
3863 0x5, 0x48, 0x25, 0x2, 0x102, 0x103, 0x7, 0x5, 0x2, 0x2, 0x103, 0x104,
\r
3864 0x5, 0x36, 0x1c, 0x2, 0x104, 0x33, 0x3, 0x2, 0x2, 0x2, 0x105, 0x106,
\r
3865 0x7, 0x16, 0x2, 0x2, 0x106, 0x107, 0x5, 0x36, 0x1c, 0x2, 0x107, 0x35,
\r
3866 0x3, 0x2, 0x2, 0x2, 0x108, 0x10f, 0x5, 0x3c, 0x1f, 0x2, 0x109, 0x10f,
\r
3867 0x5, 0x4a, 0x26, 0x2, 0x10a, 0x10f, 0x5, 0x48, 0x25, 0x2, 0x10b,
\r
3868 0x10f, 0x5, 0x54, 0x2b, 0x2, 0x10c, 0x10f, 0x5, 0x4c, 0x27, 0x2,
\r
3869 0x10d, 0x10f, 0x5, 0x3e, 0x20, 0x2, 0x10e, 0x108, 0x3, 0x2, 0x2,
\r
3870 0x2, 0x10e, 0x109, 0x3, 0x2, 0x2, 0x2, 0x10e, 0x10a, 0x3, 0x2, 0x2,
\r
3871 0x2, 0x10e, 0x10b, 0x3, 0x2, 0x2, 0x2, 0x10e, 0x10c, 0x3, 0x2, 0x2,
\r
3872 0x2, 0x10e, 0x10d, 0x3, 0x2, 0x2, 0x2, 0x10f, 0x37, 0x3, 0x2, 0x2,
\r
3873 0x2, 0x110, 0x116, 0x5, 0x3c, 0x1f, 0x2, 0x111, 0x116, 0x5, 0x4a,
\r
3874 0x26, 0x2, 0x112, 0x116, 0x5, 0x48, 0x25, 0x2, 0x113, 0x116, 0x5,
\r
3875 0x54, 0x2b, 0x2, 0x114, 0x116, 0x5, 0x4c, 0x27, 0x2, 0x115, 0x110,
\r
3876 0x3, 0x2, 0x2, 0x2, 0x115, 0x111, 0x3, 0x2, 0x2, 0x2, 0x115, 0x112,
\r
3877 0x3, 0x2, 0x2, 0x2, 0x115, 0x113, 0x3, 0x2, 0x2, 0x2, 0x115, 0x114,
\r
3878 0x3, 0x2, 0x2, 0x2, 0x116, 0x39, 0x3, 0x2, 0x2, 0x2, 0x117, 0x11b,
\r
3879 0x5, 0x3c, 0x1f, 0x2, 0x118, 0x11b, 0x5, 0x48, 0x25, 0x2, 0x119,
\r
3880 0x11b, 0x5, 0x54, 0x2b, 0x2, 0x11a, 0x117, 0x3, 0x2, 0x2, 0x2, 0x11a,
\r
3881 0x118, 0x3, 0x2, 0x2, 0x2, 0x11a, 0x119, 0x3, 0x2, 0x2, 0x2, 0x11b,
\r
3882 0x3b, 0x3, 0x2, 0x2, 0x2, 0x11c, 0x11d, 0x5, 0x56, 0x2c, 0x2, 0x11d,
\r
3883 0x126, 0x7, 0xa, 0x2, 0x2, 0x11e, 0x123, 0x5, 0x36, 0x1c, 0x2, 0x11f,
\r
3884 0x120, 0x7, 0xc, 0x2, 0x2, 0x120, 0x122, 0x5, 0x36, 0x1c, 0x2, 0x121,
\r
3885 0x11f, 0x3, 0x2, 0x2, 0x2, 0x122, 0x125, 0x3, 0x2, 0x2, 0x2, 0x123,
\r
3886 0x121, 0x3, 0x2, 0x2, 0x2, 0x123, 0x124, 0x3, 0x2, 0x2, 0x2, 0x124,
\r
3887 0x127, 0x3, 0x2, 0x2, 0x2, 0x125, 0x123, 0x3, 0x2, 0x2, 0x2, 0x126,
\r
3888 0x11e, 0x3, 0x2, 0x2, 0x2, 0x126, 0x127, 0x3, 0x2, 0x2, 0x2, 0x127,
\r
3889 0x128, 0x3, 0x2, 0x2, 0x2, 0x128, 0x129, 0x7, 0xb, 0x2, 0x2, 0x129,
\r
3890 0x3d, 0x3, 0x2, 0x2, 0x2, 0x12a, 0x12f, 0x5, 0x40, 0x21, 0x2, 0x12b,
\r
3891 0x12f, 0x5, 0x42, 0x22, 0x2, 0x12c, 0x12f, 0x5, 0x44, 0x23, 0x2,
\r
3892 0x12d, 0x12f, 0x5, 0x46, 0x24, 0x2, 0x12e, 0x12a, 0x3, 0x2, 0x2,
\r
3893 0x2, 0x12e, 0x12b, 0x3, 0x2, 0x2, 0x2, 0x12e, 0x12c, 0x3, 0x2, 0x2,
\r
3894 0x2, 0x12e, 0x12d, 0x3, 0x2, 0x2, 0x2, 0x12f, 0x3f, 0x3, 0x2, 0x2,
\r
3895 0x2, 0x130, 0x131, 0x5, 0x38, 0x1d, 0x2, 0x131, 0x132, 0x5, 0x62,
\r
3896 0x32, 0x2, 0x132, 0x138, 0x5, 0x38, 0x1d, 0x2, 0x133, 0x134, 0x5,
\r
3897 0x62, 0x32, 0x2, 0x134, 0x135, 0x5, 0x38, 0x1d, 0x2, 0x135, 0x137,
\r
3898 0x3, 0x2, 0x2, 0x2, 0x136, 0x133, 0x3, 0x2, 0x2, 0x2, 0x137, 0x13a,
\r
3899 0x3, 0x2, 0x2, 0x2, 0x138, 0x136, 0x3, 0x2, 0x2, 0x2, 0x138, 0x139,
\r
3900 0x3, 0x2, 0x2, 0x2, 0x139, 0x41, 0x3, 0x2, 0x2, 0x2, 0x13a, 0x138,
\r
3901 0x3, 0x2, 0x2, 0x2, 0x13b, 0x13c, 0x5, 0x60, 0x31, 0x2, 0x13c, 0x13d,
\r
3902 0x5, 0x38, 0x1d, 0x2, 0x13d, 0x43, 0x3, 0x2, 0x2, 0x2, 0x13e, 0x13f,
\r
3903 0x5, 0x38, 0x1d, 0x2, 0x13f, 0x140, 0x5, 0x5e, 0x30, 0x2, 0x140,
\r
3904 0x45, 0x3, 0x2, 0x2, 0x2, 0x141, 0x142, 0x5, 0x38, 0x1d, 0x2, 0x142,
\r
3905 0x143, 0x7, 0x17, 0x2, 0x2, 0x143, 0x144, 0x5, 0x36, 0x1c, 0x2, 0x144,
\r
3906 0x145, 0x7, 0x4, 0x2, 0x2, 0x145, 0x146, 0x5, 0x36, 0x1c, 0x2, 0x146,
\r
3907 0x47, 0x3, 0x2, 0x2, 0x2, 0x147, 0x148, 0x5, 0x58, 0x2d, 0x2, 0x148,
\r
3908 0x49, 0x3, 0x2, 0x2, 0x2, 0x149, 0x14a, 0x9, 0x2, 0x2, 0x2, 0x14a,
\r
3909 0x4b, 0x3, 0x2, 0x2, 0x2, 0x14b, 0x14d, 0x5, 0x3a, 0x1e, 0x2, 0x14c,
\r
3910 0x14e, 0x5, 0x4e, 0x28, 0x2, 0x14d, 0x14c, 0x3, 0x2, 0x2, 0x2, 0x14e,
\r
3911 0x14f, 0x3, 0x2, 0x2, 0x2, 0x14f, 0x14d, 0x3, 0x2, 0x2, 0x2, 0x14f,
\r
3912 0x150, 0x3, 0x2, 0x2, 0x2, 0x150, 0x4d, 0x3, 0x2, 0x2, 0x2, 0x151,
\r
3913 0x154, 0x5, 0x50, 0x29, 0x2, 0x152, 0x154, 0x5, 0x52, 0x2a, 0x2,
\r
3914 0x153, 0x151, 0x3, 0x2, 0x2, 0x2, 0x153, 0x152, 0x3, 0x2, 0x2, 0x2,
\r
3915 0x154, 0x4f, 0x3, 0x2, 0x2, 0x2, 0x155, 0x156, 0x9, 0x3, 0x2, 0x2,
\r
3916 0x156, 0x157, 0x5, 0x48, 0x25, 0x2, 0x157, 0x51, 0x3, 0x2, 0x2, 0x2,
\r
3917 0x158, 0x159, 0x7, 0x7, 0x2, 0x2, 0x159, 0x15a, 0x5, 0x36, 0x1c,
\r
3918 0x2, 0x15a, 0x15b, 0x7, 0x8, 0x2, 0x2, 0x15b, 0x53, 0x3, 0x2, 0x2,
\r
3919 0x2, 0x15c, 0x15d, 0x7, 0xa, 0x2, 0x2, 0x15d, 0x15e, 0x5, 0x36, 0x1c,
\r
3920 0x2, 0x15e, 0x15f, 0x7, 0xb, 0x2, 0x2, 0x15f, 0x55, 0x3, 0x2, 0x2,
\r
3921 0x2, 0x160, 0x161, 0x7, 0x3d, 0x2, 0x2, 0x161, 0x57, 0x3, 0x2, 0x2,
\r
3922 0x2, 0x162, 0x163, 0x7, 0x3d, 0x2, 0x2, 0x163, 0x59, 0x3, 0x2, 0x2,
\r
3923 0x2, 0x164, 0x165, 0x7, 0x3d, 0x2, 0x2, 0x165, 0x5b, 0x3, 0x2, 0x2,
\r
3924 0x2, 0x166, 0x167, 0x7, 0x3d, 0x2, 0x2, 0x167, 0x5d, 0x3, 0x2, 0x2,
\r
3925 0x2, 0x168, 0x169, 0x9, 0x4, 0x2, 0x2, 0x169, 0x5f, 0x3, 0x2, 0x2,
\r
3926 0x2, 0x16a, 0x172, 0x7, 0x1c, 0x2, 0x2, 0x16b, 0x172, 0x7, 0x1d,
\r
3927 0x2, 0x2, 0x16c, 0x172, 0x7, 0x1e, 0x2, 0x2, 0x16d, 0x172, 0x7, 0x1f,
\r
3928 0x2, 0x2, 0x16e, 0x172, 0x7, 0x20, 0x2, 0x2, 0x16f, 0x172, 0x7, 0x6,
\r
3929 0x2, 0x2, 0x170, 0x172, 0x5, 0x5e, 0x30, 0x2, 0x171, 0x16a, 0x3,
\r
3930 0x2, 0x2, 0x2, 0x171, 0x16b, 0x3, 0x2, 0x2, 0x2, 0x171, 0x16c, 0x3,
\r
3931 0x2, 0x2, 0x2, 0x171, 0x16d, 0x3, 0x2, 0x2, 0x2, 0x171, 0x16e, 0x3,
\r
3932 0x2, 0x2, 0x2, 0x171, 0x16f, 0x3, 0x2, 0x2, 0x2, 0x171, 0x170, 0x3,
\r
3933 0x2, 0x2, 0x2, 0x172, 0x61, 0x3, 0x2, 0x2, 0x2, 0x173, 0x174, 0x9,
\r
3934 0x5, 0x2, 0x2, 0x174, 0x63, 0x3, 0x2, 0x2, 0x2, 0x1c, 0x67, 0x6e,
\r
3935 0x79, 0x86, 0x8c, 0x8f, 0xa2, 0xa5, 0xab, 0xb6, 0xbd, 0xcb, 0xd3,
\r
3936 0xd7, 0xe9, 0xf5, 0x10e, 0x115, 0x11a, 0x123, 0x126, 0x12e, 0x138,
\r
3937 0x14f, 0x153, 0x171,
\r
3940 _serializedATN.insert(_serializedATN.end(), serializedATNSegment0,
\r
3941 serializedATNSegment0 + sizeof(serializedATNSegment0) / sizeof(serializedATNSegment0[0]));
\r
3944 atn::ATNDeserializer deserializer;
\r
3945 _atn = deserializer.deserialize(_serializedATN);
\r
3947 size_t count = _atn.getNumberOfDecisions();
\r
3948 _decisionToDFA.reserve(count);
\r
3949 for (size_t i = 0; i < count; i++) {
\r
3950 _decisionToDFA.emplace_back(_atn.getDecisionState(i), i);
\r
3954 TocParser::Initializer TocParser::_init;
\r