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__1)
\r
94 | (1ULL << TocParser::T__7)
\r
95 | (1ULL << TocParser::T__13))) != 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__1: {
\r
160 enterOuterAlt(_localctx, 1);
\r
164 match(TocParser::T__0);
\r
168 case TocParser::T__7: {
\r
169 enterOuterAlt(_localctx, 2);
\r
175 case TocParser::T__13: {
\r
176 enterOuterAlt(_localctx, 3);
\r
183 throw NoViableAltException(this);
\r
187 catch (RecognitionException &e) {
\r
188 _errHandler->reportError(this, e);
\r
189 _localctx->exception = std::current_exception();
\r
190 _errHandler->recover(this, _localctx->exception);
\r
196 //----------------- VarDeclContext ------------------------------------------------------------------
\r
198 TocParser::VarDeclContext::VarDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
199 : ParserRuleContext(parent, invokingState) {
\r
202 TocParser::VarContext* TocParser::VarDeclContext::var() {
\r
203 return getRuleContext<TocParser::VarContext>(0);
\r
207 size_t TocParser::VarDeclContext::getRuleIndex() const {
\r
208 return TocParser::RuleVarDecl;
\r
211 void TocParser::VarDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
212 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
213 if (parserListener != nullptr)
\r
214 parserListener->enterVarDecl(this);
\r
217 void TocParser::VarDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
218 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
219 if (parserListener != nullptr)
\r
220 parserListener->exitVarDecl(this);
\r
223 TocParser::VarDeclContext* TocParser::varDecl() {
\r
224 VarDeclContext *_localctx = _tracker.createInstance<VarDeclContext>(_ctx, getState());
\r
225 enterRule(_localctx, 4, TocParser::RuleVarDecl);
\r
227 #if __cplusplus > 201703L
\r
228 auto onExit = finally([=, this] {
\r
230 auto onExit = finally([=] {
\r
235 enterOuterAlt(_localctx, 1);
\r
237 match(TocParser::T__1);
\r
242 catch (RecognitionException &e) {
\r
243 _errHandler->reportError(this, e);
\r
244 _localctx->exception = std::current_exception();
\r
245 _errHandler->recover(this, _localctx->exception);
\r
251 //----------------- VarContext ------------------------------------------------------------------
\r
253 TocParser::VarContext::VarContext(ParserRuleContext *parent, size_t invokingState)
\r
254 : ParserRuleContext(parent, invokingState) {
\r
257 TocParser::VarNameContext* TocParser::VarContext::varName() {
\r
258 return getRuleContext<TocParser::VarNameContext>(0);
\r
261 TocParser::TypeContext* TocParser::VarContext::type() {
\r
262 return getRuleContext<TocParser::TypeContext>(0);
\r
265 TocParser::ExprContext* TocParser::VarContext::expr() {
\r
266 return getRuleContext<TocParser::ExprContext>(0);
\r
270 size_t TocParser::VarContext::getRuleIndex() const {
\r
271 return TocParser::RuleVar;
\r
274 void TocParser::VarContext::enterRule(tree::ParseTreeListener *listener) {
\r
275 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
276 if (parserListener != nullptr)
\r
277 parserListener->enterVar(this);
\r
280 void TocParser::VarContext::exitRule(tree::ParseTreeListener *listener) {
\r
281 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
282 if (parserListener != nullptr)
\r
283 parserListener->exitVar(this);
\r
286 TocParser::VarContext* TocParser::var() {
\r
287 VarContext *_localctx = _tracker.createInstance<VarContext>(_ctx, getState());
\r
288 enterRule(_localctx, 6, TocParser::RuleVar);
\r
291 #if __cplusplus > 201703L
\r
292 auto onExit = finally([=, this] {
\r
294 auto onExit = finally([=] {
\r
299 enterOuterAlt(_localctx, 1);
\r
304 match(TocParser::T__2);
\r
308 _errHandler->sync(this);
\r
310 _la = _input->LA(1);
\r
311 if (_la == TocParser::T__3) {
\r
313 match(TocParser::T__3);
\r
319 catch (RecognitionException &e) {
\r
320 _errHandler->reportError(this, e);
\r
321 _localctx->exception = std::current_exception();
\r
322 _errHandler->recover(this, _localctx->exception);
\r
328 //----------------- VarInitContext ------------------------------------------------------------------
\r
330 TocParser::VarInitContext::VarInitContext(ParserRuleContext *parent, size_t invokingState)
\r
331 : ParserRuleContext(parent, invokingState) {
\r
334 TocParser::VarNameContext* TocParser::VarInitContext::varName() {
\r
335 return getRuleContext<TocParser::VarNameContext>(0);
\r
338 TocParser::TypeContext* TocParser::VarInitContext::type() {
\r
339 return getRuleContext<TocParser::TypeContext>(0);
\r
342 TocParser::ExprContext* TocParser::VarInitContext::expr() {
\r
343 return getRuleContext<TocParser::ExprContext>(0);
\r
347 size_t TocParser::VarInitContext::getRuleIndex() const {
\r
348 return TocParser::RuleVarInit;
\r
351 void TocParser::VarInitContext::enterRule(tree::ParseTreeListener *listener) {
\r
352 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
353 if (parserListener != nullptr)
\r
354 parserListener->enterVarInit(this);
\r
357 void TocParser::VarInitContext::exitRule(tree::ParseTreeListener *listener) {
\r
358 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
359 if (parserListener != nullptr)
\r
360 parserListener->exitVarInit(this);
\r
363 TocParser::VarInitContext* TocParser::varInit() {
\r
364 VarInitContext *_localctx = _tracker.createInstance<VarInitContext>(_ctx, getState());
\r
365 enterRule(_localctx, 8, TocParser::RuleVarInit);
\r
367 #if __cplusplus > 201703L
\r
368 auto onExit = finally([=, this] {
\r
370 auto onExit = finally([=] {
\r
375 enterOuterAlt(_localctx, 1);
\r
380 match(TocParser::T__2);
\r
385 match(TocParser::T__3);
\r
390 catch (RecognitionException &e) {
\r
391 _errHandler->reportError(this, e);
\r
392 _localctx->exception = std::current_exception();
\r
393 _errHandler->recover(this, _localctx->exception);
\r
399 //----------------- TypeContext ------------------------------------------------------------------
\r
401 TocParser::TypeContext::TypeContext(ParserRuleContext *parent, size_t invokingState)
\r
402 : ParserRuleContext(parent, invokingState) {
\r
405 TocParser::TypeNameContext* TocParser::TypeContext::typeName() {
\r
406 return getRuleContext<TocParser::TypeNameContext>(0);
\r
409 std::vector<TocParser::TypeModifierContext *> TocParser::TypeContext::typeModifier() {
\r
410 return getRuleContexts<TocParser::TypeModifierContext>();
\r
413 TocParser::TypeModifierContext* TocParser::TypeContext::typeModifier(size_t i) {
\r
414 return getRuleContext<TocParser::TypeModifierContext>(i);
\r
418 size_t TocParser::TypeContext::getRuleIndex() const {
\r
419 return TocParser::RuleType;
\r
422 void TocParser::TypeContext::enterRule(tree::ParseTreeListener *listener) {
\r
423 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
424 if (parserListener != nullptr)
\r
425 parserListener->enterType(this);
\r
428 void TocParser::TypeContext::exitRule(tree::ParseTreeListener *listener) {
\r
429 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
430 if (parserListener != nullptr)
\r
431 parserListener->exitType(this);
\r
434 TocParser::TypeContext* TocParser::type() {
\r
435 TypeContext *_localctx = _tracker.createInstance<TypeContext>(_ctx, getState());
\r
436 enterRule(_localctx, 10, TocParser::RuleType);
\r
439 #if __cplusplus > 201703L
\r
440 auto onExit = finally([=, this] {
\r
442 auto onExit = finally([=] {
\r
447 enterOuterAlt(_localctx, 1);
\r
451 _errHandler->sync(this);
\r
452 _la = _input->LA(1);
\r
453 while (_la == TocParser::T__4
\r
455 || _la == TocParser::T__5) {
\r
459 _errHandler->sync(this);
\r
460 _la = _input->LA(1);
\r
464 catch (RecognitionException &e) {
\r
465 _errHandler->reportError(this, e);
\r
466 _localctx->exception = std::current_exception();
\r
467 _errHandler->recover(this, _localctx->exception);
\r
473 //----------------- TypeModifierContext ------------------------------------------------------------------
\r
475 TocParser::TypeModifierContext::TypeModifierContext(ParserRuleContext *parent, size_t invokingState)
\r
476 : ParserRuleContext(parent, invokingState) {
\r
479 tree::TerminalNode* TocParser::TypeModifierContext::INT_LIT() {
\r
480 return getToken(TocParser::INT_LIT, 0);
\r
484 size_t TocParser::TypeModifierContext::getRuleIndex() const {
\r
485 return TocParser::RuleTypeModifier;
\r
488 void TocParser::TypeModifierContext::enterRule(tree::ParseTreeListener *listener) {
\r
489 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
490 if (parserListener != nullptr)
\r
491 parserListener->enterTypeModifier(this);
\r
494 void TocParser::TypeModifierContext::exitRule(tree::ParseTreeListener *listener) {
\r
495 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
496 if (parserListener != nullptr)
\r
497 parserListener->exitTypeModifier(this);
\r
500 TocParser::TypeModifierContext* TocParser::typeModifier() {
\r
501 TypeModifierContext *_localctx = _tracker.createInstance<TypeModifierContext>(_ctx, getState());
\r
502 enterRule(_localctx, 12, TocParser::RuleTypeModifier);
\r
505 #if __cplusplus > 201703L
\r
506 auto onExit = finally([=, this] {
\r
508 auto onExit = finally([=] {
\r
514 _errHandler->sync(this);
\r
515 switch (_input->LA(1)) {
\r
516 case TocParser::T__4: {
\r
517 enterOuterAlt(_localctx, 1);
\r
519 match(TocParser::T__4);
\r
523 case TocParser::T__5: {
\r
524 enterOuterAlt(_localctx, 2);
\r
526 match(TocParser::T__5);
\r
528 _errHandler->sync(this);
\r
530 _la = _input->LA(1);
\r
531 if (_la == TocParser::INT_LIT) {
\r
533 match(TocParser::INT_LIT);
\r
536 match(TocParser::T__6);
\r
541 throw NoViableAltException(this);
\r
545 catch (RecognitionException &e) {
\r
546 _errHandler->reportError(this, e);
\r
547 _localctx->exception = std::current_exception();
\r
548 _errHandler->recover(this, _localctx->exception);
\r
554 //----------------- FuncDeclContext ------------------------------------------------------------------
\r
556 TocParser::FuncDeclContext::FuncDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
557 : ParserRuleContext(parent, invokingState) {
\r
560 TocParser::FuncContext* TocParser::FuncDeclContext::func() {
\r
561 return getRuleContext<TocParser::FuncContext>(0);
\r
565 size_t TocParser::FuncDeclContext::getRuleIndex() const {
\r
566 return TocParser::RuleFuncDecl;
\r
569 void TocParser::FuncDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
570 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
571 if (parserListener != nullptr)
\r
572 parserListener->enterFuncDecl(this);
\r
575 void TocParser::FuncDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
576 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
577 if (parserListener != nullptr)
\r
578 parserListener->exitFuncDecl(this);
\r
581 TocParser::FuncDeclContext* TocParser::funcDecl() {
\r
582 FuncDeclContext *_localctx = _tracker.createInstance<FuncDeclContext>(_ctx, getState());
\r
583 enterRule(_localctx, 14, TocParser::RuleFuncDecl);
\r
585 #if __cplusplus > 201703L
\r
586 auto onExit = finally([=, this] {
\r
588 auto onExit = finally([=] {
\r
593 enterOuterAlt(_localctx, 1);
\r
595 match(TocParser::T__7);
\r
600 catch (RecognitionException &e) {
\r
601 _errHandler->reportError(this, e);
\r
602 _localctx->exception = std::current_exception();
\r
603 _errHandler->recover(this, _localctx->exception);
\r
609 //----------------- FuncContext ------------------------------------------------------------------
\r
611 TocParser::FuncContext::FuncContext(ParserRuleContext *parent, size_t invokingState)
\r
612 : ParserRuleContext(parent, invokingState) {
\r
615 TocParser::FuncNameContext* TocParser::FuncContext::funcName() {
\r
616 return getRuleContext<TocParser::FuncNameContext>(0);
\r
619 TocParser::ParameterContext* TocParser::FuncContext::parameter() {
\r
620 return getRuleContext<TocParser::ParameterContext>(0);
\r
623 TocParser::BodyContext* TocParser::FuncContext::body() {
\r
624 return getRuleContext<TocParser::BodyContext>(0);
\r
627 TocParser::TypeContext* TocParser::FuncContext::type() {
\r
628 return getRuleContext<TocParser::TypeContext>(0);
\r
632 size_t TocParser::FuncContext::getRuleIndex() const {
\r
633 return TocParser::RuleFunc;
\r
636 void TocParser::FuncContext::enterRule(tree::ParseTreeListener *listener) {
\r
637 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
638 if (parserListener != nullptr)
\r
639 parserListener->enterFunc(this);
\r
642 void TocParser::FuncContext::exitRule(tree::ParseTreeListener *listener) {
\r
643 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
644 if (parserListener != nullptr)
\r
645 parserListener->exitFunc(this);
\r
648 TocParser::FuncContext* TocParser::func() {
\r
649 FuncContext *_localctx = _tracker.createInstance<FuncContext>(_ctx, getState());
\r
650 enterRule(_localctx, 16, TocParser::RuleFunc);
\r
652 #if __cplusplus > 201703L
\r
653 auto onExit = finally([=, this] {
\r
655 auto onExit = finally([=] {
\r
660 enterOuterAlt(_localctx, 1);
\r
664 match(TocParser::T__8);
\r
668 match(TocParser::T__9);
\r
671 match(TocParser::T__2);
\r
678 catch (RecognitionException &e) {
\r
679 _errHandler->reportError(this, e);
\r
680 _localctx->exception = std::current_exception();
\r
681 _errHandler->recover(this, _localctx->exception);
\r
687 //----------------- ParameterContext ------------------------------------------------------------------
\r
689 TocParser::ParameterContext::ParameterContext(ParserRuleContext *parent, size_t invokingState)
\r
690 : ParserRuleContext(parent, invokingState) {
\r
693 std::vector<TocParser::VarContext *> TocParser::ParameterContext::var() {
\r
694 return getRuleContexts<TocParser::VarContext>();
\r
697 TocParser::VarContext* TocParser::ParameterContext::var(size_t i) {
\r
698 return getRuleContext<TocParser::VarContext>(i);
\r
702 size_t TocParser::ParameterContext::getRuleIndex() const {
\r
703 return TocParser::RuleParameter;
\r
706 void TocParser::ParameterContext::enterRule(tree::ParseTreeListener *listener) {
\r
707 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
708 if (parserListener != nullptr)
\r
709 parserListener->enterParameter(this);
\r
712 void TocParser::ParameterContext::exitRule(tree::ParseTreeListener *listener) {
\r
713 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
714 if (parserListener != nullptr)
\r
715 parserListener->exitParameter(this);
\r
718 TocParser::ParameterContext* TocParser::parameter() {
\r
719 ParameterContext *_localctx = _tracker.createInstance<ParameterContext>(_ctx, getState());
\r
720 enterRule(_localctx, 18, TocParser::RuleParameter);
\r
723 #if __cplusplus > 201703L
\r
724 auto onExit = finally([=, this] {
\r
726 auto onExit = finally([=] {
\r
731 enterOuterAlt(_localctx, 1);
\r
733 _errHandler->sync(this);
\r
735 _la = _input->LA(1);
\r
736 if (_la == TocParser::NAME) {
\r
740 _errHandler->sync(this);
\r
741 _la = _input->LA(1);
\r
742 while (_la == TocParser::T__10) {
\r
744 match(TocParser::T__10);
\r
748 _errHandler->sync(this);
\r
749 _la = _input->LA(1);
\r
754 catch (RecognitionException &e) {
\r
755 _errHandler->reportError(this, e);
\r
756 _localctx->exception = std::current_exception();
\r
757 _errHandler->recover(this, _localctx->exception);
\r
763 //----------------- BodyContext ------------------------------------------------------------------
\r
765 TocParser::BodyContext::BodyContext(ParserRuleContext *parent, size_t invokingState)
\r
766 : ParserRuleContext(parent, invokingState) {
\r
769 std::vector<TocParser::StmtContext *> TocParser::BodyContext::stmt() {
\r
770 return getRuleContexts<TocParser::StmtContext>();
\r
773 TocParser::StmtContext* TocParser::BodyContext::stmt(size_t i) {
\r
774 return getRuleContext<TocParser::StmtContext>(i);
\r
778 size_t TocParser::BodyContext::getRuleIndex() const {
\r
779 return TocParser::RuleBody;
\r
782 void TocParser::BodyContext::enterRule(tree::ParseTreeListener *listener) {
\r
783 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
784 if (parserListener != nullptr)
\r
785 parserListener->enterBody(this);
\r
788 void TocParser::BodyContext::exitRule(tree::ParseTreeListener *listener) {
\r
789 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
790 if (parserListener != nullptr)
\r
791 parserListener->exitBody(this);
\r
794 TocParser::BodyContext* TocParser::body() {
\r
795 BodyContext *_localctx = _tracker.createInstance<BodyContext>(_ctx, getState());
\r
796 enterRule(_localctx, 20, TocParser::RuleBody);
\r
799 #if __cplusplus > 201703L
\r
800 auto onExit = finally([=, this] {
\r
802 auto onExit = finally([=] {
\r
807 enterOuterAlt(_localctx, 1);
\r
809 match(TocParser::T__11);
\r
811 _errHandler->sync(this);
\r
812 _la = _input->LA(1);
\r
813 while ((((_la & ~ 0x3fULL) == 0) &&
\r
814 ((1ULL << _la) & ((1ULL << TocParser::T__1)
\r
815 | (1ULL << TocParser::T__4)
\r
816 | (1ULL << TocParser::T__8)
\r
817 | (1ULL << TocParser::T__14)
\r
818 | (1ULL << TocParser::T__16)
\r
819 | (1ULL << TocParser::T__18)
\r
820 | (1ULL << TocParser::T__19)
\r
821 | (1ULL << TocParser::T__20)
\r
822 | (1ULL << TocParser::T__24)
\r
823 | (1ULL << TocParser::T__25)
\r
824 | (1ULL << TocParser::T__26)
\r
825 | (1ULL << TocParser::T__27)
\r
826 | (1ULL << TocParser::T__28)
\r
827 | (1ULL << TocParser::T__29)
\r
828 | (1ULL << TocParser::T__30)
\r
829 | (1ULL << TocParser::INT_LIT)
\r
830 | (1ULL << TocParser::DECIMAL_LIT)
\r
831 | (1ULL << TocParser::STRING_LIT)
\r
832 | (1ULL << TocParser::BOOL_LIT)
\r
833 | (1ULL << TocParser::NAME))) != 0)) {
\r
837 _errHandler->sync(this);
\r
838 _la = _input->LA(1);
\r
841 match(TocParser::T__12);
\r
844 catch (RecognitionException &e) {
\r
845 _errHandler->reportError(this, e);
\r
846 _localctx->exception = std::current_exception();
\r
847 _errHandler->recover(this, _localctx->exception);
\r
853 //----------------- StructDeclContext ------------------------------------------------------------------
\r
855 TocParser::StructDeclContext::StructDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
856 : ParserRuleContext(parent, invokingState) {
\r
859 TocParser::StructNameContext* TocParser::StructDeclContext::structName() {
\r
860 return getRuleContext<TocParser::StructNameContext>(0);
\r
863 std::vector<TocParser::StructMemberContext *> TocParser::StructDeclContext::structMember() {
\r
864 return getRuleContexts<TocParser::StructMemberContext>();
\r
867 TocParser::StructMemberContext* TocParser::StructDeclContext::structMember(size_t i) {
\r
868 return getRuleContext<TocParser::StructMemberContext>(i);
\r
872 size_t TocParser::StructDeclContext::getRuleIndex() const {
\r
873 return TocParser::RuleStructDecl;
\r
876 void TocParser::StructDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
877 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
878 if (parserListener != nullptr)
\r
879 parserListener->enterStructDecl(this);
\r
882 void TocParser::StructDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
883 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
884 if (parserListener != nullptr)
\r
885 parserListener->exitStructDecl(this);
\r
888 TocParser::StructDeclContext* TocParser::structDecl() {
\r
889 StructDeclContext *_localctx = _tracker.createInstance<StructDeclContext>(_ctx, getState());
\r
890 enterRule(_localctx, 22, TocParser::RuleStructDecl);
\r
893 #if __cplusplus > 201703L
\r
894 auto onExit = finally([=, this] {
\r
896 auto onExit = finally([=] {
\r
901 enterOuterAlt(_localctx, 1);
\r
903 match(TocParser::T__13);
\r
907 match(TocParser::T__11);
\r
909 _errHandler->sync(this);
\r
910 _la = _input->LA(1);
\r
911 while (_la == TocParser::NAME) {
\r
915 _errHandler->sync(this);
\r
916 _la = _input->LA(1);
\r
919 match(TocParser::T__12);
\r
922 catch (RecognitionException &e) {
\r
923 _errHandler->reportError(this, e);
\r
924 _localctx->exception = std::current_exception();
\r
925 _errHandler->recover(this, _localctx->exception);
\r
931 //----------------- StructMemberContext ------------------------------------------------------------------
\r
933 TocParser::StructMemberContext::StructMemberContext(ParserRuleContext *parent, size_t invokingState)
\r
934 : ParserRuleContext(parent, invokingState) {
\r
937 TocParser::StructVarContext* TocParser::StructMemberContext::structVar() {
\r
938 return getRuleContext<TocParser::StructVarContext>(0);
\r
941 TocParser::StructMethodContext* TocParser::StructMemberContext::structMethod() {
\r
942 return getRuleContext<TocParser::StructMethodContext>(0);
\r
946 size_t TocParser::StructMemberContext::getRuleIndex() const {
\r
947 return TocParser::RuleStructMember;
\r
950 void TocParser::StructMemberContext::enterRule(tree::ParseTreeListener *listener) {
\r
951 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
952 if (parserListener != nullptr)
\r
953 parserListener->enterStructMember(this);
\r
956 void TocParser::StructMemberContext::exitRule(tree::ParseTreeListener *listener) {
\r
957 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
958 if (parserListener != nullptr)
\r
959 parserListener->exitStructMember(this);
\r
962 TocParser::StructMemberContext* TocParser::structMember() {
\r
963 StructMemberContext *_localctx = _tracker.createInstance<StructMemberContext>(_ctx, getState());
\r
964 enterRule(_localctx, 24, TocParser::RuleStructMember);
\r
966 #if __cplusplus > 201703L
\r
967 auto onExit = finally([=, this] {
\r
969 auto onExit = finally([=] {
\r
975 _errHandler->sync(this);
\r
976 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 10, _ctx)) {
\r
978 enterOuterAlt(_localctx, 1);
\r
985 enterOuterAlt(_localctx, 2);
\r
996 catch (RecognitionException &e) {
\r
997 _errHandler->reportError(this, e);
\r
998 _localctx->exception = std::current_exception();
\r
999 _errHandler->recover(this, _localctx->exception);
\r
1005 //----------------- StructVarContext ------------------------------------------------------------------
\r
1007 TocParser::StructVarContext::StructVarContext(ParserRuleContext *parent, size_t invokingState)
\r
1008 : ParserRuleContext(parent, invokingState) {
\r
1011 TocParser::VarContext* TocParser::StructVarContext::var() {
\r
1012 return getRuleContext<TocParser::VarContext>(0);
\r
1016 size_t TocParser::StructVarContext::getRuleIndex() const {
\r
1017 return TocParser::RuleStructVar;
\r
1020 void TocParser::StructVarContext::enterRule(tree::ParseTreeListener *listener) {
\r
1021 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1022 if (parserListener != nullptr)
\r
1023 parserListener->enterStructVar(this);
\r
1026 void TocParser::StructVarContext::exitRule(tree::ParseTreeListener *listener) {
\r
1027 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1028 if (parserListener != nullptr)
\r
1029 parserListener->exitStructVar(this);
\r
1032 TocParser::StructVarContext* TocParser::structVar() {
\r
1033 StructVarContext *_localctx = _tracker.createInstance<StructVarContext>(_ctx, getState());
\r
1034 enterRule(_localctx, 26, TocParser::RuleStructVar);
\r
1036 #if __cplusplus > 201703L
\r
1037 auto onExit = finally([=, this] {
\r
1039 auto onExit = finally([=] {
\r
1044 enterOuterAlt(_localctx, 1);
\r
1048 match(TocParser::T__0);
\r
1051 catch (RecognitionException &e) {
\r
1052 _errHandler->reportError(this, e);
\r
1053 _localctx->exception = std::current_exception();
\r
1054 _errHandler->recover(this, _localctx->exception);
\r
1060 //----------------- StructMethodContext ------------------------------------------------------------------
\r
1062 TocParser::StructMethodContext::StructMethodContext(ParserRuleContext *parent, size_t invokingState)
\r
1063 : ParserRuleContext(parent, invokingState) {
\r
1066 TocParser::FuncContext* TocParser::StructMethodContext::func() {
\r
1067 return getRuleContext<TocParser::FuncContext>(0);
\r
1071 size_t TocParser::StructMethodContext::getRuleIndex() const {
\r
1072 return TocParser::RuleStructMethod;
\r
1075 void TocParser::StructMethodContext::enterRule(tree::ParseTreeListener *listener) {
\r
1076 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1077 if (parserListener != nullptr)
\r
1078 parserListener->enterStructMethod(this);
\r
1081 void TocParser::StructMethodContext::exitRule(tree::ParseTreeListener *listener) {
\r
1082 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1083 if (parserListener != nullptr)
\r
1084 parserListener->exitStructMethod(this);
\r
1087 TocParser::StructMethodContext* TocParser::structMethod() {
\r
1088 StructMethodContext *_localctx = _tracker.createInstance<StructMethodContext>(_ctx, getState());
\r
1089 enterRule(_localctx, 28, TocParser::RuleStructMethod);
\r
1091 #if __cplusplus > 201703L
\r
1092 auto onExit = finally([=, this] {
\r
1094 auto onExit = finally([=] {
\r
1099 enterOuterAlt(_localctx, 1);
\r
1104 catch (RecognitionException &e) {
\r
1105 _errHandler->reportError(this, e);
\r
1106 _localctx->exception = std::current_exception();
\r
1107 _errHandler->recover(this, _localctx->exception);
\r
1113 //----------------- StmtContext ------------------------------------------------------------------
\r
1115 TocParser::StmtContext::StmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1116 : ParserRuleContext(parent, invokingState) {
\r
1119 TocParser::VarDeclContext* TocParser::StmtContext::varDecl() {
\r
1120 return getRuleContext<TocParser::VarDeclContext>(0);
\r
1123 TocParser::IfStmtContext* TocParser::StmtContext::ifStmt() {
\r
1124 return getRuleContext<TocParser::IfStmtContext>(0);
\r
1127 TocParser::SwitchStmtContext* TocParser::StmtContext::switchStmt() {
\r
1128 return getRuleContext<TocParser::SwitchStmtContext>(0);
\r
1131 TocParser::ForStmtContext* TocParser::StmtContext::forStmt() {
\r
1132 return getRuleContext<TocParser::ForStmtContext>(0);
\r
1135 TocParser::WhileStmtContext* TocParser::StmtContext::whileStmt() {
\r
1136 return getRuleContext<TocParser::WhileStmtContext>(0);
\r
1139 TocParser::AssignStmtContext* TocParser::StmtContext::assignStmt() {
\r
1140 return getRuleContext<TocParser::AssignStmtContext>(0);
\r
1143 TocParser::ReturnStmtContext* TocParser::StmtContext::returnStmt() {
\r
1144 return getRuleContext<TocParser::ReturnStmtContext>(0);
\r
1147 TocParser::ExprContext* TocParser::StmtContext::expr() {
\r
1148 return getRuleContext<TocParser::ExprContext>(0);
\r
1152 size_t TocParser::StmtContext::getRuleIndex() const {
\r
1153 return TocParser::RuleStmt;
\r
1156 void TocParser::StmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1157 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1158 if (parserListener != nullptr)
\r
1159 parserListener->enterStmt(this);
\r
1162 void TocParser::StmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1163 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1164 if (parserListener != nullptr)
\r
1165 parserListener->exitStmt(this);
\r
1168 TocParser::StmtContext* TocParser::stmt() {
\r
1169 StmtContext *_localctx = _tracker.createInstance<StmtContext>(_ctx, getState());
\r
1170 enterRule(_localctx, 30, TocParser::RuleStmt);
\r
1172 #if __cplusplus > 201703L
\r
1173 auto onExit = finally([=, this] {
\r
1175 auto onExit = finally([=] {
\r
1181 _errHandler->sync(this);
\r
1182 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 11, _ctx)) {
\r
1184 enterOuterAlt(_localctx, 1);
\r
1188 match(TocParser::T__0);
\r
1193 enterOuterAlt(_localctx, 2);
\r
1200 enterOuterAlt(_localctx, 3);
\r
1207 enterOuterAlt(_localctx, 4);
\r
1214 enterOuterAlt(_localctx, 5);
\r
1221 enterOuterAlt(_localctx, 6);
\r
1225 match(TocParser::T__0);
\r
1230 enterOuterAlt(_localctx, 7);
\r
1234 match(TocParser::T__0);
\r
1239 enterOuterAlt(_localctx, 8);
\r
1243 match(TocParser::T__0);
\r
1252 catch (RecognitionException &e) {
\r
1253 _errHandler->reportError(this, e);
\r
1254 _localctx->exception = std::current_exception();
\r
1255 _errHandler->recover(this, _localctx->exception);
\r
1261 //----------------- IfStmtContext ------------------------------------------------------------------
\r
1263 TocParser::IfStmtContext::IfStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1264 : ParserRuleContext(parent, invokingState) {
\r
1267 TocParser::ExprContext* TocParser::IfStmtContext::expr() {
\r
1268 return getRuleContext<TocParser::ExprContext>(0);
\r
1271 TocParser::BodyContext* TocParser::IfStmtContext::body() {
\r
1272 return getRuleContext<TocParser::BodyContext>(0);
\r
1275 std::vector<TocParser::ElseIfStmtContext *> TocParser::IfStmtContext::elseIfStmt() {
\r
1276 return getRuleContexts<TocParser::ElseIfStmtContext>();
\r
1279 TocParser::ElseIfStmtContext* TocParser::IfStmtContext::elseIfStmt(size_t i) {
\r
1280 return getRuleContext<TocParser::ElseIfStmtContext>(i);
\r
1283 TocParser::ElseStmtContext* TocParser::IfStmtContext::elseStmt() {
\r
1284 return getRuleContext<TocParser::ElseStmtContext>(0);
\r
1288 size_t TocParser::IfStmtContext::getRuleIndex() const {
\r
1289 return TocParser::RuleIfStmt;
\r
1292 void TocParser::IfStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1293 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1294 if (parserListener != nullptr)
\r
1295 parserListener->enterIfStmt(this);
\r
1298 void TocParser::IfStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1299 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1300 if (parserListener != nullptr)
\r
1301 parserListener->exitIfStmt(this);
\r
1304 TocParser::IfStmtContext* TocParser::ifStmt() {
\r
1305 IfStmtContext *_localctx = _tracker.createInstance<IfStmtContext>(_ctx, getState());
\r
1306 enterRule(_localctx, 32, TocParser::RuleIfStmt);
\r
1309 #if __cplusplus > 201703L
\r
1310 auto onExit = finally([=, this] {
\r
1312 auto onExit = finally([=] {
\r
1318 enterOuterAlt(_localctx, 1);
\r
1320 match(TocParser::T__14);
\r
1326 _errHandler->sync(this);
\r
1327 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 12, _ctx);
\r
1328 while (alt != 2 && alt != atn::ATN::INVALID_ALT_NUMBER) {
\r
1334 _errHandler->sync(this);
\r
1335 alt = getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 12, _ctx);
\r
1338 _errHandler->sync(this);
\r
1340 _la = _input->LA(1);
\r
1341 if (_la == TocParser::T__15) {
\r
1347 catch (RecognitionException &e) {
\r
1348 _errHandler->reportError(this, e);
\r
1349 _localctx->exception = std::current_exception();
\r
1350 _errHandler->recover(this, _localctx->exception);
\r
1356 //----------------- ElseIfStmtContext ------------------------------------------------------------------
\r
1358 TocParser::ElseIfStmtContext::ElseIfStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1359 : ParserRuleContext(parent, invokingState) {
\r
1362 TocParser::ExprContext* TocParser::ElseIfStmtContext::expr() {
\r
1363 return getRuleContext<TocParser::ExprContext>(0);
\r
1366 TocParser::BodyContext* TocParser::ElseIfStmtContext::body() {
\r
1367 return getRuleContext<TocParser::BodyContext>(0);
\r
1371 size_t TocParser::ElseIfStmtContext::getRuleIndex() const {
\r
1372 return TocParser::RuleElseIfStmt;
\r
1375 void TocParser::ElseIfStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1376 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1377 if (parserListener != nullptr)
\r
1378 parserListener->enterElseIfStmt(this);
\r
1381 void TocParser::ElseIfStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1382 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1383 if (parserListener != nullptr)
\r
1384 parserListener->exitElseIfStmt(this);
\r
1387 TocParser::ElseIfStmtContext* TocParser::elseIfStmt() {
\r
1388 ElseIfStmtContext *_localctx = _tracker.createInstance<ElseIfStmtContext>(_ctx, getState());
\r
1389 enterRule(_localctx, 34, TocParser::RuleElseIfStmt);
\r
1391 #if __cplusplus > 201703L
\r
1392 auto onExit = finally([=, this] {
\r
1394 auto onExit = finally([=] {
\r
1399 enterOuterAlt(_localctx, 1);
\r
1401 match(TocParser::T__15);
\r
1403 match(TocParser::T__14);
\r
1410 catch (RecognitionException &e) {
\r
1411 _errHandler->reportError(this, e);
\r
1412 _localctx->exception = std::current_exception();
\r
1413 _errHandler->recover(this, _localctx->exception);
\r
1419 //----------------- ElseStmtContext ------------------------------------------------------------------
\r
1421 TocParser::ElseStmtContext::ElseStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1422 : ParserRuleContext(parent, invokingState) {
\r
1425 TocParser::BodyContext* TocParser::ElseStmtContext::body() {
\r
1426 return getRuleContext<TocParser::BodyContext>(0);
\r
1430 size_t TocParser::ElseStmtContext::getRuleIndex() const {
\r
1431 return TocParser::RuleElseStmt;
\r
1434 void TocParser::ElseStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1435 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1436 if (parserListener != nullptr)
\r
1437 parserListener->enterElseStmt(this);
\r
1440 void TocParser::ElseStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1441 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1442 if (parserListener != nullptr)
\r
1443 parserListener->exitElseStmt(this);
\r
1446 TocParser::ElseStmtContext* TocParser::elseStmt() {
\r
1447 ElseStmtContext *_localctx = _tracker.createInstance<ElseStmtContext>(_ctx, getState());
\r
1448 enterRule(_localctx, 36, TocParser::RuleElseStmt);
\r
1450 #if __cplusplus > 201703L
\r
1451 auto onExit = finally([=, this] {
\r
1453 auto onExit = finally([=] {
\r
1458 enterOuterAlt(_localctx, 1);
\r
1460 match(TocParser::T__15);
\r
1465 catch (RecognitionException &e) {
\r
1466 _errHandler->reportError(this, e);
\r
1467 _localctx->exception = std::current_exception();
\r
1468 _errHandler->recover(this, _localctx->exception);
\r
1474 //----------------- SwitchStmtContext ------------------------------------------------------------------
\r
1476 TocParser::SwitchStmtContext::SwitchStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1477 : ParserRuleContext(parent, invokingState) {
\r
1480 TocParser::IdentifierExprContext* TocParser::SwitchStmtContext::identifierExpr() {
\r
1481 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1484 TocParser::SwitchBodyContext* TocParser::SwitchStmtContext::switchBody() {
\r
1485 return getRuleContext<TocParser::SwitchBodyContext>(0);
\r
1489 size_t TocParser::SwitchStmtContext::getRuleIndex() const {
\r
1490 return TocParser::RuleSwitchStmt;
\r
1493 void TocParser::SwitchStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1494 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1495 if (parserListener != nullptr)
\r
1496 parserListener->enterSwitchStmt(this);
\r
1499 void TocParser::SwitchStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1500 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1501 if (parserListener != nullptr)
\r
1502 parserListener->exitSwitchStmt(this);
\r
1505 TocParser::SwitchStmtContext* TocParser::switchStmt() {
\r
1506 SwitchStmtContext *_localctx = _tracker.createInstance<SwitchStmtContext>(_ctx, getState());
\r
1507 enterRule(_localctx, 38, TocParser::RuleSwitchStmt);
\r
1509 #if __cplusplus > 201703L
\r
1510 auto onExit = finally([=, this] {
\r
1512 auto onExit = finally([=] {
\r
1517 enterOuterAlt(_localctx, 1);
\r
1519 match(TocParser::T__16);
\r
1526 catch (RecognitionException &e) {
\r
1527 _errHandler->reportError(this, e);
\r
1528 _localctx->exception = std::current_exception();
\r
1529 _errHandler->recover(this, _localctx->exception);
\r
1535 //----------------- SwitchBodyContext ------------------------------------------------------------------
\r
1537 TocParser::SwitchBodyContext::SwitchBodyContext(ParserRuleContext *parent, size_t invokingState)
\r
1538 : ParserRuleContext(parent, invokingState) {
\r
1541 std::vector<TocParser::SwitchCaseContext *> TocParser::SwitchBodyContext::switchCase() {
\r
1542 return getRuleContexts<TocParser::SwitchCaseContext>();
\r
1545 TocParser::SwitchCaseContext* TocParser::SwitchBodyContext::switchCase(size_t i) {
\r
1546 return getRuleContext<TocParser::SwitchCaseContext>(i);
\r
1550 size_t TocParser::SwitchBodyContext::getRuleIndex() const {
\r
1551 return TocParser::RuleSwitchBody;
\r
1554 void TocParser::SwitchBodyContext::enterRule(tree::ParseTreeListener *listener) {
\r
1555 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1556 if (parserListener != nullptr)
\r
1557 parserListener->enterSwitchBody(this);
\r
1560 void TocParser::SwitchBodyContext::exitRule(tree::ParseTreeListener *listener) {
\r
1561 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1562 if (parserListener != nullptr)
\r
1563 parserListener->exitSwitchBody(this);
\r
1566 TocParser::SwitchBodyContext* TocParser::switchBody() {
\r
1567 SwitchBodyContext *_localctx = _tracker.createInstance<SwitchBodyContext>(_ctx, getState());
\r
1568 enterRule(_localctx, 40, TocParser::RuleSwitchBody);
\r
1571 #if __cplusplus > 201703L
\r
1572 auto onExit = finally([=, this] {
\r
1574 auto onExit = finally([=] {
\r
1579 enterOuterAlt(_localctx, 1);
\r
1581 match(TocParser::T__11);
\r
1583 _errHandler->sync(this);
\r
1584 _la = _input->LA(1);
\r
1585 while (_la == TocParser::T__17) {
\r
1589 _errHandler->sync(this);
\r
1590 _la = _input->LA(1);
\r
1593 match(TocParser::T__12);
\r
1596 catch (RecognitionException &e) {
\r
1597 _errHandler->reportError(this, e);
\r
1598 _localctx->exception = std::current_exception();
\r
1599 _errHandler->recover(this, _localctx->exception);
\r
1605 //----------------- SwitchCaseContext ------------------------------------------------------------------
\r
1607 TocParser::SwitchCaseContext::SwitchCaseContext(ParserRuleContext *parent, size_t invokingState)
\r
1608 : ParserRuleContext(parent, invokingState) {
\r
1611 TocParser::ExprContext* TocParser::SwitchCaseContext::expr() {
\r
1612 return getRuleContext<TocParser::ExprContext>(0);
\r
1615 TocParser::BodyContext* TocParser::SwitchCaseContext::body() {
\r
1616 return getRuleContext<TocParser::BodyContext>(0);
\r
1620 size_t TocParser::SwitchCaseContext::getRuleIndex() const {
\r
1621 return TocParser::RuleSwitchCase;
\r
1624 void TocParser::SwitchCaseContext::enterRule(tree::ParseTreeListener *listener) {
\r
1625 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1626 if (parserListener != nullptr)
\r
1627 parserListener->enterSwitchCase(this);
\r
1630 void TocParser::SwitchCaseContext::exitRule(tree::ParseTreeListener *listener) {
\r
1631 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1632 if (parserListener != nullptr)
\r
1633 parserListener->exitSwitchCase(this);
\r
1636 TocParser::SwitchCaseContext* TocParser::switchCase() {
\r
1637 SwitchCaseContext *_localctx = _tracker.createInstance<SwitchCaseContext>(_ctx, getState());
\r
1638 enterRule(_localctx, 42, TocParser::RuleSwitchCase);
\r
1640 #if __cplusplus > 201703L
\r
1641 auto onExit = finally([=, this] {
\r
1643 auto onExit = finally([=] {
\r
1648 enterOuterAlt(_localctx, 1);
\r
1650 match(TocParser::T__17);
\r
1657 catch (RecognitionException &e) {
\r
1658 _errHandler->reportError(this, e);
\r
1659 _localctx->exception = std::current_exception();
\r
1660 _errHandler->recover(this, _localctx->exception);
\r
1666 //----------------- ForStmtContext ------------------------------------------------------------------
\r
1668 TocParser::ForStmtContext::ForStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1669 : ParserRuleContext(parent, invokingState) {
\r
1672 std::vector<TocParser::ExprContext *> TocParser::ForStmtContext::expr() {
\r
1673 return getRuleContexts<TocParser::ExprContext>();
\r
1676 TocParser::ExprContext* TocParser::ForStmtContext::expr(size_t i) {
\r
1677 return getRuleContext<TocParser::ExprContext>(i);
\r
1680 TocParser::BodyContext* TocParser::ForStmtContext::body() {
\r
1681 return getRuleContext<TocParser::BodyContext>(0);
\r
1684 TocParser::VarInitContext* TocParser::ForStmtContext::varInit() {
\r
1685 return getRuleContext<TocParser::VarInitContext>(0);
\r
1688 TocParser::AssignStmtContext* TocParser::ForStmtContext::assignStmt() {
\r
1689 return getRuleContext<TocParser::AssignStmtContext>(0);
\r
1693 size_t TocParser::ForStmtContext::getRuleIndex() const {
\r
1694 return TocParser::RuleForStmt;
\r
1697 void TocParser::ForStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1698 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1699 if (parserListener != nullptr)
\r
1700 parserListener->enterForStmt(this);
\r
1703 void TocParser::ForStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1704 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1705 if (parserListener != nullptr)
\r
1706 parserListener->exitForStmt(this);
\r
1709 TocParser::ForStmtContext* TocParser::forStmt() {
\r
1710 ForStmtContext *_localctx = _tracker.createInstance<ForStmtContext>(_ctx, getState());
\r
1711 enterRule(_localctx, 44, TocParser::RuleForStmt);
\r
1713 #if __cplusplus > 201703L
\r
1714 auto onExit = finally([=, this] {
\r
1716 auto onExit = finally([=] {
\r
1721 enterOuterAlt(_localctx, 1);
\r
1723 match(TocParser::T__18);
\r
1725 _errHandler->sync(this);
\r
1726 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 15, _ctx)) {
\r
1743 match(TocParser::T__10);
\r
1747 match(TocParser::T__10);
\r
1754 catch (RecognitionException &e) {
\r
1755 _errHandler->reportError(this, e);
\r
1756 _localctx->exception = std::current_exception();
\r
1757 _errHandler->recover(this, _localctx->exception);
\r
1763 //----------------- WhileStmtContext ------------------------------------------------------------------
\r
1765 TocParser::WhileStmtContext::WhileStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1766 : ParserRuleContext(parent, invokingState) {
\r
1769 TocParser::ExprContext* TocParser::WhileStmtContext::expr() {
\r
1770 return getRuleContext<TocParser::ExprContext>(0);
\r
1773 TocParser::BodyContext* TocParser::WhileStmtContext::body() {
\r
1774 return getRuleContext<TocParser::BodyContext>(0);
\r
1778 size_t TocParser::WhileStmtContext::getRuleIndex() const {
\r
1779 return TocParser::RuleWhileStmt;
\r
1782 void TocParser::WhileStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1783 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1784 if (parserListener != nullptr)
\r
1785 parserListener->enterWhileStmt(this);
\r
1788 void TocParser::WhileStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1789 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1790 if (parserListener != nullptr)
\r
1791 parserListener->exitWhileStmt(this);
\r
1794 TocParser::WhileStmtContext* TocParser::whileStmt() {
\r
1795 WhileStmtContext *_localctx = _tracker.createInstance<WhileStmtContext>(_ctx, getState());
\r
1796 enterRule(_localctx, 46, TocParser::RuleWhileStmt);
\r
1798 #if __cplusplus > 201703L
\r
1799 auto onExit = finally([=, this] {
\r
1801 auto onExit = finally([=] {
\r
1806 enterOuterAlt(_localctx, 1);
\r
1808 match(TocParser::T__19);
\r
1815 catch (RecognitionException &e) {
\r
1816 _errHandler->reportError(this, e);
\r
1817 _localctx->exception = std::current_exception();
\r
1818 _errHandler->recover(this, _localctx->exception);
\r
1824 //----------------- AssignStmtContext ------------------------------------------------------------------
\r
1826 TocParser::AssignStmtContext::AssignStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1827 : ParserRuleContext(parent, invokingState) {
\r
1830 TocParser::IdentifierExprContext* TocParser::AssignStmtContext::identifierExpr() {
\r
1831 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1834 TocParser::ExprContext* TocParser::AssignStmtContext::expr() {
\r
1835 return getRuleContext<TocParser::ExprContext>(0);
\r
1839 size_t TocParser::AssignStmtContext::getRuleIndex() const {
\r
1840 return TocParser::RuleAssignStmt;
\r
1843 void TocParser::AssignStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1844 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1845 if (parserListener != nullptr)
\r
1846 parserListener->enterAssignStmt(this);
\r
1849 void TocParser::AssignStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1850 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1851 if (parserListener != nullptr)
\r
1852 parserListener->exitAssignStmt(this);
\r
1855 TocParser::AssignStmtContext* TocParser::assignStmt() {
\r
1856 AssignStmtContext *_localctx = _tracker.createInstance<AssignStmtContext>(_ctx, getState());
\r
1857 enterRule(_localctx, 48, TocParser::RuleAssignStmt);
\r
1859 #if __cplusplus > 201703L
\r
1860 auto onExit = finally([=, this] {
\r
1862 auto onExit = finally([=] {
\r
1867 enterOuterAlt(_localctx, 1);
\r
1871 match(TocParser::T__3);
\r
1876 catch (RecognitionException &e) {
\r
1877 _errHandler->reportError(this, e);
\r
1878 _localctx->exception = std::current_exception();
\r
1879 _errHandler->recover(this, _localctx->exception);
\r
1885 //----------------- ReturnStmtContext ------------------------------------------------------------------
\r
1887 TocParser::ReturnStmtContext::ReturnStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1888 : ParserRuleContext(parent, invokingState) {
\r
1891 TocParser::ExprContext* TocParser::ReturnStmtContext::expr() {
\r
1892 return getRuleContext<TocParser::ExprContext>(0);
\r
1896 size_t TocParser::ReturnStmtContext::getRuleIndex() const {
\r
1897 return TocParser::RuleReturnStmt;
\r
1900 void TocParser::ReturnStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1901 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1902 if (parserListener != nullptr)
\r
1903 parserListener->enterReturnStmt(this);
\r
1906 void TocParser::ReturnStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1907 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1908 if (parserListener != nullptr)
\r
1909 parserListener->exitReturnStmt(this);
\r
1912 TocParser::ReturnStmtContext* TocParser::returnStmt() {
\r
1913 ReturnStmtContext *_localctx = _tracker.createInstance<ReturnStmtContext>(_ctx, getState());
\r
1914 enterRule(_localctx, 50, TocParser::RuleReturnStmt);
\r
1916 #if __cplusplus > 201703L
\r
1917 auto onExit = finally([=, this] {
\r
1919 auto onExit = finally([=] {
\r
1924 enterOuterAlt(_localctx, 1);
\r
1926 match(TocParser::T__20);
\r
1931 catch (RecognitionException &e) {
\r
1932 _errHandler->reportError(this, e);
\r
1933 _localctx->exception = std::current_exception();
\r
1934 _errHandler->recover(this, _localctx->exception);
\r
1940 //----------------- ExprContext ------------------------------------------------------------------
\r
1942 TocParser::ExprContext::ExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1943 : ParserRuleContext(parent, invokingState) {
\r
1946 TocParser::FuncExprContext* TocParser::ExprContext::funcExpr() {
\r
1947 return getRuleContext<TocParser::FuncExprContext>(0);
\r
1950 TocParser::LitExprContext* TocParser::ExprContext::litExpr() {
\r
1951 return getRuleContext<TocParser::LitExprContext>(0);
\r
1954 TocParser::IdentifierExprContext* TocParser::ExprContext::identifierExpr() {
\r
1955 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
1958 TocParser::ParenExprContext* TocParser::ExprContext::parenExpr() {
\r
1959 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1962 TocParser::AccessExprContext* TocParser::ExprContext::accessExpr() {
\r
1963 return getRuleContext<TocParser::AccessExprContext>(0);
\r
1966 TocParser::OpExprContext* TocParser::ExprContext::opExpr() {
\r
1967 return getRuleContext<TocParser::OpExprContext>(0);
\r
1971 size_t TocParser::ExprContext::getRuleIndex() const {
\r
1972 return TocParser::RuleExpr;
\r
1975 void TocParser::ExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1976 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1977 if (parserListener != nullptr)
\r
1978 parserListener->enterExpr(this);
\r
1981 void TocParser::ExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1982 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1983 if (parserListener != nullptr)
\r
1984 parserListener->exitExpr(this);
\r
1987 TocParser::ExprContext* TocParser::expr() {
\r
1988 ExprContext *_localctx = _tracker.createInstance<ExprContext>(_ctx, getState());
\r
1989 enterRule(_localctx, 52, TocParser::RuleExpr);
\r
1991 #if __cplusplus > 201703L
\r
1992 auto onExit = finally([=, this] {
\r
1994 auto onExit = finally([=] {
\r
2000 _errHandler->sync(this);
\r
2001 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 16, _ctx)) {
\r
2003 enterOuterAlt(_localctx, 1);
\r
2010 enterOuterAlt(_localctx, 2);
\r
2017 enterOuterAlt(_localctx, 3);
\r
2024 enterOuterAlt(_localctx, 4);
\r
2031 enterOuterAlt(_localctx, 5);
\r
2038 enterOuterAlt(_localctx, 6);
\r
2049 catch (RecognitionException &e) {
\r
2050 _errHandler->reportError(this, e);
\r
2051 _localctx->exception = std::current_exception();
\r
2052 _errHandler->recover(this, _localctx->exception);
\r
2058 //----------------- NonOpExprContext ------------------------------------------------------------------
\r
2060 TocParser::NonOpExprContext::NonOpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2061 : ParserRuleContext(parent, invokingState) {
\r
2064 TocParser::FuncExprContext* TocParser::NonOpExprContext::funcExpr() {
\r
2065 return getRuleContext<TocParser::FuncExprContext>(0);
\r
2068 TocParser::LitExprContext* TocParser::NonOpExprContext::litExpr() {
\r
2069 return getRuleContext<TocParser::LitExprContext>(0);
\r
2072 TocParser::IdentifierExprContext* TocParser::NonOpExprContext::identifierExpr() {
\r
2073 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
2076 TocParser::ParenExprContext* TocParser::NonOpExprContext::parenExpr() {
\r
2077 return getRuleContext<TocParser::ParenExprContext>(0);
\r
2080 TocParser::AccessExprContext* TocParser::NonOpExprContext::accessExpr() {
\r
2081 return getRuleContext<TocParser::AccessExprContext>(0);
\r
2085 size_t TocParser::NonOpExprContext::getRuleIndex() const {
\r
2086 return TocParser::RuleNonOpExpr;
\r
2089 void TocParser::NonOpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2090 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2091 if (parserListener != nullptr)
\r
2092 parserListener->enterNonOpExpr(this);
\r
2095 void TocParser::NonOpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2096 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2097 if (parserListener != nullptr)
\r
2098 parserListener->exitNonOpExpr(this);
\r
2101 TocParser::NonOpExprContext* TocParser::nonOpExpr() {
\r
2102 NonOpExprContext *_localctx = _tracker.createInstance<NonOpExprContext>(_ctx, getState());
\r
2103 enterRule(_localctx, 54, TocParser::RuleNonOpExpr);
\r
2105 #if __cplusplus > 201703L
\r
2106 auto onExit = finally([=, this] {
\r
2108 auto onExit = finally([=] {
\r
2114 _errHandler->sync(this);
\r
2115 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 17, _ctx)) {
\r
2117 enterOuterAlt(_localctx, 1);
\r
2124 enterOuterAlt(_localctx, 2);
\r
2131 enterOuterAlt(_localctx, 3);
\r
2138 enterOuterAlt(_localctx, 4);
\r
2145 enterOuterAlt(_localctx, 5);
\r
2156 catch (RecognitionException &e) {
\r
2157 _errHandler->reportError(this, e);
\r
2158 _localctx->exception = std::current_exception();
\r
2159 _errHandler->recover(this, _localctx->exception);
\r
2165 //----------------- NonAccessExprContext ------------------------------------------------------------------
\r
2167 TocParser::NonAccessExprContext::NonAccessExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2168 : ParserRuleContext(parent, invokingState) {
\r
2171 TocParser::FuncExprContext* TocParser::NonAccessExprContext::funcExpr() {
\r
2172 return getRuleContext<TocParser::FuncExprContext>(0);
\r
2175 TocParser::IdentifierExprContext* TocParser::NonAccessExprContext::identifierExpr() {
\r
2176 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
2179 TocParser::ParenExprContext* TocParser::NonAccessExprContext::parenExpr() {
\r
2180 return getRuleContext<TocParser::ParenExprContext>(0);
\r
2184 size_t TocParser::NonAccessExprContext::getRuleIndex() const {
\r
2185 return TocParser::RuleNonAccessExpr;
\r
2188 void TocParser::NonAccessExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2189 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2190 if (parserListener != nullptr)
\r
2191 parserListener->enterNonAccessExpr(this);
\r
2194 void TocParser::NonAccessExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2195 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2196 if (parserListener != nullptr)
\r
2197 parserListener->exitNonAccessExpr(this);
\r
2200 TocParser::NonAccessExprContext* TocParser::nonAccessExpr() {
\r
2201 NonAccessExprContext *_localctx = _tracker.createInstance<NonAccessExprContext>(_ctx, getState());
\r
2202 enterRule(_localctx, 56, TocParser::RuleNonAccessExpr);
\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, 18, _ctx)) {
\r
2216 enterOuterAlt(_localctx, 1);
\r
2223 enterOuterAlt(_localctx, 2);
\r
2230 enterOuterAlt(_localctx, 3);
\r
2241 catch (RecognitionException &e) {
\r
2242 _errHandler->reportError(this, e);
\r
2243 _localctx->exception = std::current_exception();
\r
2244 _errHandler->recover(this, _localctx->exception);
\r
2250 //----------------- FuncExprContext ------------------------------------------------------------------
\r
2252 TocParser::FuncExprContext::FuncExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2253 : ParserRuleContext(parent, invokingState) {
\r
2256 TocParser::FuncNameContext* TocParser::FuncExprContext::funcName() {
\r
2257 return getRuleContext<TocParser::FuncNameContext>(0);
\r
2260 std::vector<TocParser::ExprContext *> TocParser::FuncExprContext::expr() {
\r
2261 return getRuleContexts<TocParser::ExprContext>();
\r
2264 TocParser::ExprContext* TocParser::FuncExprContext::expr(size_t i) {
\r
2265 return getRuleContext<TocParser::ExprContext>(i);
\r
2269 size_t TocParser::FuncExprContext::getRuleIndex() const {
\r
2270 return TocParser::RuleFuncExpr;
\r
2273 void TocParser::FuncExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2274 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2275 if (parserListener != nullptr)
\r
2276 parserListener->enterFuncExpr(this);
\r
2279 void TocParser::FuncExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2280 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2281 if (parserListener != nullptr)
\r
2282 parserListener->exitFuncExpr(this);
\r
2285 TocParser::FuncExprContext* TocParser::funcExpr() {
\r
2286 FuncExprContext *_localctx = _tracker.createInstance<FuncExprContext>(_ctx, getState());
\r
2287 enterRule(_localctx, 58, TocParser::RuleFuncExpr);
\r
2290 #if __cplusplus > 201703L
\r
2291 auto onExit = finally([=, this] {
\r
2293 auto onExit = finally([=] {
\r
2298 enterOuterAlt(_localctx, 1);
\r
2302 match(TocParser::T__8);
\r
2304 _errHandler->sync(this);
\r
2306 _la = _input->LA(1);
\r
2307 if ((((_la & ~ 0x3fULL) == 0) &&
\r
2308 ((1ULL << _la) & ((1ULL << TocParser::T__4)
\r
2309 | (1ULL << TocParser::T__8)
\r
2310 | (1ULL << TocParser::T__24)
\r
2311 | (1ULL << TocParser::T__25)
\r
2312 | (1ULL << TocParser::T__26)
\r
2313 | (1ULL << TocParser::T__27)
\r
2314 | (1ULL << TocParser::T__28)
\r
2315 | (1ULL << TocParser::T__29)
\r
2316 | (1ULL << TocParser::T__30)
\r
2317 | (1ULL << TocParser::INT_LIT)
\r
2318 | (1ULL << TocParser::DECIMAL_LIT)
\r
2319 | (1ULL << TocParser::STRING_LIT)
\r
2320 | (1ULL << TocParser::BOOL_LIT)
\r
2321 | (1ULL << TocParser::NAME))) != 0)) {
\r
2325 _errHandler->sync(this);
\r
2326 _la = _input->LA(1);
\r
2327 while (_la == TocParser::T__10) {
\r
2329 match(TocParser::T__10);
\r
2333 _errHandler->sync(this);
\r
2334 _la = _input->LA(1);
\r
2338 match(TocParser::T__9);
\r
2341 catch (RecognitionException &e) {
\r
2342 _errHandler->reportError(this, e);
\r
2343 _localctx->exception = std::current_exception();
\r
2344 _errHandler->recover(this, _localctx->exception);
\r
2350 //----------------- OpExprContext ------------------------------------------------------------------
\r
2352 TocParser::OpExprContext::OpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2353 : ParserRuleContext(parent, invokingState) {
\r
2356 TocParser::BinaryOpContext* TocParser::OpExprContext::binaryOp() {
\r
2357 return getRuleContext<TocParser::BinaryOpContext>(0);
\r
2360 TocParser::PrefixOpContext* TocParser::OpExprContext::prefixOp() {
\r
2361 return getRuleContext<TocParser::PrefixOpContext>(0);
\r
2364 TocParser::PostfixOpContext* TocParser::OpExprContext::postfixOp() {
\r
2365 return getRuleContext<TocParser::PostfixOpContext>(0);
\r
2368 TocParser::TernaryOpContext* TocParser::OpExprContext::ternaryOp() {
\r
2369 return getRuleContext<TocParser::TernaryOpContext>(0);
\r
2373 size_t TocParser::OpExprContext::getRuleIndex() const {
\r
2374 return TocParser::RuleOpExpr;
\r
2377 void TocParser::OpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2378 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2379 if (parserListener != nullptr)
\r
2380 parserListener->enterOpExpr(this);
\r
2383 void TocParser::OpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2384 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2385 if (parserListener != nullptr)
\r
2386 parserListener->exitOpExpr(this);
\r
2389 TocParser::OpExprContext* TocParser::opExpr() {
\r
2390 OpExprContext *_localctx = _tracker.createInstance<OpExprContext>(_ctx, getState());
\r
2391 enterRule(_localctx, 60, TocParser::RuleOpExpr);
\r
2393 #if __cplusplus > 201703L
\r
2394 auto onExit = finally([=, this] {
\r
2396 auto onExit = finally([=] {
\r
2402 _errHandler->sync(this);
\r
2403 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 21, _ctx)) {
\r
2405 enterOuterAlt(_localctx, 1);
\r
2412 enterOuterAlt(_localctx, 2);
\r
2419 enterOuterAlt(_localctx, 3);
\r
2426 enterOuterAlt(_localctx, 4);
\r
2437 catch (RecognitionException &e) {
\r
2438 _errHandler->reportError(this, e);
\r
2439 _localctx->exception = std::current_exception();
\r
2440 _errHandler->recover(this, _localctx->exception);
\r
2446 //----------------- BinaryOpContext ------------------------------------------------------------------
\r
2448 TocParser::BinaryOpContext::BinaryOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2449 : ParserRuleContext(parent, invokingState) {
\r
2452 std::vector<TocParser::NonOpExprContext *> TocParser::BinaryOpContext::nonOpExpr() {
\r
2453 return getRuleContexts<TocParser::NonOpExprContext>();
\r
2456 TocParser::NonOpExprContext* TocParser::BinaryOpContext::nonOpExpr(size_t i) {
\r
2457 return getRuleContext<TocParser::NonOpExprContext>(i);
\r
2460 std::vector<TocParser::Binary_opContext *> TocParser::BinaryOpContext::binary_op() {
\r
2461 return getRuleContexts<TocParser::Binary_opContext>();
\r
2464 TocParser::Binary_opContext* TocParser::BinaryOpContext::binary_op(size_t i) {
\r
2465 return getRuleContext<TocParser::Binary_opContext>(i);
\r
2469 size_t TocParser::BinaryOpContext::getRuleIndex() const {
\r
2470 return TocParser::RuleBinaryOp;
\r
2473 void TocParser::BinaryOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2474 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2475 if (parserListener != nullptr)
\r
2476 parserListener->enterBinaryOp(this);
\r
2479 void TocParser::BinaryOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2480 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2481 if (parserListener != nullptr)
\r
2482 parserListener->exitBinaryOp(this);
\r
2485 TocParser::BinaryOpContext* TocParser::binaryOp() {
\r
2486 BinaryOpContext *_localctx = _tracker.createInstance<BinaryOpContext>(_ctx, getState());
\r
2487 enterRule(_localctx, 62, TocParser::RuleBinaryOp);
\r
2490 #if __cplusplus > 201703L
\r
2491 auto onExit = finally([=, this] {
\r
2493 auto onExit = finally([=] {
\r
2498 enterOuterAlt(_localctx, 1);
\r
2506 _errHandler->sync(this);
\r
2507 _la = _input->LA(1);
\r
2508 while ((((_la & ~ 0x3fULL) == 0) &&
\r
2509 ((1ULL << _la) & ((1ULL << TocParser::T__4)
\r
2510 | (1ULL << TocParser::T__26)
\r
2511 | (1ULL << TocParser::T__27)
\r
2512 | (1ULL << TocParser::T__30)
\r
2513 | (1ULL << TocParser::T__31)
\r
2514 | (1ULL << TocParser::T__32)
\r
2515 | (1ULL << TocParser::T__33)
\r
2516 | (1ULL << TocParser::T__34)
\r
2517 | (1ULL << TocParser::T__35)
\r
2518 | (1ULL << TocParser::T__36)
\r
2519 | (1ULL << TocParser::T__37)
\r
2520 | (1ULL << TocParser::T__38)
\r
2521 | (1ULL << TocParser::T__39)
\r
2522 | (1ULL << TocParser::T__40)
\r
2523 | (1ULL << TocParser::T__41)
\r
2524 | (1ULL << TocParser::T__42)
\r
2525 | (1ULL << TocParser::T__43)
\r
2526 | (1ULL << TocParser::T__44)
\r
2527 | (1ULL << TocParser::T__45)
\r
2528 | (1ULL << TocParser::T__46)
\r
2529 | (1ULL << TocParser::T__47)
\r
2530 | (1ULL << TocParser::T__48)
\r
2531 | (1ULL << TocParser::T__49)
\r
2532 | (1ULL << TocParser::T__50)
\r
2533 | (1ULL << TocParser::T__51)
\r
2534 | (1ULL << TocParser::T__52)
\r
2535 | (1ULL << TocParser::T__53)
\r
2536 | (1ULL << TocParser::T__54))) != 0)) {
\r
2542 _errHandler->sync(this);
\r
2543 _la = _input->LA(1);
\r
2547 catch (RecognitionException &e) {
\r
2548 _errHandler->reportError(this, e);
\r
2549 _localctx->exception = std::current_exception();
\r
2550 _errHandler->recover(this, _localctx->exception);
\r
2556 //----------------- PrefixOpContext ------------------------------------------------------------------
\r
2558 TocParser::PrefixOpContext::PrefixOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2559 : ParserRuleContext(parent, invokingState) {
\r
2562 TocParser::Prefix_opContext* TocParser::PrefixOpContext::prefix_op() {
\r
2563 return getRuleContext<TocParser::Prefix_opContext>(0);
\r
2566 TocParser::NonOpExprContext* TocParser::PrefixOpContext::nonOpExpr() {
\r
2567 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2571 size_t TocParser::PrefixOpContext::getRuleIndex() const {
\r
2572 return TocParser::RulePrefixOp;
\r
2575 void TocParser::PrefixOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2576 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2577 if (parserListener != nullptr)
\r
2578 parserListener->enterPrefixOp(this);
\r
2581 void TocParser::PrefixOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2582 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2583 if (parserListener != nullptr)
\r
2584 parserListener->exitPrefixOp(this);
\r
2587 TocParser::PrefixOpContext* TocParser::prefixOp() {
\r
2588 PrefixOpContext *_localctx = _tracker.createInstance<PrefixOpContext>(_ctx, getState());
\r
2589 enterRule(_localctx, 64, TocParser::RulePrefixOp);
\r
2591 #if __cplusplus > 201703L
\r
2592 auto onExit = finally([=, this] {
\r
2594 auto onExit = finally([=] {
\r
2599 enterOuterAlt(_localctx, 1);
\r
2606 catch (RecognitionException &e) {
\r
2607 _errHandler->reportError(this, e);
\r
2608 _localctx->exception = std::current_exception();
\r
2609 _errHandler->recover(this, _localctx->exception);
\r
2615 //----------------- PostfixOpContext ------------------------------------------------------------------
\r
2617 TocParser::PostfixOpContext::PostfixOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2618 : ParserRuleContext(parent, invokingState) {
\r
2621 TocParser::NonOpExprContext* TocParser::PostfixOpContext::nonOpExpr() {
\r
2622 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2625 TocParser::Postfix_opContext* TocParser::PostfixOpContext::postfix_op() {
\r
2626 return getRuleContext<TocParser::Postfix_opContext>(0);
\r
2630 size_t TocParser::PostfixOpContext::getRuleIndex() const {
\r
2631 return TocParser::RulePostfixOp;
\r
2634 void TocParser::PostfixOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2635 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2636 if (parserListener != nullptr)
\r
2637 parserListener->enterPostfixOp(this);
\r
2640 void TocParser::PostfixOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2641 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2642 if (parserListener != nullptr)
\r
2643 parserListener->exitPostfixOp(this);
\r
2646 TocParser::PostfixOpContext* TocParser::postfixOp() {
\r
2647 PostfixOpContext *_localctx = _tracker.createInstance<PostfixOpContext>(_ctx, getState());
\r
2648 enterRule(_localctx, 66, TocParser::RulePostfixOp);
\r
2650 #if __cplusplus > 201703L
\r
2651 auto onExit = finally([=, this] {
\r
2653 auto onExit = finally([=] {
\r
2658 enterOuterAlt(_localctx, 1);
\r
2665 catch (RecognitionException &e) {
\r
2666 _errHandler->reportError(this, e);
\r
2667 _localctx->exception = std::current_exception();
\r
2668 _errHandler->recover(this, _localctx->exception);
\r
2674 //----------------- TernaryOpContext ------------------------------------------------------------------
\r
2676 TocParser::TernaryOpContext::TernaryOpContext(ParserRuleContext *parent, size_t invokingState)
\r
2677 : ParserRuleContext(parent, invokingState) {
\r
2680 TocParser::NonOpExprContext* TocParser::TernaryOpContext::nonOpExpr() {
\r
2681 return getRuleContext<TocParser::NonOpExprContext>(0);
\r
2684 std::vector<TocParser::ExprContext *> TocParser::TernaryOpContext::expr() {
\r
2685 return getRuleContexts<TocParser::ExprContext>();
\r
2688 TocParser::ExprContext* TocParser::TernaryOpContext::expr(size_t i) {
\r
2689 return getRuleContext<TocParser::ExprContext>(i);
\r
2693 size_t TocParser::TernaryOpContext::getRuleIndex() const {
\r
2694 return TocParser::RuleTernaryOp;
\r
2697 void TocParser::TernaryOpContext::enterRule(tree::ParseTreeListener *listener) {
\r
2698 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2699 if (parserListener != nullptr)
\r
2700 parserListener->enterTernaryOp(this);
\r
2703 void TocParser::TernaryOpContext::exitRule(tree::ParseTreeListener *listener) {
\r
2704 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2705 if (parserListener != nullptr)
\r
2706 parserListener->exitTernaryOp(this);
\r
2709 TocParser::TernaryOpContext* TocParser::ternaryOp() {
\r
2710 TernaryOpContext *_localctx = _tracker.createInstance<TernaryOpContext>(_ctx, getState());
\r
2711 enterRule(_localctx, 68, TocParser::RuleTernaryOp);
\r
2713 #if __cplusplus > 201703L
\r
2714 auto onExit = finally([=, this] {
\r
2716 auto onExit = finally([=] {
\r
2721 enterOuterAlt(_localctx, 1);
\r
2725 match(TocParser::T__21);
\r
2729 match(TocParser::T__2);
\r
2734 catch (RecognitionException &e) {
\r
2735 _errHandler->reportError(this, e);
\r
2736 _localctx->exception = std::current_exception();
\r
2737 _errHandler->recover(this, _localctx->exception);
\r
2743 //----------------- IdentifierExprContext ------------------------------------------------------------------
\r
2745 TocParser::IdentifierExprContext::IdentifierExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2746 : ParserRuleContext(parent, invokingState) {
\r
2749 TocParser::VarNameContext* TocParser::IdentifierExprContext::varName() {
\r
2750 return getRuleContext<TocParser::VarNameContext>(0);
\r
2754 size_t TocParser::IdentifierExprContext::getRuleIndex() const {
\r
2755 return TocParser::RuleIdentifierExpr;
\r
2758 void TocParser::IdentifierExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2759 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2760 if (parserListener != nullptr)
\r
2761 parserListener->enterIdentifierExpr(this);
\r
2764 void TocParser::IdentifierExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2765 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2766 if (parserListener != nullptr)
\r
2767 parserListener->exitIdentifierExpr(this);
\r
2770 TocParser::IdentifierExprContext* TocParser::identifierExpr() {
\r
2771 IdentifierExprContext *_localctx = _tracker.createInstance<IdentifierExprContext>(_ctx, getState());
\r
2772 enterRule(_localctx, 70, TocParser::RuleIdentifierExpr);
\r
2774 #if __cplusplus > 201703L
\r
2775 auto onExit = finally([=, this] {
\r
2777 auto onExit = finally([=] {
\r
2782 enterOuterAlt(_localctx, 1);
\r
2787 catch (RecognitionException &e) {
\r
2788 _errHandler->reportError(this, e);
\r
2789 _localctx->exception = std::current_exception();
\r
2790 _errHandler->recover(this, _localctx->exception);
\r
2796 //----------------- LitExprContext ------------------------------------------------------------------
\r
2798 TocParser::LitExprContext::LitExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2799 : ParserRuleContext(parent, invokingState) {
\r
2802 tree::TerminalNode* TocParser::LitExprContext::INT_LIT() {
\r
2803 return getToken(TocParser::INT_LIT, 0);
\r
2806 tree::TerminalNode* TocParser::LitExprContext::DECIMAL_LIT() {
\r
2807 return getToken(TocParser::DECIMAL_LIT, 0);
\r
2810 tree::TerminalNode* TocParser::LitExprContext::STRING_LIT() {
\r
2811 return getToken(TocParser::STRING_LIT, 0);
\r
2814 tree::TerminalNode* TocParser::LitExprContext::BOOL_LIT() {
\r
2815 return getToken(TocParser::BOOL_LIT, 0);
\r
2819 size_t TocParser::LitExprContext::getRuleIndex() const {
\r
2820 return TocParser::RuleLitExpr;
\r
2823 void TocParser::LitExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2824 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2825 if (parserListener != nullptr)
\r
2826 parserListener->enterLitExpr(this);
\r
2829 void TocParser::LitExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2830 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2831 if (parserListener != nullptr)
\r
2832 parserListener->exitLitExpr(this);
\r
2835 TocParser::LitExprContext* TocParser::litExpr() {
\r
2836 LitExprContext *_localctx = _tracker.createInstance<LitExprContext>(_ctx, getState());
\r
2837 enterRule(_localctx, 72, TocParser::RuleLitExpr);
\r
2840 #if __cplusplus > 201703L
\r
2841 auto onExit = finally([=, this] {
\r
2843 auto onExit = finally([=] {
\r
2848 enterOuterAlt(_localctx, 1);
\r
2850 _la = _input->LA(1);
\r
2851 if (!((((_la & ~ 0x3fULL) == 0) &&
\r
2852 ((1ULL << _la) & ((1ULL << TocParser::INT_LIT)
\r
2853 | (1ULL << TocParser::DECIMAL_LIT)
\r
2854 | (1ULL << TocParser::STRING_LIT)
\r
2855 | (1ULL << TocParser::BOOL_LIT))) != 0))) {
\r
2856 _errHandler->recoverInline(this);
\r
2859 _errHandler->reportMatch(this);
\r
2864 catch (RecognitionException &e) {
\r
2865 _errHandler->reportError(this, e);
\r
2866 _localctx->exception = std::current_exception();
\r
2867 _errHandler->recover(this, _localctx->exception);
\r
2873 //----------------- AccessExprContext ------------------------------------------------------------------
\r
2875 TocParser::AccessExprContext::AccessExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2876 : ParserRuleContext(parent, invokingState) {
\r
2879 TocParser::NonAccessExprContext* TocParser::AccessExprContext::nonAccessExpr() {
\r
2880 return getRuleContext<TocParser::NonAccessExprContext>(0);
\r
2883 std::vector<TocParser::AccessSubExprContext *> TocParser::AccessExprContext::accessSubExpr() {
\r
2884 return getRuleContexts<TocParser::AccessSubExprContext>();
\r
2887 TocParser::AccessSubExprContext* TocParser::AccessExprContext::accessSubExpr(size_t i) {
\r
2888 return getRuleContext<TocParser::AccessSubExprContext>(i);
\r
2892 size_t TocParser::AccessExprContext::getRuleIndex() const {
\r
2893 return TocParser::RuleAccessExpr;
\r
2896 void TocParser::AccessExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2897 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2898 if (parserListener != nullptr)
\r
2899 parserListener->enterAccessExpr(this);
\r
2902 void TocParser::AccessExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2903 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2904 if (parserListener != nullptr)
\r
2905 parserListener->exitAccessExpr(this);
\r
2908 TocParser::AccessExprContext* TocParser::accessExpr() {
\r
2909 AccessExprContext *_localctx = _tracker.createInstance<AccessExprContext>(_ctx, getState());
\r
2910 enterRule(_localctx, 74, TocParser::RuleAccessExpr);
\r
2913 #if __cplusplus > 201703L
\r
2914 auto onExit = finally([=, this] {
\r
2916 auto onExit = finally([=] {
\r
2921 enterOuterAlt(_localctx, 1);
\r
2925 _errHandler->sync(this);
\r
2926 _la = _input->LA(1);
\r
2931 _errHandler->sync(this);
\r
2932 _la = _input->LA(1);
\r
2933 } while ((((_la & ~ 0x3fULL) == 0) &&
\r
2934 ((1ULL << _la) & ((1ULL << TocParser::T__5)
\r
2935 | (1ULL << TocParser::T__22)
\r
2936 | (1ULL << TocParser::T__23))) != 0));
\r
2939 catch (RecognitionException &e) {
\r
2940 _errHandler->reportError(this, e);
\r
2941 _localctx->exception = std::current_exception();
\r
2942 _errHandler->recover(this, _localctx->exception);
\r
2948 //----------------- AccessSubExprContext ------------------------------------------------------------------
\r
2950 TocParser::AccessSubExprContext::AccessSubExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2951 : ParserRuleContext(parent, invokingState) {
\r
2954 TocParser::AccessMemberContext* TocParser::AccessSubExprContext::accessMember() {
\r
2955 return getRuleContext<TocParser::AccessMemberContext>(0);
\r
2958 TocParser::AccessBracketsContext* TocParser::AccessSubExprContext::accessBrackets() {
\r
2959 return getRuleContext<TocParser::AccessBracketsContext>(0);
\r
2963 size_t TocParser::AccessSubExprContext::getRuleIndex() const {
\r
2964 return TocParser::RuleAccessSubExpr;
\r
2967 void TocParser::AccessSubExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2968 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2969 if (parserListener != nullptr)
\r
2970 parserListener->enterAccessSubExpr(this);
\r
2973 void TocParser::AccessSubExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2974 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2975 if (parserListener != nullptr)
\r
2976 parserListener->exitAccessSubExpr(this);
\r
2979 TocParser::AccessSubExprContext* TocParser::accessSubExpr() {
\r
2980 AccessSubExprContext *_localctx = _tracker.createInstance<AccessSubExprContext>(_ctx, getState());
\r
2981 enterRule(_localctx, 76, TocParser::RuleAccessSubExpr);
\r
2983 #if __cplusplus > 201703L
\r
2984 auto onExit = finally([=, this] {
\r
2986 auto onExit = finally([=] {
\r
2992 _errHandler->sync(this);
\r
2993 switch (_input->LA(1)) {
\r
2994 case TocParser::T__22:
\r
2995 case TocParser::T__23: {
\r
2996 enterOuterAlt(_localctx, 1);
\r
3002 case TocParser::T__5: {
\r
3003 enterOuterAlt(_localctx, 2);
\r
3010 throw NoViableAltException(this);
\r
3014 catch (RecognitionException &e) {
\r
3015 _errHandler->reportError(this, e);
\r
3016 _localctx->exception = std::current_exception();
\r
3017 _errHandler->recover(this, _localctx->exception);
\r
3023 //----------------- AccessMemberContext ------------------------------------------------------------------
\r
3025 TocParser::AccessMemberContext::AccessMemberContext(ParserRuleContext *parent, size_t invokingState)
\r
3026 : ParserRuleContext(parent, invokingState) {
\r
3029 TocParser::IdentifierExprContext* TocParser::AccessMemberContext::identifierExpr() {
\r
3030 return getRuleContext<TocParser::IdentifierExprContext>(0);
\r
3034 size_t TocParser::AccessMemberContext::getRuleIndex() const {
\r
3035 return TocParser::RuleAccessMember;
\r
3038 void TocParser::AccessMemberContext::enterRule(tree::ParseTreeListener *listener) {
\r
3039 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3040 if (parserListener != nullptr)
\r
3041 parserListener->enterAccessMember(this);
\r
3044 void TocParser::AccessMemberContext::exitRule(tree::ParseTreeListener *listener) {
\r
3045 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3046 if (parserListener != nullptr)
\r
3047 parserListener->exitAccessMember(this);
\r
3050 TocParser::AccessMemberContext* TocParser::accessMember() {
\r
3051 AccessMemberContext *_localctx = _tracker.createInstance<AccessMemberContext>(_ctx, getState());
\r
3052 enterRule(_localctx, 78, TocParser::RuleAccessMember);
\r
3055 #if __cplusplus > 201703L
\r
3056 auto onExit = finally([=, this] {
\r
3058 auto onExit = finally([=] {
\r
3063 enterOuterAlt(_localctx, 1);
\r
3065 _la = _input->LA(1);
\r
3066 if (!(_la == TocParser::T__22
\r
3068 || _la == TocParser::T__23)) {
\r
3069 _errHandler->recoverInline(this);
\r
3072 _errHandler->reportMatch(this);
\r
3079 catch (RecognitionException &e) {
\r
3080 _errHandler->reportError(this, e);
\r
3081 _localctx->exception = std::current_exception();
\r
3082 _errHandler->recover(this, _localctx->exception);
\r
3088 //----------------- AccessBracketsContext ------------------------------------------------------------------
\r
3090 TocParser::AccessBracketsContext::AccessBracketsContext(ParserRuleContext *parent, size_t invokingState)
\r
3091 : ParserRuleContext(parent, invokingState) {
\r
3094 TocParser::ExprContext* TocParser::AccessBracketsContext::expr() {
\r
3095 return getRuleContext<TocParser::ExprContext>(0);
\r
3099 size_t TocParser::AccessBracketsContext::getRuleIndex() const {
\r
3100 return TocParser::RuleAccessBrackets;
\r
3103 void TocParser::AccessBracketsContext::enterRule(tree::ParseTreeListener *listener) {
\r
3104 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3105 if (parserListener != nullptr)
\r
3106 parserListener->enterAccessBrackets(this);
\r
3109 void TocParser::AccessBracketsContext::exitRule(tree::ParseTreeListener *listener) {
\r
3110 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3111 if (parserListener != nullptr)
\r
3112 parserListener->exitAccessBrackets(this);
\r
3115 TocParser::AccessBracketsContext* TocParser::accessBrackets() {
\r
3116 AccessBracketsContext *_localctx = _tracker.createInstance<AccessBracketsContext>(_ctx, getState());
\r
3117 enterRule(_localctx, 80, TocParser::RuleAccessBrackets);
\r
3119 #if __cplusplus > 201703L
\r
3120 auto onExit = finally([=, this] {
\r
3122 auto onExit = finally([=] {
\r
3127 enterOuterAlt(_localctx, 1);
\r
3129 match(TocParser::T__5);
\r
3133 match(TocParser::T__6);
\r
3136 catch (RecognitionException &e) {
\r
3137 _errHandler->reportError(this, e);
\r
3138 _localctx->exception = std::current_exception();
\r
3139 _errHandler->recover(this, _localctx->exception);
\r
3145 //----------------- ParenExprContext ------------------------------------------------------------------
\r
3147 TocParser::ParenExprContext::ParenExprContext(ParserRuleContext *parent, size_t invokingState)
\r
3148 : ParserRuleContext(parent, invokingState) {
\r
3151 TocParser::ExprContext* TocParser::ParenExprContext::expr() {
\r
3152 return getRuleContext<TocParser::ExprContext>(0);
\r
3156 size_t TocParser::ParenExprContext::getRuleIndex() const {
\r
3157 return TocParser::RuleParenExpr;
\r
3160 void TocParser::ParenExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
3161 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3162 if (parserListener != nullptr)
\r
3163 parserListener->enterParenExpr(this);
\r
3166 void TocParser::ParenExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
3167 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3168 if (parserListener != nullptr)
\r
3169 parserListener->exitParenExpr(this);
\r
3172 TocParser::ParenExprContext* TocParser::parenExpr() {
\r
3173 ParenExprContext *_localctx = _tracker.createInstance<ParenExprContext>(_ctx, getState());
\r
3174 enterRule(_localctx, 82, TocParser::RuleParenExpr);
\r
3176 #if __cplusplus > 201703L
\r
3177 auto onExit = finally([=, this] {
\r
3179 auto onExit = finally([=] {
\r
3184 enterOuterAlt(_localctx, 1);
\r
3186 match(TocParser::T__8);
\r
3190 match(TocParser::T__9);
\r
3193 catch (RecognitionException &e) {
\r
3194 _errHandler->reportError(this, e);
\r
3195 _localctx->exception = std::current_exception();
\r
3196 _errHandler->recover(this, _localctx->exception);
\r
3202 //----------------- FuncNameContext ------------------------------------------------------------------
\r
3204 TocParser::FuncNameContext::FuncNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3205 : ParserRuleContext(parent, invokingState) {
\r
3208 tree::TerminalNode* TocParser::FuncNameContext::NAME() {
\r
3209 return getToken(TocParser::NAME, 0);
\r
3213 size_t TocParser::FuncNameContext::getRuleIndex() const {
\r
3214 return TocParser::RuleFuncName;
\r
3217 void TocParser::FuncNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3218 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3219 if (parserListener != nullptr)
\r
3220 parserListener->enterFuncName(this);
\r
3223 void TocParser::FuncNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3224 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3225 if (parserListener != nullptr)
\r
3226 parserListener->exitFuncName(this);
\r
3229 TocParser::FuncNameContext* TocParser::funcName() {
\r
3230 FuncNameContext *_localctx = _tracker.createInstance<FuncNameContext>(_ctx, getState());
\r
3231 enterRule(_localctx, 84, TocParser::RuleFuncName);
\r
3233 #if __cplusplus > 201703L
\r
3234 auto onExit = finally([=, this] {
\r
3236 auto onExit = finally([=] {
\r
3241 enterOuterAlt(_localctx, 1);
\r
3243 match(TocParser::NAME);
\r
3246 catch (RecognitionException &e) {
\r
3247 _errHandler->reportError(this, e);
\r
3248 _localctx->exception = std::current_exception();
\r
3249 _errHandler->recover(this, _localctx->exception);
\r
3255 //----------------- VarNameContext ------------------------------------------------------------------
\r
3257 TocParser::VarNameContext::VarNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3258 : ParserRuleContext(parent, invokingState) {
\r
3261 tree::TerminalNode* TocParser::VarNameContext::NAME() {
\r
3262 return getToken(TocParser::NAME, 0);
\r
3266 size_t TocParser::VarNameContext::getRuleIndex() const {
\r
3267 return TocParser::RuleVarName;
\r
3270 void TocParser::VarNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3271 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3272 if (parserListener != nullptr)
\r
3273 parserListener->enterVarName(this);
\r
3276 void TocParser::VarNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3277 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3278 if (parserListener != nullptr)
\r
3279 parserListener->exitVarName(this);
\r
3282 TocParser::VarNameContext* TocParser::varName() {
\r
3283 VarNameContext *_localctx = _tracker.createInstance<VarNameContext>(_ctx, getState());
\r
3284 enterRule(_localctx, 86, TocParser::RuleVarName);
\r
3286 #if __cplusplus > 201703L
\r
3287 auto onExit = finally([=, this] {
\r
3289 auto onExit = finally([=] {
\r
3294 enterOuterAlt(_localctx, 1);
\r
3296 match(TocParser::NAME);
\r
3299 catch (RecognitionException &e) {
\r
3300 _errHandler->reportError(this, e);
\r
3301 _localctx->exception = std::current_exception();
\r
3302 _errHandler->recover(this, _localctx->exception);
\r
3308 //----------------- TypeNameContext ------------------------------------------------------------------
\r
3310 TocParser::TypeNameContext::TypeNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3311 : ParserRuleContext(parent, invokingState) {
\r
3314 tree::TerminalNode* TocParser::TypeNameContext::NAME() {
\r
3315 return getToken(TocParser::NAME, 0);
\r
3319 size_t TocParser::TypeNameContext::getRuleIndex() const {
\r
3320 return TocParser::RuleTypeName;
\r
3323 void TocParser::TypeNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3324 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3325 if (parserListener != nullptr)
\r
3326 parserListener->enterTypeName(this);
\r
3329 void TocParser::TypeNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3330 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3331 if (parserListener != nullptr)
\r
3332 parserListener->exitTypeName(this);
\r
3335 TocParser::TypeNameContext* TocParser::typeName() {
\r
3336 TypeNameContext *_localctx = _tracker.createInstance<TypeNameContext>(_ctx, getState());
\r
3337 enterRule(_localctx, 88, TocParser::RuleTypeName);
\r
3339 #if __cplusplus > 201703L
\r
3340 auto onExit = finally([=, this] {
\r
3342 auto onExit = finally([=] {
\r
3347 enterOuterAlt(_localctx, 1);
\r
3349 match(TocParser::NAME);
\r
3352 catch (RecognitionException &e) {
\r
3353 _errHandler->reportError(this, e);
\r
3354 _localctx->exception = std::current_exception();
\r
3355 _errHandler->recover(this, _localctx->exception);
\r
3361 //----------------- StructNameContext ------------------------------------------------------------------
\r
3363 TocParser::StructNameContext::StructNameContext(ParserRuleContext *parent, size_t invokingState)
\r
3364 : ParserRuleContext(parent, invokingState) {
\r
3367 tree::TerminalNode* TocParser::StructNameContext::NAME() {
\r
3368 return getToken(TocParser::NAME, 0);
\r
3372 size_t TocParser::StructNameContext::getRuleIndex() const {
\r
3373 return TocParser::RuleStructName;
\r
3376 void TocParser::StructNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
3377 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3378 if (parserListener != nullptr)
\r
3379 parserListener->enterStructName(this);
\r
3382 void TocParser::StructNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
3383 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3384 if (parserListener != nullptr)
\r
3385 parserListener->exitStructName(this);
\r
3388 TocParser::StructNameContext* TocParser::structName() {
\r
3389 StructNameContext *_localctx = _tracker.createInstance<StructNameContext>(_ctx, getState());
\r
3390 enterRule(_localctx, 90, TocParser::RuleStructName);
\r
3392 #if __cplusplus > 201703L
\r
3393 auto onExit = finally([=, this] {
\r
3395 auto onExit = finally([=] {
\r
3400 enterOuterAlt(_localctx, 1);
\r
3402 match(TocParser::NAME);
\r
3405 catch (RecognitionException &e) {
\r
3406 _errHandler->reportError(this, e);
\r
3407 _localctx->exception = std::current_exception();
\r
3408 _errHandler->recover(this, _localctx->exception);
\r
3414 //----------------- Postfix_opContext ------------------------------------------------------------------
\r
3416 TocParser::Postfix_opContext::Postfix_opContext(ParserRuleContext *parent, size_t invokingState)
\r
3417 : ParserRuleContext(parent, invokingState) {
\r
3421 size_t TocParser::Postfix_opContext::getRuleIndex() const {
\r
3422 return TocParser::RulePostfix_op;
\r
3425 void TocParser::Postfix_opContext::enterRule(tree::ParseTreeListener *listener) {
\r
3426 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3427 if (parserListener != nullptr)
\r
3428 parserListener->enterPostfix_op(this);
\r
3431 void TocParser::Postfix_opContext::exitRule(tree::ParseTreeListener *listener) {
\r
3432 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3433 if (parserListener != nullptr)
\r
3434 parserListener->exitPostfix_op(this);
\r
3437 TocParser::Postfix_opContext* TocParser::postfix_op() {
\r
3438 Postfix_opContext *_localctx = _tracker.createInstance<Postfix_opContext>(_ctx, getState());
\r
3439 enterRule(_localctx, 92, TocParser::RulePostfix_op);
\r
3442 #if __cplusplus > 201703L
\r
3443 auto onExit = finally([=, this] {
\r
3445 auto onExit = finally([=] {
\r
3450 enterOuterAlt(_localctx, 1);
\r
3452 _la = _input->LA(1);
\r
3453 if (!(_la == TocParser::T__24
\r
3455 || _la == TocParser::T__25)) {
\r
3456 _errHandler->recoverInline(this);
\r
3459 _errHandler->reportMatch(this);
\r
3464 catch (RecognitionException &e) {
\r
3465 _errHandler->reportError(this, e);
\r
3466 _localctx->exception = std::current_exception();
\r
3467 _errHandler->recover(this, _localctx->exception);
\r
3473 //----------------- Prefix_opContext ------------------------------------------------------------------
\r
3475 TocParser::Prefix_opContext::Prefix_opContext(ParserRuleContext *parent, size_t invokingState)
\r
3476 : ParserRuleContext(parent, invokingState) {
\r
3479 TocParser::Postfix_opContext* TocParser::Prefix_opContext::postfix_op() {
\r
3480 return getRuleContext<TocParser::Postfix_opContext>(0);
\r
3484 size_t TocParser::Prefix_opContext::getRuleIndex() const {
\r
3485 return TocParser::RulePrefix_op;
\r
3488 void TocParser::Prefix_opContext::enterRule(tree::ParseTreeListener *listener) {
\r
3489 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3490 if (parserListener != nullptr)
\r
3491 parserListener->enterPrefix_op(this);
\r
3494 void TocParser::Prefix_opContext::exitRule(tree::ParseTreeListener *listener) {
\r
3495 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3496 if (parserListener != nullptr)
\r
3497 parserListener->exitPrefix_op(this);
\r
3500 TocParser::Prefix_opContext* TocParser::prefix_op() {
\r
3501 Prefix_opContext *_localctx = _tracker.createInstance<Prefix_opContext>(_ctx, getState());
\r
3502 enterRule(_localctx, 94, TocParser::RulePrefix_op);
\r
3504 #if __cplusplus > 201703L
\r
3505 auto onExit = finally([=, this] {
\r
3507 auto onExit = finally([=] {
\r
3513 _errHandler->sync(this);
\r
3514 switch (_input->LA(1)) {
\r
3515 case TocParser::T__26: {
\r
3516 enterOuterAlt(_localctx, 1);
\r
3518 match(TocParser::T__26);
\r
3522 case TocParser::T__27: {
\r
3523 enterOuterAlt(_localctx, 2);
\r
3525 match(TocParser::T__27);
\r
3529 case TocParser::T__28: {
\r
3530 enterOuterAlt(_localctx, 3);
\r
3532 match(TocParser::T__28);
\r
3536 case TocParser::T__29: {
\r
3537 enterOuterAlt(_localctx, 4);
\r
3539 match(TocParser::T__29);
\r
3543 case TocParser::T__30: {
\r
3544 enterOuterAlt(_localctx, 5);
\r
3546 match(TocParser::T__30);
\r
3550 case TocParser::T__4: {
\r
3551 enterOuterAlt(_localctx, 6);
\r
3553 match(TocParser::T__4);
\r
3557 case TocParser::T__24:
\r
3558 case TocParser::T__25: {
\r
3559 enterOuterAlt(_localctx, 7);
\r
3566 throw NoViableAltException(this);
\r
3570 catch (RecognitionException &e) {
\r
3571 _errHandler->reportError(this, e);
\r
3572 _localctx->exception = std::current_exception();
\r
3573 _errHandler->recover(this, _localctx->exception);
\r
3579 //----------------- Binary_opContext ------------------------------------------------------------------
\r
3581 TocParser::Binary_opContext::Binary_opContext(ParserRuleContext *parent, size_t invokingState)
\r
3582 : ParserRuleContext(parent, invokingState) {
\r
3586 size_t TocParser::Binary_opContext::getRuleIndex() const {
\r
3587 return TocParser::RuleBinary_op;
\r
3590 void TocParser::Binary_opContext::enterRule(tree::ParseTreeListener *listener) {
\r
3591 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3592 if (parserListener != nullptr)
\r
3593 parserListener->enterBinary_op(this);
\r
3596 void TocParser::Binary_opContext::exitRule(tree::ParseTreeListener *listener) {
\r
3597 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
3598 if (parserListener != nullptr)
\r
3599 parserListener->exitBinary_op(this);
\r
3602 TocParser::Binary_opContext* TocParser::binary_op() {
\r
3603 Binary_opContext *_localctx = _tracker.createInstance<Binary_opContext>(_ctx, getState());
\r
3604 enterRule(_localctx, 96, TocParser::RuleBinary_op);
\r
3607 #if __cplusplus > 201703L
\r
3608 auto onExit = finally([=, this] {
\r
3610 auto onExit = finally([=] {
\r
3615 enterOuterAlt(_localctx, 1);
\r
3617 _la = _input->LA(1);
\r
3618 if (!((((_la & ~ 0x3fULL) == 0) &&
\r
3619 ((1ULL << _la) & ((1ULL << TocParser::T__4)
\r
3620 | (1ULL << TocParser::T__26)
\r
3621 | (1ULL << TocParser::T__27)
\r
3622 | (1ULL << TocParser::T__30)
\r
3623 | (1ULL << TocParser::T__31)
\r
3624 | (1ULL << TocParser::T__32)
\r
3625 | (1ULL << TocParser::T__33)
\r
3626 | (1ULL << TocParser::T__34)
\r
3627 | (1ULL << TocParser::T__35)
\r
3628 | (1ULL << TocParser::T__36)
\r
3629 | (1ULL << TocParser::T__37)
\r
3630 | (1ULL << TocParser::T__38)
\r
3631 | (1ULL << TocParser::T__39)
\r
3632 | (1ULL << TocParser::T__40)
\r
3633 | (1ULL << TocParser::T__41)
\r
3634 | (1ULL << TocParser::T__42)
\r
3635 | (1ULL << TocParser::T__43)
\r
3636 | (1ULL << TocParser::T__44)
\r
3637 | (1ULL << TocParser::T__45)
\r
3638 | (1ULL << TocParser::T__46)
\r
3639 | (1ULL << TocParser::T__47)
\r
3640 | (1ULL << TocParser::T__48)
\r
3641 | (1ULL << TocParser::T__49)
\r
3642 | (1ULL << TocParser::T__50)
\r
3643 | (1ULL << TocParser::T__51)
\r
3644 | (1ULL << TocParser::T__52)
\r
3645 | (1ULL << TocParser::T__53)
\r
3646 | (1ULL << TocParser::T__54))) != 0))) {
\r
3647 _errHandler->recoverInline(this);
\r
3650 _errHandler->reportMatch(this);
\r
3655 catch (RecognitionException &e) {
\r
3656 _errHandler->reportError(this, e);
\r
3657 _localctx->exception = std::current_exception();
\r
3658 _errHandler->recover(this, _localctx->exception);
\r
3664 // Static vars and initialization.
\r
3665 std::vector<dfa::DFA> TocParser::_decisionToDFA;
\r
3666 atn::PredictionContextCache TocParser::_sharedContextCache;
\r
3668 // We own the ATN which in turn owns the ATN states.
\r
3669 atn::ATN TocParser::_atn;
\r
3670 std::vector<uint16_t> TocParser::_serializedATN;
\r
3672 std::vector<std::string> TocParser::_ruleNames = {
\r
3673 "prog", "decl", "varDecl", "var", "varInit", "type", "typeModifier", "funcDecl",
\r
3674 "func", "parameter", "body", "structDecl", "structMember", "structVar",
\r
3675 "structMethod", "stmt", "ifStmt", "elseIfStmt", "elseStmt", "switchStmt",
\r
3676 "switchBody", "switchCase", "forStmt", "whileStmt", "assignStmt", "returnStmt",
\r
3677 "expr", "nonOpExpr", "nonAccessExpr", "funcExpr", "opExpr", "binaryOp",
\r
3678 "prefixOp", "postfixOp", "ternaryOp", "identifierExpr", "litExpr", "accessExpr",
\r
3679 "accessSubExpr", "accessMember", "accessBrackets", "parenExpr", "funcName",
\r
3680 "varName", "typeName", "structName", "postfix_op", "prefix_op", "binary_op"
\r
3683 std::vector<std::string> TocParser::_literalNames = {
\r
3684 "", "';'", "'var'", "':'", "'='", "'*'", "'['", "']'", "'func'", "'('",
\r
3685 "')'", "','", "'{'", "'}'", "'struct'", "'if'", "'else'", "'switch'",
\r
3686 "'case'", "'for'", "'while'", "'return'", "'\u003F'", "'.'", "'->'", "'++'",
\r
3687 "'--'", "'+'", "'-'", "'!'", "'~'", "'&'", "'/'", "'%'", "'<'", "'|'",
\r
3688 "'^'", "'>'", "'=='", "'!='", "'<='", "'>='", "'<<'", "'>>'", "'||'",
\r
3689 "'&&'", "'&='", "'|='", "'^='", "'<<='", "'>>='", "'+='", "'-='", "'*='",
\r
3693 std::vector<std::string> TocParser::_symbolicNames = {
\r
3694 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
\r
3695 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
\r
3696 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
\r
3697 "", "", "INT_LIT", "DECIMAL_LIT", "STRING_LIT", "BOOL_LIT", "NAME", "WS",
\r
3701 dfa::Vocabulary TocParser::_vocabulary(_literalNames, _symbolicNames);
\r
3703 std::vector<std::string> TocParser::_tokenNames;
\r
3705 TocParser::Initializer::Initializer() {
\r
3706 for (size_t i = 0; i < _symbolicNames.size(); ++i) {
\r
3707 std::string name = _vocabulary.getLiteralName(i);
\r
3708 if (name.empty()) {
\r
3709 name = _vocabulary.getSymbolicName(i);
\r
3712 if (name.empty()) {
\r
3713 _tokenNames.push_back("<INVALID>");
\r
3715 _tokenNames.push_back(name);
\r
3719 static const uint16_t serializedATNSegment0[] = {
\r
3720 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964,
\r
3721 0x3, 0x40, 0x181, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4,
\r
3722 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9,
\r
3723 0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa,
\r
3724 0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4,
\r
3725 0xe, 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11,
\r
3726 0x9, 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14,
\r
3727 0x9, 0x14, 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17,
\r
3728 0x9, 0x17, 0x4, 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a,
\r
3729 0x9, 0x1a, 0x4, 0x1b, 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d,
\r
3730 0x9, 0x1d, 0x4, 0x1e, 0x9, 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20,
\r
3731 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, 0x4, 0x22, 0x9, 0x22, 0x4, 0x23,
\r
3732 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, 0x25, 0x9, 0x25, 0x4, 0x26,
\r
3733 0x9, 0x26, 0x4, 0x27, 0x9, 0x27, 0x4, 0x28, 0x9, 0x28, 0x4, 0x29,
\r
3734 0x9, 0x29, 0x4, 0x2a, 0x9, 0x2a, 0x4, 0x2b, 0x9, 0x2b, 0x4, 0x2c,
\r
3735 0x9, 0x2c, 0x4, 0x2d, 0x9, 0x2d, 0x4, 0x2e, 0x9, 0x2e, 0x4, 0x2f,
\r
3736 0x9, 0x2f, 0x4, 0x30, 0x9, 0x30, 0x4, 0x31, 0x9, 0x31, 0x4, 0x32,
\r
3737 0x9, 0x32, 0x3, 0x2, 0x6, 0x2, 0x66, 0xa, 0x2, 0xd, 0x2, 0xe, 0x2,
\r
3738 0x67, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3,
\r
3739 0x3, 0x3, 0x5, 0x3, 0x71, 0xa, 0x3, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4,
\r
3740 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x5,
\r
3741 0x5, 0x7c, 0xa, 0x5, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3,
\r
3742 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x7, 0x3, 0x7, 0x7, 0x7, 0x87, 0xa,
\r
3743 0x7, 0xc, 0x7, 0xe, 0x7, 0x8a, 0xb, 0x7, 0x3, 0x8, 0x3, 0x8, 0x3,
\r
3744 0x8, 0x5, 0x8, 0x8f, 0xa, 0x8, 0x3, 0x8, 0x5, 0x8, 0x92, 0xa, 0x8,
\r
3745 0x3, 0x9, 0x3, 0x9, 0x3, 0x9, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3,
\r
3746 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xb,
\r
3747 0x3, 0xb, 0x3, 0xb, 0x7, 0xb, 0xa3, 0xa, 0xb, 0xc, 0xb, 0xe, 0xb,
\r
3748 0xa6, 0xb, 0xb, 0x5, 0xb, 0xa8, 0xa, 0xb, 0x3, 0xc, 0x3, 0xc, 0x7,
\r
3749 0xc, 0xac, 0xa, 0xc, 0xc, 0xc, 0xe, 0xc, 0xaf, 0xb, 0xc, 0x3, 0xc,
\r
3750 0x3, 0xc, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x7, 0xd, 0xb7,
\r
3751 0xa, 0xd, 0xc, 0xd, 0xe, 0xd, 0xba, 0xb, 0xd, 0x3, 0xd, 0x3, 0xd,
\r
3752 0x3, 0xe, 0x3, 0xe, 0x5, 0xe, 0xc0, 0xa, 0xe, 0x3, 0xf, 0x3, 0xf,
\r
3753 0x3, 0xf, 0x3, 0x10, 0x3, 0x10, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11,
\r
3754 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11,
\r
3755 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11,
\r
3756 0x3, 0x11, 0x5, 0x11, 0xd7, 0xa, 0x11, 0x3, 0x12, 0x3, 0x12, 0x3,
\r
3757 0x12, 0x3, 0x12, 0x7, 0x12, 0xdd, 0xa, 0x12, 0xc, 0x12, 0xe, 0x12,
\r
3758 0xe0, 0xb, 0x12, 0x3, 0x12, 0x5, 0x12, 0xe3, 0xa, 0x12, 0x3, 0x13,
\r
3759 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x14, 0x3, 0x14,
\r
3760 0x3, 0x14, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x16,
\r
3761 0x3, 0x16, 0x7, 0x16, 0xf3, 0xa, 0x16, 0xc, 0x16, 0xe, 0x16, 0xf6,
\r
3762 0xb, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17,
\r
3763 0x3, 0x17, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x5, 0x18, 0x101, 0xa,
\r
3764 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3,
\r
3765 0x18, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x1a, 0x3,
\r
3766 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3,
\r
3767 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x5,
\r
3768 0x1c, 0x11a, 0xa, 0x1c, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d,
\r
3769 0x3, 0x1d, 0x5, 0x1d, 0x121, 0xa, 0x1d, 0x3, 0x1e, 0x3, 0x1e, 0x3,
\r
3770 0x1e, 0x5, 0x1e, 0x126, 0xa, 0x1e, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f,
\r
3771 0x3, 0x1f, 0x3, 0x1f, 0x7, 0x1f, 0x12d, 0xa, 0x1f, 0xc, 0x1f, 0xe,
\r
3772 0x1f, 0x130, 0xb, 0x1f, 0x5, 0x1f, 0x132, 0xa, 0x1f, 0x3, 0x1f, 0x3,
\r
3773 0x1f, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x5, 0x20, 0x13a,
\r
3774 0xa, 0x20, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21,
\r
3775 0x3, 0x21, 0x7, 0x21, 0x142, 0xa, 0x21, 0xc, 0x21, 0xe, 0x21, 0x145,
\r
3776 0xb, 0x21, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x23, 0x3, 0x23,
\r
3777 0x3, 0x23, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24,
\r
3778 0x3, 0x24, 0x3, 0x25, 0x3, 0x25, 0x3, 0x26, 0x3, 0x26, 0x3, 0x27,
\r
3779 0x3, 0x27, 0x6, 0x27, 0x159, 0xa, 0x27, 0xd, 0x27, 0xe, 0x27, 0x15a,
\r
3780 0x3, 0x28, 0x3, 0x28, 0x5, 0x28, 0x15f, 0xa, 0x28, 0x3, 0x29, 0x3,
\r
3781 0x29, 0x3, 0x29, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3,
\r
3782 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2c, 0x3, 0x2c, 0x3,
\r
3783 0x2d, 0x3, 0x2d, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2f, 0x3, 0x2f, 0x3,
\r
3784 0x30, 0x3, 0x30, 0x3, 0x31, 0x3, 0x31, 0x3, 0x31, 0x3, 0x31, 0x3,
\r
3785 0x31, 0x3, 0x31, 0x3, 0x31, 0x5, 0x31, 0x17d, 0xa, 0x31, 0x3, 0x32,
\r
3786 0x3, 0x32, 0x3, 0x32, 0x2, 0x2, 0x33, 0x2, 0x4, 0x6, 0x8, 0xa, 0xc,
\r
3787 0xe, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22,
\r
3788 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38,
\r
3789 0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c, 0x4e,
\r
3790 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x62, 0x2,
\r
3791 0x6, 0x3, 0x2, 0x3a, 0x3d, 0x3, 0x2, 0x19, 0x1a, 0x3, 0x2, 0x1b,
\r
3792 0x1c, 0x5, 0x2, 0x7, 0x7, 0x1d, 0x1e, 0x21, 0x39, 0x2, 0x17f, 0x2,
\r
3793 0x65, 0x3, 0x2, 0x2, 0x2, 0x4, 0x70, 0x3, 0x2, 0x2, 0x2, 0x6, 0x72,
\r
3794 0x3, 0x2, 0x2, 0x2, 0x8, 0x75, 0x3, 0x2, 0x2, 0x2, 0xa, 0x7d, 0x3,
\r
3795 0x2, 0x2, 0x2, 0xc, 0x84, 0x3, 0x2, 0x2, 0x2, 0xe, 0x91, 0x3, 0x2,
\r
3796 0x2, 0x2, 0x10, 0x93, 0x3, 0x2, 0x2, 0x2, 0x12, 0x96, 0x3, 0x2, 0x2,
\r
3797 0x2, 0x14, 0xa7, 0x3, 0x2, 0x2, 0x2, 0x16, 0xa9, 0x3, 0x2, 0x2, 0x2,
\r
3798 0x18, 0xb2, 0x3, 0x2, 0x2, 0x2, 0x1a, 0xbf, 0x3, 0x2, 0x2, 0x2, 0x1c,
\r
3799 0xc1, 0x3, 0x2, 0x2, 0x2, 0x1e, 0xc4, 0x3, 0x2, 0x2, 0x2, 0x20, 0xd6,
\r
3800 0x3, 0x2, 0x2, 0x2, 0x22, 0xd8, 0x3, 0x2, 0x2, 0x2, 0x24, 0xe4, 0x3,
\r
3801 0x2, 0x2, 0x2, 0x26, 0xe9, 0x3, 0x2, 0x2, 0x2, 0x28, 0xec, 0x3, 0x2,
\r
3802 0x2, 0x2, 0x2a, 0xf0, 0x3, 0x2, 0x2, 0x2, 0x2c, 0xf9, 0x3, 0x2, 0x2,
\r
3803 0x2, 0x2e, 0xfd, 0x3, 0x2, 0x2, 0x2, 0x30, 0x108, 0x3, 0x2, 0x2,
\r
3804 0x2, 0x32, 0x10c, 0x3, 0x2, 0x2, 0x2, 0x34, 0x110, 0x3, 0x2, 0x2,
\r
3805 0x2, 0x36, 0x119, 0x3, 0x2, 0x2, 0x2, 0x38, 0x120, 0x3, 0x2, 0x2,
\r
3806 0x2, 0x3a, 0x125, 0x3, 0x2, 0x2, 0x2, 0x3c, 0x127, 0x3, 0x2, 0x2,
\r
3807 0x2, 0x3e, 0x139, 0x3, 0x2, 0x2, 0x2, 0x40, 0x13b, 0x3, 0x2, 0x2,
\r
3808 0x2, 0x42, 0x146, 0x3, 0x2, 0x2, 0x2, 0x44, 0x149, 0x3, 0x2, 0x2,
\r
3809 0x2, 0x46, 0x14c, 0x3, 0x2, 0x2, 0x2, 0x48, 0x152, 0x3, 0x2, 0x2,
\r
3810 0x2, 0x4a, 0x154, 0x3, 0x2, 0x2, 0x2, 0x4c, 0x156, 0x3, 0x2, 0x2,
\r
3811 0x2, 0x4e, 0x15e, 0x3, 0x2, 0x2, 0x2, 0x50, 0x160, 0x3, 0x2, 0x2,
\r
3812 0x2, 0x52, 0x163, 0x3, 0x2, 0x2, 0x2, 0x54, 0x167, 0x3, 0x2, 0x2,
\r
3813 0x2, 0x56, 0x16b, 0x3, 0x2, 0x2, 0x2, 0x58, 0x16d, 0x3, 0x2, 0x2,
\r
3814 0x2, 0x5a, 0x16f, 0x3, 0x2, 0x2, 0x2, 0x5c, 0x171, 0x3, 0x2, 0x2,
\r
3815 0x2, 0x5e, 0x173, 0x3, 0x2, 0x2, 0x2, 0x60, 0x17c, 0x3, 0x2, 0x2,
\r
3816 0x2, 0x62, 0x17e, 0x3, 0x2, 0x2, 0x2, 0x64, 0x66, 0x5, 0x4, 0x3,
\r
3817 0x2, 0x65, 0x64, 0x3, 0x2, 0x2, 0x2, 0x66, 0x67, 0x3, 0x2, 0x2, 0x2,
\r
3818 0x67, 0x65, 0x3, 0x2, 0x2, 0x2, 0x67, 0x68, 0x3, 0x2, 0x2, 0x2, 0x68,
\r
3819 0x69, 0x3, 0x2, 0x2, 0x2, 0x69, 0x6a, 0x7, 0x2, 0x2, 0x3, 0x6a, 0x3,
\r
3820 0x3, 0x2, 0x2, 0x2, 0x6b, 0x6c, 0x5, 0x6, 0x4, 0x2, 0x6c, 0x6d, 0x7,
\r
3821 0x3, 0x2, 0x2, 0x6d, 0x71, 0x3, 0x2, 0x2, 0x2, 0x6e, 0x71, 0x5, 0x10,
\r
3822 0x9, 0x2, 0x6f, 0x71, 0x5, 0x18, 0xd, 0x2, 0x70, 0x6b, 0x3, 0x2,
\r
3823 0x2, 0x2, 0x70, 0x6e, 0x3, 0x2, 0x2, 0x2, 0x70, 0x6f, 0x3, 0x2, 0x2,
\r
3824 0x2, 0x71, 0x5, 0x3, 0x2, 0x2, 0x2, 0x72, 0x73, 0x7, 0x4, 0x2, 0x2,
\r
3825 0x73, 0x74, 0x5, 0x8, 0x5, 0x2, 0x74, 0x7, 0x3, 0x2, 0x2, 0x2, 0x75,
\r
3826 0x76, 0x5, 0x58, 0x2d, 0x2, 0x76, 0x77, 0x7, 0x5, 0x2, 0x2, 0x77,
\r
3827 0x78, 0x5, 0xc, 0x7, 0x2, 0x78, 0x7b, 0x3, 0x2, 0x2, 0x2, 0x79, 0x7a,
\r
3828 0x7, 0x6, 0x2, 0x2, 0x7a, 0x7c, 0x5, 0x36, 0x1c, 0x2, 0x7b, 0x79,
\r
3829 0x3, 0x2, 0x2, 0x2, 0x7b, 0x7c, 0x3, 0x2, 0x2, 0x2, 0x7c, 0x9, 0x3,
\r
3830 0x2, 0x2, 0x2, 0x7d, 0x7e, 0x5, 0x58, 0x2d, 0x2, 0x7e, 0x7f, 0x7,
\r
3831 0x5, 0x2, 0x2, 0x7f, 0x80, 0x5, 0xc, 0x7, 0x2, 0x80, 0x81, 0x3, 0x2,
\r
3832 0x2, 0x2, 0x81, 0x82, 0x7, 0x6, 0x2, 0x2, 0x82, 0x83, 0x5, 0x36,
\r
3833 0x1c, 0x2, 0x83, 0xb, 0x3, 0x2, 0x2, 0x2, 0x84, 0x88, 0x5, 0x5a,
\r
3834 0x2e, 0x2, 0x85, 0x87, 0x5, 0xe, 0x8, 0x2, 0x86, 0x85, 0x3, 0x2,
\r
3835 0x2, 0x2, 0x87, 0x8a, 0x3, 0x2, 0x2, 0x2, 0x88, 0x86, 0x3, 0x2, 0x2,
\r
3836 0x2, 0x88, 0x89, 0x3, 0x2, 0x2, 0x2, 0x89, 0xd, 0x3, 0x2, 0x2, 0x2,
\r
3837 0x8a, 0x88, 0x3, 0x2, 0x2, 0x2, 0x8b, 0x92, 0x7, 0x7, 0x2, 0x2, 0x8c,
\r
3838 0x8e, 0x7, 0x8, 0x2, 0x2, 0x8d, 0x8f, 0x7, 0x3a, 0x2, 0x2, 0x8e,
\r
3839 0x8d, 0x3, 0x2, 0x2, 0x2, 0x8e, 0x8f, 0x3, 0x2, 0x2, 0x2, 0x8f, 0x90,
\r
3840 0x3, 0x2, 0x2, 0x2, 0x90, 0x92, 0x7, 0x9, 0x2, 0x2, 0x91, 0x8b, 0x3,
\r
3841 0x2, 0x2, 0x2, 0x91, 0x8c, 0x3, 0x2, 0x2, 0x2, 0x92, 0xf, 0x3, 0x2,
\r
3842 0x2, 0x2, 0x93, 0x94, 0x7, 0xa, 0x2, 0x2, 0x94, 0x95, 0x5, 0x12,
\r
3843 0xa, 0x2, 0x95, 0x11, 0x3, 0x2, 0x2, 0x2, 0x96, 0x97, 0x5, 0x56,
\r
3844 0x2c, 0x2, 0x97, 0x98, 0x7, 0xb, 0x2, 0x2, 0x98, 0x99, 0x5, 0x14,
\r
3845 0xb, 0x2, 0x99, 0x9a, 0x7, 0xc, 0x2, 0x2, 0x9a, 0x9b, 0x7, 0x5, 0x2,
\r
3846 0x2, 0x9b, 0x9c, 0x5, 0xc, 0x7, 0x2, 0x9c, 0x9d, 0x3, 0x2, 0x2, 0x2,
\r
3847 0x9d, 0x9e, 0x5, 0x16, 0xc, 0x2, 0x9e, 0x13, 0x3, 0x2, 0x2, 0x2,
\r
3848 0x9f, 0xa4, 0x5, 0x8, 0x5, 0x2, 0xa0, 0xa1, 0x7, 0xd, 0x2, 0x2, 0xa1,
\r
3849 0xa3, 0x5, 0x8, 0x5, 0x2, 0xa2, 0xa0, 0x3, 0x2, 0x2, 0x2, 0xa3, 0xa6,
\r
3850 0x3, 0x2, 0x2, 0x2, 0xa4, 0xa2, 0x3, 0x2, 0x2, 0x2, 0xa4, 0xa5, 0x3,
\r
3851 0x2, 0x2, 0x2, 0xa5, 0xa8, 0x3, 0x2, 0x2, 0x2, 0xa6, 0xa4, 0x3, 0x2,
\r
3852 0x2, 0x2, 0xa7, 0x9f, 0x3, 0x2, 0x2, 0x2, 0xa7, 0xa8, 0x3, 0x2, 0x2,
\r
3853 0x2, 0xa8, 0x15, 0x3, 0x2, 0x2, 0x2, 0xa9, 0xad, 0x7, 0xe, 0x2, 0x2,
\r
3854 0xaa, 0xac, 0x5, 0x20, 0x11, 0x2, 0xab, 0xaa, 0x3, 0x2, 0x2, 0x2,
\r
3855 0xac, 0xaf, 0x3, 0x2, 0x2, 0x2, 0xad, 0xab, 0x3, 0x2, 0x2, 0x2, 0xad,
\r
3856 0xae, 0x3, 0x2, 0x2, 0x2, 0xae, 0xb0, 0x3, 0x2, 0x2, 0x2, 0xaf, 0xad,
\r
3857 0x3, 0x2, 0x2, 0x2, 0xb0, 0xb1, 0x7, 0xf, 0x2, 0x2, 0xb1, 0x17, 0x3,
\r
3858 0x2, 0x2, 0x2, 0xb2, 0xb3, 0x7, 0x10, 0x2, 0x2, 0xb3, 0xb4, 0x5,
\r
3859 0x5c, 0x2f, 0x2, 0xb4, 0xb8, 0x7, 0xe, 0x2, 0x2, 0xb5, 0xb7, 0x5,
\r
3860 0x1a, 0xe, 0x2, 0xb6, 0xb5, 0x3, 0x2, 0x2, 0x2, 0xb7, 0xba, 0x3,
\r
3861 0x2, 0x2, 0x2, 0xb8, 0xb6, 0x3, 0x2, 0x2, 0x2, 0xb8, 0xb9, 0x3, 0x2,
\r
3862 0x2, 0x2, 0xb9, 0xbb, 0x3, 0x2, 0x2, 0x2, 0xba, 0xb8, 0x3, 0x2, 0x2,
\r
3863 0x2, 0xbb, 0xbc, 0x7, 0xf, 0x2, 0x2, 0xbc, 0x19, 0x3, 0x2, 0x2, 0x2,
\r
3864 0xbd, 0xc0, 0x5, 0x1c, 0xf, 0x2, 0xbe, 0xc0, 0x5, 0x1e, 0x10, 0x2,
\r
3865 0xbf, 0xbd, 0x3, 0x2, 0x2, 0x2, 0xbf, 0xbe, 0x3, 0x2, 0x2, 0x2, 0xc0,
\r
3866 0x1b, 0x3, 0x2, 0x2, 0x2, 0xc1, 0xc2, 0x5, 0x8, 0x5, 0x2, 0xc2, 0xc3,
\r
3867 0x7, 0x3, 0x2, 0x2, 0xc3, 0x1d, 0x3, 0x2, 0x2, 0x2, 0xc4, 0xc5, 0x5,
\r
3868 0x12, 0xa, 0x2, 0xc5, 0x1f, 0x3, 0x2, 0x2, 0x2, 0xc6, 0xc7, 0x5,
\r
3869 0x6, 0x4, 0x2, 0xc7, 0xc8, 0x7, 0x3, 0x2, 0x2, 0xc8, 0xd7, 0x3, 0x2,
\r
3870 0x2, 0x2, 0xc9, 0xd7, 0x5, 0x22, 0x12, 0x2, 0xca, 0xd7, 0x5, 0x28,
\r
3871 0x15, 0x2, 0xcb, 0xd7, 0x5, 0x2e, 0x18, 0x2, 0xcc, 0xd7, 0x5, 0x30,
\r
3872 0x19, 0x2, 0xcd, 0xce, 0x5, 0x32, 0x1a, 0x2, 0xce, 0xcf, 0x7, 0x3,
\r
3873 0x2, 0x2, 0xcf, 0xd7, 0x3, 0x2, 0x2, 0x2, 0xd0, 0xd1, 0x5, 0x34,
\r
3874 0x1b, 0x2, 0xd1, 0xd2, 0x7, 0x3, 0x2, 0x2, 0xd2, 0xd7, 0x3, 0x2,
\r
3875 0x2, 0x2, 0xd3, 0xd4, 0x5, 0x36, 0x1c, 0x2, 0xd4, 0xd5, 0x7, 0x3,
\r
3876 0x2, 0x2, 0xd5, 0xd7, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xc6, 0x3, 0x2, 0x2,
\r
3877 0x2, 0xd6, 0xc9, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xca, 0x3, 0x2, 0x2, 0x2,
\r
3878 0xd6, 0xcb, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xcc, 0x3, 0x2, 0x2, 0x2, 0xd6,
\r
3879 0xcd, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xd0, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xd3,
\r
3880 0x3, 0x2, 0x2, 0x2, 0xd7, 0x21, 0x3, 0x2, 0x2, 0x2, 0xd8, 0xd9, 0x7,
\r
3881 0x11, 0x2, 0x2, 0xd9, 0xda, 0x5, 0x36, 0x1c, 0x2, 0xda, 0xde, 0x5,
\r
3882 0x16, 0xc, 0x2, 0xdb, 0xdd, 0x5, 0x24, 0x13, 0x2, 0xdc, 0xdb, 0x3,
\r
3883 0x2, 0x2, 0x2, 0xdd, 0xe0, 0x3, 0x2, 0x2, 0x2, 0xde, 0xdc, 0x3, 0x2,
\r
3884 0x2, 0x2, 0xde, 0xdf, 0x3, 0x2, 0x2, 0x2, 0xdf, 0xe2, 0x3, 0x2, 0x2,
\r
3885 0x2, 0xe0, 0xde, 0x3, 0x2, 0x2, 0x2, 0xe1, 0xe3, 0x5, 0x26, 0x14,
\r
3886 0x2, 0xe2, 0xe1, 0x3, 0x2, 0x2, 0x2, 0xe2, 0xe3, 0x3, 0x2, 0x2, 0x2,
\r
3887 0xe3, 0x23, 0x3, 0x2, 0x2, 0x2, 0xe4, 0xe5, 0x7, 0x12, 0x2, 0x2,
\r
3888 0xe5, 0xe6, 0x7, 0x11, 0x2, 0x2, 0xe6, 0xe7, 0x5, 0x36, 0x1c, 0x2,
\r
3889 0xe7, 0xe8, 0x5, 0x16, 0xc, 0x2, 0xe8, 0x25, 0x3, 0x2, 0x2, 0x2,
\r
3890 0xe9, 0xea, 0x7, 0x12, 0x2, 0x2, 0xea, 0xeb, 0x5, 0x16, 0xc, 0x2,
\r
3891 0xeb, 0x27, 0x3, 0x2, 0x2, 0x2, 0xec, 0xed, 0x7, 0x13, 0x2, 0x2,
\r
3892 0xed, 0xee, 0x5, 0x48, 0x25, 0x2, 0xee, 0xef, 0x5, 0x2a, 0x16, 0x2,
\r
3893 0xef, 0x29, 0x3, 0x2, 0x2, 0x2, 0xf0, 0xf4, 0x7, 0xe, 0x2, 0x2, 0xf1,
\r
3894 0xf3, 0x5, 0x2c, 0x17, 0x2, 0xf2, 0xf1, 0x3, 0x2, 0x2, 0x2, 0xf3,
\r
3895 0xf6, 0x3, 0x2, 0x2, 0x2, 0xf4, 0xf2, 0x3, 0x2, 0x2, 0x2, 0xf4, 0xf5,
\r
3896 0x3, 0x2, 0x2, 0x2, 0xf5, 0xf7, 0x3, 0x2, 0x2, 0x2, 0xf6, 0xf4, 0x3,
\r
3897 0x2, 0x2, 0x2, 0xf7, 0xf8, 0x7, 0xf, 0x2, 0x2, 0xf8, 0x2b, 0x3, 0x2,
\r
3898 0x2, 0x2, 0xf9, 0xfa, 0x7, 0x14, 0x2, 0x2, 0xfa, 0xfb, 0x5, 0x36,
\r
3899 0x1c, 0x2, 0xfb, 0xfc, 0x5, 0x16, 0xc, 0x2, 0xfc, 0x2d, 0x3, 0x2,
\r
3900 0x2, 0x2, 0xfd, 0x100, 0x7, 0x15, 0x2, 0x2, 0xfe, 0x101, 0x5, 0xa,
\r
3901 0x6, 0x2, 0xff, 0x101, 0x5, 0x32, 0x1a, 0x2, 0x100, 0xfe, 0x3, 0x2,
\r
3902 0x2, 0x2, 0x100, 0xff, 0x3, 0x2, 0x2, 0x2, 0x101, 0x102, 0x3, 0x2,
\r
3903 0x2, 0x2, 0x102, 0x103, 0x7, 0xd, 0x2, 0x2, 0x103, 0x104, 0x5, 0x36,
\r
3904 0x1c, 0x2, 0x104, 0x105, 0x7, 0xd, 0x2, 0x2, 0x105, 0x106, 0x5, 0x36,
\r
3905 0x1c, 0x2, 0x106, 0x107, 0x5, 0x16, 0xc, 0x2, 0x107, 0x2f, 0x3, 0x2,
\r
3906 0x2, 0x2, 0x108, 0x109, 0x7, 0x16, 0x2, 0x2, 0x109, 0x10a, 0x5, 0x36,
\r
3907 0x1c, 0x2, 0x10a, 0x10b, 0x5, 0x16, 0xc, 0x2, 0x10b, 0x31, 0x3, 0x2,
\r
3908 0x2, 0x2, 0x10c, 0x10d, 0x5, 0x48, 0x25, 0x2, 0x10d, 0x10e, 0x7,
\r
3909 0x6, 0x2, 0x2, 0x10e, 0x10f, 0x5, 0x36, 0x1c, 0x2, 0x10f, 0x33, 0x3,
\r
3910 0x2, 0x2, 0x2, 0x110, 0x111, 0x7, 0x17, 0x2, 0x2, 0x111, 0x112, 0x5,
\r
3911 0x36, 0x1c, 0x2, 0x112, 0x35, 0x3, 0x2, 0x2, 0x2, 0x113, 0x11a, 0x5,
\r
3912 0x3c, 0x1f, 0x2, 0x114, 0x11a, 0x5, 0x4a, 0x26, 0x2, 0x115, 0x11a,
\r
3913 0x5, 0x48, 0x25, 0x2, 0x116, 0x11a, 0x5, 0x54, 0x2b, 0x2, 0x117,
\r
3914 0x11a, 0x5, 0x4c, 0x27, 0x2, 0x118, 0x11a, 0x5, 0x3e, 0x20, 0x2,
\r
3915 0x119, 0x113, 0x3, 0x2, 0x2, 0x2, 0x119, 0x114, 0x3, 0x2, 0x2, 0x2,
\r
3916 0x119, 0x115, 0x3, 0x2, 0x2, 0x2, 0x119, 0x116, 0x3, 0x2, 0x2, 0x2,
\r
3917 0x119, 0x117, 0x3, 0x2, 0x2, 0x2, 0x119, 0x118, 0x3, 0x2, 0x2, 0x2,
\r
3918 0x11a, 0x37, 0x3, 0x2, 0x2, 0x2, 0x11b, 0x121, 0x5, 0x3c, 0x1f, 0x2,
\r
3919 0x11c, 0x121, 0x5, 0x4a, 0x26, 0x2, 0x11d, 0x121, 0x5, 0x48, 0x25,
\r
3920 0x2, 0x11e, 0x121, 0x5, 0x54, 0x2b, 0x2, 0x11f, 0x121, 0x5, 0x4c,
\r
3921 0x27, 0x2, 0x120, 0x11b, 0x3, 0x2, 0x2, 0x2, 0x120, 0x11c, 0x3, 0x2,
\r
3922 0x2, 0x2, 0x120, 0x11d, 0x3, 0x2, 0x2, 0x2, 0x120, 0x11e, 0x3, 0x2,
\r
3923 0x2, 0x2, 0x120, 0x11f, 0x3, 0x2, 0x2, 0x2, 0x121, 0x39, 0x3, 0x2,
\r
3924 0x2, 0x2, 0x122, 0x126, 0x5, 0x3c, 0x1f, 0x2, 0x123, 0x126, 0x5,
\r
3925 0x48, 0x25, 0x2, 0x124, 0x126, 0x5, 0x54, 0x2b, 0x2, 0x125, 0x122,
\r
3926 0x3, 0x2, 0x2, 0x2, 0x125, 0x123, 0x3, 0x2, 0x2, 0x2, 0x125, 0x124,
\r
3927 0x3, 0x2, 0x2, 0x2, 0x126, 0x3b, 0x3, 0x2, 0x2, 0x2, 0x127, 0x128,
\r
3928 0x5, 0x56, 0x2c, 0x2, 0x128, 0x131, 0x7, 0xb, 0x2, 0x2, 0x129, 0x12e,
\r
3929 0x5, 0x36, 0x1c, 0x2, 0x12a, 0x12b, 0x7, 0xd, 0x2, 0x2, 0x12b, 0x12d,
\r
3930 0x5, 0x36, 0x1c, 0x2, 0x12c, 0x12a, 0x3, 0x2, 0x2, 0x2, 0x12d, 0x130,
\r
3931 0x3, 0x2, 0x2, 0x2, 0x12e, 0x12c, 0x3, 0x2, 0x2, 0x2, 0x12e, 0x12f,
\r
3932 0x3, 0x2, 0x2, 0x2, 0x12f, 0x132, 0x3, 0x2, 0x2, 0x2, 0x130, 0x12e,
\r
3933 0x3, 0x2, 0x2, 0x2, 0x131, 0x129, 0x3, 0x2, 0x2, 0x2, 0x131, 0x132,
\r
3934 0x3, 0x2, 0x2, 0x2, 0x132, 0x133, 0x3, 0x2, 0x2, 0x2, 0x133, 0x134,
\r
3935 0x7, 0xc, 0x2, 0x2, 0x134, 0x3d, 0x3, 0x2, 0x2, 0x2, 0x135, 0x13a,
\r
3936 0x5, 0x40, 0x21, 0x2, 0x136, 0x13a, 0x5, 0x42, 0x22, 0x2, 0x137,
\r
3937 0x13a, 0x5, 0x44, 0x23, 0x2, 0x138, 0x13a, 0x5, 0x46, 0x24, 0x2,
\r
3938 0x139, 0x135, 0x3, 0x2, 0x2, 0x2, 0x139, 0x136, 0x3, 0x2, 0x2, 0x2,
\r
3939 0x139, 0x137, 0x3, 0x2, 0x2, 0x2, 0x139, 0x138, 0x3, 0x2, 0x2, 0x2,
\r
3940 0x13a, 0x3f, 0x3, 0x2, 0x2, 0x2, 0x13b, 0x13c, 0x5, 0x38, 0x1d, 0x2,
\r
3941 0x13c, 0x13d, 0x5, 0x62, 0x32, 0x2, 0x13d, 0x143, 0x5, 0x38, 0x1d,
\r
3942 0x2, 0x13e, 0x13f, 0x5, 0x62, 0x32, 0x2, 0x13f, 0x140, 0x5, 0x38,
\r
3943 0x1d, 0x2, 0x140, 0x142, 0x3, 0x2, 0x2, 0x2, 0x141, 0x13e, 0x3, 0x2,
\r
3944 0x2, 0x2, 0x142, 0x145, 0x3, 0x2, 0x2, 0x2, 0x143, 0x141, 0x3, 0x2,
\r
3945 0x2, 0x2, 0x143, 0x144, 0x3, 0x2, 0x2, 0x2, 0x144, 0x41, 0x3, 0x2,
\r
3946 0x2, 0x2, 0x145, 0x143, 0x3, 0x2, 0x2, 0x2, 0x146, 0x147, 0x5, 0x60,
\r
3947 0x31, 0x2, 0x147, 0x148, 0x5, 0x38, 0x1d, 0x2, 0x148, 0x43, 0x3,
\r
3948 0x2, 0x2, 0x2, 0x149, 0x14a, 0x5, 0x38, 0x1d, 0x2, 0x14a, 0x14b,
\r
3949 0x5, 0x5e, 0x30, 0x2, 0x14b, 0x45, 0x3, 0x2, 0x2, 0x2, 0x14c, 0x14d,
\r
3950 0x5, 0x38, 0x1d, 0x2, 0x14d, 0x14e, 0x7, 0x18, 0x2, 0x2, 0x14e, 0x14f,
\r
3951 0x5, 0x36, 0x1c, 0x2, 0x14f, 0x150, 0x7, 0x5, 0x2, 0x2, 0x150, 0x151,
\r
3952 0x5, 0x36, 0x1c, 0x2, 0x151, 0x47, 0x3, 0x2, 0x2, 0x2, 0x152, 0x153,
\r
3953 0x5, 0x58, 0x2d, 0x2, 0x153, 0x49, 0x3, 0x2, 0x2, 0x2, 0x154, 0x155,
\r
3954 0x9, 0x2, 0x2, 0x2, 0x155, 0x4b, 0x3, 0x2, 0x2, 0x2, 0x156, 0x158,
\r
3955 0x5, 0x3a, 0x1e, 0x2, 0x157, 0x159, 0x5, 0x4e, 0x28, 0x2, 0x158,
\r
3956 0x157, 0x3, 0x2, 0x2, 0x2, 0x159, 0x15a, 0x3, 0x2, 0x2, 0x2, 0x15a,
\r
3957 0x158, 0x3, 0x2, 0x2, 0x2, 0x15a, 0x15b, 0x3, 0x2, 0x2, 0x2, 0x15b,
\r
3958 0x4d, 0x3, 0x2, 0x2, 0x2, 0x15c, 0x15f, 0x5, 0x50, 0x29, 0x2, 0x15d,
\r
3959 0x15f, 0x5, 0x52, 0x2a, 0x2, 0x15e, 0x15c, 0x3, 0x2, 0x2, 0x2, 0x15e,
\r
3960 0x15d, 0x3, 0x2, 0x2, 0x2, 0x15f, 0x4f, 0x3, 0x2, 0x2, 0x2, 0x160,
\r
3961 0x161, 0x9, 0x3, 0x2, 0x2, 0x161, 0x162, 0x5, 0x48, 0x25, 0x2, 0x162,
\r
3962 0x51, 0x3, 0x2, 0x2, 0x2, 0x163, 0x164, 0x7, 0x8, 0x2, 0x2, 0x164,
\r
3963 0x165, 0x5, 0x36, 0x1c, 0x2, 0x165, 0x166, 0x7, 0x9, 0x2, 0x2, 0x166,
\r
3964 0x53, 0x3, 0x2, 0x2, 0x2, 0x167, 0x168, 0x7, 0xb, 0x2, 0x2, 0x168,
\r
3965 0x169, 0x5, 0x36, 0x1c, 0x2, 0x169, 0x16a, 0x7, 0xc, 0x2, 0x2, 0x16a,
\r
3966 0x55, 0x3, 0x2, 0x2, 0x2, 0x16b, 0x16c, 0x7, 0x3e, 0x2, 0x2, 0x16c,
\r
3967 0x57, 0x3, 0x2, 0x2, 0x2, 0x16d, 0x16e, 0x7, 0x3e, 0x2, 0x2, 0x16e,
\r
3968 0x59, 0x3, 0x2, 0x2, 0x2, 0x16f, 0x170, 0x7, 0x3e, 0x2, 0x2, 0x170,
\r
3969 0x5b, 0x3, 0x2, 0x2, 0x2, 0x171, 0x172, 0x7, 0x3e, 0x2, 0x2, 0x172,
\r
3970 0x5d, 0x3, 0x2, 0x2, 0x2, 0x173, 0x174, 0x9, 0x4, 0x2, 0x2, 0x174,
\r
3971 0x5f, 0x3, 0x2, 0x2, 0x2, 0x175, 0x17d, 0x7, 0x1d, 0x2, 0x2, 0x176,
\r
3972 0x17d, 0x7, 0x1e, 0x2, 0x2, 0x177, 0x17d, 0x7, 0x1f, 0x2, 0x2, 0x178,
\r
3973 0x17d, 0x7, 0x20, 0x2, 0x2, 0x179, 0x17d, 0x7, 0x21, 0x2, 0x2, 0x17a,
\r
3974 0x17d, 0x7, 0x7, 0x2, 0x2, 0x17b, 0x17d, 0x5, 0x5e, 0x30, 0x2, 0x17c,
\r
3975 0x175, 0x3, 0x2, 0x2, 0x2, 0x17c, 0x176, 0x3, 0x2, 0x2, 0x2, 0x17c,
\r
3976 0x177, 0x3, 0x2, 0x2, 0x2, 0x17c, 0x178, 0x3, 0x2, 0x2, 0x2, 0x17c,
\r
3977 0x179, 0x3, 0x2, 0x2, 0x2, 0x17c, 0x17a, 0x3, 0x2, 0x2, 0x2, 0x17c,
\r
3978 0x17b, 0x3, 0x2, 0x2, 0x2, 0x17d, 0x61, 0x3, 0x2, 0x2, 0x2, 0x17e,
\r
3979 0x17f, 0x9, 0x5, 0x2, 0x2, 0x17f, 0x63, 0x3, 0x2, 0x2, 0x2, 0x1c,
\r
3980 0x67, 0x70, 0x7b, 0x88, 0x8e, 0x91, 0xa4, 0xa7, 0xad, 0xb8, 0xbf,
\r
3981 0xd6, 0xde, 0xe2, 0xf4, 0x100, 0x119, 0x120, 0x125, 0x12e, 0x131,
\r
3982 0x139, 0x143, 0x15a, 0x15e, 0x17c,
\r
3985 _serializedATN.insert(_serializedATN.end(), serializedATNSegment0,
\r
3986 serializedATNSegment0 + sizeof(serializedATNSegment0) / sizeof(serializedATNSegment0[0]));
\r
3989 atn::ATNDeserializer deserializer;
\r
3990 _atn = deserializer.deserialize(_serializedATN);
\r
3992 size_t count = _atn.getNumberOfDecisions();
\r
3993 _decisionToDFA.reserve(count);
\r
3994 for (size_t i = 0; i < count; i++) {
\r
3995 _decisionToDFA.emplace_back(_atn.getDecisionState(i), i);
\r
3999 TocParser::Initializer TocParser::_init;
\r