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
437 #if __cplusplus > 201703L
\r
438 auto onExit = finally([=, this] {
\r
440 auto onExit = finally([=] {
\r
445 enterOuterAlt(_localctx, 1);
\r
449 _errHandler->sync(this);
\r
450 _la = _input->LA(1);
\r
451 while (_la == TocParser::T__3
\r
453 || _la == TocParser::T__4) {
\r
457 _errHandler->sync(this);
\r
458 _la = _input->LA(1);
\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__7)
\r
814 | (1ULL << TocParser::T__13)
\r
815 | (1ULL << TocParser::T__15)
\r
816 | (1ULL << TocParser::T__17)
\r
817 | (1ULL << TocParser::T__18)
\r
818 | (1ULL << TocParser::T__19)
\r
819 | (1ULL << TocParser::PREFIX_OP)
\r
820 | (1ULL << TocParser::INT_LIT)
\r
821 | (1ULL << TocParser::DECIMAL_LIT)
\r
822 | (1ULL << TocParser::STRING_LIT)
\r
823 | (1ULL << TocParser::BOOL_LIT)
\r
824 | (1ULL << TocParser::NAME))) != 0)) {
\r
828 _errHandler->sync(this);
\r
829 _la = _input->LA(1);
\r
832 match(TocParser::T__11);
\r
835 catch (RecognitionException &e) {
\r
836 _errHandler->reportError(this, e);
\r
837 _localctx->exception = std::current_exception();
\r
838 _errHandler->recover(this, _localctx->exception);
\r
844 //----------------- StructDeclContext ------------------------------------------------------------------
\r
846 TocParser::StructDeclContext::StructDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
847 : ParserRuleContext(parent, invokingState) {
\r
850 TocParser::StructNameContext* TocParser::StructDeclContext::structName() {
\r
851 return getRuleContext<TocParser::StructNameContext>(0);
\r
854 std::vector<TocParser::StructMemberContext *> TocParser::StructDeclContext::structMember() {
\r
855 return getRuleContexts<TocParser::StructMemberContext>();
\r
858 TocParser::StructMemberContext* TocParser::StructDeclContext::structMember(size_t i) {
\r
859 return getRuleContext<TocParser::StructMemberContext>(i);
\r
863 size_t TocParser::StructDeclContext::getRuleIndex() const {
\r
864 return TocParser::RuleStructDecl;
\r
867 void TocParser::StructDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
868 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
869 if (parserListener != nullptr)
\r
870 parserListener->enterStructDecl(this);
\r
873 void TocParser::StructDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
874 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
875 if (parserListener != nullptr)
\r
876 parserListener->exitStructDecl(this);
\r
879 TocParser::StructDeclContext* TocParser::structDecl() {
\r
880 StructDeclContext *_localctx = _tracker.createInstance<StructDeclContext>(_ctx, getState());
\r
881 enterRule(_localctx, 22, TocParser::RuleStructDecl);
\r
884 #if __cplusplus > 201703L
\r
885 auto onExit = finally([=, this] {
\r
887 auto onExit = finally([=] {
\r
892 enterOuterAlt(_localctx, 1);
\r
894 match(TocParser::T__12);
\r
898 match(TocParser::T__10);
\r
900 _errHandler->sync(this);
\r
901 _la = _input->LA(1);
\r
902 while (_la == TocParser::NAME) {
\r
906 _errHandler->sync(this);
\r
907 _la = _input->LA(1);
\r
910 match(TocParser::T__11);
\r
913 catch (RecognitionException &e) {
\r
914 _errHandler->reportError(this, e);
\r
915 _localctx->exception = std::current_exception();
\r
916 _errHandler->recover(this, _localctx->exception);
\r
922 //----------------- StructMemberContext ------------------------------------------------------------------
\r
924 TocParser::StructMemberContext::StructMemberContext(ParserRuleContext *parent, size_t invokingState)
\r
925 : ParserRuleContext(parent, invokingState) {
\r
928 TocParser::StructVarContext* TocParser::StructMemberContext::structVar() {
\r
929 return getRuleContext<TocParser::StructVarContext>(0);
\r
932 TocParser::StructMethodContext* TocParser::StructMemberContext::structMethod() {
\r
933 return getRuleContext<TocParser::StructMethodContext>(0);
\r
937 size_t TocParser::StructMemberContext::getRuleIndex() const {
\r
938 return TocParser::RuleStructMember;
\r
941 void TocParser::StructMemberContext::enterRule(tree::ParseTreeListener *listener) {
\r
942 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
943 if (parserListener != nullptr)
\r
944 parserListener->enterStructMember(this);
\r
947 void TocParser::StructMemberContext::exitRule(tree::ParseTreeListener *listener) {
\r
948 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
949 if (parserListener != nullptr)
\r
950 parserListener->exitStructMember(this);
\r
953 TocParser::StructMemberContext* TocParser::structMember() {
\r
954 StructMemberContext *_localctx = _tracker.createInstance<StructMemberContext>(_ctx, getState());
\r
955 enterRule(_localctx, 24, TocParser::RuleStructMember);
\r
957 #if __cplusplus > 201703L
\r
958 auto onExit = finally([=, this] {
\r
960 auto onExit = finally([=] {
\r
966 _errHandler->sync(this);
\r
967 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 10, _ctx)) {
\r
969 enterOuterAlt(_localctx, 1);
\r
976 enterOuterAlt(_localctx, 2);
\r
987 catch (RecognitionException &e) {
\r
988 _errHandler->reportError(this, e);
\r
989 _localctx->exception = std::current_exception();
\r
990 _errHandler->recover(this, _localctx->exception);
\r
996 //----------------- StructVarContext ------------------------------------------------------------------
\r
998 TocParser::StructVarContext::StructVarContext(ParserRuleContext *parent, size_t invokingState)
\r
999 : ParserRuleContext(parent, invokingState) {
\r
1002 TocParser::VarContext* TocParser::StructVarContext::var() {
\r
1003 return getRuleContext<TocParser::VarContext>(0);
\r
1007 size_t TocParser::StructVarContext::getRuleIndex() const {
\r
1008 return TocParser::RuleStructVar;
\r
1011 void TocParser::StructVarContext::enterRule(tree::ParseTreeListener *listener) {
\r
1012 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1013 if (parserListener != nullptr)
\r
1014 parserListener->enterStructVar(this);
\r
1017 void TocParser::StructVarContext::exitRule(tree::ParseTreeListener *listener) {
\r
1018 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1019 if (parserListener != nullptr)
\r
1020 parserListener->exitStructVar(this);
\r
1023 TocParser::StructVarContext* TocParser::structVar() {
\r
1024 StructVarContext *_localctx = _tracker.createInstance<StructVarContext>(_ctx, getState());
\r
1025 enterRule(_localctx, 26, TocParser::RuleStructVar);
\r
1027 #if __cplusplus > 201703L
\r
1028 auto onExit = finally([=, this] {
\r
1030 auto onExit = finally([=] {
\r
1035 enterOuterAlt(_localctx, 1);
\r
1040 catch (RecognitionException &e) {
\r
1041 _errHandler->reportError(this, e);
\r
1042 _localctx->exception = std::current_exception();
\r
1043 _errHandler->recover(this, _localctx->exception);
\r
1049 //----------------- StructMethodContext ------------------------------------------------------------------
\r
1051 TocParser::StructMethodContext::StructMethodContext(ParserRuleContext *parent, size_t invokingState)
\r
1052 : ParserRuleContext(parent, invokingState) {
\r
1055 TocParser::FuncContext* TocParser::StructMethodContext::func() {
\r
1056 return getRuleContext<TocParser::FuncContext>(0);
\r
1060 size_t TocParser::StructMethodContext::getRuleIndex() const {
\r
1061 return TocParser::RuleStructMethod;
\r
1064 void TocParser::StructMethodContext::enterRule(tree::ParseTreeListener *listener) {
\r
1065 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1066 if (parserListener != nullptr)
\r
1067 parserListener->enterStructMethod(this);
\r
1070 void TocParser::StructMethodContext::exitRule(tree::ParseTreeListener *listener) {
\r
1071 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1072 if (parserListener != nullptr)
\r
1073 parserListener->exitStructMethod(this);
\r
1076 TocParser::StructMethodContext* TocParser::structMethod() {
\r
1077 StructMethodContext *_localctx = _tracker.createInstance<StructMethodContext>(_ctx, getState());
\r
1078 enterRule(_localctx, 28, TocParser::RuleStructMethod);
\r
1080 #if __cplusplus > 201703L
\r
1081 auto onExit = finally([=, this] {
\r
1083 auto onExit = finally([=] {
\r
1088 enterOuterAlt(_localctx, 1);
\r
1093 catch (RecognitionException &e) {
\r
1094 _errHandler->reportError(this, e);
\r
1095 _localctx->exception = std::current_exception();
\r
1096 _errHandler->recover(this, _localctx->exception);
\r
1102 //----------------- StmtContext ------------------------------------------------------------------
\r
1104 TocParser::StmtContext::StmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1105 : ParserRuleContext(parent, invokingState) {
\r
1108 TocParser::VarDeclContext* TocParser::StmtContext::varDecl() {
\r
1109 return getRuleContext<TocParser::VarDeclContext>(0);
\r
1112 TocParser::IfStmtContext* TocParser::StmtContext::ifStmt() {
\r
1113 return getRuleContext<TocParser::IfStmtContext>(0);
\r
1116 TocParser::SwitchStmtContext* TocParser::StmtContext::switchStmt() {
\r
1117 return getRuleContext<TocParser::SwitchStmtContext>(0);
\r
1120 TocParser::ForStmtContext* TocParser::StmtContext::forStmt() {
\r
1121 return getRuleContext<TocParser::ForStmtContext>(0);
\r
1124 TocParser::WhileStmtContext* TocParser::StmtContext::whileStmt() {
\r
1125 return getRuleContext<TocParser::WhileStmtContext>(0);
\r
1128 TocParser::AssignStmtContext* TocParser::StmtContext::assignStmt() {
\r
1129 return getRuleContext<TocParser::AssignStmtContext>(0);
\r
1132 TocParser::ReturnStmtContext* TocParser::StmtContext::returnStmt() {
\r
1133 return getRuleContext<TocParser::ReturnStmtContext>(0);
\r
1136 TocParser::ExprContext* TocParser::StmtContext::expr() {
\r
1137 return getRuleContext<TocParser::ExprContext>(0);
\r
1141 size_t TocParser::StmtContext::getRuleIndex() const {
\r
1142 return TocParser::RuleStmt;
\r
1145 void TocParser::StmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1146 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1147 if (parserListener != nullptr)
\r
1148 parserListener->enterStmt(this);
\r
1151 void TocParser::StmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1152 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1153 if (parserListener != nullptr)
\r
1154 parserListener->exitStmt(this);
\r
1157 TocParser::StmtContext* TocParser::stmt() {
\r
1158 StmtContext *_localctx = _tracker.createInstance<StmtContext>(_ctx, getState());
\r
1159 enterRule(_localctx, 30, TocParser::RuleStmt);
\r
1161 #if __cplusplus > 201703L
\r
1162 auto onExit = finally([=, this] {
\r
1164 auto onExit = finally([=] {
\r
1170 _errHandler->sync(this);
\r
1171 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 11, _ctx)) {
\r
1173 enterOuterAlt(_localctx, 1);
\r
1180 enterOuterAlt(_localctx, 2);
\r
1187 enterOuterAlt(_localctx, 3);
\r
1194 enterOuterAlt(_localctx, 4);
\r
1201 enterOuterAlt(_localctx, 5);
\r
1208 enterOuterAlt(_localctx, 6);
\r
1215 enterOuterAlt(_localctx, 7);
\r
1222 enterOuterAlt(_localctx, 8);
\r
1233 catch (RecognitionException &e) {
\r
1234 _errHandler->reportError(this, e);
\r
1235 _localctx->exception = std::current_exception();
\r
1236 _errHandler->recover(this, _localctx->exception);
\r
1242 //----------------- IfStmtContext ------------------------------------------------------------------
\r
1244 TocParser::IfStmtContext::IfStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1245 : ParserRuleContext(parent, invokingState) {
\r
1248 std::vector<TocParser::ExprContext *> TocParser::IfStmtContext::expr() {
\r
1249 return getRuleContexts<TocParser::ExprContext>();
\r
1252 TocParser::ExprContext* TocParser::IfStmtContext::expr(size_t i) {
\r
1253 return getRuleContext<TocParser::ExprContext>(i);
\r
1256 std::vector<TocParser::BodyContext *> TocParser::IfStmtContext::body() {
\r
1257 return getRuleContexts<TocParser::BodyContext>();
\r
1260 TocParser::BodyContext* TocParser::IfStmtContext::body(size_t i) {
\r
1261 return getRuleContext<TocParser::BodyContext>(i);
\r
1265 size_t TocParser::IfStmtContext::getRuleIndex() const {
\r
1266 return TocParser::RuleIfStmt;
\r
1269 void TocParser::IfStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1270 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1271 if (parserListener != nullptr)
\r
1272 parserListener->enterIfStmt(this);
\r
1275 void TocParser::IfStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1276 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1277 if (parserListener != nullptr)
\r
1278 parserListener->exitIfStmt(this);
\r
1281 TocParser::IfStmtContext* TocParser::ifStmt() {
\r
1282 IfStmtContext *_localctx = _tracker.createInstance<IfStmtContext>(_ctx, getState());
\r
1283 enterRule(_localctx, 32, TocParser::RuleIfStmt);
\r
1286 #if __cplusplus > 201703L
\r
1287 auto onExit = finally([=, this] {
\r
1289 auto onExit = finally([=] {
\r
1295 enterOuterAlt(_localctx, 1);
\r
1297 match(TocParser::T__13);
\r
1303 _errHandler->sync(this);
\r
1304 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 12, _ctx);
\r
1305 while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
\r
1308 match(TocParser::T__14);
\r
1310 match(TocParser::T__13);
\r
1317 _errHandler->sync(this);
\r
1318 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 12, _ctx);
\r
1321 _errHandler->sync(this);
\r
1323 _la = _input->LA(1);
\r
1324 if (_la == TocParser::T__14) {
\r
1326 match(TocParser::T__14);
\r
1332 catch (RecognitionException &e) {
\r
1333 _errHandler->reportError(this, e);
\r
1334 _localctx->exception = std::current_exception();
\r
1335 _errHandler->recover(this, _localctx->exception);
\r
1341 //----------------- SwitchStmtContext ------------------------------------------------------------------
\r
1343 TocParser::SwitchStmtContext::SwitchStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1344 : ParserRuleContext(parent, invokingState) {
\r
1347 TocParser::IdentifierExprContext* TocParser::SwitchStmtContext::identifierExpr() {
\r
1348 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1351 TocParser::SwitchBodyContext* TocParser::SwitchStmtContext::switchBody() {
\r
1352 return getRuleContext<TocParser::SwitchBodyContext>(0);
\r
1356 size_t TocParser::SwitchStmtContext::getRuleIndex() const {
\r
1357 return TocParser::RuleSwitchStmt;
\r
1360 void TocParser::SwitchStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1361 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1362 if (parserListener != nullptr)
\r
1363 parserListener->enterSwitchStmt(this);
\r
1366 void TocParser::SwitchStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1367 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1368 if (parserListener != nullptr)
\r
1369 parserListener->exitSwitchStmt(this);
\r
1372 TocParser::SwitchStmtContext* TocParser::switchStmt() {
\r
1373 SwitchStmtContext *_localctx = _tracker.createInstance<SwitchStmtContext>(_ctx, getState());
\r
1374 enterRule(_localctx, 34, TocParser::RuleSwitchStmt);
\r
1376 #if __cplusplus > 201703L
\r
1377 auto onExit = finally([=, this] {
\r
1379 auto onExit = finally([=] {
\r
1384 enterOuterAlt(_localctx, 1);
\r
1386 match(TocParser::T__15);
\r
1393 catch (RecognitionException &e) {
\r
1394 _errHandler->reportError(this, e);
\r
1395 _localctx->exception = std::current_exception();
\r
1396 _errHandler->recover(this, _localctx->exception);
\r
1402 //----------------- SwitchBodyContext ------------------------------------------------------------------
\r
1404 TocParser::SwitchBodyContext::SwitchBodyContext(ParserRuleContext *parent, size_t invokingState)
\r
1405 : ParserRuleContext(parent, invokingState) {
\r
1408 std::vector<TocParser::ExprContext *> TocParser::SwitchBodyContext::expr() {
\r
1409 return getRuleContexts<TocParser::ExprContext>();
\r
1412 TocParser::ExprContext* TocParser::SwitchBodyContext::expr(size_t i) {
\r
1413 return getRuleContext<TocParser::ExprContext>(i);
\r
1416 std::vector<TocParser::BodyContext *> TocParser::SwitchBodyContext::body() {
\r
1417 return getRuleContexts<TocParser::BodyContext>();
\r
1420 TocParser::BodyContext* TocParser::SwitchBodyContext::body(size_t i) {
\r
1421 return getRuleContext<TocParser::BodyContext>(i);
\r
1425 size_t TocParser::SwitchBodyContext::getRuleIndex() const {
\r
1426 return TocParser::RuleSwitchBody;
\r
1429 void TocParser::SwitchBodyContext::enterRule(tree::ParseTreeListener *listener) {
\r
1430 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1431 if (parserListener != nullptr)
\r
1432 parserListener->enterSwitchBody(this);
\r
1435 void TocParser::SwitchBodyContext::exitRule(tree::ParseTreeListener *listener) {
\r
1436 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1437 if (parserListener != nullptr)
\r
1438 parserListener->exitSwitchBody(this);
\r
1441 TocParser::SwitchBodyContext* TocParser::switchBody() {
\r
1442 SwitchBodyContext *_localctx = _tracker.createInstance<SwitchBodyContext>(_ctx, getState());
\r
1443 enterRule(_localctx, 36, TocParser::RuleSwitchBody);
\r
1446 #if __cplusplus > 201703L
\r
1447 auto onExit = finally([=, this] {
\r
1449 auto onExit = finally([=] {
\r
1454 enterOuterAlt(_localctx, 1);
\r
1456 match(TocParser::T__10);
\r
1458 _errHandler->sync(this);
\r
1459 _la = _input->LA(1);
\r
1460 while (_la == TocParser::T__16) {
\r
1462 match(TocParser::T__16);
\r
1468 _errHandler->sync(this);
\r
1469 _la = _input->LA(1);
\r
1472 match(TocParser::T__11);
\r
1475 catch (RecognitionException &e) {
\r
1476 _errHandler->reportError(this, e);
\r
1477 _localctx->exception = std::current_exception();
\r
1478 _errHandler->recover(this, _localctx->exception);
\r
1484 //----------------- ForStmtContext ------------------------------------------------------------------
\r
1486 TocParser::ForStmtContext::ForStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1487 : ParserRuleContext(parent, invokingState) {
\r
1490 std::vector<TocParser::ExprContext *> TocParser::ForStmtContext::expr() {
\r
1491 return getRuleContexts<TocParser::ExprContext>();
\r
1494 TocParser::ExprContext* TocParser::ForStmtContext::expr(size_t i) {
\r
1495 return getRuleContext<TocParser::ExprContext>(i);
\r
1498 TocParser::BodyContext* TocParser::ForStmtContext::body() {
\r
1499 return getRuleContext<TocParser::BodyContext>(0);
\r
1502 TocParser::VarInitContext* TocParser::ForStmtContext::varInit() {
\r
1503 return getRuleContext<TocParser::VarInitContext>(0);
\r
1506 TocParser::AssignStmtContext* TocParser::ForStmtContext::assignStmt() {
\r
1507 return getRuleContext<TocParser::AssignStmtContext>(0);
\r
1511 size_t TocParser::ForStmtContext::getRuleIndex() const {
\r
1512 return TocParser::RuleForStmt;
\r
1515 void TocParser::ForStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1516 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1517 if (parserListener != nullptr)
\r
1518 parserListener->enterForStmt(this);
\r
1521 void TocParser::ForStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1522 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1523 if (parserListener != nullptr)
\r
1524 parserListener->exitForStmt(this);
\r
1527 TocParser::ForStmtContext* TocParser::forStmt() {
\r
1528 ForStmtContext *_localctx = _tracker.createInstance<ForStmtContext>(_ctx, getState());
\r
1529 enterRule(_localctx, 38, TocParser::RuleForStmt);
\r
1531 #if __cplusplus > 201703L
\r
1532 auto onExit = finally([=, this] {
\r
1534 auto onExit = finally([=] {
\r
1539 enterOuterAlt(_localctx, 1);
\r
1541 match(TocParser::T__17);
\r
1543 _errHandler->sync(this);
\r
1544 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 15, _ctx)) {
\r
1561 match(TocParser::T__9);
\r
1565 match(TocParser::T__9);
\r
1572 catch (RecognitionException &e) {
\r
1573 _errHandler->reportError(this, e);
\r
1574 _localctx->exception = std::current_exception();
\r
1575 _errHandler->recover(this, _localctx->exception);
\r
1581 //----------------- WhileStmtContext ------------------------------------------------------------------
\r
1583 TocParser::WhileStmtContext::WhileStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1584 : ParserRuleContext(parent, invokingState) {
\r
1587 TocParser::ExprContext* TocParser::WhileStmtContext::expr() {
\r
1588 return getRuleContext<TocParser::ExprContext>(0);
\r
1591 TocParser::BodyContext* TocParser::WhileStmtContext::body() {
\r
1592 return getRuleContext<TocParser::BodyContext>(0);
\r
1596 size_t TocParser::WhileStmtContext::getRuleIndex() const {
\r
1597 return TocParser::RuleWhileStmt;
\r
1600 void TocParser::WhileStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1601 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1602 if (parserListener != nullptr)
\r
1603 parserListener->enterWhileStmt(this);
\r
1606 void TocParser::WhileStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1607 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1608 if (parserListener != nullptr)
\r
1609 parserListener->exitWhileStmt(this);
\r
1612 TocParser::WhileStmtContext* TocParser::whileStmt() {
\r
1613 WhileStmtContext *_localctx = _tracker.createInstance<WhileStmtContext>(_ctx, getState());
\r
1614 enterRule(_localctx, 40, TocParser::RuleWhileStmt);
\r
1616 #if __cplusplus > 201703L
\r
1617 auto onExit = finally([=, this] {
\r
1619 auto onExit = finally([=] {
\r
1624 enterOuterAlt(_localctx, 1);
\r
1626 match(TocParser::T__18);
\r
1633 catch (RecognitionException &e) {
\r
1634 _errHandler->reportError(this, e);
\r
1635 _localctx->exception = std::current_exception();
\r
1636 _errHandler->recover(this, _localctx->exception);
\r
1642 //----------------- AssignStmtContext ------------------------------------------------------------------
\r
1644 TocParser::AssignStmtContext::AssignStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1645 : ParserRuleContext(parent, invokingState) {
\r
1648 TocParser::IdentifierExprContext* TocParser::AssignStmtContext::identifierExpr() {
\r
1649 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1652 TocParser::ExprContext* TocParser::AssignStmtContext::expr() {
\r
1653 return getRuleContext<TocParser::ExprContext>(0);
\r
1657 size_t TocParser::AssignStmtContext::getRuleIndex() const {
\r
1658 return TocParser::RuleAssignStmt;
\r
1661 void TocParser::AssignStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1662 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1663 if (parserListener != nullptr)
\r
1664 parserListener->enterAssignStmt(this);
\r
1667 void TocParser::AssignStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1668 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1669 if (parserListener != nullptr)
\r
1670 parserListener->exitAssignStmt(this);
\r
1673 TocParser::AssignStmtContext* TocParser::assignStmt() {
\r
1674 AssignStmtContext *_localctx = _tracker.createInstance<AssignStmtContext>(_ctx, getState());
\r
1675 enterRule(_localctx, 42, TocParser::RuleAssignStmt);
\r
1677 #if __cplusplus > 201703L
\r
1678 auto onExit = finally([=, this] {
\r
1680 auto onExit = finally([=] {
\r
1685 enterOuterAlt(_localctx, 1);
\r
1689 match(TocParser::T__2);
\r
1694 catch (RecognitionException &e) {
\r
1695 _errHandler->reportError(this, e);
\r
1696 _localctx->exception = std::current_exception();
\r
1697 _errHandler->recover(this, _localctx->exception);
\r
1703 //----------------- ReturnStmtContext ------------------------------------------------------------------
\r
1705 TocParser::ReturnStmtContext::ReturnStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1706 : ParserRuleContext(parent, invokingState) {
\r
1709 TocParser::ExprContext* TocParser::ReturnStmtContext::expr() {
\r
1710 return getRuleContext<TocParser::ExprContext>(0);
\r
1714 size_t TocParser::ReturnStmtContext::getRuleIndex() const {
\r
1715 return TocParser::RuleReturnStmt;
\r
1718 void TocParser::ReturnStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1719 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1720 if (parserListener != nullptr)
\r
1721 parserListener->enterReturnStmt(this);
\r
1724 void TocParser::ReturnStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1725 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1726 if (parserListener != nullptr)
\r
1727 parserListener->exitReturnStmt(this);
\r
1730 TocParser::ReturnStmtContext* TocParser::returnStmt() {
\r
1731 ReturnStmtContext *_localctx = _tracker.createInstance<ReturnStmtContext>(_ctx, getState());
\r
1732 enterRule(_localctx, 44, TocParser::RuleReturnStmt);
\r
1734 #if __cplusplus > 201703L
\r
1735 auto onExit = finally([=, this] {
\r
1737 auto onExit = finally([=] {
\r
1742 enterOuterAlt(_localctx, 1);
\r
1744 match(TocParser::T__19);
\r
1749 catch (RecognitionException &e) {
\r
1750 _errHandler->reportError(this, e);
\r
1751 _localctx->exception = std::current_exception();
\r
1752 _errHandler->recover(this, _localctx->exception);
\r
1758 //----------------- ExprContext ------------------------------------------------------------------
\r
1760 TocParser::ExprContext::ExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1761 : ParserRuleContext(parent, invokingState) {
\r
1764 TocParser::FuncExprContext* TocParser::ExprContext::funcExpr() {
\r
1765 return getRuleContext<TocParser::FuncExprContext>(0);
\r
1768 TocParser::LitExprContext* TocParser::ExprContext::litExpr() {
\r
1769 return getRuleContext<TocParser::LitExprContext>(0);
\r
1772 TocParser::IdentifierExprContext* TocParser::ExprContext::identifierExpr() {
\r
1773 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1776 TocParser::ParenExprContext* TocParser::ExprContext::parenExpr() {
\r
1777 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1780 TocParser::AccessExprContext* TocParser::ExprContext::accessExpr() {
\r
1781 return getRuleContext<TocParser::AccessExprContext>(0);
\r
1784 TocParser::OpExprContext* TocParser::ExprContext::opExpr() {
\r
1785 return getRuleContext<TocParser::OpExprContext>(0);
\r
1789 size_t TocParser::ExprContext::getRuleIndex() const {
\r
1790 return TocParser::RuleExpr;
\r
1793 void TocParser::ExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1794 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1795 if (parserListener != nullptr)
\r
1796 parserListener->enterExpr(this);
\r
1799 void TocParser::ExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1800 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1801 if (parserListener != nullptr)
\r
1802 parserListener->exitExpr(this);
\r
1805 TocParser::ExprContext* TocParser::expr() {
\r
1806 ExprContext *_localctx = _tracker.createInstance<ExprContext>(_ctx, getState());
\r
1807 enterRule(_localctx, 46, TocParser::RuleExpr);
\r
1809 #if __cplusplus > 201703L
\r
1810 auto onExit = finally([=, this] {
\r
1812 auto onExit = finally([=] {
\r
1818 _errHandler->sync(this);
\r
1819 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 16, _ctx)) {
\r
1821 enterOuterAlt(_localctx, 1);
\r
1828 enterOuterAlt(_localctx, 2);
\r
1835 enterOuterAlt(_localctx, 3);
\r
1842 enterOuterAlt(_localctx, 4);
\r
1849 enterOuterAlt(_localctx, 5);
\r
1856 enterOuterAlt(_localctx, 6);
\r
1867 catch (RecognitionException &e) {
\r
1868 _errHandler->reportError(this, e);
\r
1869 _localctx->exception = std::current_exception();
\r
1870 _errHandler->recover(this, _localctx->exception);
\r
1876 //----------------- NonOpExprContext ------------------------------------------------------------------
\r
1878 TocParser::NonOpExprContext::NonOpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1879 : ParserRuleContext(parent, invokingState) {
\r
1882 TocParser::FuncExprContext* TocParser::NonOpExprContext::funcExpr() {
\r
1883 return getRuleContext<TocParser::FuncExprContext>(0);
\r
1886 TocParser::LitExprContext* TocParser::NonOpExprContext::litExpr() {
\r
1887 return getRuleContext<TocParser::LitExprContext>(0);
\r
1890 TocParser::IdentifierExprContext* TocParser::NonOpExprContext::identifierExpr() {
\r
1891 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1894 TocParser::ParenExprContext* TocParser::NonOpExprContext::parenExpr() {
\r
1895 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1898 TocParser::AccessExprContext* TocParser::NonOpExprContext::accessExpr() {
\r
1899 return getRuleContext<TocParser::AccessExprContext>(0);
\r
1903 size_t TocParser::NonOpExprContext::getRuleIndex() const {
\r
1904 return TocParser::RuleNonOpExpr;
\r
1907 void TocParser::NonOpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1908 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1909 if (parserListener != nullptr)
\r
1910 parserListener->enterNonOpExpr(this);
\r
1913 void TocParser::NonOpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1914 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1915 if (parserListener != nullptr)
\r
1916 parserListener->exitNonOpExpr(this);
\r
1919 TocParser::NonOpExprContext* TocParser::nonOpExpr() {
\r
1920 NonOpExprContext *_localctx = _tracker.createInstance<NonOpExprContext>(_ctx, getState());
\r
1921 enterRule(_localctx, 48, TocParser::RuleNonOpExpr);
\r
1923 #if __cplusplus > 201703L
\r
1924 auto onExit = finally([=, this] {
\r
1926 auto onExit = finally([=] {
\r
1932 _errHandler->sync(this);
\r
1933 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 17, _ctx)) {
\r
1935 enterOuterAlt(_localctx, 1);
\r
1942 enterOuterAlt(_localctx, 2);
\r
1949 enterOuterAlt(_localctx, 3);
\r
1956 enterOuterAlt(_localctx, 4);
\r
1963 enterOuterAlt(_localctx, 5);
\r
1974 catch (RecognitionException &e) {
\r
1975 _errHandler->reportError(this, e);
\r
1976 _localctx->exception = std::current_exception();
\r
1977 _errHandler->recover(this, _localctx->exception);
\r
1983 //----------------- NonAccessExprContext ------------------------------------------------------------------
\r
1985 TocParser::NonAccessExprContext::NonAccessExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1986 : ParserRuleContext(parent, invokingState) {
\r
1989 TocParser::FuncExprContext* TocParser::NonAccessExprContext::funcExpr() {
\r
1990 return getRuleContext<TocParser::FuncExprContext>(0);
\r
1993 TocParser::IdentifierExprContext* TocParser::NonAccessExprContext::identifierExpr() {
\r
1994 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1997 TocParser::ParenExprContext* TocParser::NonAccessExprContext::parenExpr() {
\r
1998 return getRuleContext<TocParser::ParenExprContext>(0);
\r
2002 size_t TocParser::NonAccessExprContext::getRuleIndex() const {
\r
2003 return TocParser::RuleNonAccessExpr;
\r
2006 void TocParser::NonAccessExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2007 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2008 if (parserListener != nullptr)
\r
2009 parserListener->enterNonAccessExpr(this);
\r
2012 void TocParser::NonAccessExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2013 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2014 if (parserListener != nullptr)
\r
2015 parserListener->exitNonAccessExpr(this);
\r
2018 TocParser::NonAccessExprContext* TocParser::nonAccessExpr() {
\r
2019 NonAccessExprContext *_localctx = _tracker.createInstance<NonAccessExprContext>(_ctx, getState());
\r
2020 enterRule(_localctx, 50, TocParser::RuleNonAccessExpr);
\r
2022 #if __cplusplus > 201703L
\r
2023 auto onExit = finally([=, this] {
\r
2025 auto onExit = finally([=] {
\r
2031 _errHandler->sync(this);
\r
2032 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 18, _ctx)) {
\r
2034 enterOuterAlt(_localctx, 1);
\r
2041 enterOuterAlt(_localctx, 2);
\r
2048 enterOuterAlt(_localctx, 3);
\r
2059 catch (RecognitionException &e) {
\r
2060 _errHandler->reportError(this, e);
\r
2061 _localctx->exception = std::current_exception();
\r
2062 _errHandler->recover(this, _localctx->exception);
\r
2068 //----------------- FuncExprContext ------------------------------------------------------------------
\r
2070 TocParser::FuncExprContext::FuncExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2071 : ParserRuleContext(parent, invokingState) {
\r
2074 TocParser::FuncNameContext* TocParser::FuncExprContext::funcName() {
\r
2075 return getRuleContext<TocParser::FuncNameContext>(0);
\r
2078 std::vector<TocParser::ExprContext *> TocParser::FuncExprContext::expr() {
\r
2079 return getRuleContexts<TocParser::ExprContext>();
\r
2082 TocParser::ExprContext* TocParser::FuncExprContext::expr(size_t i) {
\r
2083 return getRuleContext<TocParser::ExprContext>(i);
\r
2087 size_t TocParser::FuncExprContext::getRuleIndex() const {
\r
2088 return TocParser::RuleFuncExpr;
\r
2091 void TocParser::FuncExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2092 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2093 if (parserListener != nullptr)
\r
2094 parserListener->enterFuncExpr(this);
\r
2097 void TocParser::FuncExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2098 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2099 if (parserListener != nullptr)
\r
2100 parserListener->exitFuncExpr(this);
\r
2103 TocParser::FuncExprContext* TocParser::funcExpr() {
\r
2104 FuncExprContext *_localctx = _tracker.createInstance<FuncExprContext>(_ctx, getState());
\r
2105 enterRule(_localctx, 52, TocParser::RuleFuncExpr);
\r
2108 #if __cplusplus > 201703L
\r
2109 auto onExit = finally([=, this] {
\r
2111 auto onExit = finally([=] {
\r
2116 enterOuterAlt(_localctx, 1);
\r
2120 match(TocParser::T__7);
\r
2122 _errHandler->sync(this);
\r
2124 _la = _input->LA(1);
\r
2125 if ((((_la & ~ 0x3fULL) == 0) &&
\r
2126 ((1ULL << _la) & ((1ULL << TocParser::T__7)
\r
2127 | (1ULL << TocParser::PREFIX_OP)
\r
2128 | (1ULL << TocParser::INT_LIT)
\r
2129 | (1ULL << TocParser::DECIMAL_LIT)
\r
2130 | (1ULL << TocParser::STRING_LIT)
\r
2131 | (1ULL << TocParser::BOOL_LIT)
\r
2132 | (1ULL << TocParser::NAME))) != 0)) {
\r
2136 _errHandler->sync(this);
\r
2137 _la = _input->LA(1);
\r
2138 while (_la == TocParser::T__9) {
\r
2140 match(TocParser::T__9);
\r
2144 _errHandler->sync(this);
\r
2145 _la = _input->LA(1);
\r
2149 match(TocParser::T__8);
\r
2152 catch (RecognitionException &e) {
\r
2153 _errHandler->reportError(this, e);
\r
2154 _localctx->exception = std::current_exception();
\r
2155 _errHandler->recover(this, _localctx->exception);
\r
2161 //----------------- OpExprContext ------------------------------------------------------------------
\r
2163 TocParser::OpExprContext::OpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2164 : ParserRuleContext(parent, invokingState) {
\r
2167 TocParser::BinaryOpContext* TocParser::OpExprContext::binaryOp() {
\r
2168 return getRuleContext<TocParser::BinaryOpContext>(0);
\r
2171 TocParser::PrefixOpContext* TocParser::OpExprContext::prefixOp() {
\r
2172 return getRuleContext<TocParser::PrefixOpContext>(0);
\r
2175 TocParser::PostfixOpContext* TocParser::OpExprContext::postfixOp() {
\r
2176 return getRuleContext<TocParser::PostfixOpContext>(0);
\r
2179 TocParser::TernaryOpContext* TocParser::OpExprContext::ternaryOp() {
\r
2180 return getRuleContext<TocParser::TernaryOpContext>(0);
\r
2184 size_t TocParser::OpExprContext::getRuleIndex() const {
\r
2185 return TocParser::RuleOpExpr;
\r
2188 void TocParser::OpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2189 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2190 if (parserListener != nullptr)
\r
2191 parserListener->enterOpExpr(this);
\r
2194 void TocParser::OpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2195 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2196 if (parserListener != nullptr)
\r
2197 parserListener->exitOpExpr(this);
\r
2200 TocParser::OpExprContext* TocParser::opExpr() {
\r
2201 OpExprContext *_localctx = _tracker.createInstance<OpExprContext>(_ctx, getState());
\r
2202 enterRule(_localctx, 54, TocParser::RuleOpExpr);
\r
2204 #if __cplusplus > 201703L
\r
2205 auto onExit = finally([=, this] {
\r
2207 auto onExit = finally([=] {
\r
2213 _errHandler->sync(this);
\r
2214 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 21, _ctx)) {
\r
2216 enterOuterAlt(_localctx, 1);
\r
2223 enterOuterAlt(_localctx, 2);
\r
2230 enterOuterAlt(_localctx, 3);
\r
2237 enterOuterAlt(_localctx, 4);
\r
2248 catch (RecognitionException &e) {
\r
2249 _errHandler->reportError(this, e);
\r
2250 _localctx->exception = std::current_exception();
\r
2251 _errHandler->recover(this, _localctx->exception);
\r
2257 //----------------- BinaryOpContext ------------------------------------------------------------------
\r
2259 TocParser::BinaryOpContext::BinaryOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2260 : ParserRuleContext(parent, invokingState) {
\r
2263 std::vector<TocParser::NonOpExprContext *> TocParser::BinaryOpContext::nonOpExpr() {
\r
2264 return getRuleContexts<TocParser::NonOpExprContext>();
\r
2267 TocParser::NonOpExprContext* TocParser::BinaryOpContext::nonOpExpr(size_t i) {
\r
2268 return getRuleContext<TocParser::NonOpExprContext>(i);
\r
2271 std::vector<tree::TerminalNode *> TocParser::BinaryOpContext::BINARY_OP() {
\r
2272 return getTokens(TocParser::BINARY_OP);
\r
2275 tree::TerminalNode* TocParser::BinaryOpContext::BINARY_OP(size_t i) {
\r
2276 return getToken(TocParser::BINARY_OP, i);
\r
2280 size_t TocParser::BinaryOpContext::getRuleIndex() const {
\r
2281 return TocParser::RuleBinaryOp;
\r
2284 void TocParser::BinaryOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2285 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2286 if (parserListener != nullptr)
\r
2287 parserListener->enterBinaryOp(this);
\r
2290 void TocParser::BinaryOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2291 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2292 if (parserListener != nullptr)
\r
2293 parserListener->exitBinaryOp(this);
\r
2296 TocParser::BinaryOpContext* TocParser::binaryOp() {
\r
2297 BinaryOpContext *_localctx = _tracker.createInstance<BinaryOpContext>(_ctx, getState());
\r
2298 enterRule(_localctx, 56, TocParser::RuleBinaryOp);
\r
2301 #if __cplusplus > 201703L
\r
2302 auto onExit = finally([=, this] {
\r
2304 auto onExit = finally([=] {
\r
2309 enterOuterAlt(_localctx, 1);
\r
2313 match(TocParser::BINARY_OP);
\r
2317 _errHandler->sync(this);
\r
2318 _la = _input->LA(1);
\r
2319 while (_la == TocParser::BINARY_OP) {
\r
2321 match(TocParser::BINARY_OP);
\r
2325 _errHandler->sync(this);
\r
2326 _la = _input->LA(1);
\r
2330 catch (RecognitionException &e) {
\r
2331 _errHandler->reportError(this, e);
\r
2332 _localctx->exception = std::current_exception();
\r
2333 _errHandler->recover(this, _localctx->exception);
\r
2339 //----------------- PrefixOpContext ------------------------------------------------------------------
\r
2341 TocParser::PrefixOpContext::PrefixOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2342 : ParserRuleContext(parent, invokingState) {
\r
2345 tree::TerminalNode* TocParser::PrefixOpContext::PREFIX_OP() {
\r
2346 return getToken(TocParser::PREFIX_OP, 0);
\r
2349 TocParser::NonOpExprContext* TocParser::PrefixOpContext::nonOpExpr() {
\r
2350 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2354 size_t TocParser::PrefixOpContext::getRuleIndex() const {
\r
2355 return TocParser::RulePrefixOp;
\r
2358 void TocParser::PrefixOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2359 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2360 if (parserListener != nullptr)
\r
2361 parserListener->enterPrefixOp(this);
\r
2364 void TocParser::PrefixOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2365 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2366 if (parserListener != nullptr)
\r
2367 parserListener->exitPrefixOp(this);
\r
2370 TocParser::PrefixOpContext* TocParser::prefixOp() {
\r
2371 PrefixOpContext *_localctx = _tracker.createInstance<PrefixOpContext>(_ctx, getState());
\r
2372 enterRule(_localctx, 58, TocParser::RulePrefixOp);
\r
2374 #if __cplusplus > 201703L
\r
2375 auto onExit = finally([=, this] {
\r
2377 auto onExit = finally([=] {
\r
2382 enterOuterAlt(_localctx, 1);
\r
2384 match(TocParser::PREFIX_OP);
\r
2389 catch (RecognitionException &e) {
\r
2390 _errHandler->reportError(this, e);
\r
2391 _localctx->exception = std::current_exception();
\r
2392 _errHandler->recover(this, _localctx->exception);
\r
2398 //----------------- PostfixOpContext ------------------------------------------------------------------
\r
2400 TocParser::PostfixOpContext::PostfixOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2401 : ParserRuleContext(parent, invokingState) {
\r
2404 TocParser::NonOpExprContext* TocParser::PostfixOpContext::nonOpExpr() {
\r
2405 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2408 tree::TerminalNode* TocParser::PostfixOpContext::POSTFIX_OP() {
\r
2409 return getToken(TocParser::POSTFIX_OP, 0);
\r
2413 size_t TocParser::PostfixOpContext::getRuleIndex() const {
\r
2414 return TocParser::RulePostfixOp;
\r
2417 void TocParser::PostfixOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2418 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2419 if (parserListener != nullptr)
\r
2420 parserListener->enterPostfixOp(this);
\r
2423 void TocParser::PostfixOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2424 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2425 if (parserListener != nullptr)
\r
2426 parserListener->exitPostfixOp(this);
\r
2429 TocParser::PostfixOpContext* TocParser::postfixOp() {
\r
2430 PostfixOpContext *_localctx = _tracker.createInstance<PostfixOpContext>(_ctx, getState());
\r
2431 enterRule(_localctx, 60, TocParser::RulePostfixOp);
\r
2433 #if __cplusplus > 201703L
\r
2434 auto onExit = finally([=, this] {
\r
2436 auto onExit = finally([=] {
\r
2441 enterOuterAlt(_localctx, 1);
\r
2445 match(TocParser::POSTFIX_OP);
\r
2448 catch (RecognitionException &e) {
\r
2449 _errHandler->reportError(this, e);
\r
2450 _localctx->exception = std::current_exception();
\r
2451 _errHandler->recover(this, _localctx->exception);
\r
2457 //----------------- TernaryOpContext ------------------------------------------------------------------
\r
2459 TocParser::TernaryOpContext::TernaryOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2460 : ParserRuleContext(parent, invokingState) {
\r
2463 TocParser::NonOpExprContext* TocParser::TernaryOpContext::nonOpExpr() {
\r
2464 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2467 std::vector<TocParser::ExprContext *> TocParser::TernaryOpContext::expr() {
\r
2468 return getRuleContexts<TocParser::ExprContext>();
\r
2471 TocParser::ExprContext* TocParser::TernaryOpContext::expr(size_t i) {
\r
2472 return getRuleContext<TocParser::ExprContext>(i);
\r
2476 size_t TocParser::TernaryOpContext::getRuleIndex() const {
\r
2477 return TocParser::RuleTernaryOp;
\r
2480 void TocParser::TernaryOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2481 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2482 if (parserListener != nullptr)
\r
2483 parserListener->enterTernaryOp(this);
\r
2486 void TocParser::TernaryOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2487 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2488 if (parserListener != nullptr)
\r
2489 parserListener->exitTernaryOp(this);
\r
2492 TocParser::TernaryOpContext* TocParser::ternaryOp() {
\r
2493 TernaryOpContext *_localctx = _tracker.createInstance<TernaryOpContext>(_ctx, getState());
\r
2494 enterRule(_localctx, 62, TocParser::RuleTernaryOp);
\r
2496 #if __cplusplus > 201703L
\r
2497 auto onExit = finally([=, this] {
\r
2499 auto onExit = finally([=] {
\r
2504 enterOuterAlt(_localctx, 1);
\r
2508 match(TocParser::T__20);
\r
2512 match(TocParser::T__1);
\r
2517 catch (RecognitionException &e) {
\r
2518 _errHandler->reportError(this, e);
\r
2519 _localctx->exception = std::current_exception();
\r
2520 _errHandler->recover(this, _localctx->exception);
\r
2526 //----------------- IdentifierExprContext ------------------------------------------------------------------
\r
2528 TocParser::IdentifierExprContext::IdentifierExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2529 : ParserRuleContext(parent, invokingState) {
\r
2532 TocParser::VarNameContext* TocParser::IdentifierExprContext::varName() {
\r
2533 return getRuleContext<TocParser::VarNameContext>(0);
\r
2537 size_t TocParser::IdentifierExprContext::getRuleIndex() const {
\r
2538 return TocParser::RuleIdentifierExpr;
\r
2541 void TocParser::IdentifierExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2542 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2543 if (parserListener != nullptr)
\r
2544 parserListener->enterIdentifierExpr(this);
\r
2547 void TocParser::IdentifierExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2548 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2549 if (parserListener != nullptr)
\r
2550 parserListener->exitIdentifierExpr(this);
\r
2553 TocParser::IdentifierExprContext* TocParser::identifierExpr() {
\r
2554 IdentifierExprContext *_localctx = _tracker.createInstance<IdentifierExprContext>(_ctx, getState());
\r
2555 enterRule(_localctx, 64, TocParser::RuleIdentifierExpr);
\r
2557 #if __cplusplus > 201703L
\r
2558 auto onExit = finally([=, this] {
\r
2560 auto onExit = finally([=] {
\r
2565 enterOuterAlt(_localctx, 1);
\r
2570 catch (RecognitionException &e) {
\r
2571 _errHandler->reportError(this, e);
\r
2572 _localctx->exception = std::current_exception();
\r
2573 _errHandler->recover(this, _localctx->exception);
\r
2579 //----------------- LitExprContext ------------------------------------------------------------------
\r
2581 TocParser::LitExprContext::LitExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2582 : ParserRuleContext(parent, invokingState) {
\r
2585 tree::TerminalNode* TocParser::LitExprContext::INT_LIT() {
\r
2586 return getToken(TocParser::INT_LIT, 0);
\r
2589 tree::TerminalNode* TocParser::LitExprContext::DECIMAL_LIT() {
\r
2590 return getToken(TocParser::DECIMAL_LIT, 0);
\r
2593 tree::TerminalNode* TocParser::LitExprContext::STRING_LIT() {
\r
2594 return getToken(TocParser::STRING_LIT, 0);
\r
2597 tree::TerminalNode* TocParser::LitExprContext::BOOL_LIT() {
\r
2598 return getToken(TocParser::BOOL_LIT, 0);
\r
2602 size_t TocParser::LitExprContext::getRuleIndex() const {
\r
2603 return TocParser::RuleLitExpr;
\r
2606 void TocParser::LitExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2607 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2608 if (parserListener != nullptr)
\r
2609 parserListener->enterLitExpr(this);
\r
2612 void TocParser::LitExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2613 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2614 if (parserListener != nullptr)
\r
2615 parserListener->exitLitExpr(this);
\r
2618 TocParser::LitExprContext* TocParser::litExpr() {
\r
2619 LitExprContext *_localctx = _tracker.createInstance<LitExprContext>(_ctx, getState());
\r
2620 enterRule(_localctx, 66, TocParser::RuleLitExpr);
\r
2623 #if __cplusplus > 201703L
\r
2624 auto onExit = finally([=, this] {
\r
2626 auto onExit = finally([=] {
\r
2631 enterOuterAlt(_localctx, 1);
\r
2633 _la = _input->LA(1);
\r
2634 if (!((((_la & ~ 0x3fULL) == 0) &&
\r
2635 ((1ULL << _la) & ((1ULL << TocParser::INT_LIT)
\r
2636 | (1ULL << TocParser::DECIMAL_LIT)
\r
2637 | (1ULL << TocParser::STRING_LIT)
\r
2638 | (1ULL << TocParser::BOOL_LIT))) != 0))) {
\r
2639 _errHandler->recoverInline(this);
\r
2642 _errHandler->reportMatch(this);
\r
2647 catch (RecognitionException &e) {
\r
2648 _errHandler->reportError(this, e);
\r
2649 _localctx->exception = std::current_exception();
\r
2650 _errHandler->recover(this, _localctx->exception);
\r
2656 //----------------- AccessExprContext ------------------------------------------------------------------
\r
2658 TocParser::AccessExprContext::AccessExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2659 : ParserRuleContext(parent, invokingState) {
\r
2662 TocParser::NonAccessExprContext* TocParser::AccessExprContext::nonAccessExpr() {
\r
2663 return getRuleContext<TocParser::NonAccessExprContext>(0);
\r
2666 std::vector<TocParser::IdentifierExprContext *> TocParser::AccessExprContext::identifierExpr() {
\r
2667 return getRuleContexts<TocParser::IdentifierExprContext>();
\r
2670 TocParser::IdentifierExprContext* TocParser::AccessExprContext::identifierExpr(size_t i) {
\r
2671 return getRuleContext<TocParser::IdentifierExprContext>(i);
\r
2674 std::vector<TocParser::ExprContext *> TocParser::AccessExprContext::expr() {
\r
2675 return getRuleContexts<TocParser::ExprContext>();
\r
2678 TocParser::ExprContext* TocParser::AccessExprContext::expr(size_t i) {
\r
2679 return getRuleContext<TocParser::ExprContext>(i);
\r
2683 size_t TocParser::AccessExprContext::getRuleIndex() const {
\r
2684 return TocParser::RuleAccessExpr;
\r
2687 void TocParser::AccessExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2688 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2689 if (parserListener != nullptr)
\r
2690 parserListener->enterAccessExpr(this);
\r
2693 void TocParser::AccessExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2694 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2695 if (parserListener != nullptr)
\r
2696 parserListener->exitAccessExpr(this);
\r
2699 TocParser::AccessExprContext* TocParser::accessExpr() {
\r
2700 AccessExprContext *_localctx = _tracker.createInstance<AccessExprContext>(_ctx, getState());
\r
2701 enterRule(_localctx, 68, TocParser::RuleAccessExpr);
\r
2704 #if __cplusplus > 201703L
\r
2705 auto onExit = finally([=, this] {
\r
2707 auto onExit = finally([=] {
\r
2712 enterOuterAlt(_localctx, 1);
\r
2716 _errHandler->sync(this);
\r
2717 _la = _input->LA(1);
\r
2720 _errHandler->sync(this);
\r
2721 switch (_input->LA(1)) {
\r
2722 case TocParser::T__21:
\r
2723 case TocParser::T__22: {
\r
2725 _la = _input->LA(1);
\r
2726 if (!(_la == TocParser::T__21
\r
2728 || _la == TocParser::T__22)) {
\r
2729 _errHandler->recoverInline(this);
\r
2732 _errHandler->reportMatch(this);
\r
2740 case TocParser::T__4: {
\r
2742 match(TocParser::T__4);
\r
2746 match(TocParser::T__5);
\r
2751 throw NoViableAltException(this);
\r
2754 _errHandler->sync(this);
\r
2755 _la = _input->LA(1);
\r
2756 } while ((((_la & ~ 0x3fULL) == 0) &&
\r
2757 ((1ULL << _la) & ((1ULL << TocParser::T__4)
\r
2758 | (1ULL << TocParser::T__21)
\r
2759 | (1ULL << TocParser::T__22))) != 0));
\r
2762 catch (RecognitionException &e) {
\r
2763 _errHandler->reportError(this, e);
\r
2764 _localctx->exception = std::current_exception();
\r
2765 _errHandler->recover(this, _localctx->exception);
\r
2771 //----------------- ParenExprContext ------------------------------------------------------------------
\r
2773 TocParser::ParenExprContext::ParenExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2774 : ParserRuleContext(parent, invokingState) {
\r
2777 TocParser::ExprContext* TocParser::ParenExprContext::expr() {
\r
2778 return getRuleContext<TocParser::ExprContext>(0);
\r
2782 size_t TocParser::ParenExprContext::getRuleIndex() const {
\r
2783 return TocParser::RuleParenExpr;
\r
2786 void TocParser::ParenExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2787 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2788 if (parserListener != nullptr)
\r
2789 parserListener->enterParenExpr(this);
\r
2792 void TocParser::ParenExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2793 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2794 if (parserListener != nullptr)
\r
2795 parserListener->exitParenExpr(this);
\r
2798 TocParser::ParenExprContext* TocParser::parenExpr() {
\r
2799 ParenExprContext *_localctx = _tracker.createInstance<ParenExprContext>(_ctx, getState());
\r
2800 enterRule(_localctx, 70, TocParser::RuleParenExpr);
\r
2802 #if __cplusplus > 201703L
\r
2803 auto onExit = finally([=, this] {
\r
2805 auto onExit = finally([=] {
\r
2810 enterOuterAlt(_localctx, 1);
\r
2812 match(TocParser::T__7);
\r
2816 match(TocParser::T__8);
\r
2819 catch (RecognitionException &e) {
\r
2820 _errHandler->reportError(this, e);
\r
2821 _localctx->exception = std::current_exception();
\r
2822 _errHandler->recover(this, _localctx->exception);
\r
2828 //----------------- FuncNameContext ------------------------------------------------------------------
\r
2830 TocParser::FuncNameContext::FuncNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2831 : ParserRuleContext(parent, invokingState) {
\r
2834 tree::TerminalNode* TocParser::FuncNameContext::NAME() {
\r
2835 return getToken(TocParser::NAME, 0);
\r
2839 size_t TocParser::FuncNameContext::getRuleIndex() const {
\r
2840 return TocParser::RuleFuncName;
\r
2843 void TocParser::FuncNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2844 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2845 if (parserListener != nullptr)
\r
2846 parserListener->enterFuncName(this);
\r
2849 void TocParser::FuncNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2850 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2851 if (parserListener != nullptr)
\r
2852 parserListener->exitFuncName(this);
\r
2855 TocParser::FuncNameContext* TocParser::funcName() {
\r
2856 FuncNameContext *_localctx = _tracker.createInstance<FuncNameContext>(_ctx, getState());
\r
2857 enterRule(_localctx, 72, TocParser::RuleFuncName);
\r
2859 #if __cplusplus > 201703L
\r
2860 auto onExit = finally([=, this] {
\r
2862 auto onExit = finally([=] {
\r
2867 enterOuterAlt(_localctx, 1);
\r
2869 match(TocParser::NAME);
\r
2872 catch (RecognitionException &e) {
\r
2873 _errHandler->reportError(this, e);
\r
2874 _localctx->exception = std::current_exception();
\r
2875 _errHandler->recover(this, _localctx->exception);
\r
2881 //----------------- VarNameContext ------------------------------------------------------------------
\r
2883 TocParser::VarNameContext::VarNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2884 : ParserRuleContext(parent, invokingState) {
\r
2887 tree::TerminalNode* TocParser::VarNameContext::NAME() {
\r
2888 return getToken(TocParser::NAME, 0);
\r
2892 size_t TocParser::VarNameContext::getRuleIndex() const {
\r
2893 return TocParser::RuleVarName;
\r
2896 void TocParser::VarNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2897 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2898 if (parserListener != nullptr)
\r
2899 parserListener->enterVarName(this);
\r
2902 void TocParser::VarNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2903 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2904 if (parserListener != nullptr)
\r
2905 parserListener->exitVarName(this);
\r
2908 TocParser::VarNameContext* TocParser::varName() {
\r
2909 VarNameContext *_localctx = _tracker.createInstance<VarNameContext>(_ctx, getState());
\r
2910 enterRule(_localctx, 74, TocParser::RuleVarName);
\r
2912 #if __cplusplus > 201703L
\r
2913 auto onExit = finally([=, this] {
\r
2915 auto onExit = finally([=] {
\r
2920 enterOuterAlt(_localctx, 1);
\r
2922 match(TocParser::NAME);
\r
2925 catch (RecognitionException &e) {
\r
2926 _errHandler->reportError(this, e);
\r
2927 _localctx->exception = std::current_exception();
\r
2928 _errHandler->recover(this, _localctx->exception);
\r
2934 //----------------- TypeNameContext ------------------------------------------------------------------
\r
2936 TocParser::TypeNameContext::TypeNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2937 : ParserRuleContext(parent, invokingState) {
\r
2940 tree::TerminalNode* TocParser::TypeNameContext::NAME() {
\r
2941 return getToken(TocParser::NAME, 0);
\r
2945 size_t TocParser::TypeNameContext::getRuleIndex() const {
\r
2946 return TocParser::RuleTypeName;
\r
2949 void TocParser::TypeNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2950 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2951 if (parserListener != nullptr)
\r
2952 parserListener->enterTypeName(this);
\r
2955 void TocParser::TypeNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2956 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2957 if (parserListener != nullptr)
\r
2958 parserListener->exitTypeName(this);
\r
2961 TocParser::TypeNameContext* TocParser::typeName() {
\r
2962 TypeNameContext *_localctx = _tracker.createInstance<TypeNameContext>(_ctx, getState());
\r
2963 enterRule(_localctx, 76, TocParser::RuleTypeName);
\r
2965 #if __cplusplus > 201703L
\r
2966 auto onExit = finally([=, this] {
\r
2968 auto onExit = finally([=] {
\r
2973 enterOuterAlt(_localctx, 1);
\r
2975 match(TocParser::NAME);
\r
2978 catch (RecognitionException &e) {
\r
2979 _errHandler->reportError(this, e);
\r
2980 _localctx->exception = std::current_exception();
\r
2981 _errHandler->recover(this, _localctx->exception);
\r
2987 //----------------- StructNameContext ------------------------------------------------------------------
\r
2989 TocParser::StructNameContext::StructNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2990 : ParserRuleContext(parent, invokingState) {
\r
2993 tree::TerminalNode* TocParser::StructNameContext::NAME() {
\r
2994 return getToken(TocParser::NAME, 0);
\r
2998 size_t TocParser::StructNameContext::getRuleIndex() const {
\r
2999 return TocParser::RuleStructName;
\r
3002 void TocParser::StructNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3003 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3004 if (parserListener != nullptr)
\r
3005 parserListener->enterStructName(this);
\r
3008 void TocParser::StructNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3009 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3010 if (parserListener != nullptr)
\r
3011 parserListener->exitStructName(this);
\r
3014 TocParser::StructNameContext* TocParser::structName() {
\r
3015 StructNameContext *_localctx = _tracker.createInstance<StructNameContext>(_ctx, getState());
\r
3016 enterRule(_localctx, 78, TocParser::RuleStructName);
\r
3018 #if __cplusplus > 201703L
\r
3019 auto onExit = finally([=, this] {
\r
3021 auto onExit = finally([=] {
\r
3026 enterOuterAlt(_localctx, 1);
\r
3028 match(TocParser::NAME);
\r
3031 catch (RecognitionException &e) {
\r
3032 _errHandler->reportError(this, e);
\r
3033 _localctx->exception = std::current_exception();
\r
3034 _errHandler->recover(this, _localctx->exception);
\r
3040 // Static vars and initialization.
\r
3041 std::vector<dfa::DFA> TocParser::_decisionToDFA;
\r
3042 atn::PredictionContextCache TocParser::_sharedContextCache;
\r
3044 // We own the ATN which in turn owns the ATN states.
\r
3045 atn::ATN TocParser::_atn;
\r
3046 std::vector<uint16_t> TocParser::_serializedATN;
\r
3048 std::vector<std::string> TocParser::_ruleNames = {
\r
3049 "prog", "decl", "varDecl", "var", "varInit", "type", "typeModifier", "funcDecl",
\r
3050 "func", "parameter", "body", "structDecl", "structMember", "structVar",
\r
3051 "structMethod", "stmt", "ifStmt", "switchStmt", "switchBody", "forStmt",
\r
3052 "whileStmt", "assignStmt", "returnStmt", "expr", "nonOpExpr", "nonAccessExpr",
\r
3053 "funcExpr", "opExpr", "binaryOp", "prefixOp", "postfixOp", "ternaryOp",
\r
3054 "identifierExpr", "litExpr", "accessExpr", "parenExpr", "funcName", "varName",
\r
3055 "typeName", "structName"
\r
3058 std::vector<std::string> TocParser::_literalNames = {
\r
3059 "", "'var'", "':'", "'='", "'*'", "'['", "']'", "'func'", "'('", "')'",
\r
3060 "','", "'{'", "'}'", "'struct'", "'if'", "'else'", "'switch'", "'case'",
\r
3061 "'for'", "'while'", "'return'", "'\u003F'", "'.'", "'->'"
\r
3064 std::vector<std::string> TocParser::_symbolicNames = {
\r
3065 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
\r
3066 "", "", "", "", "", "", "POSTFIX_OP", "PREFIX_OP", "BINARY_OP", "INT_LIT",
\r
3067 "DECIMAL_LIT", "STRING_LIT", "BOOL_LIT", "NAME", "WS", "NEWLINE", "NUMBER"
\r
3070 dfa::Vocabulary TocParser::_vocabulary(_literalNames, _symbolicNames);
\r
3072 std::vector<std::string> TocParser::_tokenNames;
\r
3074 TocParser::Initializer::Initializer() {
\r
3075 for (size_t i = 0; i < _symbolicNames.size(); ++i) {
\r
3076 std::string name = _vocabulary.getLiteralName(i);
\r
3077 if (name.empty()) {
\r
3078 name = _vocabulary.getSymbolicName(i);
\r
3081 if (name.empty()) {
\r
3082 _tokenNames.push_back("<INVALID>");
\r
3084 _tokenNames.push_back(name);
\r
3088 static const uint16_t serializedATNSegment0[] = {
\r
3089 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964,
\r
3090 0x3, 0x24, 0x14c, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4,
\r
3091 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9,
\r
3092 0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa,
\r
3093 0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4,
\r
3094 0xe, 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11,
\r
3095 0x9, 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14,
\r
3096 0x9, 0x14, 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17,
\r
3097 0x9, 0x17, 0x4, 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a,
\r
3098 0x9, 0x1a, 0x4, 0x1b, 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d,
\r
3099 0x9, 0x1d, 0x4, 0x1e, 0x9, 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20,
\r
3100 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, 0x4, 0x22, 0x9, 0x22, 0x4, 0x23,
\r
3101 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, 0x25, 0x9, 0x25, 0x4, 0x26,
\r
3102 0x9, 0x26, 0x4, 0x27, 0x9, 0x27, 0x4, 0x28, 0x9, 0x28, 0x4, 0x29,
\r
3103 0x9, 0x29, 0x3, 0x2, 0x6, 0x2, 0x54, 0xa, 0x2, 0xd, 0x2, 0xe, 0x2,
\r
3104 0x55, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x5, 0x3,
\r
3105 0x5d, 0xa, 0x3, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x5, 0x3, 0x5,
\r
3106 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x5, 0x5, 0x68, 0xa, 0x5,
\r
3107 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3,
\r
3108 0x6, 0x3, 0x7, 0x3, 0x7, 0x7, 0x7, 0x73, 0xa, 0x7, 0xc, 0x7, 0xe,
\r
3109 0x7, 0x76, 0xb, 0x7, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x5, 0x8, 0x7b,
\r
3110 0xa, 0x8, 0x3, 0x8, 0x5, 0x8, 0x7e, 0xa, 0x8, 0x3, 0x9, 0x3, 0x9,
\r
3111 0x3, 0x9, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3,
\r
3112 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb,
\r
3113 0x7, 0xb, 0x8f, 0xa, 0xb, 0xc, 0xb, 0xe, 0xb, 0x92, 0xb, 0xb, 0x5,
\r
3114 0xb, 0x94, 0xa, 0xb, 0x3, 0xc, 0x3, 0xc, 0x7, 0xc, 0x98, 0xa, 0xc,
\r
3115 0xc, 0xc, 0xe, 0xc, 0x9b, 0xb, 0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xd,
\r
3116 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x7, 0xd, 0xa3, 0xa, 0xd, 0xc, 0xd,
\r
3117 0xe, 0xd, 0xa6, 0xb, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xe, 0x3, 0xe,
\r
3118 0x5, 0xe, 0xac, 0xa, 0xe, 0x3, 0xf, 0x3, 0xf, 0x3, 0x10, 0x3, 0x10,
\r
3119 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11,
\r
3120 0x3, 0x11, 0x3, 0x11, 0x5, 0x11, 0xba, 0xa, 0x11, 0x3, 0x12, 0x3,
\r
3121 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3,
\r
3122 0x12, 0x7, 0x12, 0xc4, 0xa, 0x12, 0xc, 0x12, 0xe, 0x12, 0xc7, 0xb,
\r
3123 0x12, 0x3, 0x12, 0x3, 0x12, 0x5, 0x12, 0xcb, 0xa, 0x12, 0x3, 0x13,
\r
3124 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x14, 0x3, 0x14, 0x3, 0x14,
\r
3125 0x3, 0x14, 0x3, 0x14, 0x7, 0x14, 0xd6, 0xa, 0x14, 0xc, 0x14, 0xe,
\r
3126 0x14, 0xd9, 0xb, 0x14, 0x3, 0x14, 0x3, 0x14, 0x3, 0x15, 0x3, 0x15,
\r
3127 0x3, 0x15, 0x5, 0x15, 0xe0, 0xa, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3,
\r
3128 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x16, 0x3, 0x16, 0x3,
\r
3129 0x16, 0x3, 0x16, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3,
\r
3130 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3,
\r
3131 0x19, 0x3, 0x19, 0x3, 0x19, 0x5, 0x19, 0xf9, 0xa, 0x19, 0x3, 0x1a,
\r
3132 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x5, 0x1a, 0x100, 0xa,
\r
3133 0x1a, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x5, 0x1b, 0x105, 0xa, 0x1b,
\r
3134 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x7, 0x1c,
\r
3135 0x10c, 0xa, 0x1c, 0xc, 0x1c, 0xe, 0x1c, 0x10f, 0xb, 0x1c, 0x5, 0x1c,
\r
3136 0x111, 0xa, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1d, 0x3, 0x1d, 0x3,
\r
3137 0x1d, 0x3, 0x1d, 0x5, 0x1d, 0x119, 0xa, 0x1d, 0x3, 0x1e, 0x3, 0x1e,
\r
3138 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x7, 0x1e, 0x120, 0xa, 0x1e, 0xc,
\r
3139 0x1e, 0xe, 0x1e, 0x123, 0xb, 0x1e, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f,
\r
3140 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21,
\r
3141 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x22, 0x3, 0x22, 0x3, 0x23,
\r
3142 0x3, 0x23, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24,
\r
3143 0x3, 0x24, 0x3, 0x24, 0x6, 0x24, 0x13c, 0xa, 0x24, 0xd, 0x24, 0xe,
\r
3144 0x24, 0x13d, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x26,
\r
3145 0x3, 0x26, 0x3, 0x27, 0x3, 0x27, 0x3, 0x28, 0x3, 0x28, 0x3, 0x29,
\r
3146 0x3, 0x29, 0x3, 0x29, 0x2, 0x2, 0x2a, 0x2, 0x4, 0x6, 0x8, 0xa, 0xc,
\r
3147 0xe, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22,
\r
3148 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38,
\r
3149 0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c, 0x4e,
\r
3150 0x50, 0x2, 0x4, 0x3, 0x2, 0x1d, 0x20, 0x3, 0x2, 0x18, 0x19, 0x2,
\r
3151 0x14d, 0x2, 0x53, 0x3, 0x2, 0x2, 0x2, 0x4, 0x5c, 0x3, 0x2, 0x2, 0x2,
\r
3152 0x6, 0x5e, 0x3, 0x2, 0x2, 0x2, 0x8, 0x61, 0x3, 0x2, 0x2, 0x2, 0xa,
\r
3153 0x69, 0x3, 0x2, 0x2, 0x2, 0xc, 0x70, 0x3, 0x2, 0x2, 0x2, 0xe, 0x7d,
\r
3154 0x3, 0x2, 0x2, 0x2, 0x10, 0x7f, 0x3, 0x2, 0x2, 0x2, 0x12, 0x82, 0x3,
\r
3155 0x2, 0x2, 0x2, 0x14, 0x93, 0x3, 0x2, 0x2, 0x2, 0x16, 0x95, 0x3, 0x2,
\r
3156 0x2, 0x2, 0x18, 0x9e, 0x3, 0x2, 0x2, 0x2, 0x1a, 0xab, 0x3, 0x2, 0x2,
\r
3157 0x2, 0x1c, 0xad, 0x3, 0x2, 0x2, 0x2, 0x1e, 0xaf, 0x3, 0x2, 0x2, 0x2,
\r
3158 0x20, 0xb9, 0x3, 0x2, 0x2, 0x2, 0x22, 0xbb, 0x3, 0x2, 0x2, 0x2, 0x24,
\r
3159 0xcc, 0x3, 0x2, 0x2, 0x2, 0x26, 0xd0, 0x3, 0x2, 0x2, 0x2, 0x28, 0xdc,
\r
3160 0x3, 0x2, 0x2, 0x2, 0x2a, 0xe7, 0x3, 0x2, 0x2, 0x2, 0x2c, 0xeb, 0x3,
\r
3161 0x2, 0x2, 0x2, 0x2e, 0xef, 0x3, 0x2, 0x2, 0x2, 0x30, 0xf8, 0x3, 0x2,
\r
3162 0x2, 0x2, 0x32, 0xff, 0x3, 0x2, 0x2, 0x2, 0x34, 0x104, 0x3, 0x2,
\r
3163 0x2, 0x2, 0x36, 0x106, 0x3, 0x2, 0x2, 0x2, 0x38, 0x118, 0x3, 0x2,
\r
3164 0x2, 0x2, 0x3a, 0x11a, 0x3, 0x2, 0x2, 0x2, 0x3c, 0x124, 0x3, 0x2,
\r
3165 0x2, 0x2, 0x3e, 0x127, 0x3, 0x2, 0x2, 0x2, 0x40, 0x12a, 0x3, 0x2,
\r
3166 0x2, 0x2, 0x42, 0x130, 0x3, 0x2, 0x2, 0x2, 0x44, 0x132, 0x3, 0x2,
\r
3167 0x2, 0x2, 0x46, 0x134, 0x3, 0x2, 0x2, 0x2, 0x48, 0x13f, 0x3, 0x2,
\r
3168 0x2, 0x2, 0x4a, 0x143, 0x3, 0x2, 0x2, 0x2, 0x4c, 0x145, 0x3, 0x2,
\r
3169 0x2, 0x2, 0x4e, 0x147, 0x3, 0x2, 0x2, 0x2, 0x50, 0x149, 0x3, 0x2,
\r
3170 0x2, 0x2, 0x52, 0x54, 0x5, 0x4, 0x3, 0x2, 0x53, 0x52, 0x3, 0x2, 0x2,
\r
3171 0x2, 0x54, 0x55, 0x3, 0x2, 0x2, 0x2, 0x55, 0x53, 0x3, 0x2, 0x2, 0x2,
\r
3172 0x55, 0x56, 0x3, 0x2, 0x2, 0x2, 0x56, 0x57, 0x3, 0x2, 0x2, 0x2, 0x57,
\r
3173 0x58, 0x7, 0x2, 0x2, 0x3, 0x58, 0x3, 0x3, 0x2, 0x2, 0x2, 0x59, 0x5d,
\r
3174 0x5, 0x6, 0x4, 0x2, 0x5a, 0x5d, 0x5, 0x10, 0x9, 0x2, 0x5b, 0x5d,
\r
3175 0x5, 0x18, 0xd, 0x2, 0x5c, 0x59, 0x3, 0x2, 0x2, 0x2, 0x5c, 0x5a,
\r
3176 0x3, 0x2, 0x2, 0x2, 0x5c, 0x5b, 0x3, 0x2, 0x2, 0x2, 0x5d, 0x5, 0x3,
\r
3177 0x2, 0x2, 0x2, 0x5e, 0x5f, 0x7, 0x3, 0x2, 0x2, 0x5f, 0x60, 0x5, 0x8,
\r
3178 0x5, 0x2, 0x60, 0x7, 0x3, 0x2, 0x2, 0x2, 0x61, 0x62, 0x5, 0x4c, 0x27,
\r
3179 0x2, 0x62, 0x63, 0x7, 0x4, 0x2, 0x2, 0x63, 0x64, 0x5, 0xc, 0x7, 0x2,
\r
3180 0x64, 0x67, 0x3, 0x2, 0x2, 0x2, 0x65, 0x66, 0x7, 0x5, 0x2, 0x2, 0x66,
\r
3181 0x68, 0x5, 0x30, 0x19, 0x2, 0x67, 0x65, 0x3, 0x2, 0x2, 0x2, 0x67,
\r
3182 0x68, 0x3, 0x2, 0x2, 0x2, 0x68, 0x9, 0x3, 0x2, 0x2, 0x2, 0x69, 0x6a,
\r
3183 0x5, 0x4c, 0x27, 0x2, 0x6a, 0x6b, 0x7, 0x4, 0x2, 0x2, 0x6b, 0x6c,
\r
3184 0x5, 0xc, 0x7, 0x2, 0x6c, 0x6d, 0x3, 0x2, 0x2, 0x2, 0x6d, 0x6e, 0x7,
\r
3185 0x5, 0x2, 0x2, 0x6e, 0x6f, 0x5, 0x30, 0x19, 0x2, 0x6f, 0xb, 0x3,
\r
3186 0x2, 0x2, 0x2, 0x70, 0x74, 0x5, 0x4e, 0x28, 0x2, 0x71, 0x73, 0x5,
\r
3187 0xe, 0x8, 0x2, 0x72, 0x71, 0x3, 0x2, 0x2, 0x2, 0x73, 0x76, 0x3, 0x2,
\r
3188 0x2, 0x2, 0x74, 0x72, 0x3, 0x2, 0x2, 0x2, 0x74, 0x75, 0x3, 0x2, 0x2,
\r
3189 0x2, 0x75, 0xd, 0x3, 0x2, 0x2, 0x2, 0x76, 0x74, 0x3, 0x2, 0x2, 0x2,
\r
3190 0x77, 0x7e, 0x7, 0x6, 0x2, 0x2, 0x78, 0x7a, 0x7, 0x7, 0x2, 0x2, 0x79,
\r
3191 0x7b, 0x7, 0x24, 0x2, 0x2, 0x7a, 0x79, 0x3, 0x2, 0x2, 0x2, 0x7a,
\r
3192 0x7b, 0x3, 0x2, 0x2, 0x2, 0x7b, 0x7c, 0x3, 0x2, 0x2, 0x2, 0x7c, 0x7e,
\r
3193 0x7, 0x8, 0x2, 0x2, 0x7d, 0x77, 0x3, 0x2, 0x2, 0x2, 0x7d, 0x78, 0x3,
\r
3194 0x2, 0x2, 0x2, 0x7e, 0xf, 0x3, 0x2, 0x2, 0x2, 0x7f, 0x80, 0x7, 0x9,
\r
3195 0x2, 0x2, 0x80, 0x81, 0x5, 0x12, 0xa, 0x2, 0x81, 0x11, 0x3, 0x2,
\r
3196 0x2, 0x2, 0x82, 0x83, 0x5, 0x4a, 0x26, 0x2, 0x83, 0x84, 0x7, 0xa,
\r
3197 0x2, 0x2, 0x84, 0x85, 0x5, 0x14, 0xb, 0x2, 0x85, 0x86, 0x7, 0xb,
\r
3198 0x2, 0x2, 0x86, 0x87, 0x7, 0x4, 0x2, 0x2, 0x87, 0x88, 0x5, 0xc, 0x7,
\r
3199 0x2, 0x88, 0x89, 0x3, 0x2, 0x2, 0x2, 0x89, 0x8a, 0x5, 0x16, 0xc,
\r
3200 0x2, 0x8a, 0x13, 0x3, 0x2, 0x2, 0x2, 0x8b, 0x90, 0x5, 0x8, 0x5, 0x2,
\r
3201 0x8c, 0x8d, 0x7, 0xc, 0x2, 0x2, 0x8d, 0x8f, 0x5, 0x8, 0x5, 0x2, 0x8e,
\r
3202 0x8c, 0x3, 0x2, 0x2, 0x2, 0x8f, 0x92, 0x3, 0x2, 0x2, 0x2, 0x90, 0x8e,
\r
3203 0x3, 0x2, 0x2, 0x2, 0x90, 0x91, 0x3, 0x2, 0x2, 0x2, 0x91, 0x94, 0x3,
\r
3204 0x2, 0x2, 0x2, 0x92, 0x90, 0x3, 0x2, 0x2, 0x2, 0x93, 0x8b, 0x3, 0x2,
\r
3205 0x2, 0x2, 0x93, 0x94, 0x3, 0x2, 0x2, 0x2, 0x94, 0x15, 0x3, 0x2, 0x2,
\r
3206 0x2, 0x95, 0x99, 0x7, 0xd, 0x2, 0x2, 0x96, 0x98, 0x5, 0x20, 0x11,
\r
3207 0x2, 0x97, 0x96, 0x3, 0x2, 0x2, 0x2, 0x98, 0x9b, 0x3, 0x2, 0x2, 0x2,
\r
3208 0x99, 0x97, 0x3, 0x2, 0x2, 0x2, 0x99, 0x9a, 0x3, 0x2, 0x2, 0x2, 0x9a,
\r
3209 0x9c, 0x3, 0x2, 0x2, 0x2, 0x9b, 0x99, 0x3, 0x2, 0x2, 0x2, 0x9c, 0x9d,
\r
3210 0x7, 0xe, 0x2, 0x2, 0x9d, 0x17, 0x3, 0x2, 0x2, 0x2, 0x9e, 0x9f, 0x7,
\r
3211 0xf, 0x2, 0x2, 0x9f, 0xa0, 0x5, 0x50, 0x29, 0x2, 0xa0, 0xa4, 0x7,
\r
3212 0xd, 0x2, 0x2, 0xa1, 0xa3, 0x5, 0x1a, 0xe, 0x2, 0xa2, 0xa1, 0x3,
\r
3213 0x2, 0x2, 0x2, 0xa3, 0xa6, 0x3, 0x2, 0x2, 0x2, 0xa4, 0xa2, 0x3, 0x2,
\r
3214 0x2, 0x2, 0xa4, 0xa5, 0x3, 0x2, 0x2, 0x2, 0xa5, 0xa7, 0x3, 0x2, 0x2,
\r
3215 0x2, 0xa6, 0xa4, 0x3, 0x2, 0x2, 0x2, 0xa7, 0xa8, 0x7, 0xe, 0x2, 0x2,
\r
3216 0xa8, 0x19, 0x3, 0x2, 0x2, 0x2, 0xa9, 0xac, 0x5, 0x1c, 0xf, 0x2,
\r
3217 0xaa, 0xac, 0x5, 0x1e, 0x10, 0x2, 0xab, 0xa9, 0x3, 0x2, 0x2, 0x2,
\r
3218 0xab, 0xaa, 0x3, 0x2, 0x2, 0x2, 0xac, 0x1b, 0x3, 0x2, 0x2, 0x2, 0xad,
\r
3219 0xae, 0x5, 0x8, 0x5, 0x2, 0xae, 0x1d, 0x3, 0x2, 0x2, 0x2, 0xaf, 0xb0,
\r
3220 0x5, 0x12, 0xa, 0x2, 0xb0, 0x1f, 0x3, 0x2, 0x2, 0x2, 0xb1, 0xba,
\r
3221 0x5, 0x6, 0x4, 0x2, 0xb2, 0xba, 0x5, 0x22, 0x12, 0x2, 0xb3, 0xba,
\r
3222 0x5, 0x24, 0x13, 0x2, 0xb4, 0xba, 0x5, 0x28, 0x15, 0x2, 0xb5, 0xba,
\r
3223 0x5, 0x2a, 0x16, 0x2, 0xb6, 0xba, 0x5, 0x2c, 0x17, 0x2, 0xb7, 0xba,
\r
3224 0x5, 0x2e, 0x18, 0x2, 0xb8, 0xba, 0x5, 0x30, 0x19, 0x2, 0xb9, 0xb1,
\r
3225 0x3, 0x2, 0x2, 0x2, 0xb9, 0xb2, 0x3, 0x2, 0x2, 0x2, 0xb9, 0xb3, 0x3,
\r
3226 0x2, 0x2, 0x2, 0xb9, 0xb4, 0x3, 0x2, 0x2, 0x2, 0xb9, 0xb5, 0x3, 0x2,
\r
3227 0x2, 0x2, 0xb9, 0xb6, 0x3, 0x2, 0x2, 0x2, 0xb9, 0xb7, 0x3, 0x2, 0x2,
\r
3228 0x2, 0xb9, 0xb8, 0x3, 0x2, 0x2, 0x2, 0xba, 0x21, 0x3, 0x2, 0x2, 0x2,
\r
3229 0xbb, 0xbc, 0x7, 0x10, 0x2, 0x2, 0xbc, 0xbd, 0x5, 0x30, 0x19, 0x2,
\r
3230 0xbd, 0xc5, 0x5, 0x16, 0xc, 0x2, 0xbe, 0xbf, 0x7, 0x11, 0x2, 0x2,
\r
3231 0xbf, 0xc0, 0x7, 0x10, 0x2, 0x2, 0xc0, 0xc1, 0x5, 0x30, 0x19, 0x2,
\r
3232 0xc1, 0xc2, 0x5, 0x16, 0xc, 0x2, 0xc2, 0xc4, 0x3, 0x2, 0x2, 0x2,
\r
3233 0xc3, 0xbe, 0x3, 0x2, 0x2, 0x2, 0xc4, 0xc7, 0x3, 0x2, 0x2, 0x2, 0xc5,
\r
3234 0xc3, 0x3, 0x2, 0x2, 0x2, 0xc5, 0xc6, 0x3, 0x2, 0x2, 0x2, 0xc6, 0xca,
\r
3235 0x3, 0x2, 0x2, 0x2, 0xc7, 0xc5, 0x3, 0x2, 0x2, 0x2, 0xc8, 0xc9, 0x7,
\r
3236 0x11, 0x2, 0x2, 0xc9, 0xcb, 0x5, 0x16, 0xc, 0x2, 0xca, 0xc8, 0x3,
\r
3237 0x2, 0x2, 0x2, 0xca, 0xcb, 0x3, 0x2, 0x2, 0x2, 0xcb, 0x23, 0x3, 0x2,
\r
3238 0x2, 0x2, 0xcc, 0xcd, 0x7, 0x12, 0x2, 0x2, 0xcd, 0xce, 0x5, 0x42,
\r
3239 0x22, 0x2, 0xce, 0xcf, 0x5, 0x26, 0x14, 0x2, 0xcf, 0x25, 0x3, 0x2,
\r
3240 0x2, 0x2, 0xd0, 0xd7, 0x7, 0xd, 0x2, 0x2, 0xd1, 0xd2, 0x7, 0x13,
\r
3241 0x2, 0x2, 0xd2, 0xd3, 0x5, 0x30, 0x19, 0x2, 0xd3, 0xd4, 0x5, 0x16,
\r
3242 0xc, 0x2, 0xd4, 0xd6, 0x3, 0x2, 0x2, 0x2, 0xd5, 0xd1, 0x3, 0x2, 0x2,
\r
3243 0x2, 0xd6, 0xd9, 0x3, 0x2, 0x2, 0x2, 0xd7, 0xd5, 0x3, 0x2, 0x2, 0x2,
\r
3244 0xd7, 0xd8, 0x3, 0x2, 0x2, 0x2, 0xd8, 0xda, 0x3, 0x2, 0x2, 0x2, 0xd9,
\r
3245 0xd7, 0x3, 0x2, 0x2, 0x2, 0xda, 0xdb, 0x7, 0xe, 0x2, 0x2, 0xdb, 0x27,
\r
3246 0x3, 0x2, 0x2, 0x2, 0xdc, 0xdf, 0x7, 0x14, 0x2, 0x2, 0xdd, 0xe0,
\r
3247 0x5, 0xa, 0x6, 0x2, 0xde, 0xe0, 0x5, 0x2c, 0x17, 0x2, 0xdf, 0xdd,
\r
3248 0x3, 0x2, 0x2, 0x2, 0xdf, 0xde, 0x3, 0x2, 0x2, 0x2, 0xe0, 0xe1, 0x3,
\r
3249 0x2, 0x2, 0x2, 0xe1, 0xe2, 0x7, 0xc, 0x2, 0x2, 0xe2, 0xe3, 0x5, 0x30,
\r
3250 0x19, 0x2, 0xe3, 0xe4, 0x7, 0xc, 0x2, 0x2, 0xe4, 0xe5, 0x5, 0x30,
\r
3251 0x19, 0x2, 0xe5, 0xe6, 0x5, 0x16, 0xc, 0x2, 0xe6, 0x29, 0x3, 0x2,
\r
3252 0x2, 0x2, 0xe7, 0xe8, 0x7, 0x15, 0x2, 0x2, 0xe8, 0xe9, 0x5, 0x30,
\r
3253 0x19, 0x2, 0xe9, 0xea, 0x5, 0x16, 0xc, 0x2, 0xea, 0x2b, 0x3, 0x2,
\r
3254 0x2, 0x2, 0xeb, 0xec, 0x5, 0x42, 0x22, 0x2, 0xec, 0xed, 0x7, 0x5,
\r
3255 0x2, 0x2, 0xed, 0xee, 0x5, 0x30, 0x19, 0x2, 0xee, 0x2d, 0x3, 0x2,
\r
3256 0x2, 0x2, 0xef, 0xf0, 0x7, 0x16, 0x2, 0x2, 0xf0, 0xf1, 0x5, 0x30,
\r
3257 0x19, 0x2, 0xf1, 0x2f, 0x3, 0x2, 0x2, 0x2, 0xf2, 0xf9, 0x5, 0x36,
\r
3258 0x1c, 0x2, 0xf3, 0xf9, 0x5, 0x44, 0x23, 0x2, 0xf4, 0xf9, 0x5, 0x42,
\r
3259 0x22, 0x2, 0xf5, 0xf9, 0x5, 0x48, 0x25, 0x2, 0xf6, 0xf9, 0x5, 0x46,
\r
3260 0x24, 0x2, 0xf7, 0xf9, 0x5, 0x38, 0x1d, 0x2, 0xf8, 0xf2, 0x3, 0x2,
\r
3261 0x2, 0x2, 0xf8, 0xf3, 0x3, 0x2, 0x2, 0x2, 0xf8, 0xf4, 0x3, 0x2, 0x2,
\r
3262 0x2, 0xf8, 0xf5, 0x3, 0x2, 0x2, 0x2, 0xf8, 0xf6, 0x3, 0x2, 0x2, 0x2,
\r
3263 0xf8, 0xf7, 0x3, 0x2, 0x2, 0x2, 0xf9, 0x31, 0x3, 0x2, 0x2, 0x2, 0xfa,
\r
3264 0x100, 0x5, 0x36, 0x1c, 0x2, 0xfb, 0x100, 0x5, 0x44, 0x23, 0x2, 0xfc,
\r
3265 0x100, 0x5, 0x42, 0x22, 0x2, 0xfd, 0x100, 0x5, 0x48, 0x25, 0x2, 0xfe,
\r
3266 0x100, 0x5, 0x46, 0x24, 0x2, 0xff, 0xfa, 0x3, 0x2, 0x2, 0x2, 0xff,
\r
3267 0xfb, 0x3, 0x2, 0x2, 0x2, 0xff, 0xfc, 0x3, 0x2, 0x2, 0x2, 0xff, 0xfd,
\r
3268 0x3, 0x2, 0x2, 0x2, 0xff, 0xfe, 0x3, 0x2, 0x2, 0x2, 0x100, 0x33,
\r
3269 0x3, 0x2, 0x2, 0x2, 0x101, 0x105, 0x5, 0x36, 0x1c, 0x2, 0x102, 0x105,
\r
3270 0x5, 0x42, 0x22, 0x2, 0x103, 0x105, 0x5, 0x48, 0x25, 0x2, 0x104,
\r
3271 0x101, 0x3, 0x2, 0x2, 0x2, 0x104, 0x102, 0x3, 0x2, 0x2, 0x2, 0x104,
\r
3272 0x103, 0x3, 0x2, 0x2, 0x2, 0x105, 0x35, 0x3, 0x2, 0x2, 0x2, 0x106,
\r
3273 0x107, 0x5, 0x4a, 0x26, 0x2, 0x107, 0x110, 0x7, 0xa, 0x2, 0x2, 0x108,
\r
3274 0x10d, 0x5, 0x30, 0x19, 0x2, 0x109, 0x10a, 0x7, 0xc, 0x2, 0x2, 0x10a,
\r
3275 0x10c, 0x5, 0x30, 0x19, 0x2, 0x10b, 0x109, 0x3, 0x2, 0x2, 0x2, 0x10c,
\r
3276 0x10f, 0x3, 0x2, 0x2, 0x2, 0x10d, 0x10b, 0x3, 0x2, 0x2, 0x2, 0x10d,
\r
3277 0x10e, 0x3, 0x2, 0x2, 0x2, 0x10e, 0x111, 0x3, 0x2, 0x2, 0x2, 0x10f,
\r
3278 0x10d, 0x3, 0x2, 0x2, 0x2, 0x110, 0x108, 0x3, 0x2, 0x2, 0x2, 0x110,
\r
3279 0x111, 0x3, 0x2, 0x2, 0x2, 0x111, 0x112, 0x3, 0x2, 0x2, 0x2, 0x112,
\r
3280 0x113, 0x7, 0xb, 0x2, 0x2, 0x113, 0x37, 0x3, 0x2, 0x2, 0x2, 0x114,
\r
3281 0x119, 0x5, 0x3a, 0x1e, 0x2, 0x115, 0x119, 0x5, 0x3c, 0x1f, 0x2,
\r
3282 0x116, 0x119, 0x5, 0x3e, 0x20, 0x2, 0x117, 0x119, 0x5, 0x40, 0x21,
\r
3283 0x2, 0x118, 0x114, 0x3, 0x2, 0x2, 0x2, 0x118, 0x115, 0x3, 0x2, 0x2,
\r
3284 0x2, 0x118, 0x116, 0x3, 0x2, 0x2, 0x2, 0x118, 0x117, 0x3, 0x2, 0x2,
\r
3285 0x2, 0x119, 0x39, 0x3, 0x2, 0x2, 0x2, 0x11a, 0x11b, 0x5, 0x32, 0x1a,
\r
3286 0x2, 0x11b, 0x11c, 0x7, 0x1c, 0x2, 0x2, 0x11c, 0x121, 0x5, 0x32,
\r
3287 0x1a, 0x2, 0x11d, 0x11e, 0x7, 0x1c, 0x2, 0x2, 0x11e, 0x120, 0x5,
\r
3288 0x32, 0x1a, 0x2, 0x11f, 0x11d, 0x3, 0x2, 0x2, 0x2, 0x120, 0x123,
\r
3289 0x3, 0x2, 0x2, 0x2, 0x121, 0x11f, 0x3, 0x2, 0x2, 0x2, 0x121, 0x122,
\r
3290 0x3, 0x2, 0x2, 0x2, 0x122, 0x3b, 0x3, 0x2, 0x2, 0x2, 0x123, 0x121,
\r
3291 0x3, 0x2, 0x2, 0x2, 0x124, 0x125, 0x7, 0x1b, 0x2, 0x2, 0x125, 0x126,
\r
3292 0x5, 0x32, 0x1a, 0x2, 0x126, 0x3d, 0x3, 0x2, 0x2, 0x2, 0x127, 0x128,
\r
3293 0x5, 0x32, 0x1a, 0x2, 0x128, 0x129, 0x7, 0x1a, 0x2, 0x2, 0x129, 0x3f,
\r
3294 0x3, 0x2, 0x2, 0x2, 0x12a, 0x12b, 0x5, 0x32, 0x1a, 0x2, 0x12b, 0x12c,
\r
3295 0x7, 0x17, 0x2, 0x2, 0x12c, 0x12d, 0x5, 0x30, 0x19, 0x2, 0x12d, 0x12e,
\r
3296 0x7, 0x4, 0x2, 0x2, 0x12e, 0x12f, 0x5, 0x30, 0x19, 0x2, 0x12f, 0x41,
\r
3297 0x3, 0x2, 0x2, 0x2, 0x130, 0x131, 0x5, 0x4c, 0x27, 0x2, 0x131, 0x43,
\r
3298 0x3, 0x2, 0x2, 0x2, 0x132, 0x133, 0x9, 0x2, 0x2, 0x2, 0x133, 0x45,
\r
3299 0x3, 0x2, 0x2, 0x2, 0x134, 0x13b, 0x5, 0x34, 0x1b, 0x2, 0x135, 0x136,
\r
3300 0x9, 0x3, 0x2, 0x2, 0x136, 0x13c, 0x5, 0x42, 0x22, 0x2, 0x137, 0x138,
\r
3301 0x7, 0x7, 0x2, 0x2, 0x138, 0x139, 0x5, 0x30, 0x19, 0x2, 0x139, 0x13a,
\r
3302 0x7, 0x8, 0x2, 0x2, 0x13a, 0x13c, 0x3, 0x2, 0x2, 0x2, 0x13b, 0x135,
\r
3303 0x3, 0x2, 0x2, 0x2, 0x13b, 0x137, 0x3, 0x2, 0x2, 0x2, 0x13c, 0x13d,
\r
3304 0x3, 0x2, 0x2, 0x2, 0x13d, 0x13b, 0x3, 0x2, 0x2, 0x2, 0x13d, 0x13e,
\r
3305 0x3, 0x2, 0x2, 0x2, 0x13e, 0x47, 0x3, 0x2, 0x2, 0x2, 0x13f, 0x140,
\r
3306 0x7, 0xa, 0x2, 0x2, 0x140, 0x141, 0x5, 0x30, 0x19, 0x2, 0x141, 0x142,
\r
3307 0x7, 0xb, 0x2, 0x2, 0x142, 0x49, 0x3, 0x2, 0x2, 0x2, 0x143, 0x144,
\r
3308 0x7, 0x21, 0x2, 0x2, 0x144, 0x4b, 0x3, 0x2, 0x2, 0x2, 0x145, 0x146,
\r
3309 0x7, 0x21, 0x2, 0x2, 0x146, 0x4d, 0x3, 0x2, 0x2, 0x2, 0x147, 0x148,
\r
3310 0x7, 0x21, 0x2, 0x2, 0x148, 0x4f, 0x3, 0x2, 0x2, 0x2, 0x149, 0x14a,
\r
3311 0x7, 0x21, 0x2, 0x2, 0x14a, 0x51, 0x3, 0x2, 0x2, 0x2, 0x1b, 0x55,
\r
3312 0x5c, 0x67, 0x74, 0x7a, 0x7d, 0x90, 0x93, 0x99, 0xa4, 0xab, 0xb9,
\r
3313 0xc5, 0xca, 0xd7, 0xdf, 0xf8, 0xff, 0x104, 0x10d, 0x110, 0x118, 0x121,
\r
3317 _serializedATN.insert(_serializedATN.end(), serializedATNSegment0,
\r
3318 serializedATNSegment0 + sizeof(serializedATNSegment0) / sizeof(serializedATNSegment0[0]));
\r
3321 atn::ATNDeserializer deserializer;
\r
3322 _atn = deserializer.deserialize(_serializedATN);
\r
3324 size_t count = _atn.getNumberOfDecisions();
\r
3325 _decisionToDFA.reserve(count);
\r
3326 for (size_t i = 0; i < count; i++) {
\r
3327 _decisionToDFA.emplace_back(_atn.getDecisionState(i), i);
\r
3331 TocParser::Initializer TocParser::_init;
\r