2 // Generated from Toc.g4 by ANTLR 4.9.2
\r
5 #include "TocListener.h"
\r
7 #include "TocParser.h"
\r
10 using namespace antlrcpp;
\r
11 using namespace antlr4;
\r
13 TocParser::TocParser(TokenStream *input) : Parser(input) {
\r
14 _interpreter = new atn::ParserATNSimulator(this, _atn, _decisionToDFA, _sharedContextCache);
\r
17 TocParser::~TocParser() {
\r
18 delete _interpreter;
\r
21 std::string TocParser::getGrammarFileName() const {
\r
25 const std::vector<std::string>& TocParser::getRuleNames() const {
\r
29 dfa::Vocabulary& TocParser::getVocabulary() const {
\r
34 //----------------- ProgContext ------------------------------------------------------------------
\r
36 TocParser::ProgContext::ProgContext(ParserRuleContext *parent, size_t invokingState)
\r
37 : ParserRuleContext(parent, invokingState) {
\r
40 tree::TerminalNode* TocParser::ProgContext::EOF() {
\r
41 return getToken(TocParser::EOF, 0);
\r
44 std::vector<TocParser::DeclContext *> TocParser::ProgContext::decl() {
\r
45 return getRuleContexts<TocParser::DeclContext>();
\r
48 TocParser::DeclContext* TocParser::ProgContext::decl(size_t i) {
\r
49 return getRuleContext<TocParser::DeclContext>(i);
\r
53 size_t TocParser::ProgContext::getRuleIndex() const {
\r
54 return TocParser::RuleProg;
\r
57 void TocParser::ProgContext::enterRule(tree::ParseTreeListener *listener) {
\r
58 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
59 if (parserListener != nullptr)
\r
60 parserListener->enterProg(this);
\r
63 void TocParser::ProgContext::exitRule(tree::ParseTreeListener *listener) {
\r
64 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
65 if (parserListener != nullptr)
\r
66 parserListener->exitProg(this);
\r
69 TocParser::ProgContext* TocParser::prog() {
\r
70 ProgContext *_localctx = _tracker.createInstance<ProgContext>(_ctx, getState());
\r
71 enterRule(_localctx, 0, TocParser::RuleProg);
\r
74 #if __cplusplus > 201703L
\r
75 auto onExit = finally([=, this] {
\r
77 auto onExit = finally([=] {
\r
82 enterOuterAlt(_localctx, 1);
\r
84 _errHandler->sync(this);
\r
85 _la = _input->LA(1);
\r
90 _errHandler->sync(this);
\r
91 _la = _input->LA(1);
\r
92 } while ((((_la & ~ 0x3fULL) == 0) &&
\r
93 ((1ULL << _la) & ((1ULL << TocParser::T__0)
\r
94 | (1ULL << TocParser::T__3)
\r
95 | (1ULL << TocParser::T__9))) != 0));
\r
97 match(TocParser::EOF);
\r
100 catch (RecognitionException &e) {
\r
101 _errHandler->reportError(this, e);
\r
102 _localctx->exception = std::current_exception();
\r
103 _errHandler->recover(this, _localctx->exception);
\r
109 //----------------- DeclContext ------------------------------------------------------------------
\r
111 TocParser::DeclContext::DeclContext(ParserRuleContext *parent, size_t invokingState)
\r
112 : ParserRuleContext(parent, invokingState) {
\r
115 TocParser::VarDeclContext* TocParser::DeclContext::varDecl() {
\r
116 return getRuleContext<TocParser::VarDeclContext>(0);
\r
119 TocParser::FuncDeclContext* TocParser::DeclContext::funcDecl() {
\r
120 return getRuleContext<TocParser::FuncDeclContext>(0);
\r
123 TocParser::StructDeclContext* TocParser::DeclContext::structDecl() {
\r
124 return getRuleContext<TocParser::StructDeclContext>(0);
\r
128 size_t TocParser::DeclContext::getRuleIndex() const {
\r
129 return TocParser::RuleDecl;
\r
132 void TocParser::DeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
133 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
134 if (parserListener != nullptr)
\r
135 parserListener->enterDecl(this);
\r
138 void TocParser::DeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
139 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
140 if (parserListener != nullptr)
\r
141 parserListener->exitDecl(this);
\r
144 TocParser::DeclContext* TocParser::decl() {
\r
145 DeclContext *_localctx = _tracker.createInstance<DeclContext>(_ctx, getState());
\r
146 enterRule(_localctx, 2, TocParser::RuleDecl);
\r
148 #if __cplusplus > 201703L
\r
149 auto onExit = finally([=, this] {
\r
151 auto onExit = finally([=] {
\r
157 _errHandler->sync(this);
\r
158 switch (_input->LA(1)) {
\r
159 case TocParser::T__0: {
\r
160 enterOuterAlt(_localctx, 1);
\r
166 case TocParser::T__3: {
\r
167 enterOuterAlt(_localctx, 2);
\r
173 case TocParser::T__9: {
\r
174 enterOuterAlt(_localctx, 3);
\r
181 throw NoViableAltException(this);
\r
185 catch (RecognitionException &e) {
\r
186 _errHandler->reportError(this, e);
\r
187 _localctx->exception = std::current_exception();
\r
188 _errHandler->recover(this, _localctx->exception);
\r
194 //----------------- VarDeclContext ------------------------------------------------------------------
\r
196 TocParser::VarDeclContext::VarDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
197 : ParserRuleContext(parent, invokingState) {
\r
200 TocParser::VarContext* TocParser::VarDeclContext::var() {
\r
201 return getRuleContext<TocParser::VarContext>(0);
\r
205 size_t TocParser::VarDeclContext::getRuleIndex() const {
\r
206 return TocParser::RuleVarDecl;
\r
209 void TocParser::VarDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
210 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
211 if (parserListener != nullptr)
\r
212 parserListener->enterVarDecl(this);
\r
215 void TocParser::VarDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
216 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
217 if (parserListener != nullptr)
\r
218 parserListener->exitVarDecl(this);
\r
221 TocParser::VarDeclContext* TocParser::varDecl() {
\r
222 VarDeclContext *_localctx = _tracker.createInstance<VarDeclContext>(_ctx, getState());
\r
223 enterRule(_localctx, 4, TocParser::RuleVarDecl);
\r
225 #if __cplusplus > 201703L
\r
226 auto onExit = finally([=, this] {
\r
228 auto onExit = finally([=] {
\r
233 enterOuterAlt(_localctx, 1);
\r
235 match(TocParser::T__0);
\r
240 catch (RecognitionException &e) {
\r
241 _errHandler->reportError(this, e);
\r
242 _localctx->exception = std::current_exception();
\r
243 _errHandler->recover(this, _localctx->exception);
\r
249 //----------------- VarContext ------------------------------------------------------------------
\r
251 TocParser::VarContext::VarContext(ParserRuleContext *parent, size_t invokingState)
\r
252 : ParserRuleContext(parent, invokingState) {
\r
255 TocParser::VarNameContext* TocParser::VarContext::varName() {
\r
256 return getRuleContext<TocParser::VarNameContext>(0);
\r
259 TocParser::TypeContext* TocParser::VarContext::type() {
\r
260 return getRuleContext<TocParser::TypeContext>(0);
\r
263 TocParser::ExprContext* TocParser::VarContext::expr() {
\r
264 return getRuleContext<TocParser::ExprContext>(0);
\r
268 size_t TocParser::VarContext::getRuleIndex() const {
\r
269 return TocParser::RuleVar;
\r
272 void TocParser::VarContext::enterRule(tree::ParseTreeListener *listener) {
\r
273 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
274 if (parserListener != nullptr)
\r
275 parserListener->enterVar(this);
\r
278 void TocParser::VarContext::exitRule(tree::ParseTreeListener *listener) {
\r
279 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
280 if (parserListener != nullptr)
\r
281 parserListener->exitVar(this);
\r
284 TocParser::VarContext* TocParser::var() {
\r
285 VarContext *_localctx = _tracker.createInstance<VarContext>(_ctx, getState());
\r
286 enterRule(_localctx, 6, TocParser::RuleVar);
\r
289 #if __cplusplus > 201703L
\r
290 auto onExit = finally([=, this] {
\r
292 auto onExit = finally([=] {
\r
297 enterOuterAlt(_localctx, 1);
\r
302 match(TocParser::T__1);
\r
306 _errHandler->sync(this);
\r
308 _la = _input->LA(1);
\r
309 if (_la == TocParser::T__2) {
\r
311 match(TocParser::T__2);
\r
317 catch (RecognitionException &e) {
\r
318 _errHandler->reportError(this, e);
\r
319 _localctx->exception = std::current_exception();
\r
320 _errHandler->recover(this, _localctx->exception);
\r
326 //----------------- TypeContext ------------------------------------------------------------------
\r
328 TocParser::TypeContext::TypeContext(ParserRuleContext *parent, size_t invokingState)
\r
329 : ParserRuleContext(parent, invokingState) {
\r
332 TocParser::TypeNameContext* TocParser::TypeContext::typeName() {
\r
333 return getRuleContext<TocParser::TypeNameContext>(0);
\r
337 size_t TocParser::TypeContext::getRuleIndex() const {
\r
338 return TocParser::RuleType;
\r
341 void TocParser::TypeContext::enterRule(tree::ParseTreeListener *listener) {
\r
342 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
343 if (parserListener != nullptr)
\r
344 parserListener->enterType(this);
\r
347 void TocParser::TypeContext::exitRule(tree::ParseTreeListener *listener) {
\r
348 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
349 if (parserListener != nullptr)
\r
350 parserListener->exitType(this);
\r
353 TocParser::TypeContext* TocParser::type() {
\r
354 TypeContext *_localctx = _tracker.createInstance<TypeContext>(_ctx, getState());
\r
355 enterRule(_localctx, 8, TocParser::RuleType);
\r
357 #if __cplusplus > 201703L
\r
358 auto onExit = finally([=, this] {
\r
360 auto onExit = finally([=] {
\r
365 enterOuterAlt(_localctx, 1);
\r
370 catch (RecognitionException &e) {
\r
371 _errHandler->reportError(this, e);
\r
372 _localctx->exception = std::current_exception();
\r
373 _errHandler->recover(this, _localctx->exception);
\r
379 //----------------- FuncDeclContext ------------------------------------------------------------------
\r
381 TocParser::FuncDeclContext::FuncDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
382 : ParserRuleContext(parent, invokingState) {
\r
385 TocParser::FuncContext* TocParser::FuncDeclContext::func() {
\r
386 return getRuleContext<TocParser::FuncContext>(0);
\r
390 size_t TocParser::FuncDeclContext::getRuleIndex() const {
\r
391 return TocParser::RuleFuncDecl;
\r
394 void TocParser::FuncDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
395 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
396 if (parserListener != nullptr)
\r
397 parserListener->enterFuncDecl(this);
\r
400 void TocParser::FuncDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
401 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
402 if (parserListener != nullptr)
\r
403 parserListener->exitFuncDecl(this);
\r
406 TocParser::FuncDeclContext* TocParser::funcDecl() {
\r
407 FuncDeclContext *_localctx = _tracker.createInstance<FuncDeclContext>(_ctx, getState());
\r
408 enterRule(_localctx, 10, TocParser::RuleFuncDecl);
\r
410 #if __cplusplus > 201703L
\r
411 auto onExit = finally([=, this] {
\r
413 auto onExit = finally([=] {
\r
418 enterOuterAlt(_localctx, 1);
\r
420 match(TocParser::T__3);
\r
425 catch (RecognitionException &e) {
\r
426 _errHandler->reportError(this, e);
\r
427 _localctx->exception = std::current_exception();
\r
428 _errHandler->recover(this, _localctx->exception);
\r
434 //----------------- FuncContext ------------------------------------------------------------------
\r
436 TocParser::FuncContext::FuncContext(ParserRuleContext *parent, size_t invokingState)
\r
437 : ParserRuleContext(parent, invokingState) {
\r
440 TocParser::FuncNameContext* TocParser::FuncContext::funcName() {
\r
441 return getRuleContext<TocParser::FuncNameContext>(0);
\r
444 TocParser::ParameterContext* TocParser::FuncContext::parameter() {
\r
445 return getRuleContext<TocParser::ParameterContext>(0);
\r
448 TocParser::BodyContext* TocParser::FuncContext::body() {
\r
449 return getRuleContext<TocParser::BodyContext>(0);
\r
452 TocParser::TypeContext* TocParser::FuncContext::type() {
\r
453 return getRuleContext<TocParser::TypeContext>(0);
\r
457 size_t TocParser::FuncContext::getRuleIndex() const {
\r
458 return TocParser::RuleFunc;
\r
461 void TocParser::FuncContext::enterRule(tree::ParseTreeListener *listener) {
\r
462 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
463 if (parserListener != nullptr)
\r
464 parserListener->enterFunc(this);
\r
467 void TocParser::FuncContext::exitRule(tree::ParseTreeListener *listener) {
\r
468 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
469 if (parserListener != nullptr)
\r
470 parserListener->exitFunc(this);
\r
473 TocParser::FuncContext* TocParser::func() {
\r
474 FuncContext *_localctx = _tracker.createInstance<FuncContext>(_ctx, getState());
\r
475 enterRule(_localctx, 12, TocParser::RuleFunc);
\r
477 #if __cplusplus > 201703L
\r
478 auto onExit = finally([=, this] {
\r
480 auto onExit = finally([=] {
\r
485 enterOuterAlt(_localctx, 1);
\r
489 match(TocParser::T__4);
\r
493 match(TocParser::T__5);
\r
496 match(TocParser::T__1);
\r
503 catch (RecognitionException &e) {
\r
504 _errHandler->reportError(this, e);
\r
505 _localctx->exception = std::current_exception();
\r
506 _errHandler->recover(this, _localctx->exception);
\r
512 //----------------- ParameterContext ------------------------------------------------------------------
\r
514 TocParser::ParameterContext::ParameterContext(ParserRuleContext *parent, size_t invokingState)
\r
515 : ParserRuleContext(parent, invokingState) {
\r
518 std::vector<TocParser::VarContext *> TocParser::ParameterContext::var() {
\r
519 return getRuleContexts<TocParser::VarContext>();
\r
522 TocParser::VarContext* TocParser::ParameterContext::var(size_t i) {
\r
523 return getRuleContext<TocParser::VarContext>(i);
\r
527 size_t TocParser::ParameterContext::getRuleIndex() const {
\r
528 return TocParser::RuleParameter;
\r
531 void TocParser::ParameterContext::enterRule(tree::ParseTreeListener *listener) {
\r
532 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
533 if (parserListener != nullptr)
\r
534 parserListener->enterParameter(this);
\r
537 void TocParser::ParameterContext::exitRule(tree::ParseTreeListener *listener) {
\r
538 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
539 if (parserListener != nullptr)
\r
540 parserListener->exitParameter(this);
\r
543 TocParser::ParameterContext* TocParser::parameter() {
\r
544 ParameterContext *_localctx = _tracker.createInstance<ParameterContext>(_ctx, getState());
\r
545 enterRule(_localctx, 14, TocParser::RuleParameter);
\r
548 #if __cplusplus > 201703L
\r
549 auto onExit = finally([=, this] {
\r
551 auto onExit = finally([=] {
\r
556 enterOuterAlt(_localctx, 1);
\r
558 _errHandler->sync(this);
\r
560 _la = _input->LA(1);
\r
561 if (_la == TocParser::NAME) {
\r
565 _errHandler->sync(this);
\r
566 _la = _input->LA(1);
\r
567 while (_la == TocParser::T__6) {
\r
569 match(TocParser::T__6);
\r
573 _errHandler->sync(this);
\r
574 _la = _input->LA(1);
\r
579 catch (RecognitionException &e) {
\r
580 _errHandler->reportError(this, e);
\r
581 _localctx->exception = std::current_exception();
\r
582 _errHandler->recover(this, _localctx->exception);
\r
588 //----------------- BodyContext ------------------------------------------------------------------
\r
590 TocParser::BodyContext::BodyContext(ParserRuleContext *parent, size_t invokingState)
\r
591 : ParserRuleContext(parent, invokingState) {
\r
594 std::vector<TocParser::StmtContext *> TocParser::BodyContext::stmt() {
\r
595 return getRuleContexts<TocParser::StmtContext>();
\r
598 TocParser::StmtContext* TocParser::BodyContext::stmt(size_t i) {
\r
599 return getRuleContext<TocParser::StmtContext>(i);
\r
603 size_t TocParser::BodyContext::getRuleIndex() const {
\r
604 return TocParser::RuleBody;
\r
607 void TocParser::BodyContext::enterRule(tree::ParseTreeListener *listener) {
\r
608 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
609 if (parserListener != nullptr)
\r
610 parserListener->enterBody(this);
\r
613 void TocParser::BodyContext::exitRule(tree::ParseTreeListener *listener) {
\r
614 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
615 if (parserListener != nullptr)
\r
616 parserListener->exitBody(this);
\r
619 TocParser::BodyContext* TocParser::body() {
\r
620 BodyContext *_localctx = _tracker.createInstance<BodyContext>(_ctx, getState());
\r
621 enterRule(_localctx, 16, TocParser::RuleBody);
\r
624 #if __cplusplus > 201703L
\r
625 auto onExit = finally([=, this] {
\r
627 auto onExit = finally([=] {
\r
632 enterOuterAlt(_localctx, 1);
\r
634 match(TocParser::T__7);
\r
636 _errHandler->sync(this);
\r
637 _la = _input->LA(1);
\r
638 while ((((_la & ~ 0x3fULL) == 0) &&
\r
639 ((1ULL << _la) & ((1ULL << TocParser::T__0)
\r
640 | (1ULL << TocParser::T__4)
\r
641 | (1ULL << TocParser::T__10)
\r
642 | (1ULL << TocParser::T__11)
\r
643 | (1ULL << TocParser::T__12)
\r
644 | (1ULL << TocParser::INTLIT)
\r
645 | (1ULL << TocParser::NAME))) != 0)) {
\r
649 _errHandler->sync(this);
\r
650 _la = _input->LA(1);
\r
653 match(TocParser::T__8);
\r
656 catch (RecognitionException &e) {
\r
657 _errHandler->reportError(this, e);
\r
658 _localctx->exception = std::current_exception();
\r
659 _errHandler->recover(this, _localctx->exception);
\r
665 //----------------- StructDeclContext ------------------------------------------------------------------
\r
667 TocParser::StructDeclContext::StructDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
668 : ParserRuleContext(parent, invokingState) {
\r
671 TocParser::StructNameContext* TocParser::StructDeclContext::structName() {
\r
672 return getRuleContext<TocParser::StructNameContext>(0);
\r
675 std::vector<TocParser::StructMemberContext *> TocParser::StructDeclContext::structMember() {
\r
676 return getRuleContexts<TocParser::StructMemberContext>();
\r
679 TocParser::StructMemberContext* TocParser::StructDeclContext::structMember(size_t i) {
\r
680 return getRuleContext<TocParser::StructMemberContext>(i);
\r
684 size_t TocParser::StructDeclContext::getRuleIndex() const {
\r
685 return TocParser::RuleStructDecl;
\r
688 void TocParser::StructDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
689 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
690 if (parserListener != nullptr)
\r
691 parserListener->enterStructDecl(this);
\r
694 void TocParser::StructDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
695 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
696 if (parserListener != nullptr)
\r
697 parserListener->exitStructDecl(this);
\r
700 TocParser::StructDeclContext* TocParser::structDecl() {
\r
701 StructDeclContext *_localctx = _tracker.createInstance<StructDeclContext>(_ctx, getState());
\r
702 enterRule(_localctx, 18, TocParser::RuleStructDecl);
\r
705 #if __cplusplus > 201703L
\r
706 auto onExit = finally([=, this] {
\r
708 auto onExit = finally([=] {
\r
713 enterOuterAlt(_localctx, 1);
\r
715 match(TocParser::T__9);
\r
719 match(TocParser::T__7);
\r
721 _errHandler->sync(this);
\r
722 _la = _input->LA(1);
\r
723 while (_la == TocParser::NAME) {
\r
727 _errHandler->sync(this);
\r
728 _la = _input->LA(1);
\r
731 match(TocParser::T__8);
\r
734 catch (RecognitionException &e) {
\r
735 _errHandler->reportError(this, e);
\r
736 _localctx->exception = std::current_exception();
\r
737 _errHandler->recover(this, _localctx->exception);
\r
743 //----------------- StructMemberContext ------------------------------------------------------------------
\r
745 TocParser::StructMemberContext::StructMemberContext(ParserRuleContext *parent, size_t invokingState)
\r
746 : ParserRuleContext(parent, invokingState) {
\r
749 TocParser::StructVarContext* TocParser::StructMemberContext::structVar() {
\r
750 return getRuleContext<TocParser::StructVarContext>(0);
\r
753 TocParser::StructMethodContext* TocParser::StructMemberContext::structMethod() {
\r
754 return getRuleContext<TocParser::StructMethodContext>(0);
\r
758 size_t TocParser::StructMemberContext::getRuleIndex() const {
\r
759 return TocParser::RuleStructMember;
\r
762 void TocParser::StructMemberContext::enterRule(tree::ParseTreeListener *listener) {
\r
763 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
764 if (parserListener != nullptr)
\r
765 parserListener->enterStructMember(this);
\r
768 void TocParser::StructMemberContext::exitRule(tree::ParseTreeListener *listener) {
\r
769 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
770 if (parserListener != nullptr)
\r
771 parserListener->exitStructMember(this);
\r
774 TocParser::StructMemberContext* TocParser::structMember() {
\r
775 StructMemberContext *_localctx = _tracker.createInstance<StructMemberContext>(_ctx, getState());
\r
776 enterRule(_localctx, 20, TocParser::RuleStructMember);
\r
778 #if __cplusplus > 201703L
\r
779 auto onExit = finally([=, this] {
\r
781 auto onExit = finally([=] {
\r
787 _errHandler->sync(this);
\r
788 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 7, _ctx)) {
\r
790 enterOuterAlt(_localctx, 1);
\r
797 enterOuterAlt(_localctx, 2);
\r
808 catch (RecognitionException &e) {
\r
809 _errHandler->reportError(this, e);
\r
810 _localctx->exception = std::current_exception();
\r
811 _errHandler->recover(this, _localctx->exception);
\r
817 //----------------- StructVarContext ------------------------------------------------------------------
\r
819 TocParser::StructVarContext::StructVarContext(ParserRuleContext *parent, size_t invokingState)
\r
820 : ParserRuleContext(parent, invokingState) {
\r
823 TocParser::VarContext* TocParser::StructVarContext::var() {
\r
824 return getRuleContext<TocParser::VarContext>(0);
\r
828 size_t TocParser::StructVarContext::getRuleIndex() const {
\r
829 return TocParser::RuleStructVar;
\r
832 void TocParser::StructVarContext::enterRule(tree::ParseTreeListener *listener) {
\r
833 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
834 if (parserListener != nullptr)
\r
835 parserListener->enterStructVar(this);
\r
838 void TocParser::StructVarContext::exitRule(tree::ParseTreeListener *listener) {
\r
839 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
840 if (parserListener != nullptr)
\r
841 parserListener->exitStructVar(this);
\r
844 TocParser::StructVarContext* TocParser::structVar() {
\r
845 StructVarContext *_localctx = _tracker.createInstance<StructVarContext>(_ctx, getState());
\r
846 enterRule(_localctx, 22, TocParser::RuleStructVar);
\r
848 #if __cplusplus > 201703L
\r
849 auto onExit = finally([=, this] {
\r
851 auto onExit = finally([=] {
\r
856 enterOuterAlt(_localctx, 1);
\r
861 catch (RecognitionException &e) {
\r
862 _errHandler->reportError(this, e);
\r
863 _localctx->exception = std::current_exception();
\r
864 _errHandler->recover(this, _localctx->exception);
\r
870 //----------------- StructMethodContext ------------------------------------------------------------------
\r
872 TocParser::StructMethodContext::StructMethodContext(ParserRuleContext *parent, size_t invokingState)
\r
873 : ParserRuleContext(parent, invokingState) {
\r
876 TocParser::FuncContext* TocParser::StructMethodContext::func() {
\r
877 return getRuleContext<TocParser::FuncContext>(0);
\r
881 size_t TocParser::StructMethodContext::getRuleIndex() const {
\r
882 return TocParser::RuleStructMethod;
\r
885 void TocParser::StructMethodContext::enterRule(tree::ParseTreeListener *listener) {
\r
886 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
887 if (parserListener != nullptr)
\r
888 parserListener->enterStructMethod(this);
\r
891 void TocParser::StructMethodContext::exitRule(tree::ParseTreeListener *listener) {
\r
892 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
893 if (parserListener != nullptr)
\r
894 parserListener->exitStructMethod(this);
\r
897 TocParser::StructMethodContext* TocParser::structMethod() {
\r
898 StructMethodContext *_localctx = _tracker.createInstance<StructMethodContext>(_ctx, getState());
\r
899 enterRule(_localctx, 24, TocParser::RuleStructMethod);
\r
901 #if __cplusplus > 201703L
\r
902 auto onExit = finally([=, this] {
\r
904 auto onExit = finally([=] {
\r
909 enterOuterAlt(_localctx, 1);
\r
914 catch (RecognitionException &e) {
\r
915 _errHandler->reportError(this, e);
\r
916 _localctx->exception = std::current_exception();
\r
917 _errHandler->recover(this, _localctx->exception);
\r
923 //----------------- StmtContext ------------------------------------------------------------------
\r
925 TocParser::StmtContext::StmtContext(ParserRuleContext *parent, size_t invokingState)
\r
926 : ParserRuleContext(parent, invokingState) {
\r
929 TocParser::VarDeclContext* TocParser::StmtContext::varDecl() {
\r
930 return getRuleContext<TocParser::VarDeclContext>(0);
\r
933 TocParser::ConditionalContext* TocParser::StmtContext::conditional() {
\r
934 return getRuleContext<TocParser::ConditionalContext>(0);
\r
937 TocParser::LoopContext* TocParser::StmtContext::loop() {
\r
938 return getRuleContext<TocParser::LoopContext>(0);
\r
941 TocParser::AssignmentContext* TocParser::StmtContext::assignment() {
\r
942 return getRuleContext<TocParser::AssignmentContext>(0);
\r
945 TocParser::ReturnStmtContext* TocParser::StmtContext::returnStmt() {
\r
946 return getRuleContext<TocParser::ReturnStmtContext>(0);
\r
949 TocParser::ExprContext* TocParser::StmtContext::expr() {
\r
950 return getRuleContext<TocParser::ExprContext>(0);
\r
954 size_t TocParser::StmtContext::getRuleIndex() const {
\r
955 return TocParser::RuleStmt;
\r
958 void TocParser::StmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
959 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
960 if (parserListener != nullptr)
\r
961 parserListener->enterStmt(this);
\r
964 void TocParser::StmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
965 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
966 if (parserListener != nullptr)
\r
967 parserListener->exitStmt(this);
\r
970 TocParser::StmtContext* TocParser::stmt() {
\r
971 StmtContext *_localctx = _tracker.createInstance<StmtContext>(_ctx, getState());
\r
972 enterRule(_localctx, 26, TocParser::RuleStmt);
\r
974 #if __cplusplus > 201703L
\r
975 auto onExit = finally([=, this] {
\r
977 auto onExit = finally([=] {
\r
982 enterOuterAlt(_localctx, 1);
\r
984 _errHandler->sync(this);
\r
985 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 8, _ctx)) {
\r
1027 catch (RecognitionException &e) {
\r
1028 _errHandler->reportError(this, e);
\r
1029 _localctx->exception = std::current_exception();
\r
1030 _errHandler->recover(this, _localctx->exception);
\r
1036 //----------------- ConditionalContext ------------------------------------------------------------------
\r
1038 TocParser::ConditionalContext::ConditionalContext(ParserRuleContext *parent, size_t invokingState)
\r
1039 : ParserRuleContext(parent, invokingState) {
\r
1042 TocParser::IfCondContext* TocParser::ConditionalContext::ifCond() {
\r
1043 return getRuleContext<TocParser::IfCondContext>(0);
\r
1047 size_t TocParser::ConditionalContext::getRuleIndex() const {
\r
1048 return TocParser::RuleConditional;
\r
1051 void TocParser::ConditionalContext::enterRule(tree::ParseTreeListener *listener) {
\r
1052 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1053 if (parserListener != nullptr)
\r
1054 parserListener->enterConditional(this);
\r
1057 void TocParser::ConditionalContext::exitRule(tree::ParseTreeListener *listener) {
\r
1058 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1059 if (parserListener != nullptr)
\r
1060 parserListener->exitConditional(this);
\r
1063 TocParser::ConditionalContext* TocParser::conditional() {
\r
1064 ConditionalContext *_localctx = _tracker.createInstance<ConditionalContext>(_ctx, getState());
\r
1065 enterRule(_localctx, 28, TocParser::RuleConditional);
\r
1067 #if __cplusplus > 201703L
\r
1068 auto onExit = finally([=, this] {
\r
1070 auto onExit = finally([=] {
\r
1075 enterOuterAlt(_localctx, 1);
\r
1080 catch (RecognitionException &e) {
\r
1081 _errHandler->reportError(this, e);
\r
1082 _localctx->exception = std::current_exception();
\r
1083 _errHandler->recover(this, _localctx->exception);
\r
1089 //----------------- IfCondContext ------------------------------------------------------------------
\r
1091 TocParser::IfCondContext::IfCondContext(ParserRuleContext *parent, size_t invokingState)
\r
1092 : ParserRuleContext(parent, invokingState) {
\r
1095 TocParser::ExprContext* TocParser::IfCondContext::expr() {
\r
1096 return getRuleContext<TocParser::ExprContext>(0);
\r
1099 TocParser::BodyContext* TocParser::IfCondContext::body() {
\r
1100 return getRuleContext<TocParser::BodyContext>(0);
\r
1104 size_t TocParser::IfCondContext::getRuleIndex() const {
\r
1105 return TocParser::RuleIfCond;
\r
1108 void TocParser::IfCondContext::enterRule(tree::ParseTreeListener *listener) {
\r
1109 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1110 if (parserListener != nullptr)
\r
1111 parserListener->enterIfCond(this);
\r
1114 void TocParser::IfCondContext::exitRule(tree::ParseTreeListener *listener) {
\r
1115 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1116 if (parserListener != nullptr)
\r
1117 parserListener->exitIfCond(this);
\r
1120 TocParser::IfCondContext* TocParser::ifCond() {
\r
1121 IfCondContext *_localctx = _tracker.createInstance<IfCondContext>(_ctx, getState());
\r
1122 enterRule(_localctx, 30, TocParser::RuleIfCond);
\r
1124 #if __cplusplus > 201703L
\r
1125 auto onExit = finally([=, this] {
\r
1127 auto onExit = finally([=] {
\r
1132 enterOuterAlt(_localctx, 1);
\r
1134 match(TocParser::T__10);
\r
1141 catch (RecognitionException &e) {
\r
1142 _errHandler->reportError(this, e);
\r
1143 _localctx->exception = std::current_exception();
\r
1144 _errHandler->recover(this, _localctx->exception);
\r
1150 //----------------- LoopContext ------------------------------------------------------------------
\r
1152 TocParser::LoopContext::LoopContext(ParserRuleContext *parent, size_t invokingState)
\r
1153 : ParserRuleContext(parent, invokingState) {
\r
1156 TocParser::WhileLoopContext* TocParser::LoopContext::whileLoop() {
\r
1157 return getRuleContext<TocParser::WhileLoopContext>(0);
\r
1161 size_t TocParser::LoopContext::getRuleIndex() const {
\r
1162 return TocParser::RuleLoop;
\r
1165 void TocParser::LoopContext::enterRule(tree::ParseTreeListener *listener) {
\r
1166 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1167 if (parserListener != nullptr)
\r
1168 parserListener->enterLoop(this);
\r
1171 void TocParser::LoopContext::exitRule(tree::ParseTreeListener *listener) {
\r
1172 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1173 if (parserListener != nullptr)
\r
1174 parserListener->exitLoop(this);
\r
1177 TocParser::LoopContext* TocParser::loop() {
\r
1178 LoopContext *_localctx = _tracker.createInstance<LoopContext>(_ctx, getState());
\r
1179 enterRule(_localctx, 32, TocParser::RuleLoop);
\r
1181 #if __cplusplus > 201703L
\r
1182 auto onExit = finally([=, this] {
\r
1184 auto onExit = finally([=] {
\r
1189 enterOuterAlt(_localctx, 1);
\r
1194 catch (RecognitionException &e) {
\r
1195 _errHandler->reportError(this, e);
\r
1196 _localctx->exception = std::current_exception();
\r
1197 _errHandler->recover(this, _localctx->exception);
\r
1203 //----------------- WhileLoopContext ------------------------------------------------------------------
\r
1205 TocParser::WhileLoopContext::WhileLoopContext(ParserRuleContext *parent, size_t invokingState)
\r
1206 : ParserRuleContext(parent, invokingState) {
\r
1209 TocParser::ExprContext* TocParser::WhileLoopContext::expr() {
\r
1210 return getRuleContext<TocParser::ExprContext>(0);
\r
1213 TocParser::BodyContext* TocParser::WhileLoopContext::body() {
\r
1214 return getRuleContext<TocParser::BodyContext>(0);
\r
1218 size_t TocParser::WhileLoopContext::getRuleIndex() const {
\r
1219 return TocParser::RuleWhileLoop;
\r
1222 void TocParser::WhileLoopContext::enterRule(tree::ParseTreeListener *listener) {
\r
1223 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1224 if (parserListener != nullptr)
\r
1225 parserListener->enterWhileLoop(this);
\r
1228 void TocParser::WhileLoopContext::exitRule(tree::ParseTreeListener *listener) {
\r
1229 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1230 if (parserListener != nullptr)
\r
1231 parserListener->exitWhileLoop(this);
\r
1234 TocParser::WhileLoopContext* TocParser::whileLoop() {
\r
1235 WhileLoopContext *_localctx = _tracker.createInstance<WhileLoopContext>(_ctx, getState());
\r
1236 enterRule(_localctx, 34, TocParser::RuleWhileLoop);
\r
1238 #if __cplusplus > 201703L
\r
1239 auto onExit = finally([=, this] {
\r
1241 auto onExit = finally([=] {
\r
1246 enterOuterAlt(_localctx, 1);
\r
1248 match(TocParser::T__11);
\r
1255 catch (RecognitionException &e) {
\r
1256 _errHandler->reportError(this, e);
\r
1257 _localctx->exception = std::current_exception();
\r
1258 _errHandler->recover(this, _localctx->exception);
\r
1264 //----------------- AssignmentContext ------------------------------------------------------------------
\r
1266 TocParser::AssignmentContext::AssignmentContext(ParserRuleContext *parent, size_t invokingState)
\r
1267 : ParserRuleContext(parent, invokingState) {
\r
1270 TocParser::IdentifierContext* TocParser::AssignmentContext::identifier() {
\r
1271 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1274 TocParser::ExprContext* TocParser::AssignmentContext::expr() {
\r
1275 return getRuleContext<TocParser::ExprContext>(0);
\r
1279 size_t TocParser::AssignmentContext::getRuleIndex() const {
\r
1280 return TocParser::RuleAssignment;
\r
1283 void TocParser::AssignmentContext::enterRule(tree::ParseTreeListener *listener) {
\r
1284 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1285 if (parserListener != nullptr)
\r
1286 parserListener->enterAssignment(this);
\r
1289 void TocParser::AssignmentContext::exitRule(tree::ParseTreeListener *listener) {
\r
1290 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1291 if (parserListener != nullptr)
\r
1292 parserListener->exitAssignment(this);
\r
1295 TocParser::AssignmentContext* TocParser::assignment() {
\r
1296 AssignmentContext *_localctx = _tracker.createInstance<AssignmentContext>(_ctx, getState());
\r
1297 enterRule(_localctx, 36, TocParser::RuleAssignment);
\r
1299 #if __cplusplus > 201703L
\r
1300 auto onExit = finally([=, this] {
\r
1302 auto onExit = finally([=] {
\r
1307 enterOuterAlt(_localctx, 1);
\r
1311 match(TocParser::T__2);
\r
1316 catch (RecognitionException &e) {
\r
1317 _errHandler->reportError(this, e);
\r
1318 _localctx->exception = std::current_exception();
\r
1319 _errHandler->recover(this, _localctx->exception);
\r
1325 //----------------- ReturnStmtContext ------------------------------------------------------------------
\r
1327 TocParser::ReturnStmtContext::ReturnStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1328 : ParserRuleContext(parent, invokingState) {
\r
1331 TocParser::ExprContext* TocParser::ReturnStmtContext::expr() {
\r
1332 return getRuleContext<TocParser::ExprContext>(0);
\r
1336 size_t TocParser::ReturnStmtContext::getRuleIndex() const {
\r
1337 return TocParser::RuleReturnStmt;
\r
1340 void TocParser::ReturnStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1341 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1342 if (parserListener != nullptr)
\r
1343 parserListener->enterReturnStmt(this);
\r
1346 void TocParser::ReturnStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1347 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1348 if (parserListener != nullptr)
\r
1349 parserListener->exitReturnStmt(this);
\r
1352 TocParser::ReturnStmtContext* TocParser::returnStmt() {
\r
1353 ReturnStmtContext *_localctx = _tracker.createInstance<ReturnStmtContext>(_ctx, getState());
\r
1354 enterRule(_localctx, 38, TocParser::RuleReturnStmt);
\r
1356 #if __cplusplus > 201703L
\r
1357 auto onExit = finally([=, this] {
\r
1359 auto onExit = finally([=] {
\r
1364 enterOuterAlt(_localctx, 1);
\r
1366 match(TocParser::T__12);
\r
1371 catch (RecognitionException &e) {
\r
1372 _errHandler->reportError(this, e);
\r
1373 _localctx->exception = std::current_exception();
\r
1374 _errHandler->recover(this, _localctx->exception);
\r
1380 //----------------- ExprContext ------------------------------------------------------------------
\r
1382 TocParser::ExprContext::ExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1383 : ParserRuleContext(parent, invokingState) {
\r
1386 TocParser::FuncCallContext* TocParser::ExprContext::funcCall() {
\r
1387 return getRuleContext<TocParser::FuncCallContext>(0);
\r
1390 TocParser::LiteralContext* TocParser::ExprContext::literal() {
\r
1391 return getRuleContext<TocParser::LiteralContext>(0);
\r
1394 TocParser::IdentifierContext* TocParser::ExprContext::identifier() {
\r
1395 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1398 TocParser::SubscriptContext* TocParser::ExprContext::subscript() {
\r
1399 return getRuleContext<TocParser::SubscriptContext>(0);
\r
1402 TocParser::MemberAccessContext* TocParser::ExprContext::memberAccess() {
\r
1403 return getRuleContext<TocParser::MemberAccessContext>(0);
\r
1406 TocParser::ParenExprContext* TocParser::ExprContext::parenExpr() {
\r
1407 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1410 TocParser::OperatorExprContext* TocParser::ExprContext::operatorExpr() {
\r
1411 return getRuleContext<TocParser::OperatorExprContext>(0);
\r
1415 size_t TocParser::ExprContext::getRuleIndex() const {
\r
1416 return TocParser::RuleExpr;
\r
1419 void TocParser::ExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1420 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1421 if (parserListener != nullptr)
\r
1422 parserListener->enterExpr(this);
\r
1425 void TocParser::ExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1426 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1427 if (parserListener != nullptr)
\r
1428 parserListener->exitExpr(this);
\r
1431 TocParser::ExprContext* TocParser::expr() {
\r
1432 ExprContext *_localctx = _tracker.createInstance<ExprContext>(_ctx, getState());
\r
1433 enterRule(_localctx, 40, TocParser::RuleExpr);
\r
1435 #if __cplusplus > 201703L
\r
1436 auto onExit = finally([=, this] {
\r
1438 auto onExit = finally([=] {
\r
1444 _errHandler->sync(this);
\r
1445 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 9, _ctx)) {
\r
1447 enterOuterAlt(_localctx, 1);
\r
1454 enterOuterAlt(_localctx, 2);
\r
1461 enterOuterAlt(_localctx, 3);
\r
1468 enterOuterAlt(_localctx, 4);
\r
1475 enterOuterAlt(_localctx, 5);
\r
1482 enterOuterAlt(_localctx, 6);
\r
1489 enterOuterAlt(_localctx, 7);
\r
1500 catch (RecognitionException &e) {
\r
1501 _errHandler->reportError(this, e);
\r
1502 _localctx->exception = std::current_exception();
\r
1503 _errHandler->recover(this, _localctx->exception);
\r
1509 //----------------- NonOpExprContext ------------------------------------------------------------------
\r
1511 TocParser::NonOpExprContext::NonOpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1512 : ParserRuleContext(parent, invokingState) {
\r
1515 TocParser::FuncCallContext* TocParser::NonOpExprContext::funcCall() {
\r
1516 return getRuleContext<TocParser::FuncCallContext>(0);
\r
1519 TocParser::LiteralContext* TocParser::NonOpExprContext::literal() {
\r
1520 return getRuleContext<TocParser::LiteralContext>(0);
\r
1523 TocParser::IdentifierContext* TocParser::NonOpExprContext::identifier() {
\r
1524 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1527 TocParser::SubscriptContext* TocParser::NonOpExprContext::subscript() {
\r
1528 return getRuleContext<TocParser::SubscriptContext>(0);
\r
1531 TocParser::MemberAccessContext* TocParser::NonOpExprContext::memberAccess() {
\r
1532 return getRuleContext<TocParser::MemberAccessContext>(0);
\r
1535 TocParser::ParenExprContext* TocParser::NonOpExprContext::parenExpr() {
\r
1536 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1540 size_t TocParser::NonOpExprContext::getRuleIndex() const {
\r
1541 return TocParser::RuleNonOpExpr;
\r
1544 void TocParser::NonOpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1545 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1546 if (parserListener != nullptr)
\r
1547 parserListener->enterNonOpExpr(this);
\r
1550 void TocParser::NonOpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1551 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1552 if (parserListener != nullptr)
\r
1553 parserListener->exitNonOpExpr(this);
\r
1556 TocParser::NonOpExprContext* TocParser::nonOpExpr() {
\r
1557 NonOpExprContext *_localctx = _tracker.createInstance<NonOpExprContext>(_ctx, getState());
\r
1558 enterRule(_localctx, 42, TocParser::RuleNonOpExpr);
\r
1560 #if __cplusplus > 201703L
\r
1561 auto onExit = finally([=, this] {
\r
1563 auto onExit = finally([=] {
\r
1569 _errHandler->sync(this);
\r
1570 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 10, _ctx)) {
\r
1572 enterOuterAlt(_localctx, 1);
\r
1579 enterOuterAlt(_localctx, 2);
\r
1586 enterOuterAlt(_localctx, 3);
\r
1593 enterOuterAlt(_localctx, 4);
\r
1600 enterOuterAlt(_localctx, 5);
\r
1607 enterOuterAlt(_localctx, 6);
\r
1618 catch (RecognitionException &e) {
\r
1619 _errHandler->reportError(this, e);
\r
1620 _localctx->exception = std::current_exception();
\r
1621 _errHandler->recover(this, _localctx->exception);
\r
1627 //----------------- NonSubscriptExprContext ------------------------------------------------------------------
\r
1629 TocParser::NonSubscriptExprContext::NonSubscriptExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1630 : ParserRuleContext(parent, invokingState) {
\r
1633 TocParser::FuncCallContext* TocParser::NonSubscriptExprContext::funcCall() {
\r
1634 return getRuleContext<TocParser::FuncCallContext>(0);
\r
1637 TocParser::LiteralContext* TocParser::NonSubscriptExprContext::literal() {
\r
1638 return getRuleContext<TocParser::LiteralContext>(0);
\r
1641 TocParser::IdentifierContext* TocParser::NonSubscriptExprContext::identifier() {
\r
1642 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1645 TocParser::MemberAccessContext* TocParser::NonSubscriptExprContext::memberAccess() {
\r
1646 return getRuleContext<TocParser::MemberAccessContext>(0);
\r
1649 TocParser::ParenExprContext* TocParser::NonSubscriptExprContext::parenExpr() {
\r
1650 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1654 size_t TocParser::NonSubscriptExprContext::getRuleIndex() const {
\r
1655 return TocParser::RuleNonSubscriptExpr;
\r
1658 void TocParser::NonSubscriptExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1659 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1660 if (parserListener != nullptr)
\r
1661 parserListener->enterNonSubscriptExpr(this);
\r
1664 void TocParser::NonSubscriptExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1665 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1666 if (parserListener != nullptr)
\r
1667 parserListener->exitNonSubscriptExpr(this);
\r
1670 TocParser::NonSubscriptExprContext* TocParser::nonSubscriptExpr() {
\r
1671 NonSubscriptExprContext *_localctx = _tracker.createInstance<NonSubscriptExprContext>(_ctx, getState());
\r
1672 enterRule(_localctx, 44, TocParser::RuleNonSubscriptExpr);
\r
1674 #if __cplusplus > 201703L
\r
1675 auto onExit = finally([=, this] {
\r
1677 auto onExit = finally([=] {
\r
1683 _errHandler->sync(this);
\r
1684 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 11, _ctx)) {
\r
1686 enterOuterAlt(_localctx, 1);
\r
1693 enterOuterAlt(_localctx, 2);
\r
1700 enterOuterAlt(_localctx, 3);
\r
1707 enterOuterAlt(_localctx, 4);
\r
1714 enterOuterAlt(_localctx, 5);
\r
1725 catch (RecognitionException &e) {
\r
1726 _errHandler->reportError(this, e);
\r
1727 _localctx->exception = std::current_exception();
\r
1728 _errHandler->recover(this, _localctx->exception);
\r
1734 //----------------- NonAccessExprContext ------------------------------------------------------------------
\r
1736 TocParser::NonAccessExprContext::NonAccessExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1737 : ParserRuleContext(parent, invokingState) {
\r
1740 TocParser::FuncCallContext* TocParser::NonAccessExprContext::funcCall() {
\r
1741 return getRuleContext<TocParser::FuncCallContext>(0);
\r
1744 TocParser::LiteralContext* TocParser::NonAccessExprContext::literal() {
\r
1745 return getRuleContext<TocParser::LiteralContext>(0);
\r
1748 TocParser::IdentifierContext* TocParser::NonAccessExprContext::identifier() {
\r
1749 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1752 TocParser::SubscriptContext* TocParser::NonAccessExprContext::subscript() {
\r
1753 return getRuleContext<TocParser::SubscriptContext>(0);
\r
1756 TocParser::ParenExprContext* TocParser::NonAccessExprContext::parenExpr() {
\r
1757 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1760 TocParser::OperatorExprContext* TocParser::NonAccessExprContext::operatorExpr() {
\r
1761 return getRuleContext<TocParser::OperatorExprContext>(0);
\r
1765 size_t TocParser::NonAccessExprContext::getRuleIndex() const {
\r
1766 return TocParser::RuleNonAccessExpr;
\r
1769 void TocParser::NonAccessExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1770 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1771 if (parserListener != nullptr)
\r
1772 parserListener->enterNonAccessExpr(this);
\r
1775 void TocParser::NonAccessExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1776 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1777 if (parserListener != nullptr)
\r
1778 parserListener->exitNonAccessExpr(this);
\r
1781 TocParser::NonAccessExprContext* TocParser::nonAccessExpr() {
\r
1782 NonAccessExprContext *_localctx = _tracker.createInstance<NonAccessExprContext>(_ctx, getState());
\r
1783 enterRule(_localctx, 46, TocParser::RuleNonAccessExpr);
\r
1785 #if __cplusplus > 201703L
\r
1786 auto onExit = finally([=, this] {
\r
1788 auto onExit = finally([=] {
\r
1794 _errHandler->sync(this);
\r
1795 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 12, _ctx)) {
\r
1797 enterOuterAlt(_localctx, 1);
\r
1804 enterOuterAlt(_localctx, 2);
\r
1811 enterOuterAlt(_localctx, 3);
\r
1818 enterOuterAlt(_localctx, 4);
\r
1825 enterOuterAlt(_localctx, 5);
\r
1832 enterOuterAlt(_localctx, 6);
\r
1843 catch (RecognitionException &e) {
\r
1844 _errHandler->reportError(this, e);
\r
1845 _localctx->exception = std::current_exception();
\r
1846 _errHandler->recover(this, _localctx->exception);
\r
1852 //----------------- FuncCallContext ------------------------------------------------------------------
\r
1854 TocParser::FuncCallContext::FuncCallContext(ParserRuleContext *parent, size_t invokingState)
\r
1855 : ParserRuleContext(parent, invokingState) {
\r
1858 TocParser::FuncNameContext* TocParser::FuncCallContext::funcName() {
\r
1859 return getRuleContext<TocParser::FuncNameContext>(0);
\r
1862 std::vector<TocParser::ExprContext *> TocParser::FuncCallContext::expr() {
\r
1863 return getRuleContexts<TocParser::ExprContext>();
\r
1866 TocParser::ExprContext* TocParser::FuncCallContext::expr(size_t i) {
\r
1867 return getRuleContext<TocParser::ExprContext>(i);
\r
1871 size_t TocParser::FuncCallContext::getRuleIndex() const {
\r
1872 return TocParser::RuleFuncCall;
\r
1875 void TocParser::FuncCallContext::enterRule(tree::ParseTreeListener *listener) {
\r
1876 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1877 if (parserListener != nullptr)
\r
1878 parserListener->enterFuncCall(this);
\r
1881 void TocParser::FuncCallContext::exitRule(tree::ParseTreeListener *listener) {
\r
1882 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1883 if (parserListener != nullptr)
\r
1884 parserListener->exitFuncCall(this);
\r
1887 TocParser::FuncCallContext* TocParser::funcCall() {
\r
1888 FuncCallContext *_localctx = _tracker.createInstance<FuncCallContext>(_ctx, getState());
\r
1889 enterRule(_localctx, 48, TocParser::RuleFuncCall);
\r
1892 #if __cplusplus > 201703L
\r
1893 auto onExit = finally([=, this] {
\r
1895 auto onExit = finally([=] {
\r
1900 enterOuterAlt(_localctx, 1);
\r
1904 match(TocParser::T__4);
\r
1906 _errHandler->sync(this);
\r
1908 _la = _input->LA(1);
\r
1909 if ((((_la & ~ 0x3fULL) == 0) &&
\r
1910 ((1ULL << _la) & ((1ULL << TocParser::T__4)
\r
1911 | (1ULL << TocParser::INTLIT)
\r
1912 | (1ULL << TocParser::NAME))) != 0)) {
\r
1916 _errHandler->sync(this);
\r
1917 _la = _input->LA(1);
\r
1918 while (_la == TocParser::T__6) {
\r
1920 match(TocParser::T__6);
\r
1924 _errHandler->sync(this);
\r
1925 _la = _input->LA(1);
\r
1929 match(TocParser::T__5);
\r
1932 catch (RecognitionException &e) {
\r
1933 _errHandler->reportError(this, e);
\r
1934 _localctx->exception = std::current_exception();
\r
1935 _errHandler->recover(this, _localctx->exception);
\r
1941 //----------------- OperatorExprContext ------------------------------------------------------------------
\r
1943 TocParser::OperatorExprContext::OperatorExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1944 : ParserRuleContext(parent, invokingState) {
\r
1947 TocParser::BinaryOperatorContext* TocParser::OperatorExprContext::binaryOperator() {
\r
1948 return getRuleContext<TocParser::BinaryOperatorContext>(0);
\r
1952 size_t TocParser::OperatorExprContext::getRuleIndex() const {
\r
1953 return TocParser::RuleOperatorExpr;
\r
1956 void TocParser::OperatorExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1957 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1958 if (parserListener != nullptr)
\r
1959 parserListener->enterOperatorExpr(this);
\r
1962 void TocParser::OperatorExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1963 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1964 if (parserListener != nullptr)
\r
1965 parserListener->exitOperatorExpr(this);
\r
1968 TocParser::OperatorExprContext* TocParser::operatorExpr() {
\r
1969 OperatorExprContext *_localctx = _tracker.createInstance<OperatorExprContext>(_ctx, getState());
\r
1970 enterRule(_localctx, 50, TocParser::RuleOperatorExpr);
\r
1972 #if __cplusplus > 201703L
\r
1973 auto onExit = finally([=, this] {
\r
1975 auto onExit = finally([=] {
\r
1980 enterOuterAlt(_localctx, 1);
\r
1985 catch (RecognitionException &e) {
\r
1986 _errHandler->reportError(this, e);
\r
1987 _localctx->exception = std::current_exception();
\r
1988 _errHandler->recover(this, _localctx->exception);
\r
1994 //----------------- BinaryOperatorContext ------------------------------------------------------------------
\r
1996 TocParser::BinaryOperatorContext::BinaryOperatorContext(ParserRuleContext *parent, size_t invokingState)
\r
1997 : ParserRuleContext(parent, invokingState) {
\r
2000 std::vector<TocParser::NonOpExprContext *> TocParser::BinaryOperatorContext::nonOpExpr() {
\r
2001 return getRuleContexts<TocParser::NonOpExprContext>();
\r
2004 TocParser::NonOpExprContext* TocParser::BinaryOperatorContext::nonOpExpr(size_t i) {
\r
2005 return getRuleContext<TocParser::NonOpExprContext>(i);
\r
2008 std::vector<tree::TerminalNode *> TocParser::BinaryOperatorContext::BINARY_OPERATOR() {
\r
2009 return getTokens(TocParser::BINARY_OPERATOR);
\r
2012 tree::TerminalNode* TocParser::BinaryOperatorContext::BINARY_OPERATOR(size_t i) {
\r
2013 return getToken(TocParser::BINARY_OPERATOR, i);
\r
2017 size_t TocParser::BinaryOperatorContext::getRuleIndex() const {
\r
2018 return TocParser::RuleBinaryOperator;
\r
2021 void TocParser::BinaryOperatorContext::enterRule(tree::ParseTreeListener *listener) {
\r
2022 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2023 if (parserListener != nullptr)
\r
2024 parserListener->enterBinaryOperator(this);
\r
2027 void TocParser::BinaryOperatorContext::exitRule(tree::ParseTreeListener *listener) {
\r
2028 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2029 if (parserListener != nullptr)
\r
2030 parserListener->exitBinaryOperator(this);
\r
2033 TocParser::BinaryOperatorContext* TocParser::binaryOperator() {
\r
2034 BinaryOperatorContext *_localctx = _tracker.createInstance<BinaryOperatorContext>(_ctx, getState());
\r
2035 enterRule(_localctx, 52, TocParser::RuleBinaryOperator);
\r
2038 #if __cplusplus > 201703L
\r
2039 auto onExit = finally([=, this] {
\r
2041 auto onExit = finally([=] {
\r
2046 enterOuterAlt(_localctx, 1);
\r
2050 match(TocParser::BINARY_OPERATOR);
\r
2054 _errHandler->sync(this);
\r
2055 _la = _input->LA(1);
\r
2056 while (_la == TocParser::BINARY_OPERATOR) {
\r
2058 match(TocParser::BINARY_OPERATOR);
\r
2062 _errHandler->sync(this);
\r
2063 _la = _input->LA(1);
\r
2067 catch (RecognitionException &e) {
\r
2068 _errHandler->reportError(this, e);
\r
2069 _localctx->exception = std::current_exception();
\r
2070 _errHandler->recover(this, _localctx->exception);
\r
2076 //----------------- IdentifierContext ------------------------------------------------------------------
\r
2078 TocParser::IdentifierContext::IdentifierContext(ParserRuleContext *parent, size_t invokingState)
\r
2079 : ParserRuleContext(parent, invokingState) {
\r
2082 TocParser::VarNameContext* TocParser::IdentifierContext::varName() {
\r
2083 return getRuleContext<TocParser::VarNameContext>(0);
\r
2087 size_t TocParser::IdentifierContext::getRuleIndex() const {
\r
2088 return TocParser::RuleIdentifier;
\r
2091 void TocParser::IdentifierContext::enterRule(tree::ParseTreeListener *listener) {
\r
2092 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2093 if (parserListener != nullptr)
\r
2094 parserListener->enterIdentifier(this);
\r
2097 void TocParser::IdentifierContext::exitRule(tree::ParseTreeListener *listener) {
\r
2098 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2099 if (parserListener != nullptr)
\r
2100 parserListener->exitIdentifier(this);
\r
2103 TocParser::IdentifierContext* TocParser::identifier() {
\r
2104 IdentifierContext *_localctx = _tracker.createInstance<IdentifierContext>(_ctx, getState());
\r
2105 enterRule(_localctx, 54, TocParser::RuleIdentifier);
\r
2107 #if __cplusplus > 201703L
\r
2108 auto onExit = finally([=, this] {
\r
2110 auto onExit = finally([=] {
\r
2115 enterOuterAlt(_localctx, 1);
\r
2120 catch (RecognitionException &e) {
\r
2121 _errHandler->reportError(this, e);
\r
2122 _localctx->exception = std::current_exception();
\r
2123 _errHandler->recover(this, _localctx->exception);
\r
2129 //----------------- LiteralContext ------------------------------------------------------------------
\r
2131 TocParser::LiteralContext::LiteralContext(ParserRuleContext *parent, size_t invokingState)
\r
2132 : ParserRuleContext(parent, invokingState) {
\r
2135 tree::TerminalNode* TocParser::LiteralContext::INTLIT() {
\r
2136 return getToken(TocParser::INTLIT, 0);
\r
2140 size_t TocParser::LiteralContext::getRuleIndex() const {
\r
2141 return TocParser::RuleLiteral;
\r
2144 void TocParser::LiteralContext::enterRule(tree::ParseTreeListener *listener) {
\r
2145 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2146 if (parserListener != nullptr)
\r
2147 parserListener->enterLiteral(this);
\r
2150 void TocParser::LiteralContext::exitRule(tree::ParseTreeListener *listener) {
\r
2151 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2152 if (parserListener != nullptr)
\r
2153 parserListener->exitLiteral(this);
\r
2156 TocParser::LiteralContext* TocParser::literal() {
\r
2157 LiteralContext *_localctx = _tracker.createInstance<LiteralContext>(_ctx, getState());
\r
2158 enterRule(_localctx, 56, TocParser::RuleLiteral);
\r
2160 #if __cplusplus > 201703L
\r
2161 auto onExit = finally([=, this] {
\r
2163 auto onExit = finally([=] {
\r
2168 enterOuterAlt(_localctx, 1);
\r
2170 match(TocParser::INTLIT);
\r
2173 catch (RecognitionException &e) {
\r
2174 _errHandler->reportError(this, e);
\r
2175 _localctx->exception = std::current_exception();
\r
2176 _errHandler->recover(this, _localctx->exception);
\r
2182 //----------------- SubscriptContext ------------------------------------------------------------------
\r
2184 TocParser::SubscriptContext::SubscriptContext(ParserRuleContext *parent, size_t invokingState)
\r
2185 : ParserRuleContext(parent, invokingState) {
\r
2188 TocParser::NonSubscriptExprContext* TocParser::SubscriptContext::nonSubscriptExpr() {
\r
2189 return getRuleContext<TocParser::NonSubscriptExprContext>(0);
\r
2192 TocParser::ExprContext* TocParser::SubscriptContext::expr() {
\r
2193 return getRuleContext<TocParser::ExprContext>(0);
\r
2197 size_t TocParser::SubscriptContext::getRuleIndex() const {
\r
2198 return TocParser::RuleSubscript;
\r
2201 void TocParser::SubscriptContext::enterRule(tree::ParseTreeListener *listener) {
\r
2202 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2203 if (parserListener != nullptr)
\r
2204 parserListener->enterSubscript(this);
\r
2207 void TocParser::SubscriptContext::exitRule(tree::ParseTreeListener *listener) {
\r
2208 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2209 if (parserListener != nullptr)
\r
2210 parserListener->exitSubscript(this);
\r
2213 TocParser::SubscriptContext* TocParser::subscript() {
\r
2214 SubscriptContext *_localctx = _tracker.createInstance<SubscriptContext>(_ctx, getState());
\r
2215 enterRule(_localctx, 58, TocParser::RuleSubscript);
\r
2217 #if __cplusplus > 201703L
\r
2218 auto onExit = finally([=, this] {
\r
2220 auto onExit = finally([=] {
\r
2225 enterOuterAlt(_localctx, 1);
\r
2227 nonSubscriptExpr();
\r
2229 match(TocParser::T__13);
\r
2233 match(TocParser::T__14);
\r
2236 catch (RecognitionException &e) {
\r
2237 _errHandler->reportError(this, e);
\r
2238 _localctx->exception = std::current_exception();
\r
2239 _errHandler->recover(this, _localctx->exception);
\r
2245 //----------------- MemberAccessContext ------------------------------------------------------------------
\r
2247 TocParser::MemberAccessContext::MemberAccessContext(ParserRuleContext *parent, size_t invokingState)
\r
2248 : ParserRuleContext(parent, invokingState) {
\r
2251 std::vector<TocParser::IdentifierContext *> TocParser::MemberAccessContext::identifier() {
\r
2252 return getRuleContexts<TocParser::IdentifierContext>();
\r
2255 TocParser::IdentifierContext* TocParser::MemberAccessContext::identifier(size_t i) {
\r
2256 return getRuleContext<TocParser::IdentifierContext>(i);
\r
2260 size_t TocParser::MemberAccessContext::getRuleIndex() const {
\r
2261 return TocParser::RuleMemberAccess;
\r
2264 void TocParser::MemberAccessContext::enterRule(tree::ParseTreeListener *listener) {
\r
2265 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2266 if (parserListener != nullptr)
\r
2267 parserListener->enterMemberAccess(this);
\r
2270 void TocParser::MemberAccessContext::exitRule(tree::ParseTreeListener *listener) {
\r
2271 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2272 if (parserListener != nullptr)
\r
2273 parserListener->exitMemberAccess(this);
\r
2276 TocParser::MemberAccessContext* TocParser::memberAccess() {
\r
2277 MemberAccessContext *_localctx = _tracker.createInstance<MemberAccessContext>(_ctx, getState());
\r
2278 enterRule(_localctx, 60, TocParser::RuleMemberAccess);
\r
2280 #if __cplusplus > 201703L
\r
2281 auto onExit = finally([=, this] {
\r
2283 auto onExit = finally([=] {
\r
2288 enterOuterAlt(_localctx, 1);
\r
2292 match(TocParser::T__15);
\r
2297 catch (RecognitionException &e) {
\r
2298 _errHandler->reportError(this, e);
\r
2299 _localctx->exception = std::current_exception();
\r
2300 _errHandler->recover(this, _localctx->exception);
\r
2306 //----------------- ParenExprContext ------------------------------------------------------------------
\r
2308 TocParser::ParenExprContext::ParenExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2309 : ParserRuleContext(parent, invokingState) {
\r
2312 TocParser::ExprContext* TocParser::ParenExprContext::expr() {
\r
2313 return getRuleContext<TocParser::ExprContext>(0);
\r
2317 size_t TocParser::ParenExprContext::getRuleIndex() const {
\r
2318 return TocParser::RuleParenExpr;
\r
2321 void TocParser::ParenExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2322 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2323 if (parserListener != nullptr)
\r
2324 parserListener->enterParenExpr(this);
\r
2327 void TocParser::ParenExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2328 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2329 if (parserListener != nullptr)
\r
2330 parserListener->exitParenExpr(this);
\r
2333 TocParser::ParenExprContext* TocParser::parenExpr() {
\r
2334 ParenExprContext *_localctx = _tracker.createInstance<ParenExprContext>(_ctx, getState());
\r
2335 enterRule(_localctx, 62, TocParser::RuleParenExpr);
\r
2337 #if __cplusplus > 201703L
\r
2338 auto onExit = finally([=, this] {
\r
2340 auto onExit = finally([=] {
\r
2345 enterOuterAlt(_localctx, 1);
\r
2347 match(TocParser::T__4);
\r
2351 match(TocParser::T__5);
\r
2354 catch (RecognitionException &e) {
\r
2355 _errHandler->reportError(this, e);
\r
2356 _localctx->exception = std::current_exception();
\r
2357 _errHandler->recover(this, _localctx->exception);
\r
2363 //----------------- FuncNameContext ------------------------------------------------------------------
\r
2365 TocParser::FuncNameContext::FuncNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2366 : ParserRuleContext(parent, invokingState) {
\r
2369 tree::TerminalNode* TocParser::FuncNameContext::NAME() {
\r
2370 return getToken(TocParser::NAME, 0);
\r
2374 size_t TocParser::FuncNameContext::getRuleIndex() const {
\r
2375 return TocParser::RuleFuncName;
\r
2378 void TocParser::FuncNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2379 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2380 if (parserListener != nullptr)
\r
2381 parserListener->enterFuncName(this);
\r
2384 void TocParser::FuncNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2385 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2386 if (parserListener != nullptr)
\r
2387 parserListener->exitFuncName(this);
\r
2390 TocParser::FuncNameContext* TocParser::funcName() {
\r
2391 FuncNameContext *_localctx = _tracker.createInstance<FuncNameContext>(_ctx, getState());
\r
2392 enterRule(_localctx, 64, TocParser::RuleFuncName);
\r
2394 #if __cplusplus > 201703L
\r
2395 auto onExit = finally([=, this] {
\r
2397 auto onExit = finally([=] {
\r
2402 enterOuterAlt(_localctx, 1);
\r
2404 match(TocParser::NAME);
\r
2407 catch (RecognitionException &e) {
\r
2408 _errHandler->reportError(this, e);
\r
2409 _localctx->exception = std::current_exception();
\r
2410 _errHandler->recover(this, _localctx->exception);
\r
2416 //----------------- VarNameContext ------------------------------------------------------------------
\r
2418 TocParser::VarNameContext::VarNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2419 : ParserRuleContext(parent, invokingState) {
\r
2422 tree::TerminalNode* TocParser::VarNameContext::NAME() {
\r
2423 return getToken(TocParser::NAME, 0);
\r
2427 size_t TocParser::VarNameContext::getRuleIndex() const {
\r
2428 return TocParser::RuleVarName;
\r
2431 void TocParser::VarNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2432 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2433 if (parserListener != nullptr)
\r
2434 parserListener->enterVarName(this);
\r
2437 void TocParser::VarNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2438 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2439 if (parserListener != nullptr)
\r
2440 parserListener->exitVarName(this);
\r
2443 TocParser::VarNameContext* TocParser::varName() {
\r
2444 VarNameContext *_localctx = _tracker.createInstance<VarNameContext>(_ctx, getState());
\r
2445 enterRule(_localctx, 66, TocParser::RuleVarName);
\r
2447 #if __cplusplus > 201703L
\r
2448 auto onExit = finally([=, this] {
\r
2450 auto onExit = finally([=] {
\r
2455 enterOuterAlt(_localctx, 1);
\r
2457 match(TocParser::NAME);
\r
2460 catch (RecognitionException &e) {
\r
2461 _errHandler->reportError(this, e);
\r
2462 _localctx->exception = std::current_exception();
\r
2463 _errHandler->recover(this, _localctx->exception);
\r
2469 //----------------- TypeNameContext ------------------------------------------------------------------
\r
2471 TocParser::TypeNameContext::TypeNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2472 : ParserRuleContext(parent, invokingState) {
\r
2475 tree::TerminalNode* TocParser::TypeNameContext::NAME() {
\r
2476 return getToken(TocParser::NAME, 0);
\r
2480 size_t TocParser::TypeNameContext::getRuleIndex() const {
\r
2481 return TocParser::RuleTypeName;
\r
2484 void TocParser::TypeNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2485 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2486 if (parserListener != nullptr)
\r
2487 parserListener->enterTypeName(this);
\r
2490 void TocParser::TypeNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2491 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2492 if (parserListener != nullptr)
\r
2493 parserListener->exitTypeName(this);
\r
2496 TocParser::TypeNameContext* TocParser::typeName() {
\r
2497 TypeNameContext *_localctx = _tracker.createInstance<TypeNameContext>(_ctx, getState());
\r
2498 enterRule(_localctx, 68, TocParser::RuleTypeName);
\r
2500 #if __cplusplus > 201703L
\r
2501 auto onExit = finally([=, this] {
\r
2503 auto onExit = finally([=] {
\r
2508 enterOuterAlt(_localctx, 1);
\r
2510 match(TocParser::NAME);
\r
2513 catch (RecognitionException &e) {
\r
2514 _errHandler->reportError(this, e);
\r
2515 _localctx->exception = std::current_exception();
\r
2516 _errHandler->recover(this, _localctx->exception);
\r
2522 //----------------- StructNameContext ------------------------------------------------------------------
\r
2524 TocParser::StructNameContext::StructNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2525 : ParserRuleContext(parent, invokingState) {
\r
2528 tree::TerminalNode* TocParser::StructNameContext::NAME() {
\r
2529 return getToken(TocParser::NAME, 0);
\r
2533 size_t TocParser::StructNameContext::getRuleIndex() const {
\r
2534 return TocParser::RuleStructName;
\r
2537 void TocParser::StructNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2538 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2539 if (parserListener != nullptr)
\r
2540 parserListener->enterStructName(this);
\r
2543 void TocParser::StructNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2544 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2545 if (parserListener != nullptr)
\r
2546 parserListener->exitStructName(this);
\r
2549 TocParser::StructNameContext* TocParser::structName() {
\r
2550 StructNameContext *_localctx = _tracker.createInstance<StructNameContext>(_ctx, getState());
\r
2551 enterRule(_localctx, 70, TocParser::RuleStructName);
\r
2553 #if __cplusplus > 201703L
\r
2554 auto onExit = finally([=, this] {
\r
2556 auto onExit = finally([=] {
\r
2561 enterOuterAlt(_localctx, 1);
\r
2563 match(TocParser::NAME);
\r
2566 catch (RecognitionException &e) {
\r
2567 _errHandler->reportError(this, e);
\r
2568 _localctx->exception = std::current_exception();
\r
2569 _errHandler->recover(this, _localctx->exception);
\r
2575 // Static vars and initialization.
\r
2576 std::vector<dfa::DFA> TocParser::_decisionToDFA;
\r
2577 atn::PredictionContextCache TocParser::_sharedContextCache;
\r
2579 // We own the ATN which in turn owns the ATN states.
\r
2580 atn::ATN TocParser::_atn;
\r
2581 std::vector<uint16_t> TocParser::_serializedATN;
\r
2583 std::vector<std::string> TocParser::_ruleNames = {
\r
2584 "prog", "decl", "varDecl", "var", "type", "funcDecl", "func", "parameter",
\r
2585 "body", "structDecl", "structMember", "structVar", "structMethod", "stmt",
\r
2586 "conditional", "ifCond", "loop", "whileLoop", "assignment", "returnStmt",
\r
2587 "expr", "nonOpExpr", "nonSubscriptExpr", "nonAccessExpr", "funcCall",
\r
2588 "operatorExpr", "binaryOperator", "identifier", "literal", "subscript",
\r
2589 "memberAccess", "parenExpr", "funcName", "varName", "typeName", "structName"
\r
2592 std::vector<std::string> TocParser::_literalNames = {
\r
2593 "", "'var'", "':'", "'='", "'func'", "'('", "')'", "','", "'{'", "'}'",
\r
2594 "'struct'", "'if'", "'while'", "'return'", "'['", "']'", "'.'"
\r
2597 std::vector<std::string> TocParser::_symbolicNames = {
\r
2598 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "BINARY_OPERATOR",
\r
2599 "INTLIT", "NAME", "WS", "NEWLINE"
\r
2602 dfa::Vocabulary TocParser::_vocabulary(_literalNames, _symbolicNames);
\r
2604 std::vector<std::string> TocParser::_tokenNames;
\r
2606 TocParser::Initializer::Initializer() {
\r
2607 for (size_t i = 0; i < _symbolicNames.size(); ++i) {
\r
2608 std::string name = _vocabulary.getLiteralName(i);
\r
2609 if (name.empty()) {
\r
2610 name = _vocabulary.getSymbolicName(i);
\r
2613 if (name.empty()) {
\r
2614 _tokenNames.push_back("<INVALID>");
\r
2616 _tokenNames.push_back(name);
\r
2620 static const uint16_t serializedATNSegment0[] = {
\r
2621 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964,
\r
2622 0x3, 0x17, 0x104, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4,
\r
2623 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9,
\r
2624 0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa,
\r
2625 0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4,
\r
2626 0xe, 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11,
\r
2627 0x9, 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14,
\r
2628 0x9, 0x14, 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17,
\r
2629 0x9, 0x17, 0x4, 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a,
\r
2630 0x9, 0x1a, 0x4, 0x1b, 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d,
\r
2631 0x9, 0x1d, 0x4, 0x1e, 0x9, 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20,
\r
2632 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, 0x4, 0x22, 0x9, 0x22, 0x4, 0x23,
\r
2633 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, 0x25, 0x9, 0x25, 0x3, 0x2,
\r
2634 0x6, 0x2, 0x4c, 0xa, 0x2, 0xd, 0x2, 0xe, 0x2, 0x4d, 0x3, 0x2, 0x3,
\r
2635 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x5, 0x3, 0x55, 0xa, 0x3, 0x3,
\r
2636 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5,
\r
2637 0x3, 0x5, 0x3, 0x5, 0x5, 0x5, 0x60, 0xa, 0x5, 0x3, 0x6, 0x3, 0x6,
\r
2638 0x3, 0x7, 0x3, 0x7, 0x3, 0x7, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3,
\r
2639 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x9,
\r
2640 0x3, 0x9, 0x3, 0x9, 0x7, 0x9, 0x73, 0xa, 0x9, 0xc, 0x9, 0xe, 0x9,
\r
2641 0x76, 0xb, 0x9, 0x5, 0x9, 0x78, 0xa, 0x9, 0x3, 0xa, 0x3, 0xa, 0x7,
\r
2642 0xa, 0x7c, 0xa, 0xa, 0xc, 0xa, 0xe, 0xa, 0x7f, 0xb, 0xa, 0x3, 0xa,
\r
2643 0x3, 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x7, 0xb, 0x87,
\r
2644 0xa, 0xb, 0xc, 0xb, 0xe, 0xb, 0x8a, 0xb, 0xb, 0x3, 0xb, 0x3, 0xb,
\r
2645 0x3, 0xc, 0x3, 0xc, 0x5, 0xc, 0x90, 0xa, 0xc, 0x3, 0xd, 0x3, 0xd,
\r
2646 0x3, 0xe, 0x3, 0xe, 0x3, 0xf, 0x3, 0xf, 0x3, 0xf, 0x3, 0xf, 0x3,
\r
2647 0xf, 0x3, 0xf, 0x5, 0xf, 0x9c, 0xa, 0xf, 0x3, 0x10, 0x3, 0x10, 0x3,
\r
2648 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x12, 0x3, 0x12, 0x3,
\r
2649 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x14, 0x3, 0x14, 0x3,
\r
2650 0x14, 0x3, 0x14, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x16, 0x3,
\r
2651 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x5,
\r
2652 0x16, 0xb8, 0xa, 0x16, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17,
\r
2653 0x3, 0x17, 0x3, 0x17, 0x5, 0x17, 0xc0, 0xa, 0x17, 0x3, 0x18, 0x3,
\r
2654 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x5, 0x18, 0xc7, 0xa, 0x18,
\r
2655 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19,
\r
2656 0x5, 0x19, 0xcf, 0xa, 0x19, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3,
\r
2657 0x1a, 0x3, 0x1a, 0x7, 0x1a, 0xd6, 0xa, 0x1a, 0xc, 0x1a, 0xe, 0x1a,
\r
2658 0xd9, 0xb, 0x1a, 0x5, 0x1a, 0xdb, 0xa, 0x1a, 0x3, 0x1a, 0x3, 0x1a,
\r
2659 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c,
\r
2660 0x3, 0x1c, 0x7, 0x1c, 0xe6, 0xa, 0x1c, 0xc, 0x1c, 0xe, 0x1c, 0xe9,
\r
2661 0xb, 0x1c, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1f,
\r
2662 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x20, 0x3, 0x20,
\r
2663 0x3, 0x20, 0x3, 0x20, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21,
\r
2664 0x3, 0x22, 0x3, 0x22, 0x3, 0x23, 0x3, 0x23, 0x3, 0x24, 0x3, 0x24,
\r
2665 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x2, 0x2, 0x26, 0x2, 0x4, 0x6, 0x8,
\r
2666 0xa, 0xc, 0xe, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20,
\r
2667 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36,
\r
2668 0x38, 0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, 0x48, 0x2, 0x2, 0x2,
\r
2669 0x104, 0x2, 0x4b, 0x3, 0x2, 0x2, 0x2, 0x4, 0x54, 0x3, 0x2, 0x2, 0x2,
\r
2670 0x6, 0x56, 0x3, 0x2, 0x2, 0x2, 0x8, 0x59, 0x3, 0x2, 0x2, 0x2, 0xa,
\r
2671 0x61, 0x3, 0x2, 0x2, 0x2, 0xc, 0x63, 0x3, 0x2, 0x2, 0x2, 0xe, 0x66,
\r
2672 0x3, 0x2, 0x2, 0x2, 0x10, 0x77, 0x3, 0x2, 0x2, 0x2, 0x12, 0x79, 0x3,
\r
2673 0x2, 0x2, 0x2, 0x14, 0x82, 0x3, 0x2, 0x2, 0x2, 0x16, 0x8f, 0x3, 0x2,
\r
2674 0x2, 0x2, 0x18, 0x91, 0x3, 0x2, 0x2, 0x2, 0x1a, 0x93, 0x3, 0x2, 0x2,
\r
2675 0x2, 0x1c, 0x9b, 0x3, 0x2, 0x2, 0x2, 0x1e, 0x9d, 0x3, 0x2, 0x2, 0x2,
\r
2676 0x20, 0x9f, 0x3, 0x2, 0x2, 0x2, 0x22, 0xa3, 0x3, 0x2, 0x2, 0x2, 0x24,
\r
2677 0xa5, 0x3, 0x2, 0x2, 0x2, 0x26, 0xa9, 0x3, 0x2, 0x2, 0x2, 0x28, 0xad,
\r
2678 0x3, 0x2, 0x2, 0x2, 0x2a, 0xb7, 0x3, 0x2, 0x2, 0x2, 0x2c, 0xbf, 0x3,
\r
2679 0x2, 0x2, 0x2, 0x2e, 0xc6, 0x3, 0x2, 0x2, 0x2, 0x30, 0xce, 0x3, 0x2,
\r
2680 0x2, 0x2, 0x32, 0xd0, 0x3, 0x2, 0x2, 0x2, 0x34, 0xde, 0x3, 0x2, 0x2,
\r
2681 0x2, 0x36, 0xe0, 0x3, 0x2, 0x2, 0x2, 0x38, 0xea, 0x3, 0x2, 0x2, 0x2,
\r
2682 0x3a, 0xec, 0x3, 0x2, 0x2, 0x2, 0x3c, 0xee, 0x3, 0x2, 0x2, 0x2, 0x3e,
\r
2683 0xf3, 0x3, 0x2, 0x2, 0x2, 0x40, 0xf7, 0x3, 0x2, 0x2, 0x2, 0x42, 0xfb,
\r
2684 0x3, 0x2, 0x2, 0x2, 0x44, 0xfd, 0x3, 0x2, 0x2, 0x2, 0x46, 0xff, 0x3,
\r
2685 0x2, 0x2, 0x2, 0x48, 0x101, 0x3, 0x2, 0x2, 0x2, 0x4a, 0x4c, 0x5,
\r
2686 0x4, 0x3, 0x2, 0x4b, 0x4a, 0x3, 0x2, 0x2, 0x2, 0x4c, 0x4d, 0x3, 0x2,
\r
2687 0x2, 0x2, 0x4d, 0x4b, 0x3, 0x2, 0x2, 0x2, 0x4d, 0x4e, 0x3, 0x2, 0x2,
\r
2688 0x2, 0x4e, 0x4f, 0x3, 0x2, 0x2, 0x2, 0x4f, 0x50, 0x7, 0x2, 0x2, 0x3,
\r
2689 0x50, 0x3, 0x3, 0x2, 0x2, 0x2, 0x51, 0x55, 0x5, 0x6, 0x4, 0x2, 0x52,
\r
2690 0x55, 0x5, 0xc, 0x7, 0x2, 0x53, 0x55, 0x5, 0x14, 0xb, 0x2, 0x54,
\r
2691 0x51, 0x3, 0x2, 0x2, 0x2, 0x54, 0x52, 0x3, 0x2, 0x2, 0x2, 0x54, 0x53,
\r
2692 0x3, 0x2, 0x2, 0x2, 0x55, 0x5, 0x3, 0x2, 0x2, 0x2, 0x56, 0x57, 0x7,
\r
2693 0x3, 0x2, 0x2, 0x57, 0x58, 0x5, 0x8, 0x5, 0x2, 0x58, 0x7, 0x3, 0x2,
\r
2694 0x2, 0x2, 0x59, 0x5a, 0x5, 0x44, 0x23, 0x2, 0x5a, 0x5b, 0x7, 0x4,
\r
2695 0x2, 0x2, 0x5b, 0x5c, 0x5, 0xa, 0x6, 0x2, 0x5c, 0x5f, 0x3, 0x2, 0x2,
\r
2696 0x2, 0x5d, 0x5e, 0x7, 0x5, 0x2, 0x2, 0x5e, 0x60, 0x5, 0x2a, 0x16,
\r
2697 0x2, 0x5f, 0x5d, 0x3, 0x2, 0x2, 0x2, 0x5f, 0x60, 0x3, 0x2, 0x2, 0x2,
\r
2698 0x60, 0x9, 0x3, 0x2, 0x2, 0x2, 0x61, 0x62, 0x5, 0x46, 0x24, 0x2,
\r
2699 0x62, 0xb, 0x3, 0x2, 0x2, 0x2, 0x63, 0x64, 0x7, 0x6, 0x2, 0x2, 0x64,
\r
2700 0x65, 0x5, 0xe, 0x8, 0x2, 0x65, 0xd, 0x3, 0x2, 0x2, 0x2, 0x66, 0x67,
\r
2701 0x5, 0x42, 0x22, 0x2, 0x67, 0x68, 0x7, 0x7, 0x2, 0x2, 0x68, 0x69,
\r
2702 0x5, 0x10, 0x9, 0x2, 0x69, 0x6a, 0x7, 0x8, 0x2, 0x2, 0x6a, 0x6b,
\r
2703 0x7, 0x4, 0x2, 0x2, 0x6b, 0x6c, 0x5, 0xa, 0x6, 0x2, 0x6c, 0x6d, 0x3,
\r
2704 0x2, 0x2, 0x2, 0x6d, 0x6e, 0x5, 0x12, 0xa, 0x2, 0x6e, 0xf, 0x3, 0x2,
\r
2705 0x2, 0x2, 0x6f, 0x74, 0x5, 0x8, 0x5, 0x2, 0x70, 0x71, 0x7, 0x9, 0x2,
\r
2706 0x2, 0x71, 0x73, 0x5, 0x8, 0x5, 0x2, 0x72, 0x70, 0x3, 0x2, 0x2, 0x2,
\r
2707 0x73, 0x76, 0x3, 0x2, 0x2, 0x2, 0x74, 0x72, 0x3, 0x2, 0x2, 0x2, 0x74,
\r
2708 0x75, 0x3, 0x2, 0x2, 0x2, 0x75, 0x78, 0x3, 0x2, 0x2, 0x2, 0x76, 0x74,
\r
2709 0x3, 0x2, 0x2, 0x2, 0x77, 0x6f, 0x3, 0x2, 0x2, 0x2, 0x77, 0x78, 0x3,
\r
2710 0x2, 0x2, 0x2, 0x78, 0x11, 0x3, 0x2, 0x2, 0x2, 0x79, 0x7d, 0x7, 0xa,
\r
2711 0x2, 0x2, 0x7a, 0x7c, 0x5, 0x1c, 0xf, 0x2, 0x7b, 0x7a, 0x3, 0x2,
\r
2712 0x2, 0x2, 0x7c, 0x7f, 0x3, 0x2, 0x2, 0x2, 0x7d, 0x7b, 0x3, 0x2, 0x2,
\r
2713 0x2, 0x7d, 0x7e, 0x3, 0x2, 0x2, 0x2, 0x7e, 0x80, 0x3, 0x2, 0x2, 0x2,
\r
2714 0x7f, 0x7d, 0x3, 0x2, 0x2, 0x2, 0x80, 0x81, 0x7, 0xb, 0x2, 0x2, 0x81,
\r
2715 0x13, 0x3, 0x2, 0x2, 0x2, 0x82, 0x83, 0x7, 0xc, 0x2, 0x2, 0x83, 0x84,
\r
2716 0x5, 0x48, 0x25, 0x2, 0x84, 0x88, 0x7, 0xa, 0x2, 0x2, 0x85, 0x87,
\r
2717 0x5, 0x16, 0xc, 0x2, 0x86, 0x85, 0x3, 0x2, 0x2, 0x2, 0x87, 0x8a,
\r
2718 0x3, 0x2, 0x2, 0x2, 0x88, 0x86, 0x3, 0x2, 0x2, 0x2, 0x88, 0x89, 0x3,
\r
2719 0x2, 0x2, 0x2, 0x89, 0x8b, 0x3, 0x2, 0x2, 0x2, 0x8a, 0x88, 0x3, 0x2,
\r
2720 0x2, 0x2, 0x8b, 0x8c, 0x7, 0xb, 0x2, 0x2, 0x8c, 0x15, 0x3, 0x2, 0x2,
\r
2721 0x2, 0x8d, 0x90, 0x5, 0x18, 0xd, 0x2, 0x8e, 0x90, 0x5, 0x1a, 0xe,
\r
2722 0x2, 0x8f, 0x8d, 0x3, 0x2, 0x2, 0x2, 0x8f, 0x8e, 0x3, 0x2, 0x2, 0x2,
\r
2723 0x90, 0x17, 0x3, 0x2, 0x2, 0x2, 0x91, 0x92, 0x5, 0x8, 0x5, 0x2, 0x92,
\r
2724 0x19, 0x3, 0x2, 0x2, 0x2, 0x93, 0x94, 0x5, 0xe, 0x8, 0x2, 0x94, 0x1b,
\r
2725 0x3, 0x2, 0x2, 0x2, 0x95, 0x9c, 0x5, 0x6, 0x4, 0x2, 0x96, 0x9c, 0x5,
\r
2726 0x1e, 0x10, 0x2, 0x97, 0x9c, 0x5, 0x22, 0x12, 0x2, 0x98, 0x9c, 0x5,
\r
2727 0x26, 0x14, 0x2, 0x99, 0x9c, 0x5, 0x28, 0x15, 0x2, 0x9a, 0x9c, 0x5,
\r
2728 0x2a, 0x16, 0x2, 0x9b, 0x95, 0x3, 0x2, 0x2, 0x2, 0x9b, 0x96, 0x3,
\r
2729 0x2, 0x2, 0x2, 0x9b, 0x97, 0x3, 0x2, 0x2, 0x2, 0x9b, 0x98, 0x3, 0x2,
\r
2730 0x2, 0x2, 0x9b, 0x99, 0x3, 0x2, 0x2, 0x2, 0x9b, 0x9a, 0x3, 0x2, 0x2,
\r
2731 0x2, 0x9c, 0x1d, 0x3, 0x2, 0x2, 0x2, 0x9d, 0x9e, 0x5, 0x20, 0x11,
\r
2732 0x2, 0x9e, 0x1f, 0x3, 0x2, 0x2, 0x2, 0x9f, 0xa0, 0x7, 0xd, 0x2, 0x2,
\r
2733 0xa0, 0xa1, 0x5, 0x2a, 0x16, 0x2, 0xa1, 0xa2, 0x5, 0x12, 0xa, 0x2,
\r
2734 0xa2, 0x21, 0x3, 0x2, 0x2, 0x2, 0xa3, 0xa4, 0x5, 0x24, 0x13, 0x2,
\r
2735 0xa4, 0x23, 0x3, 0x2, 0x2, 0x2, 0xa5, 0xa6, 0x7, 0xe, 0x2, 0x2, 0xa6,
\r
2736 0xa7, 0x5, 0x2a, 0x16, 0x2, 0xa7, 0xa8, 0x5, 0x12, 0xa, 0x2, 0xa8,
\r
2737 0x25, 0x3, 0x2, 0x2, 0x2, 0xa9, 0xaa, 0x5, 0x38, 0x1d, 0x2, 0xaa,
\r
2738 0xab, 0x7, 0x5, 0x2, 0x2, 0xab, 0xac, 0x5, 0x2a, 0x16, 0x2, 0xac,
\r
2739 0x27, 0x3, 0x2, 0x2, 0x2, 0xad, 0xae, 0x7, 0xf, 0x2, 0x2, 0xae, 0xaf,
\r
2740 0x5, 0x2a, 0x16, 0x2, 0xaf, 0x29, 0x3, 0x2, 0x2, 0x2, 0xb0, 0xb8,
\r
2741 0x5, 0x32, 0x1a, 0x2, 0xb1, 0xb8, 0x5, 0x3a, 0x1e, 0x2, 0xb2, 0xb8,
\r
2742 0x5, 0x38, 0x1d, 0x2, 0xb3, 0xb8, 0x5, 0x3c, 0x1f, 0x2, 0xb4, 0xb8,
\r
2743 0x5, 0x3e, 0x20, 0x2, 0xb5, 0xb8, 0x5, 0x40, 0x21, 0x2, 0xb6, 0xb8,
\r
2744 0x5, 0x34, 0x1b, 0x2, 0xb7, 0xb0, 0x3, 0x2, 0x2, 0x2, 0xb7, 0xb1,
\r
2745 0x3, 0x2, 0x2, 0x2, 0xb7, 0xb2, 0x3, 0x2, 0x2, 0x2, 0xb7, 0xb3, 0x3,
\r
2746 0x2, 0x2, 0x2, 0xb7, 0xb4, 0x3, 0x2, 0x2, 0x2, 0xb7, 0xb5, 0x3, 0x2,
\r
2747 0x2, 0x2, 0xb7, 0xb6, 0x3, 0x2, 0x2, 0x2, 0xb8, 0x2b, 0x3, 0x2, 0x2,
\r
2748 0x2, 0xb9, 0xc0, 0x5, 0x32, 0x1a, 0x2, 0xba, 0xc0, 0x5, 0x3a, 0x1e,
\r
2749 0x2, 0xbb, 0xc0, 0x5, 0x38, 0x1d, 0x2, 0xbc, 0xc0, 0x5, 0x3c, 0x1f,
\r
2750 0x2, 0xbd, 0xc0, 0x5, 0x3e, 0x20, 0x2, 0xbe, 0xc0, 0x5, 0x40, 0x21,
\r
2751 0x2, 0xbf, 0xb9, 0x3, 0x2, 0x2, 0x2, 0xbf, 0xba, 0x3, 0x2, 0x2, 0x2,
\r
2752 0xbf, 0xbb, 0x3, 0x2, 0x2, 0x2, 0xbf, 0xbc, 0x3, 0x2, 0x2, 0x2, 0xbf,
\r
2753 0xbd, 0x3, 0x2, 0x2, 0x2, 0xbf, 0xbe, 0x3, 0x2, 0x2, 0x2, 0xc0, 0x2d,
\r
2754 0x3, 0x2, 0x2, 0x2, 0xc1, 0xc7, 0x5, 0x32, 0x1a, 0x2, 0xc2, 0xc7,
\r
2755 0x5, 0x3a, 0x1e, 0x2, 0xc3, 0xc7, 0x5, 0x38, 0x1d, 0x2, 0xc4, 0xc7,
\r
2756 0x5, 0x3e, 0x20, 0x2, 0xc5, 0xc7, 0x5, 0x40, 0x21, 0x2, 0xc6, 0xc1,
\r
2757 0x3, 0x2, 0x2, 0x2, 0xc6, 0xc2, 0x3, 0x2, 0x2, 0x2, 0xc6, 0xc3, 0x3,
\r
2758 0x2, 0x2, 0x2, 0xc6, 0xc4, 0x3, 0x2, 0x2, 0x2, 0xc6, 0xc5, 0x3, 0x2,
\r
2759 0x2, 0x2, 0xc7, 0x2f, 0x3, 0x2, 0x2, 0x2, 0xc8, 0xcf, 0x5, 0x32,
\r
2760 0x1a, 0x2, 0xc9, 0xcf, 0x5, 0x3a, 0x1e, 0x2, 0xca, 0xcf, 0x5, 0x38,
\r
2761 0x1d, 0x2, 0xcb, 0xcf, 0x5, 0x3c, 0x1f, 0x2, 0xcc, 0xcf, 0x5, 0x40,
\r
2762 0x21, 0x2, 0xcd, 0xcf, 0x5, 0x34, 0x1b, 0x2, 0xce, 0xc8, 0x3, 0x2,
\r
2763 0x2, 0x2, 0xce, 0xc9, 0x3, 0x2, 0x2, 0x2, 0xce, 0xca, 0x3, 0x2, 0x2,
\r
2764 0x2, 0xce, 0xcb, 0x3, 0x2, 0x2, 0x2, 0xce, 0xcc, 0x3, 0x2, 0x2, 0x2,
\r
2765 0xce, 0xcd, 0x3, 0x2, 0x2, 0x2, 0xcf, 0x31, 0x3, 0x2, 0x2, 0x2, 0xd0,
\r
2766 0xd1, 0x5, 0x42, 0x22, 0x2, 0xd1, 0xda, 0x7, 0x7, 0x2, 0x2, 0xd2,
\r
2767 0xd7, 0x5, 0x2a, 0x16, 0x2, 0xd3, 0xd4, 0x7, 0x9, 0x2, 0x2, 0xd4,
\r
2768 0xd6, 0x5, 0x2a, 0x16, 0x2, 0xd5, 0xd3, 0x3, 0x2, 0x2, 0x2, 0xd6,
\r
2769 0xd9, 0x3, 0x2, 0x2, 0x2, 0xd7, 0xd5, 0x3, 0x2, 0x2, 0x2, 0xd7, 0xd8,
\r
2770 0x3, 0x2, 0x2, 0x2, 0xd8, 0xdb, 0x3, 0x2, 0x2, 0x2, 0xd9, 0xd7, 0x3,
\r
2771 0x2, 0x2, 0x2, 0xda, 0xd2, 0x3, 0x2, 0x2, 0x2, 0xda, 0xdb, 0x3, 0x2,
\r
2772 0x2, 0x2, 0xdb, 0xdc, 0x3, 0x2, 0x2, 0x2, 0xdc, 0xdd, 0x7, 0x8, 0x2,
\r
2773 0x2, 0xdd, 0x33, 0x3, 0x2, 0x2, 0x2, 0xde, 0xdf, 0x5, 0x36, 0x1c,
\r
2774 0x2, 0xdf, 0x35, 0x3, 0x2, 0x2, 0x2, 0xe0, 0xe1, 0x5, 0x2c, 0x17,
\r
2775 0x2, 0xe1, 0xe2, 0x7, 0x13, 0x2, 0x2, 0xe2, 0xe7, 0x5, 0x2c, 0x17,
\r
2776 0x2, 0xe3, 0xe4, 0x7, 0x13, 0x2, 0x2, 0xe4, 0xe6, 0x5, 0x2c, 0x17,
\r
2777 0x2, 0xe5, 0xe3, 0x3, 0x2, 0x2, 0x2, 0xe6, 0xe9, 0x3, 0x2, 0x2, 0x2,
\r
2778 0xe7, 0xe5, 0x3, 0x2, 0x2, 0x2, 0xe7, 0xe8, 0x3, 0x2, 0x2, 0x2, 0xe8,
\r
2779 0x37, 0x3, 0x2, 0x2, 0x2, 0xe9, 0xe7, 0x3, 0x2, 0x2, 0x2, 0xea, 0xeb,
\r
2780 0x5, 0x44, 0x23, 0x2, 0xeb, 0x39, 0x3, 0x2, 0x2, 0x2, 0xec, 0xed,
\r
2781 0x7, 0x14, 0x2, 0x2, 0xed, 0x3b, 0x3, 0x2, 0x2, 0x2, 0xee, 0xef,
\r
2782 0x5, 0x2e, 0x18, 0x2, 0xef, 0xf0, 0x7, 0x10, 0x2, 0x2, 0xf0, 0xf1,
\r
2783 0x5, 0x2a, 0x16, 0x2, 0xf1, 0xf2, 0x7, 0x11, 0x2, 0x2, 0xf2, 0x3d,
\r
2784 0x3, 0x2, 0x2, 0x2, 0xf3, 0xf4, 0x5, 0x38, 0x1d, 0x2, 0xf4, 0xf5,
\r
2785 0x7, 0x12, 0x2, 0x2, 0xf5, 0xf6, 0x5, 0x38, 0x1d, 0x2, 0xf6, 0x3f,
\r
2786 0x3, 0x2, 0x2, 0x2, 0xf7, 0xf8, 0x7, 0x7, 0x2, 0x2, 0xf8, 0xf9, 0x5,
\r
2787 0x2a, 0x16, 0x2, 0xf9, 0xfa, 0x7, 0x8, 0x2, 0x2, 0xfa, 0x41, 0x3,
\r
2788 0x2, 0x2, 0x2, 0xfb, 0xfc, 0x7, 0x15, 0x2, 0x2, 0xfc, 0x43, 0x3,
\r
2789 0x2, 0x2, 0x2, 0xfd, 0xfe, 0x7, 0x15, 0x2, 0x2, 0xfe, 0x45, 0x3,
\r
2790 0x2, 0x2, 0x2, 0xff, 0x100, 0x7, 0x15, 0x2, 0x2, 0x100, 0x47, 0x3,
\r
2791 0x2, 0x2, 0x2, 0x101, 0x102, 0x7, 0x15, 0x2, 0x2, 0x102, 0x49, 0x3,
\r
2792 0x2, 0x2, 0x2, 0x12, 0x4d, 0x54, 0x5f, 0x74, 0x77, 0x7d, 0x88, 0x8f,
\r
2793 0x9b, 0xb7, 0xbf, 0xc6, 0xce, 0xd7, 0xda, 0xe7,
\r
2796 _serializedATN.insert(_serializedATN.end(), serializedATNSegment0,
\r
2797 serializedATNSegment0 + sizeof(serializedATNSegment0) / sizeof(serializedATNSegment0[0]));
\r
2800 atn::ATNDeserializer deserializer;
\r
2801 _atn = deserializer.deserialize(_serializedATN);
\r
2803 size_t count = _atn.getNumberOfDecisions();
\r
2804 _decisionToDFA.reserve(count);
\r
2805 for (size_t i = 0; i < count; i++) {
\r
2806 _decisionToDFA.emplace_back(_atn.getDecisionState(i), i);
\r
2810 TocParser::Initializer TocParser::_init;
\r