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 TocParser::FirstParameterContext* TocParser::ParameterContext::firstParameter() {
\r
519 return getRuleContext<TocParser::FirstParameterContext>(0);
\r
522 std::vector<TocParser::AdditionalParameterContext *> TocParser::ParameterContext::additionalParameter() {
\r
523 return getRuleContexts<TocParser::AdditionalParameterContext>();
\r
526 TocParser::AdditionalParameterContext* TocParser::ParameterContext::additionalParameter(size_t i) {
\r
527 return getRuleContext<TocParser::AdditionalParameterContext>(i);
\r
531 size_t TocParser::ParameterContext::getRuleIndex() const {
\r
532 return TocParser::RuleParameter;
\r
535 void TocParser::ParameterContext::enterRule(tree::ParseTreeListener *listener) {
\r
536 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
537 if (parserListener != nullptr)
\r
538 parserListener->enterParameter(this);
\r
541 void TocParser::ParameterContext::exitRule(tree::ParseTreeListener *listener) {
\r
542 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
543 if (parserListener != nullptr)
\r
544 parserListener->exitParameter(this);
\r
547 TocParser::ParameterContext* TocParser::parameter() {
\r
548 ParameterContext *_localctx = _tracker.createInstance<ParameterContext>(_ctx, getState());
\r
549 enterRule(_localctx, 14, TocParser::RuleParameter);
\r
552 #if __cplusplus > 201703L
\r
553 auto onExit = finally([=, this] {
\r
555 auto onExit = finally([=] {
\r
560 enterOuterAlt(_localctx, 1);
\r
562 _errHandler->sync(this);
\r
564 _la = _input->LA(1);
\r
565 if (_la == TocParser::NAME) {
\r
569 _errHandler->sync(this);
\r
570 _la = _input->LA(1);
\r
571 while (_la == TocParser::T__6) {
\r
573 additionalParameter();
\r
575 _errHandler->sync(this);
\r
576 _la = _input->LA(1);
\r
581 catch (RecognitionException &e) {
\r
582 _errHandler->reportError(this, e);
\r
583 _localctx->exception = std::current_exception();
\r
584 _errHandler->recover(this, _localctx->exception);
\r
590 //----------------- FirstParameterContext ------------------------------------------------------------------
\r
592 TocParser::FirstParameterContext::FirstParameterContext(ParserRuleContext *parent, size_t invokingState)
\r
593 : ParserRuleContext(parent, invokingState) {
\r
596 TocParser::VarContext* TocParser::FirstParameterContext::var() {
\r
597 return getRuleContext<TocParser::VarContext>(0);
\r
601 size_t TocParser::FirstParameterContext::getRuleIndex() const {
\r
602 return TocParser::RuleFirstParameter;
\r
605 void TocParser::FirstParameterContext::enterRule(tree::ParseTreeListener *listener) {
\r
606 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
607 if (parserListener != nullptr)
\r
608 parserListener->enterFirstParameter(this);
\r
611 void TocParser::FirstParameterContext::exitRule(tree::ParseTreeListener *listener) {
\r
612 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
613 if (parserListener != nullptr)
\r
614 parserListener->exitFirstParameter(this);
\r
617 TocParser::FirstParameterContext* TocParser::firstParameter() {
\r
618 FirstParameterContext *_localctx = _tracker.createInstance<FirstParameterContext>(_ctx, getState());
\r
619 enterRule(_localctx, 16, TocParser::RuleFirstParameter);
\r
621 #if __cplusplus > 201703L
\r
622 auto onExit = finally([=, this] {
\r
624 auto onExit = finally([=] {
\r
629 enterOuterAlt(_localctx, 1);
\r
634 catch (RecognitionException &e) {
\r
635 _errHandler->reportError(this, e);
\r
636 _localctx->exception = std::current_exception();
\r
637 _errHandler->recover(this, _localctx->exception);
\r
643 //----------------- AdditionalParameterContext ------------------------------------------------------------------
\r
645 TocParser::AdditionalParameterContext::AdditionalParameterContext(ParserRuleContext *parent, size_t invokingState)
\r
646 : ParserRuleContext(parent, invokingState) {
\r
649 TocParser::VarContext* TocParser::AdditionalParameterContext::var() {
\r
650 return getRuleContext<TocParser::VarContext>(0);
\r
654 size_t TocParser::AdditionalParameterContext::getRuleIndex() const {
\r
655 return TocParser::RuleAdditionalParameter;
\r
658 void TocParser::AdditionalParameterContext::enterRule(tree::ParseTreeListener *listener) {
\r
659 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
660 if (parserListener != nullptr)
\r
661 parserListener->enterAdditionalParameter(this);
\r
664 void TocParser::AdditionalParameterContext::exitRule(tree::ParseTreeListener *listener) {
\r
665 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
666 if (parserListener != nullptr)
\r
667 parserListener->exitAdditionalParameter(this);
\r
670 TocParser::AdditionalParameterContext* TocParser::additionalParameter() {
\r
671 AdditionalParameterContext *_localctx = _tracker.createInstance<AdditionalParameterContext>(_ctx, getState());
\r
672 enterRule(_localctx, 18, TocParser::RuleAdditionalParameter);
\r
674 #if __cplusplus > 201703L
\r
675 auto onExit = finally([=, this] {
\r
677 auto onExit = finally([=] {
\r
682 enterOuterAlt(_localctx, 1);
\r
684 match(TocParser::T__6);
\r
689 catch (RecognitionException &e) {
\r
690 _errHandler->reportError(this, e);
\r
691 _localctx->exception = std::current_exception();
\r
692 _errHandler->recover(this, _localctx->exception);
\r
698 //----------------- BodyContext ------------------------------------------------------------------
\r
700 TocParser::BodyContext::BodyContext(ParserRuleContext *parent, size_t invokingState)
\r
701 : ParserRuleContext(parent, invokingState) {
\r
704 std::vector<TocParser::StmtContext *> TocParser::BodyContext::stmt() {
\r
705 return getRuleContexts<TocParser::StmtContext>();
\r
708 TocParser::StmtContext* TocParser::BodyContext::stmt(size_t i) {
\r
709 return getRuleContext<TocParser::StmtContext>(i);
\r
713 size_t TocParser::BodyContext::getRuleIndex() const {
\r
714 return TocParser::RuleBody;
\r
717 void TocParser::BodyContext::enterRule(tree::ParseTreeListener *listener) {
\r
718 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
719 if (parserListener != nullptr)
\r
720 parserListener->enterBody(this);
\r
723 void TocParser::BodyContext::exitRule(tree::ParseTreeListener *listener) {
\r
724 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
725 if (parserListener != nullptr)
\r
726 parserListener->exitBody(this);
\r
729 TocParser::BodyContext* TocParser::body() {
\r
730 BodyContext *_localctx = _tracker.createInstance<BodyContext>(_ctx, getState());
\r
731 enterRule(_localctx, 20, TocParser::RuleBody);
\r
734 #if __cplusplus > 201703L
\r
735 auto onExit = finally([=, this] {
\r
737 auto onExit = finally([=] {
\r
742 enterOuterAlt(_localctx, 1);
\r
744 match(TocParser::T__7);
\r
746 _errHandler->sync(this);
\r
747 _la = _input->LA(1);
\r
748 while ((((_la & ~ 0x3fULL) == 0) &&
\r
749 ((1ULL << _la) & ((1ULL << TocParser::T__0)
\r
750 | (1ULL << TocParser::T__4)
\r
751 | (1ULL << TocParser::T__10)
\r
752 | (1ULL << TocParser::T__11)
\r
753 | (1ULL << TocParser::T__12)
\r
754 | (1ULL << TocParser::INTLIT)
\r
755 | (1ULL << TocParser::NAME))) != 0)) {
\r
759 _errHandler->sync(this);
\r
760 _la = _input->LA(1);
\r
763 match(TocParser::T__8);
\r
766 catch (RecognitionException &e) {
\r
767 _errHandler->reportError(this, e);
\r
768 _localctx->exception = std::current_exception();
\r
769 _errHandler->recover(this, _localctx->exception);
\r
775 //----------------- StructDeclContext ------------------------------------------------------------------
\r
777 TocParser::StructDeclContext::StructDeclContext(ParserRuleContext *parent, size_t invokingState)
\r
778 : ParserRuleContext(parent, invokingState) {
\r
781 TocParser::StructNameContext* TocParser::StructDeclContext::structName() {
\r
782 return getRuleContext<TocParser::StructNameContext>(0);
\r
785 std::vector<TocParser::StructMemberContext *> TocParser::StructDeclContext::structMember() {
\r
786 return getRuleContexts<TocParser::StructMemberContext>();
\r
789 TocParser::StructMemberContext* TocParser::StructDeclContext::structMember(size_t i) {
\r
790 return getRuleContext<TocParser::StructMemberContext>(i);
\r
794 size_t TocParser::StructDeclContext::getRuleIndex() const {
\r
795 return TocParser::RuleStructDecl;
\r
798 void TocParser::StructDeclContext::enterRule(tree::ParseTreeListener *listener) {
\r
799 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
800 if (parserListener != nullptr)
\r
801 parserListener->enterStructDecl(this);
\r
804 void TocParser::StructDeclContext::exitRule(tree::ParseTreeListener *listener) {
\r
805 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
806 if (parserListener != nullptr)
\r
807 parserListener->exitStructDecl(this);
\r
810 TocParser::StructDeclContext* TocParser::structDecl() {
\r
811 StructDeclContext *_localctx = _tracker.createInstance<StructDeclContext>(_ctx, getState());
\r
812 enterRule(_localctx, 22, TocParser::RuleStructDecl);
\r
815 #if __cplusplus > 201703L
\r
816 auto onExit = finally([=, this] {
\r
818 auto onExit = finally([=] {
\r
823 enterOuterAlt(_localctx, 1);
\r
825 match(TocParser::T__9);
\r
829 match(TocParser::T__7);
\r
831 _errHandler->sync(this);
\r
832 _la = _input->LA(1);
\r
833 while (_la == TocParser::NAME) {
\r
837 _errHandler->sync(this);
\r
838 _la = _input->LA(1);
\r
841 match(TocParser::T__8);
\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 //----------------- StructMemberContext ------------------------------------------------------------------
\r
855 TocParser::StructMemberContext::StructMemberContext(ParserRuleContext *parent, size_t invokingState)
\r
856 : ParserRuleContext(parent, invokingState) {
\r
859 TocParser::StructVarContext* TocParser::StructMemberContext::structVar() {
\r
860 return getRuleContext<TocParser::StructVarContext>(0);
\r
863 TocParser::StructMethodContext* TocParser::StructMemberContext::structMethod() {
\r
864 return getRuleContext<TocParser::StructMethodContext>(0);
\r
868 size_t TocParser::StructMemberContext::getRuleIndex() const {
\r
869 return TocParser::RuleStructMember;
\r
872 void TocParser::StructMemberContext::enterRule(tree::ParseTreeListener *listener) {
\r
873 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
874 if (parserListener != nullptr)
\r
875 parserListener->enterStructMember(this);
\r
878 void TocParser::StructMemberContext::exitRule(tree::ParseTreeListener *listener) {
\r
879 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
880 if (parserListener != nullptr)
\r
881 parserListener->exitStructMember(this);
\r
884 TocParser::StructMemberContext* TocParser::structMember() {
\r
885 StructMemberContext *_localctx = _tracker.createInstance<StructMemberContext>(_ctx, getState());
\r
886 enterRule(_localctx, 24, TocParser::RuleStructMember);
\r
888 #if __cplusplus > 201703L
\r
889 auto onExit = finally([=, this] {
\r
891 auto onExit = finally([=] {
\r
897 _errHandler->sync(this);
\r
898 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 7, _ctx)) {
\r
900 enterOuterAlt(_localctx, 1);
\r
907 enterOuterAlt(_localctx, 2);
\r
918 catch (RecognitionException &e) {
\r
919 _errHandler->reportError(this, e);
\r
920 _localctx->exception = std::current_exception();
\r
921 _errHandler->recover(this, _localctx->exception);
\r
927 //----------------- StructVarContext ------------------------------------------------------------------
\r
929 TocParser::StructVarContext::StructVarContext(ParserRuleContext *parent, size_t invokingState)
\r
930 : ParserRuleContext(parent, invokingState) {
\r
933 TocParser::VarContext* TocParser::StructVarContext::var() {
\r
934 return getRuleContext<TocParser::VarContext>(0);
\r
938 size_t TocParser::StructVarContext::getRuleIndex() const {
\r
939 return TocParser::RuleStructVar;
\r
942 void TocParser::StructVarContext::enterRule(tree::ParseTreeListener *listener) {
\r
943 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
944 if (parserListener != nullptr)
\r
945 parserListener->enterStructVar(this);
\r
948 void TocParser::StructVarContext::exitRule(tree::ParseTreeListener *listener) {
\r
949 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
950 if (parserListener != nullptr)
\r
951 parserListener->exitStructVar(this);
\r
954 TocParser::StructVarContext* TocParser::structVar() {
\r
955 StructVarContext *_localctx = _tracker.createInstance<StructVarContext>(_ctx, getState());
\r
956 enterRule(_localctx, 26, TocParser::RuleStructVar);
\r
958 #if __cplusplus > 201703L
\r
959 auto onExit = finally([=, this] {
\r
961 auto onExit = finally([=] {
\r
966 enterOuterAlt(_localctx, 1);
\r
971 catch (RecognitionException &e) {
\r
972 _errHandler->reportError(this, e);
\r
973 _localctx->exception = std::current_exception();
\r
974 _errHandler->recover(this, _localctx->exception);
\r
980 //----------------- StructMethodContext ------------------------------------------------------------------
\r
982 TocParser::StructMethodContext::StructMethodContext(ParserRuleContext *parent, size_t invokingState)
\r
983 : ParserRuleContext(parent, invokingState) {
\r
986 TocParser::FuncContext* TocParser::StructMethodContext::func() {
\r
987 return getRuleContext<TocParser::FuncContext>(0);
\r
991 size_t TocParser::StructMethodContext::getRuleIndex() const {
\r
992 return TocParser::RuleStructMethod;
\r
995 void TocParser::StructMethodContext::enterRule(tree::ParseTreeListener *listener) {
\r
996 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
997 if (parserListener != nullptr)
\r
998 parserListener->enterStructMethod(this);
\r
1001 void TocParser::StructMethodContext::exitRule(tree::ParseTreeListener *listener) {
\r
1002 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1003 if (parserListener != nullptr)
\r
1004 parserListener->exitStructMethod(this);
\r
1007 TocParser::StructMethodContext* TocParser::structMethod() {
\r
1008 StructMethodContext *_localctx = _tracker.createInstance<StructMethodContext>(_ctx, getState());
\r
1009 enterRule(_localctx, 28, TocParser::RuleStructMethod);
\r
1011 #if __cplusplus > 201703L
\r
1012 auto onExit = finally([=, this] {
\r
1014 auto onExit = finally([=] {
\r
1019 enterOuterAlt(_localctx, 1);
\r
1024 catch (RecognitionException &e) {
\r
1025 _errHandler->reportError(this, e);
\r
1026 _localctx->exception = std::current_exception();
\r
1027 _errHandler->recover(this, _localctx->exception);
\r
1033 //----------------- StmtContext ------------------------------------------------------------------
\r
1035 TocParser::StmtContext::StmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1036 : ParserRuleContext(parent, invokingState) {
\r
1039 TocParser::VarDeclContext* TocParser::StmtContext::varDecl() {
\r
1040 return getRuleContext<TocParser::VarDeclContext>(0);
\r
1043 TocParser::ConditionalContext* TocParser::StmtContext::conditional() {
\r
1044 return getRuleContext<TocParser::ConditionalContext>(0);
\r
1047 TocParser::LoopContext* TocParser::StmtContext::loop() {
\r
1048 return getRuleContext<TocParser::LoopContext>(0);
\r
1051 TocParser::AssignmentContext* TocParser::StmtContext::assignment() {
\r
1052 return getRuleContext<TocParser::AssignmentContext>(0);
\r
1055 TocParser::ReturnStmtContext* TocParser::StmtContext::returnStmt() {
\r
1056 return getRuleContext<TocParser::ReturnStmtContext>(0);
\r
1059 TocParser::ExprContext* TocParser::StmtContext::expr() {
\r
1060 return getRuleContext<TocParser::ExprContext>(0);
\r
1064 size_t TocParser::StmtContext::getRuleIndex() const {
\r
1065 return TocParser::RuleStmt;
\r
1068 void TocParser::StmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1069 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1070 if (parserListener != nullptr)
\r
1071 parserListener->enterStmt(this);
\r
1074 void TocParser::StmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1075 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1076 if (parserListener != nullptr)
\r
1077 parserListener->exitStmt(this);
\r
1080 TocParser::StmtContext* TocParser::stmt() {
\r
1081 StmtContext *_localctx = _tracker.createInstance<StmtContext>(_ctx, getState());
\r
1082 enterRule(_localctx, 30, TocParser::RuleStmt);
\r
1084 #if __cplusplus > 201703L
\r
1085 auto onExit = finally([=, this] {
\r
1087 auto onExit = finally([=] {
\r
1092 enterOuterAlt(_localctx, 1);
\r
1094 _errHandler->sync(this);
\r
1095 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 8, _ctx)) {
\r
1137 catch (RecognitionException &e) {
\r
1138 _errHandler->reportError(this, e);
\r
1139 _localctx->exception = std::current_exception();
\r
1140 _errHandler->recover(this, _localctx->exception);
\r
1146 //----------------- ConditionalContext ------------------------------------------------------------------
\r
1148 TocParser::ConditionalContext::ConditionalContext(ParserRuleContext *parent, size_t invokingState)
\r
1149 : ParserRuleContext(parent, invokingState) {
\r
1152 TocParser::IfCondContext* TocParser::ConditionalContext::ifCond() {
\r
1153 return getRuleContext<TocParser::IfCondContext>(0);
\r
1157 size_t TocParser::ConditionalContext::getRuleIndex() const {
\r
1158 return TocParser::RuleConditional;
\r
1161 void TocParser::ConditionalContext::enterRule(tree::ParseTreeListener *listener) {
\r
1162 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1163 if (parserListener != nullptr)
\r
1164 parserListener->enterConditional(this);
\r
1167 void TocParser::ConditionalContext::exitRule(tree::ParseTreeListener *listener) {
\r
1168 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1169 if (parserListener != nullptr)
\r
1170 parserListener->exitConditional(this);
\r
1173 TocParser::ConditionalContext* TocParser::conditional() {
\r
1174 ConditionalContext *_localctx = _tracker.createInstance<ConditionalContext>(_ctx, getState());
\r
1175 enterRule(_localctx, 32, TocParser::RuleConditional);
\r
1177 #if __cplusplus > 201703L
\r
1178 auto onExit = finally([=, this] {
\r
1180 auto onExit = finally([=] {
\r
1185 enterOuterAlt(_localctx, 1);
\r
1190 catch (RecognitionException &e) {
\r
1191 _errHandler->reportError(this, e);
\r
1192 _localctx->exception = std::current_exception();
\r
1193 _errHandler->recover(this, _localctx->exception);
\r
1199 //----------------- IfCondContext ------------------------------------------------------------------
\r
1201 TocParser::IfCondContext::IfCondContext(ParserRuleContext *parent, size_t invokingState)
\r
1202 : ParserRuleContext(parent, invokingState) {
\r
1205 TocParser::ExprContext* TocParser::IfCondContext::expr() {
\r
1206 return getRuleContext<TocParser::ExprContext>(0);
\r
1209 TocParser::BodyContext* TocParser::IfCondContext::body() {
\r
1210 return getRuleContext<TocParser::BodyContext>(0);
\r
1214 size_t TocParser::IfCondContext::getRuleIndex() const {
\r
1215 return TocParser::RuleIfCond;
\r
1218 void TocParser::IfCondContext::enterRule(tree::ParseTreeListener *listener) {
\r
1219 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1220 if (parserListener != nullptr)
\r
1221 parserListener->enterIfCond(this);
\r
1224 void TocParser::IfCondContext::exitRule(tree::ParseTreeListener *listener) {
\r
1225 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1226 if (parserListener != nullptr)
\r
1227 parserListener->exitIfCond(this);
\r
1230 TocParser::IfCondContext* TocParser::ifCond() {
\r
1231 IfCondContext *_localctx = _tracker.createInstance<IfCondContext>(_ctx, getState());
\r
1232 enterRule(_localctx, 34, TocParser::RuleIfCond);
\r
1234 #if __cplusplus > 201703L
\r
1235 auto onExit = finally([=, this] {
\r
1237 auto onExit = finally([=] {
\r
1242 enterOuterAlt(_localctx, 1);
\r
1244 match(TocParser::T__10);
\r
1251 catch (RecognitionException &e) {
\r
1252 _errHandler->reportError(this, e);
\r
1253 _localctx->exception = std::current_exception();
\r
1254 _errHandler->recover(this, _localctx->exception);
\r
1260 //----------------- LoopContext ------------------------------------------------------------------
\r
1262 TocParser::LoopContext::LoopContext(ParserRuleContext *parent, size_t invokingState)
\r
1263 : ParserRuleContext(parent, invokingState) {
\r
1266 TocParser::WhileLoopContext* TocParser::LoopContext::whileLoop() {
\r
1267 return getRuleContext<TocParser::WhileLoopContext>(0);
\r
1271 size_t TocParser::LoopContext::getRuleIndex() const {
\r
1272 return TocParser::RuleLoop;
\r
1275 void TocParser::LoopContext::enterRule(tree::ParseTreeListener *listener) {
\r
1276 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1277 if (parserListener != nullptr)
\r
1278 parserListener->enterLoop(this);
\r
1281 void TocParser::LoopContext::exitRule(tree::ParseTreeListener *listener) {
\r
1282 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1283 if (parserListener != nullptr)
\r
1284 parserListener->exitLoop(this);
\r
1287 TocParser::LoopContext* TocParser::loop() {
\r
1288 LoopContext *_localctx = _tracker.createInstance<LoopContext>(_ctx, getState());
\r
1289 enterRule(_localctx, 36, TocParser::RuleLoop);
\r
1291 #if __cplusplus > 201703L
\r
1292 auto onExit = finally([=, this] {
\r
1294 auto onExit = finally([=] {
\r
1299 enterOuterAlt(_localctx, 1);
\r
1304 catch (RecognitionException &e) {
\r
1305 _errHandler->reportError(this, e);
\r
1306 _localctx->exception = std::current_exception();
\r
1307 _errHandler->recover(this, _localctx->exception);
\r
1313 //----------------- WhileLoopContext ------------------------------------------------------------------
\r
1315 TocParser::WhileLoopContext::WhileLoopContext(ParserRuleContext *parent, size_t invokingState)
\r
1316 : ParserRuleContext(parent, invokingState) {
\r
1319 TocParser::ExprContext* TocParser::WhileLoopContext::expr() {
\r
1320 return getRuleContext<TocParser::ExprContext>(0);
\r
1323 TocParser::BodyContext* TocParser::WhileLoopContext::body() {
\r
1324 return getRuleContext<TocParser::BodyContext>(0);
\r
1328 size_t TocParser::WhileLoopContext::getRuleIndex() const {
\r
1329 return TocParser::RuleWhileLoop;
\r
1332 void TocParser::WhileLoopContext::enterRule(tree::ParseTreeListener *listener) {
\r
1333 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1334 if (parserListener != nullptr)
\r
1335 parserListener->enterWhileLoop(this);
\r
1338 void TocParser::WhileLoopContext::exitRule(tree::ParseTreeListener *listener) {
\r
1339 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1340 if (parserListener != nullptr)
\r
1341 parserListener->exitWhileLoop(this);
\r
1344 TocParser::WhileLoopContext* TocParser::whileLoop() {
\r
1345 WhileLoopContext *_localctx = _tracker.createInstance<WhileLoopContext>(_ctx, getState());
\r
1346 enterRule(_localctx, 38, TocParser::RuleWhileLoop);
\r
1348 #if __cplusplus > 201703L
\r
1349 auto onExit = finally([=, this] {
\r
1351 auto onExit = finally([=] {
\r
1356 enterOuterAlt(_localctx, 1);
\r
1358 match(TocParser::T__11);
\r
1365 catch (RecognitionException &e) {
\r
1366 _errHandler->reportError(this, e);
\r
1367 _localctx->exception = std::current_exception();
\r
1368 _errHandler->recover(this, _localctx->exception);
\r
1374 //----------------- AssignmentContext ------------------------------------------------------------------
\r
1376 TocParser::AssignmentContext::AssignmentContext(ParserRuleContext *parent, size_t invokingState)
\r
1377 : ParserRuleContext(parent, invokingState) {
\r
1380 TocParser::IdentifierContext* TocParser::AssignmentContext::identifier() {
\r
1381 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1384 TocParser::ExprContext* TocParser::AssignmentContext::expr() {
\r
1385 return getRuleContext<TocParser::ExprContext>(0);
\r
1389 size_t TocParser::AssignmentContext::getRuleIndex() const {
\r
1390 return TocParser::RuleAssignment;
\r
1393 void TocParser::AssignmentContext::enterRule(tree::ParseTreeListener *listener) {
\r
1394 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1395 if (parserListener != nullptr)
\r
1396 parserListener->enterAssignment(this);
\r
1399 void TocParser::AssignmentContext::exitRule(tree::ParseTreeListener *listener) {
\r
1400 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1401 if (parserListener != nullptr)
\r
1402 parserListener->exitAssignment(this);
\r
1405 TocParser::AssignmentContext* TocParser::assignment() {
\r
1406 AssignmentContext *_localctx = _tracker.createInstance<AssignmentContext>(_ctx, getState());
\r
1407 enterRule(_localctx, 40, TocParser::RuleAssignment);
\r
1409 #if __cplusplus > 201703L
\r
1410 auto onExit = finally([=, this] {
\r
1412 auto onExit = finally([=] {
\r
1417 enterOuterAlt(_localctx, 1);
\r
1421 match(TocParser::T__2);
\r
1426 catch (RecognitionException &e) {
\r
1427 _errHandler->reportError(this, e);
\r
1428 _localctx->exception = std::current_exception();
\r
1429 _errHandler->recover(this, _localctx->exception);
\r
1435 //----------------- ReturnStmtContext ------------------------------------------------------------------
\r
1437 TocParser::ReturnStmtContext::ReturnStmtContext(ParserRuleContext *parent, size_t invokingState)
\r
1438 : ParserRuleContext(parent, invokingState) {
\r
1441 TocParser::ExprContext* TocParser::ReturnStmtContext::expr() {
\r
1442 return getRuleContext<TocParser::ExprContext>(0);
\r
1446 size_t TocParser::ReturnStmtContext::getRuleIndex() const {
\r
1447 return TocParser::RuleReturnStmt;
\r
1450 void TocParser::ReturnStmtContext::enterRule(tree::ParseTreeListener *listener) {
\r
1451 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1452 if (parserListener != nullptr)
\r
1453 parserListener->enterReturnStmt(this);
\r
1456 void TocParser::ReturnStmtContext::exitRule(tree::ParseTreeListener *listener) {
\r
1457 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1458 if (parserListener != nullptr)
\r
1459 parserListener->exitReturnStmt(this);
\r
1462 TocParser::ReturnStmtContext* TocParser::returnStmt() {
\r
1463 ReturnStmtContext *_localctx = _tracker.createInstance<ReturnStmtContext>(_ctx, getState());
\r
1464 enterRule(_localctx, 42, TocParser::RuleReturnStmt);
\r
1466 #if __cplusplus > 201703L
\r
1467 auto onExit = finally([=, this] {
\r
1469 auto onExit = finally([=] {
\r
1474 enterOuterAlt(_localctx, 1);
\r
1476 match(TocParser::T__12);
\r
1481 catch (RecognitionException &e) {
\r
1482 _errHandler->reportError(this, e);
\r
1483 _localctx->exception = std::current_exception();
\r
1484 _errHandler->recover(this, _localctx->exception);
\r
1490 //----------------- ExprContext ------------------------------------------------------------------
\r
1492 TocParser::ExprContext::ExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1493 : ParserRuleContext(parent, invokingState) {
\r
1496 TocParser::FuncCallContext* TocParser::ExprContext::funcCall() {
\r
1497 return getRuleContext<TocParser::FuncCallContext>(0);
\r
1500 TocParser::LiteralContext* TocParser::ExprContext::literal() {
\r
1501 return getRuleContext<TocParser::LiteralContext>(0);
\r
1504 TocParser::IdentifierContext* TocParser::ExprContext::identifier() {
\r
1505 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1508 TocParser::SubscriptContext* TocParser::ExprContext::subscript() {
\r
1509 return getRuleContext<TocParser::SubscriptContext>(0);
\r
1512 TocParser::MemberAccessContext* TocParser::ExprContext::memberAccess() {
\r
1513 return getRuleContext<TocParser::MemberAccessContext>(0);
\r
1516 TocParser::ParenExprContext* TocParser::ExprContext::parenExpr() {
\r
1517 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1520 TocParser::OperatorExprContext* TocParser::ExprContext::operatorExpr() {
\r
1521 return getRuleContext<TocParser::OperatorExprContext>(0);
\r
1525 size_t TocParser::ExprContext::getRuleIndex() const {
\r
1526 return TocParser::RuleExpr;
\r
1529 void TocParser::ExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1530 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1531 if (parserListener != nullptr)
\r
1532 parserListener->enterExpr(this);
\r
1535 void TocParser::ExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1536 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1537 if (parserListener != nullptr)
\r
1538 parserListener->exitExpr(this);
\r
1541 TocParser::ExprContext* TocParser::expr() {
\r
1542 ExprContext *_localctx = _tracker.createInstance<ExprContext>(_ctx, getState());
\r
1543 enterRule(_localctx, 44, TocParser::RuleExpr);
\r
1545 #if __cplusplus > 201703L
\r
1546 auto onExit = finally([=, this] {
\r
1548 auto onExit = finally([=] {
\r
1554 _errHandler->sync(this);
\r
1555 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 9, _ctx)) {
\r
1557 enterOuterAlt(_localctx, 1);
\r
1564 enterOuterAlt(_localctx, 2);
\r
1571 enterOuterAlt(_localctx, 3);
\r
1578 enterOuterAlt(_localctx, 4);
\r
1585 enterOuterAlt(_localctx, 5);
\r
1592 enterOuterAlt(_localctx, 6);
\r
1599 enterOuterAlt(_localctx, 7);
\r
1610 catch (RecognitionException &e) {
\r
1611 _errHandler->reportError(this, e);
\r
1612 _localctx->exception = std::current_exception();
\r
1613 _errHandler->recover(this, _localctx->exception);
\r
1619 //----------------- NonOpExprContext ------------------------------------------------------------------
\r
1621 TocParser::NonOpExprContext::NonOpExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1622 : ParserRuleContext(parent, invokingState) {
\r
1625 TocParser::FuncCallContext* TocParser::NonOpExprContext::funcCall() {
\r
1626 return getRuleContext<TocParser::FuncCallContext>(0);
\r
1629 TocParser::LiteralContext* TocParser::NonOpExprContext::literal() {
\r
1630 return getRuleContext<TocParser::LiteralContext>(0);
\r
1633 TocParser::IdentifierContext* TocParser::NonOpExprContext::identifier() {
\r
1634 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1637 TocParser::SubscriptContext* TocParser::NonOpExprContext::subscript() {
\r
1638 return getRuleContext<TocParser::SubscriptContext>(0);
\r
1641 TocParser::MemberAccessContext* TocParser::NonOpExprContext::memberAccess() {
\r
1642 return getRuleContext<TocParser::MemberAccessContext>(0);
\r
1645 TocParser::ParenExprContext* TocParser::NonOpExprContext::parenExpr() {
\r
1646 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1650 size_t TocParser::NonOpExprContext::getRuleIndex() const {
\r
1651 return TocParser::RuleNonOpExpr;
\r
1654 void TocParser::NonOpExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1655 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1656 if (parserListener != nullptr)
\r
1657 parserListener->enterNonOpExpr(this);
\r
1660 void TocParser::NonOpExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1661 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1662 if (parserListener != nullptr)
\r
1663 parserListener->exitNonOpExpr(this);
\r
1666 TocParser::NonOpExprContext* TocParser::nonOpExpr() {
\r
1667 NonOpExprContext *_localctx = _tracker.createInstance<NonOpExprContext>(_ctx, getState());
\r
1668 enterRule(_localctx, 46, TocParser::RuleNonOpExpr);
\r
1670 #if __cplusplus > 201703L
\r
1671 auto onExit = finally([=, this] {
\r
1673 auto onExit = finally([=] {
\r
1679 _errHandler->sync(this);
\r
1680 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 10, _ctx)) {
\r
1682 enterOuterAlt(_localctx, 1);
\r
1689 enterOuterAlt(_localctx, 2);
\r
1696 enterOuterAlt(_localctx, 3);
\r
1703 enterOuterAlt(_localctx, 4);
\r
1710 enterOuterAlt(_localctx, 5);
\r
1717 enterOuterAlt(_localctx, 6);
\r
1728 catch (RecognitionException &e) {
\r
1729 _errHandler->reportError(this, e);
\r
1730 _localctx->exception = std::current_exception();
\r
1731 _errHandler->recover(this, _localctx->exception);
\r
1737 //----------------- NonSubscriptExprContext ------------------------------------------------------------------
\r
1739 TocParser::NonSubscriptExprContext::NonSubscriptExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1740 : ParserRuleContext(parent, invokingState) {
\r
1743 TocParser::FuncCallContext* TocParser::NonSubscriptExprContext::funcCall() {
\r
1744 return getRuleContext<TocParser::FuncCallContext>(0);
\r
1747 TocParser::IdentifierContext* TocParser::NonSubscriptExprContext::identifier() {
\r
1748 return getRuleContext<TocParser::IdentifierContext>(0);
\r
1751 TocParser::MemberAccessContext* TocParser::NonSubscriptExprContext::memberAccess() {
\r
1752 return getRuleContext<TocParser::MemberAccessContext>(0);
\r
1755 TocParser::ParenExprContext* TocParser::NonSubscriptExprContext::parenExpr() {
\r
1756 return getRuleContext<TocParser::ParenExprContext>(0);
\r
1760 size_t TocParser::NonSubscriptExprContext::getRuleIndex() const {
\r
1761 return TocParser::RuleNonSubscriptExpr;
\r
1764 void TocParser::NonSubscriptExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1765 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1766 if (parserListener != nullptr)
\r
1767 parserListener->enterNonSubscriptExpr(this);
\r
1770 void TocParser::NonSubscriptExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1771 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1772 if (parserListener != nullptr)
\r
1773 parserListener->exitNonSubscriptExpr(this);
\r
1776 TocParser::NonSubscriptExprContext* TocParser::nonSubscriptExpr() {
\r
1777 NonSubscriptExprContext *_localctx = _tracker.createInstance<NonSubscriptExprContext>(_ctx, getState());
\r
1778 enterRule(_localctx, 48, TocParser::RuleNonSubscriptExpr);
\r
1780 #if __cplusplus > 201703L
\r
1781 auto onExit = finally([=, this] {
\r
1783 auto onExit = finally([=] {
\r
1789 _errHandler->sync(this);
\r
1790 switch (getInterpreter<atn::ParserATNSimulator>()->adaptivePredict(_input, 11, _ctx)) {
\r
1792 enterOuterAlt(_localctx, 1);
\r
1799 enterOuterAlt(_localctx, 2);
\r
1806 enterOuterAlt(_localctx, 3);
\r
1813 enterOuterAlt(_localctx, 4);
\r
1824 catch (RecognitionException &e) {
\r
1825 _errHandler->reportError(this, e);
\r
1826 _localctx->exception = std::current_exception();
\r
1827 _errHandler->recover(this, _localctx->exception);
\r
1833 //----------------- FuncCallContext ------------------------------------------------------------------
\r
1835 TocParser::FuncCallContext::FuncCallContext(ParserRuleContext *parent, size_t invokingState)
\r
1836 : ParserRuleContext(parent, invokingState) {
\r
1839 TocParser::FuncNameContext* TocParser::FuncCallContext::funcName() {
\r
1840 return getRuleContext<TocParser::FuncNameContext>(0);
\r
1843 std::vector<TocParser::ExprContext *> TocParser::FuncCallContext::expr() {
\r
1844 return getRuleContexts<TocParser::ExprContext>();
\r
1847 TocParser::ExprContext* TocParser::FuncCallContext::expr(size_t i) {
\r
1848 return getRuleContext<TocParser::ExprContext>(i);
\r
1852 size_t TocParser::FuncCallContext::getRuleIndex() const {
\r
1853 return TocParser::RuleFuncCall;
\r
1856 void TocParser::FuncCallContext::enterRule(tree::ParseTreeListener *listener) {
\r
1857 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1858 if (parserListener != nullptr)
\r
1859 parserListener->enterFuncCall(this);
\r
1862 void TocParser::FuncCallContext::exitRule(tree::ParseTreeListener *listener) {
\r
1863 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1864 if (parserListener != nullptr)
\r
1865 parserListener->exitFuncCall(this);
\r
1868 TocParser::FuncCallContext* TocParser::funcCall() {
\r
1869 FuncCallContext *_localctx = _tracker.createInstance<FuncCallContext>(_ctx, getState());
\r
1870 enterRule(_localctx, 50, TocParser::RuleFuncCall);
\r
1873 #if __cplusplus > 201703L
\r
1874 auto onExit = finally([=, this] {
\r
1876 auto onExit = finally([=] {
\r
1881 enterOuterAlt(_localctx, 1);
\r
1885 match(TocParser::T__4);
\r
1887 _errHandler->sync(this);
\r
1889 _la = _input->LA(1);
\r
1890 if ((((_la & ~ 0x3fULL) == 0) &&
\r
1891 ((1ULL << _la) & ((1ULL << TocParser::T__4)
\r
1892 | (1ULL << TocParser::INTLIT)
\r
1893 | (1ULL << TocParser::NAME))) != 0)) {
\r
1897 _errHandler->sync(this);
\r
1898 _la = _input->LA(1);
\r
1899 while (_la == TocParser::T__6) {
\r
1901 match(TocParser::T__6);
\r
1905 _errHandler->sync(this);
\r
1906 _la = _input->LA(1);
\r
1910 match(TocParser::T__5);
\r
1913 catch (RecognitionException &e) {
\r
1914 _errHandler->reportError(this, e);
\r
1915 _localctx->exception = std::current_exception();
\r
1916 _errHandler->recover(this, _localctx->exception);
\r
1922 //----------------- OperatorExprContext ------------------------------------------------------------------
\r
1924 TocParser::OperatorExprContext::OperatorExprContext(ParserRuleContext *parent, size_t invokingState)
\r
1925 : ParserRuleContext(parent, invokingState) {
\r
1928 TocParser::BinaryOperatorContext* TocParser::OperatorExprContext::binaryOperator() {
\r
1929 return getRuleContext<TocParser::BinaryOperatorContext>(0);
\r
1933 size_t TocParser::OperatorExprContext::getRuleIndex() const {
\r
1934 return TocParser::RuleOperatorExpr;
\r
1937 void TocParser::OperatorExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
1938 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1939 if (parserListener != nullptr)
\r
1940 parserListener->enterOperatorExpr(this);
\r
1943 void TocParser::OperatorExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
1944 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
1945 if (parserListener != nullptr)
\r
1946 parserListener->exitOperatorExpr(this);
\r
1949 TocParser::OperatorExprContext* TocParser::operatorExpr() {
\r
1950 OperatorExprContext *_localctx = _tracker.createInstance<OperatorExprContext>(_ctx, getState());
\r
1951 enterRule(_localctx, 52, TocParser::RuleOperatorExpr);
\r
1953 #if __cplusplus > 201703L
\r
1954 auto onExit = finally([=, this] {
\r
1956 auto onExit = finally([=] {
\r
1961 enterOuterAlt(_localctx, 1);
\r
1966 catch (RecognitionException &e) {
\r
1967 _errHandler->reportError(this, e);
\r
1968 _localctx->exception = std::current_exception();
\r
1969 _errHandler->recover(this, _localctx->exception);
\r
1975 //----------------- BinaryOperatorContext ------------------------------------------------------------------
\r
1977 TocParser::BinaryOperatorContext::BinaryOperatorContext(ParserRuleContext *parent, size_t invokingState)
\r
1978 : ParserRuleContext(parent, invokingState) {
\r
1981 std::vector<TocParser::NonOpExprContext *> TocParser::BinaryOperatorContext::nonOpExpr() {
\r
1982 return getRuleContexts<TocParser::NonOpExprContext>();
\r
1985 TocParser::NonOpExprContext* TocParser::BinaryOperatorContext::nonOpExpr(size_t i) {
\r
1986 return getRuleContext<TocParser::NonOpExprContext>(i);
\r
1989 std::vector<tree::TerminalNode *> TocParser::BinaryOperatorContext::BINARY_OPERATOR() {
\r
1990 return getTokens(TocParser::BINARY_OPERATOR);
\r
1993 tree::TerminalNode* TocParser::BinaryOperatorContext::BINARY_OPERATOR(size_t i) {
\r
1994 return getToken(TocParser::BINARY_OPERATOR, i);
\r
1998 size_t TocParser::BinaryOperatorContext::getRuleIndex() const {
\r
1999 return TocParser::RuleBinaryOperator;
\r
2002 void TocParser::BinaryOperatorContext::enterRule(tree::ParseTreeListener *listener) {
\r
2003 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2004 if (parserListener != nullptr)
\r
2005 parserListener->enterBinaryOperator(this);
\r
2008 void TocParser::BinaryOperatorContext::exitRule(tree::ParseTreeListener *listener) {
\r
2009 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2010 if (parserListener != nullptr)
\r
2011 parserListener->exitBinaryOperator(this);
\r
2014 TocParser::BinaryOperatorContext* TocParser::binaryOperator() {
\r
2015 BinaryOperatorContext *_localctx = _tracker.createInstance<BinaryOperatorContext>(_ctx, getState());
\r
2016 enterRule(_localctx, 54, TocParser::RuleBinaryOperator);
\r
2019 #if __cplusplus > 201703L
\r
2020 auto onExit = finally([=, this] {
\r
2022 auto onExit = finally([=] {
\r
2027 enterOuterAlt(_localctx, 1);
\r
2031 match(TocParser::BINARY_OPERATOR);
\r
2035 _errHandler->sync(this);
\r
2036 _la = _input->LA(1);
\r
2037 while (_la == TocParser::BINARY_OPERATOR) {
\r
2039 match(TocParser::BINARY_OPERATOR);
\r
2043 _errHandler->sync(this);
\r
2044 _la = _input->LA(1);
\r
2048 catch (RecognitionException &e) {
\r
2049 _errHandler->reportError(this, e);
\r
2050 _localctx->exception = std::current_exception();
\r
2051 _errHandler->recover(this, _localctx->exception);
\r
2057 //----------------- IdentifierContext ------------------------------------------------------------------
\r
2059 TocParser::IdentifierContext::IdentifierContext(ParserRuleContext *parent, size_t invokingState)
\r
2060 : ParserRuleContext(parent, invokingState) {
\r
2063 TocParser::VarNameContext* TocParser::IdentifierContext::varName() {
\r
2064 return getRuleContext<TocParser::VarNameContext>(0);
\r
2068 size_t TocParser::IdentifierContext::getRuleIndex() const {
\r
2069 return TocParser::RuleIdentifier;
\r
2072 void TocParser::IdentifierContext::enterRule(tree::ParseTreeListener *listener) {
\r
2073 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2074 if (parserListener != nullptr)
\r
2075 parserListener->enterIdentifier(this);
\r
2078 void TocParser::IdentifierContext::exitRule(tree::ParseTreeListener *listener) {
\r
2079 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2080 if (parserListener != nullptr)
\r
2081 parserListener->exitIdentifier(this);
\r
2084 TocParser::IdentifierContext* TocParser::identifier() {
\r
2085 IdentifierContext *_localctx = _tracker.createInstance<IdentifierContext>(_ctx, getState());
\r
2086 enterRule(_localctx, 56, TocParser::RuleIdentifier);
\r
2088 #if __cplusplus > 201703L
\r
2089 auto onExit = finally([=, this] {
\r
2091 auto onExit = finally([=] {
\r
2096 enterOuterAlt(_localctx, 1);
\r
2101 catch (RecognitionException &e) {
\r
2102 _errHandler->reportError(this, e);
\r
2103 _localctx->exception = std::current_exception();
\r
2104 _errHandler->recover(this, _localctx->exception);
\r
2110 //----------------- LiteralContext ------------------------------------------------------------------
\r
2112 TocParser::LiteralContext::LiteralContext(ParserRuleContext *parent, size_t invokingState)
\r
2113 : ParserRuleContext(parent, invokingState) {
\r
2116 tree::TerminalNode* TocParser::LiteralContext::INTLIT() {
\r
2117 return getToken(TocParser::INTLIT, 0);
\r
2121 size_t TocParser::LiteralContext::getRuleIndex() const {
\r
2122 return TocParser::RuleLiteral;
\r
2125 void TocParser::LiteralContext::enterRule(tree::ParseTreeListener *listener) {
\r
2126 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2127 if (parserListener != nullptr)
\r
2128 parserListener->enterLiteral(this);
\r
2131 void TocParser::LiteralContext::exitRule(tree::ParseTreeListener *listener) {
\r
2132 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2133 if (parserListener != nullptr)
\r
2134 parserListener->exitLiteral(this);
\r
2137 TocParser::LiteralContext* TocParser::literal() {
\r
2138 LiteralContext *_localctx = _tracker.createInstance<LiteralContext>(_ctx, getState());
\r
2139 enterRule(_localctx, 58, TocParser::RuleLiteral);
\r
2141 #if __cplusplus > 201703L
\r
2142 auto onExit = finally([=, this] {
\r
2144 auto onExit = finally([=] {
\r
2149 enterOuterAlt(_localctx, 1);
\r
2151 match(TocParser::INTLIT);
\r
2154 catch (RecognitionException &e) {
\r
2155 _errHandler->reportError(this, e);
\r
2156 _localctx->exception = std::current_exception();
\r
2157 _errHandler->recover(this, _localctx->exception);
\r
2163 //----------------- SubscriptContext ------------------------------------------------------------------
\r
2165 TocParser::SubscriptContext::SubscriptContext(ParserRuleContext *parent, size_t invokingState)
\r
2166 : ParserRuleContext(parent, invokingState) {
\r
2169 TocParser::NonSubscriptExprContext* TocParser::SubscriptContext::nonSubscriptExpr() {
\r
2170 return getRuleContext<TocParser::NonSubscriptExprContext>(0);
\r
2173 TocParser::ExprContext* TocParser::SubscriptContext::expr() {
\r
2174 return getRuleContext<TocParser::ExprContext>(0);
\r
2178 size_t TocParser::SubscriptContext::getRuleIndex() const {
\r
2179 return TocParser::RuleSubscript;
\r
2182 void TocParser::SubscriptContext::enterRule(tree::ParseTreeListener *listener) {
\r
2183 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2184 if (parserListener != nullptr)
\r
2185 parserListener->enterSubscript(this);
\r
2188 void TocParser::SubscriptContext::exitRule(tree::ParseTreeListener *listener) {
\r
2189 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2190 if (parserListener != nullptr)
\r
2191 parserListener->exitSubscript(this);
\r
2194 TocParser::SubscriptContext* TocParser::subscript() {
\r
2195 SubscriptContext *_localctx = _tracker.createInstance<SubscriptContext>(_ctx, getState());
\r
2196 enterRule(_localctx, 60, TocParser::RuleSubscript);
\r
2198 #if __cplusplus > 201703L
\r
2199 auto onExit = finally([=, this] {
\r
2201 auto onExit = finally([=] {
\r
2206 enterOuterAlt(_localctx, 1);
\r
2208 nonSubscriptExpr();
\r
2210 match(TocParser::T__13);
\r
2214 match(TocParser::T__14);
\r
2217 catch (RecognitionException &e) {
\r
2218 _errHandler->reportError(this, e);
\r
2219 _localctx->exception = std::current_exception();
\r
2220 _errHandler->recover(this, _localctx->exception);
\r
2226 //----------------- MemberAccessContext ------------------------------------------------------------------
\r
2228 TocParser::MemberAccessContext::MemberAccessContext(ParserRuleContext *parent, size_t invokingState)
\r
2229 : ParserRuleContext(parent, invokingState) {
\r
2232 std::vector<TocParser::IdentifierContext *> TocParser::MemberAccessContext::identifier() {
\r
2233 return getRuleContexts<TocParser::IdentifierContext>();
\r
2236 TocParser::IdentifierContext* TocParser::MemberAccessContext::identifier(size_t i) {
\r
2237 return getRuleContext<TocParser::IdentifierContext>(i);
\r
2241 size_t TocParser::MemberAccessContext::getRuleIndex() const {
\r
2242 return TocParser::RuleMemberAccess;
\r
2245 void TocParser::MemberAccessContext::enterRule(tree::ParseTreeListener *listener) {
\r
2246 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2247 if (parserListener != nullptr)
\r
2248 parserListener->enterMemberAccess(this);
\r
2251 void TocParser::MemberAccessContext::exitRule(tree::ParseTreeListener *listener) {
\r
2252 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2253 if (parserListener != nullptr)
\r
2254 parserListener->exitMemberAccess(this);
\r
2257 TocParser::MemberAccessContext* TocParser::memberAccess() {
\r
2258 MemberAccessContext *_localctx = _tracker.createInstance<MemberAccessContext>(_ctx, getState());
\r
2259 enterRule(_localctx, 62, TocParser::RuleMemberAccess);
\r
2261 #if __cplusplus > 201703L
\r
2262 auto onExit = finally([=, this] {
\r
2264 auto onExit = finally([=] {
\r
2269 enterOuterAlt(_localctx, 1);
\r
2273 match(TocParser::T__15);
\r
2278 catch (RecognitionException &e) {
\r
2279 _errHandler->reportError(this, e);
\r
2280 _localctx->exception = std::current_exception();
\r
2281 _errHandler->recover(this, _localctx->exception);
\r
2287 //----------------- ParenExprContext ------------------------------------------------------------------
\r
2289 TocParser::ParenExprContext::ParenExprContext(ParserRuleContext *parent, size_t invokingState)
\r
2290 : ParserRuleContext(parent, invokingState) {
\r
2293 TocParser::ExprContext* TocParser::ParenExprContext::expr() {
\r
2294 return getRuleContext<TocParser::ExprContext>(0);
\r
2298 size_t TocParser::ParenExprContext::getRuleIndex() const {
\r
2299 return TocParser::RuleParenExpr;
\r
2302 void TocParser::ParenExprContext::enterRule(tree::ParseTreeListener *listener) {
\r
2303 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2304 if (parserListener != nullptr)
\r
2305 parserListener->enterParenExpr(this);
\r
2308 void TocParser::ParenExprContext::exitRule(tree::ParseTreeListener *listener) {
\r
2309 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2310 if (parserListener != nullptr)
\r
2311 parserListener->exitParenExpr(this);
\r
2314 TocParser::ParenExprContext* TocParser::parenExpr() {
\r
2315 ParenExprContext *_localctx = _tracker.createInstance<ParenExprContext>(_ctx, getState());
\r
2316 enterRule(_localctx, 64, TocParser::RuleParenExpr);
\r
2318 #if __cplusplus > 201703L
\r
2319 auto onExit = finally([=, this] {
\r
2321 auto onExit = finally([=] {
\r
2326 enterOuterAlt(_localctx, 1);
\r
2328 match(TocParser::T__4);
\r
2332 match(TocParser::T__5);
\r
2335 catch (RecognitionException &e) {
\r
2336 _errHandler->reportError(this, e);
\r
2337 _localctx->exception = std::current_exception();
\r
2338 _errHandler->recover(this, _localctx->exception);
\r
2344 //----------------- FuncNameContext ------------------------------------------------------------------
\r
2346 TocParser::FuncNameContext::FuncNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2347 : ParserRuleContext(parent, invokingState) {
\r
2350 tree::TerminalNode* TocParser::FuncNameContext::NAME() {
\r
2351 return getToken(TocParser::NAME, 0);
\r
2355 size_t TocParser::FuncNameContext::getRuleIndex() const {
\r
2356 return TocParser::RuleFuncName;
\r
2359 void TocParser::FuncNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2360 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2361 if (parserListener != nullptr)
\r
2362 parserListener->enterFuncName(this);
\r
2365 void TocParser::FuncNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2366 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2367 if (parserListener != nullptr)
\r
2368 parserListener->exitFuncName(this);
\r
2371 TocParser::FuncNameContext* TocParser::funcName() {
\r
2372 FuncNameContext *_localctx = _tracker.createInstance<FuncNameContext>(_ctx, getState());
\r
2373 enterRule(_localctx, 66, TocParser::RuleFuncName);
\r
2375 #if __cplusplus > 201703L
\r
2376 auto onExit = finally([=, this] {
\r
2378 auto onExit = finally([=] {
\r
2383 enterOuterAlt(_localctx, 1);
\r
2385 match(TocParser::NAME);
\r
2388 catch (RecognitionException &e) {
\r
2389 _errHandler->reportError(this, e);
\r
2390 _localctx->exception = std::current_exception();
\r
2391 _errHandler->recover(this, _localctx->exception);
\r
2397 //----------------- VarNameContext ------------------------------------------------------------------
\r
2399 TocParser::VarNameContext::VarNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2400 : ParserRuleContext(parent, invokingState) {
\r
2403 tree::TerminalNode* TocParser::VarNameContext::NAME() {
\r
2404 return getToken(TocParser::NAME, 0);
\r
2408 size_t TocParser::VarNameContext::getRuleIndex() const {
\r
2409 return TocParser::RuleVarName;
\r
2412 void TocParser::VarNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2413 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2414 if (parserListener != nullptr)
\r
2415 parserListener->enterVarName(this);
\r
2418 void TocParser::VarNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2419 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2420 if (parserListener != nullptr)
\r
2421 parserListener->exitVarName(this);
\r
2424 TocParser::VarNameContext* TocParser::varName() {
\r
2425 VarNameContext *_localctx = _tracker.createInstance<VarNameContext>(_ctx, getState());
\r
2426 enterRule(_localctx, 68, TocParser::RuleVarName);
\r
2428 #if __cplusplus > 201703L
\r
2429 auto onExit = finally([=, this] {
\r
2431 auto onExit = finally([=] {
\r
2436 enterOuterAlt(_localctx, 1);
\r
2438 match(TocParser::NAME);
\r
2441 catch (RecognitionException &e) {
\r
2442 _errHandler->reportError(this, e);
\r
2443 _localctx->exception = std::current_exception();
\r
2444 _errHandler->recover(this, _localctx->exception);
\r
2450 //----------------- TypeNameContext ------------------------------------------------------------------
\r
2452 TocParser::TypeNameContext::TypeNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2453 : ParserRuleContext(parent, invokingState) {
\r
2456 tree::TerminalNode* TocParser::TypeNameContext::NAME() {
\r
2457 return getToken(TocParser::NAME, 0);
\r
2461 size_t TocParser::TypeNameContext::getRuleIndex() const {
\r
2462 return TocParser::RuleTypeName;
\r
2465 void TocParser::TypeNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2466 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2467 if (parserListener != nullptr)
\r
2468 parserListener->enterTypeName(this);
\r
2471 void TocParser::TypeNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2472 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2473 if (parserListener != nullptr)
\r
2474 parserListener->exitTypeName(this);
\r
2477 TocParser::TypeNameContext* TocParser::typeName() {
\r
2478 TypeNameContext *_localctx = _tracker.createInstance<TypeNameContext>(_ctx, getState());
\r
2479 enterRule(_localctx, 70, TocParser::RuleTypeName);
\r
2481 #if __cplusplus > 201703L
\r
2482 auto onExit = finally([=, this] {
\r
2484 auto onExit = finally([=] {
\r
2489 enterOuterAlt(_localctx, 1);
\r
2491 match(TocParser::NAME);
\r
2494 catch (RecognitionException &e) {
\r
2495 _errHandler->reportError(this, e);
\r
2496 _localctx->exception = std::current_exception();
\r
2497 _errHandler->recover(this, _localctx->exception);
\r
2503 //----------------- StructNameContext ------------------------------------------------------------------
\r
2505 TocParser::StructNameContext::StructNameContext(ParserRuleContext *parent, size_t invokingState)
\r
2506 : ParserRuleContext(parent, invokingState) {
\r
2509 tree::TerminalNode* TocParser::StructNameContext::NAME() {
\r
2510 return getToken(TocParser::NAME, 0);
\r
2514 size_t TocParser::StructNameContext::getRuleIndex() const {
\r
2515 return TocParser::RuleStructName;
\r
2518 void TocParser::StructNameContext::enterRule(tree::ParseTreeListener *listener) {
\r
2519 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2520 if (parserListener != nullptr)
\r
2521 parserListener->enterStructName(this);
\r
2524 void TocParser::StructNameContext::exitRule(tree::ParseTreeListener *listener) {
\r
2525 auto parserListener = dynamic_cast<TocListener *>(listener);
\r
2526 if (parserListener != nullptr)
\r
2527 parserListener->exitStructName(this);
\r
2530 TocParser::StructNameContext* TocParser::structName() {
\r
2531 StructNameContext *_localctx = _tracker.createInstance<StructNameContext>(_ctx, getState());
\r
2532 enterRule(_localctx, 72, TocParser::RuleStructName);
\r
2534 #if __cplusplus > 201703L
\r
2535 auto onExit = finally([=, this] {
\r
2537 auto onExit = finally([=] {
\r
2542 enterOuterAlt(_localctx, 1);
\r
2544 match(TocParser::NAME);
\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 // Static vars and initialization.
\r
2557 std::vector<dfa::DFA> TocParser::_decisionToDFA;
\r
2558 atn::PredictionContextCache TocParser::_sharedContextCache;
\r
2560 // We own the ATN which in turn owns the ATN states.
\r
2561 atn::ATN TocParser::_atn;
\r
2562 std::vector<uint16_t> TocParser::_serializedATN;
\r
2564 std::vector<std::string> TocParser::_ruleNames = {
\r
2565 "prog", "decl", "varDecl", "var", "type", "funcDecl", "func", "parameter",
\r
2566 "firstParameter", "additionalParameter", "body", "structDecl", "structMember",
\r
2567 "structVar", "structMethod", "stmt", "conditional", "ifCond", "loop",
\r
2568 "whileLoop", "assignment", "returnStmt", "expr", "nonOpExpr", "nonSubscriptExpr",
\r
2569 "funcCall", "operatorExpr", "binaryOperator", "identifier", "literal",
\r
2570 "subscript", "memberAccess", "parenExpr", "funcName", "varName", "typeName",
\r
2574 std::vector<std::string> TocParser::_literalNames = {
\r
2575 "", "'var'", "':'", "'='", "'func'", "'('", "')'", "','", "'{'", "'}'",
\r
2576 "'struct'", "'if'", "'while'", "'return'", "'['", "']'", "'.'"
\r
2579 std::vector<std::string> TocParser::_symbolicNames = {
\r
2580 "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "BINARY_OPERATOR",
\r
2581 "INTLIT", "NAME", "WS", "NEWLINE"
\r
2584 dfa::Vocabulary TocParser::_vocabulary(_literalNames, _symbolicNames);
\r
2586 std::vector<std::string> TocParser::_tokenNames;
\r
2588 TocParser::Initializer::Initializer() {
\r
2589 for (size_t i = 0; i < _symbolicNames.size(); ++i) {
\r
2590 std::string name = _vocabulary.getLiteralName(i);
\r
2591 if (name.empty()) {
\r
2592 name = _vocabulary.getSymbolicName(i);
\r
2595 if (name.empty()) {
\r
2596 _tokenNames.push_back("<INVALID>");
\r
2598 _tokenNames.push_back(name);
\r
2602 static const uint16_t serializedATNSegment0[] = {
\r
2603 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964,
\r
2604 0x3, 0x17, 0x101, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4,
\r
2605 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9,
\r
2606 0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa,
\r
2607 0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4,
\r
2608 0xe, 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11,
\r
2609 0x9, 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14,
\r
2610 0x9, 0x14, 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17,
\r
2611 0x9, 0x17, 0x4, 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a,
\r
2612 0x9, 0x1a, 0x4, 0x1b, 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d,
\r
2613 0x9, 0x1d, 0x4, 0x1e, 0x9, 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20,
\r
2614 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, 0x4, 0x22, 0x9, 0x22, 0x4, 0x23,
\r
2615 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, 0x25, 0x9, 0x25, 0x4, 0x26,
\r
2616 0x9, 0x26, 0x3, 0x2, 0x6, 0x2, 0x4e, 0xa, 0x2, 0xd, 0x2, 0xe, 0x2,
\r
2617 0x4f, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x5, 0x3,
\r
2618 0x57, 0xa, 0x3, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x5, 0x3, 0x5,
\r
2619 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x5, 0x5, 0x62, 0xa, 0x5,
\r
2620 0x3, 0x6, 0x3, 0x6, 0x3, 0x7, 0x3, 0x7, 0x3, 0x7, 0x3, 0x8, 0x3,
\r
2621 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8,
\r
2622 0x3, 0x8, 0x3, 0x9, 0x3, 0x9, 0x7, 0x9, 0x74, 0xa, 0x9, 0xc, 0x9,
\r
2623 0xe, 0x9, 0x77, 0xb, 0x9, 0x5, 0x9, 0x79, 0xa, 0x9, 0x3, 0xa, 0x3,
\r
2624 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, 0xc, 0x3, 0xc, 0x7, 0xc,
\r
2625 0x82, 0xa, 0xc, 0xc, 0xc, 0xe, 0xc, 0x85, 0xb, 0xc, 0x3, 0xc, 0x3,
\r
2626 0xc, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x7, 0xd, 0x8d, 0xa,
\r
2627 0xd, 0xc, 0xd, 0xe, 0xd, 0x90, 0xb, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3,
\r
2628 0xe, 0x3, 0xe, 0x5, 0xe, 0x96, 0xa, 0xe, 0x3, 0xf, 0x3, 0xf, 0x3,
\r
2629 0x10, 0x3, 0x10, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3,
\r
2630 0x11, 0x3, 0x11, 0x5, 0x11, 0xa2, 0xa, 0x11, 0x3, 0x12, 0x3, 0x12,
\r
2631 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x14, 0x3, 0x14,
\r
2632 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x16, 0x3, 0x16,
\r
2633 0x3, 0x16, 0x3, 0x16, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x18,
\r
2634 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18,
\r
2635 0x5, 0x18, 0xbe, 0xa, 0x18, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3,
\r
2636 0x19, 0x3, 0x19, 0x3, 0x19, 0x5, 0x19, 0xc6, 0xa, 0x19, 0x3, 0x1a,
\r
2637 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x5, 0x1a, 0xcc, 0xa, 0x1a, 0x3,
\r
2638 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x7, 0x1b, 0xd3,
\r
2639 0xa, 0x1b, 0xc, 0x1b, 0xe, 0x1b, 0xd6, 0xb, 0x1b, 0x5, 0x1b, 0xd8,
\r
2640 0xa, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1d,
\r
2641 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x7, 0x1d, 0xe3, 0xa,
\r
2642 0x1d, 0xc, 0x1d, 0xe, 0x1d, 0xe6, 0xb, 0x1d, 0x3, 0x1e, 0x3, 0x1e,
\r
2643 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20,
\r
2644 0x3, 0x20, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x22,
\r
2645 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x23, 0x3, 0x23, 0x3, 0x24,
\r
2646 0x3, 0x24, 0x3, 0x25, 0x3, 0x25, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26,
\r
2647 0x2, 0x2, 0x27, 0x2, 0x4, 0x6, 0x8, 0xa, 0xc, 0xe, 0x10, 0x12, 0x14,
\r
2648 0x16, 0x18, 0x1a, 0x1c, 0x1e, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a,
\r
2649 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e, 0x40,
\r
2650 0x42, 0x44, 0x46, 0x48, 0x4a, 0x2, 0x2, 0x2, 0xfa, 0x2, 0x4d, 0x3,
\r
2651 0x2, 0x2, 0x2, 0x4, 0x56, 0x3, 0x2, 0x2, 0x2, 0x6, 0x58, 0x3, 0x2,
\r
2652 0x2, 0x2, 0x8, 0x5b, 0x3, 0x2, 0x2, 0x2, 0xa, 0x63, 0x3, 0x2, 0x2,
\r
2653 0x2, 0xc, 0x65, 0x3, 0x2, 0x2, 0x2, 0xe, 0x68, 0x3, 0x2, 0x2, 0x2,
\r
2654 0x10, 0x78, 0x3, 0x2, 0x2, 0x2, 0x12, 0x7a, 0x3, 0x2, 0x2, 0x2, 0x14,
\r
2655 0x7c, 0x3, 0x2, 0x2, 0x2, 0x16, 0x7f, 0x3, 0x2, 0x2, 0x2, 0x18, 0x88,
\r
2656 0x3, 0x2, 0x2, 0x2, 0x1a, 0x95, 0x3, 0x2, 0x2, 0x2, 0x1c, 0x97, 0x3,
\r
2657 0x2, 0x2, 0x2, 0x1e, 0x99, 0x3, 0x2, 0x2, 0x2, 0x20, 0xa1, 0x3, 0x2,
\r
2658 0x2, 0x2, 0x22, 0xa3, 0x3, 0x2, 0x2, 0x2, 0x24, 0xa5, 0x3, 0x2, 0x2,
\r
2659 0x2, 0x26, 0xa9, 0x3, 0x2, 0x2, 0x2, 0x28, 0xab, 0x3, 0x2, 0x2, 0x2,
\r
2660 0x2a, 0xaf, 0x3, 0x2, 0x2, 0x2, 0x2c, 0xb3, 0x3, 0x2, 0x2, 0x2, 0x2e,
\r
2661 0xbd, 0x3, 0x2, 0x2, 0x2, 0x30, 0xc5, 0x3, 0x2, 0x2, 0x2, 0x32, 0xcb,
\r
2662 0x3, 0x2, 0x2, 0x2, 0x34, 0xcd, 0x3, 0x2, 0x2, 0x2, 0x36, 0xdb, 0x3,
\r
2663 0x2, 0x2, 0x2, 0x38, 0xdd, 0x3, 0x2, 0x2, 0x2, 0x3a, 0xe7, 0x3, 0x2,
\r
2664 0x2, 0x2, 0x3c, 0xe9, 0x3, 0x2, 0x2, 0x2, 0x3e, 0xeb, 0x3, 0x2, 0x2,
\r
2665 0x2, 0x40, 0xf0, 0x3, 0x2, 0x2, 0x2, 0x42, 0xf4, 0x3, 0x2, 0x2, 0x2,
\r
2666 0x44, 0xf8, 0x3, 0x2, 0x2, 0x2, 0x46, 0xfa, 0x3, 0x2, 0x2, 0x2, 0x48,
\r
2667 0xfc, 0x3, 0x2, 0x2, 0x2, 0x4a, 0xfe, 0x3, 0x2, 0x2, 0x2, 0x4c, 0x4e,
\r
2668 0x5, 0x4, 0x3, 0x2, 0x4d, 0x4c, 0x3, 0x2, 0x2, 0x2, 0x4e, 0x4f, 0x3,
\r
2669 0x2, 0x2, 0x2, 0x4f, 0x4d, 0x3, 0x2, 0x2, 0x2, 0x4f, 0x50, 0x3, 0x2,
\r
2670 0x2, 0x2, 0x50, 0x51, 0x3, 0x2, 0x2, 0x2, 0x51, 0x52, 0x7, 0x2, 0x2,
\r
2671 0x3, 0x52, 0x3, 0x3, 0x2, 0x2, 0x2, 0x53, 0x57, 0x5, 0x6, 0x4, 0x2,
\r
2672 0x54, 0x57, 0x5, 0xc, 0x7, 0x2, 0x55, 0x57, 0x5, 0x18, 0xd, 0x2,
\r
2673 0x56, 0x53, 0x3, 0x2, 0x2, 0x2, 0x56, 0x54, 0x3, 0x2, 0x2, 0x2, 0x56,
\r
2674 0x55, 0x3, 0x2, 0x2, 0x2, 0x57, 0x5, 0x3, 0x2, 0x2, 0x2, 0x58, 0x59,
\r
2675 0x7, 0x3, 0x2, 0x2, 0x59, 0x5a, 0x5, 0x8, 0x5, 0x2, 0x5a, 0x7, 0x3,
\r
2676 0x2, 0x2, 0x2, 0x5b, 0x5c, 0x5, 0x46, 0x24, 0x2, 0x5c, 0x5d, 0x7,
\r
2677 0x4, 0x2, 0x2, 0x5d, 0x5e, 0x5, 0xa, 0x6, 0x2, 0x5e, 0x61, 0x3, 0x2,
\r
2678 0x2, 0x2, 0x5f, 0x60, 0x7, 0x5, 0x2, 0x2, 0x60, 0x62, 0x5, 0x2e,
\r
2679 0x18, 0x2, 0x61, 0x5f, 0x3, 0x2, 0x2, 0x2, 0x61, 0x62, 0x3, 0x2,
\r
2680 0x2, 0x2, 0x62, 0x9, 0x3, 0x2, 0x2, 0x2, 0x63, 0x64, 0x5, 0x48, 0x25,
\r
2681 0x2, 0x64, 0xb, 0x3, 0x2, 0x2, 0x2, 0x65, 0x66, 0x7, 0x6, 0x2, 0x2,
\r
2682 0x66, 0x67, 0x5, 0xe, 0x8, 0x2, 0x67, 0xd, 0x3, 0x2, 0x2, 0x2, 0x68,
\r
2683 0x69, 0x5, 0x44, 0x23, 0x2, 0x69, 0x6a, 0x7, 0x7, 0x2, 0x2, 0x6a,
\r
2684 0x6b, 0x5, 0x10, 0x9, 0x2, 0x6b, 0x6c, 0x7, 0x8, 0x2, 0x2, 0x6c,
\r
2685 0x6d, 0x7, 0x4, 0x2, 0x2, 0x6d, 0x6e, 0x5, 0xa, 0x6, 0x2, 0x6e, 0x6f,
\r
2686 0x3, 0x2, 0x2, 0x2, 0x6f, 0x70, 0x5, 0x16, 0xc, 0x2, 0x70, 0xf, 0x3,
\r
2687 0x2, 0x2, 0x2, 0x71, 0x75, 0x5, 0x12, 0xa, 0x2, 0x72, 0x74, 0x5,
\r
2688 0x14, 0xb, 0x2, 0x73, 0x72, 0x3, 0x2, 0x2, 0x2, 0x74, 0x77, 0x3,
\r
2689 0x2, 0x2, 0x2, 0x75, 0x73, 0x3, 0x2, 0x2, 0x2, 0x75, 0x76, 0x3, 0x2,
\r
2690 0x2, 0x2, 0x76, 0x79, 0x3, 0x2, 0x2, 0x2, 0x77, 0x75, 0x3, 0x2, 0x2,
\r
2691 0x2, 0x78, 0x71, 0x3, 0x2, 0x2, 0x2, 0x78, 0x79, 0x3, 0x2, 0x2, 0x2,
\r
2692 0x79, 0x11, 0x3, 0x2, 0x2, 0x2, 0x7a, 0x7b, 0x5, 0x8, 0x5, 0x2, 0x7b,
\r
2693 0x13, 0x3, 0x2, 0x2, 0x2, 0x7c, 0x7d, 0x7, 0x9, 0x2, 0x2, 0x7d, 0x7e,
\r
2694 0x5, 0x8, 0x5, 0x2, 0x7e, 0x15, 0x3, 0x2, 0x2, 0x2, 0x7f, 0x83, 0x7,
\r
2695 0xa, 0x2, 0x2, 0x80, 0x82, 0x5, 0x20, 0x11, 0x2, 0x81, 0x80, 0x3,
\r
2696 0x2, 0x2, 0x2, 0x82, 0x85, 0x3, 0x2, 0x2, 0x2, 0x83, 0x81, 0x3, 0x2,
\r
2697 0x2, 0x2, 0x83, 0x84, 0x3, 0x2, 0x2, 0x2, 0x84, 0x86, 0x3, 0x2, 0x2,
\r
2698 0x2, 0x85, 0x83, 0x3, 0x2, 0x2, 0x2, 0x86, 0x87, 0x7, 0xb, 0x2, 0x2,
\r
2699 0x87, 0x17, 0x3, 0x2, 0x2, 0x2, 0x88, 0x89, 0x7, 0xc, 0x2, 0x2, 0x89,
\r
2700 0x8a, 0x5, 0x4a, 0x26, 0x2, 0x8a, 0x8e, 0x7, 0xa, 0x2, 0x2, 0x8b,
\r
2701 0x8d, 0x5, 0x1a, 0xe, 0x2, 0x8c, 0x8b, 0x3, 0x2, 0x2, 0x2, 0x8d,
\r
2702 0x90, 0x3, 0x2, 0x2, 0x2, 0x8e, 0x8c, 0x3, 0x2, 0x2, 0x2, 0x8e, 0x8f,
\r
2703 0x3, 0x2, 0x2, 0x2, 0x8f, 0x91, 0x3, 0x2, 0x2, 0x2, 0x90, 0x8e, 0x3,
\r
2704 0x2, 0x2, 0x2, 0x91, 0x92, 0x7, 0xb, 0x2, 0x2, 0x92, 0x19, 0x3, 0x2,
\r
2705 0x2, 0x2, 0x93, 0x96, 0x5, 0x1c, 0xf, 0x2, 0x94, 0x96, 0x5, 0x1e,
\r
2706 0x10, 0x2, 0x95, 0x93, 0x3, 0x2, 0x2, 0x2, 0x95, 0x94, 0x3, 0x2,
\r
2707 0x2, 0x2, 0x96, 0x1b, 0x3, 0x2, 0x2, 0x2, 0x97, 0x98, 0x5, 0x8, 0x5,
\r
2708 0x2, 0x98, 0x1d, 0x3, 0x2, 0x2, 0x2, 0x99, 0x9a, 0x5, 0xe, 0x8, 0x2,
\r
2709 0x9a, 0x1f, 0x3, 0x2, 0x2, 0x2, 0x9b, 0xa2, 0x5, 0x6, 0x4, 0x2, 0x9c,
\r
2710 0xa2, 0x5, 0x22, 0x12, 0x2, 0x9d, 0xa2, 0x5, 0x26, 0x14, 0x2, 0x9e,
\r
2711 0xa2, 0x5, 0x2a, 0x16, 0x2, 0x9f, 0xa2, 0x5, 0x2c, 0x17, 0x2, 0xa0,
\r
2712 0xa2, 0x5, 0x2e, 0x18, 0x2, 0xa1, 0x9b, 0x3, 0x2, 0x2, 0x2, 0xa1,
\r
2713 0x9c, 0x3, 0x2, 0x2, 0x2, 0xa1, 0x9d, 0x3, 0x2, 0x2, 0x2, 0xa1, 0x9e,
\r
2714 0x3, 0x2, 0x2, 0x2, 0xa1, 0x9f, 0x3, 0x2, 0x2, 0x2, 0xa1, 0xa0, 0x3,
\r
2715 0x2, 0x2, 0x2, 0xa2, 0x21, 0x3, 0x2, 0x2, 0x2, 0xa3, 0xa4, 0x5, 0x24,
\r
2716 0x13, 0x2, 0xa4, 0x23, 0x3, 0x2, 0x2, 0x2, 0xa5, 0xa6, 0x7, 0xd,
\r
2717 0x2, 0x2, 0xa6, 0xa7, 0x5, 0x2e, 0x18, 0x2, 0xa7, 0xa8, 0x5, 0x16,
\r
2718 0xc, 0x2, 0xa8, 0x25, 0x3, 0x2, 0x2, 0x2, 0xa9, 0xaa, 0x5, 0x28,
\r
2719 0x15, 0x2, 0xaa, 0x27, 0x3, 0x2, 0x2, 0x2, 0xab, 0xac, 0x7, 0xe,
\r
2720 0x2, 0x2, 0xac, 0xad, 0x5, 0x2e, 0x18, 0x2, 0xad, 0xae, 0x5, 0x16,
\r
2721 0xc, 0x2, 0xae, 0x29, 0x3, 0x2, 0x2, 0x2, 0xaf, 0xb0, 0x5, 0x3a,
\r
2722 0x1e, 0x2, 0xb0, 0xb1, 0x7, 0x5, 0x2, 0x2, 0xb1, 0xb2, 0x5, 0x2e,
\r
2723 0x18, 0x2, 0xb2, 0x2b, 0x3, 0x2, 0x2, 0x2, 0xb3, 0xb4, 0x7, 0xf,
\r
2724 0x2, 0x2, 0xb4, 0xb5, 0x5, 0x2e, 0x18, 0x2, 0xb5, 0x2d, 0x3, 0x2,
\r
2725 0x2, 0x2, 0xb6, 0xbe, 0x5, 0x34, 0x1b, 0x2, 0xb7, 0xbe, 0x5, 0x3c,
\r
2726 0x1f, 0x2, 0xb8, 0xbe, 0x5, 0x3a, 0x1e, 0x2, 0xb9, 0xbe, 0x5, 0x3e,
\r
2727 0x20, 0x2, 0xba, 0xbe, 0x5, 0x40, 0x21, 0x2, 0xbb, 0xbe, 0x5, 0x42,
\r
2728 0x22, 0x2, 0xbc, 0xbe, 0x5, 0x36, 0x1c, 0x2, 0xbd, 0xb6, 0x3, 0x2,
\r
2729 0x2, 0x2, 0xbd, 0xb7, 0x3, 0x2, 0x2, 0x2, 0xbd, 0xb8, 0x3, 0x2, 0x2,
\r
2730 0x2, 0xbd, 0xb9, 0x3, 0x2, 0x2, 0x2, 0xbd, 0xba, 0x3, 0x2, 0x2, 0x2,
\r
2731 0xbd, 0xbb, 0x3, 0x2, 0x2, 0x2, 0xbd, 0xbc, 0x3, 0x2, 0x2, 0x2, 0xbe,
\r
2732 0x2f, 0x3, 0x2, 0x2, 0x2, 0xbf, 0xc6, 0x5, 0x34, 0x1b, 0x2, 0xc0,
\r
2733 0xc6, 0x5, 0x3c, 0x1f, 0x2, 0xc1, 0xc6, 0x5, 0x3a, 0x1e, 0x2, 0xc2,
\r
2734 0xc6, 0x5, 0x3e, 0x20, 0x2, 0xc3, 0xc6, 0x5, 0x40, 0x21, 0x2, 0xc4,
\r
2735 0xc6, 0x5, 0x42, 0x22, 0x2, 0xc5, 0xbf, 0x3, 0x2, 0x2, 0x2, 0xc5,
\r
2736 0xc0, 0x3, 0x2, 0x2, 0x2, 0xc5, 0xc1, 0x3, 0x2, 0x2, 0x2, 0xc5, 0xc2,
\r
2737 0x3, 0x2, 0x2, 0x2, 0xc5, 0xc3, 0x3, 0x2, 0x2, 0x2, 0xc5, 0xc4, 0x3,
\r
2738 0x2, 0x2, 0x2, 0xc6, 0x31, 0x3, 0x2, 0x2, 0x2, 0xc7, 0xcc, 0x5, 0x34,
\r
2739 0x1b, 0x2, 0xc8, 0xcc, 0x5, 0x3a, 0x1e, 0x2, 0xc9, 0xcc, 0x5, 0x40,
\r
2740 0x21, 0x2, 0xca, 0xcc, 0x5, 0x42, 0x22, 0x2, 0xcb, 0xc7, 0x3, 0x2,
\r
2741 0x2, 0x2, 0xcb, 0xc8, 0x3, 0x2, 0x2, 0x2, 0xcb, 0xc9, 0x3, 0x2, 0x2,
\r
2742 0x2, 0xcb, 0xca, 0x3, 0x2, 0x2, 0x2, 0xcc, 0x33, 0x3, 0x2, 0x2, 0x2,
\r
2743 0xcd, 0xce, 0x5, 0x44, 0x23, 0x2, 0xce, 0xd7, 0x7, 0x7, 0x2, 0x2,
\r
2744 0xcf, 0xd4, 0x5, 0x2e, 0x18, 0x2, 0xd0, 0xd1, 0x7, 0x9, 0x2, 0x2,
\r
2745 0xd1, 0xd3, 0x5, 0x2e, 0x18, 0x2, 0xd2, 0xd0, 0x3, 0x2, 0x2, 0x2,
\r
2746 0xd3, 0xd6, 0x3, 0x2, 0x2, 0x2, 0xd4, 0xd2, 0x3, 0x2, 0x2, 0x2, 0xd4,
\r
2747 0xd5, 0x3, 0x2, 0x2, 0x2, 0xd5, 0xd8, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xd4,
\r
2748 0x3, 0x2, 0x2, 0x2, 0xd7, 0xcf, 0x3, 0x2, 0x2, 0x2, 0xd7, 0xd8, 0x3,
\r
2749 0x2, 0x2, 0x2, 0xd8, 0xd9, 0x3, 0x2, 0x2, 0x2, 0xd9, 0xda, 0x7, 0x8,
\r
2750 0x2, 0x2, 0xda, 0x35, 0x3, 0x2, 0x2, 0x2, 0xdb, 0xdc, 0x5, 0x38,
\r
2751 0x1d, 0x2, 0xdc, 0x37, 0x3, 0x2, 0x2, 0x2, 0xdd, 0xde, 0x5, 0x30,
\r
2752 0x19, 0x2, 0xde, 0xdf, 0x7, 0x13, 0x2, 0x2, 0xdf, 0xe4, 0x5, 0x30,
\r
2753 0x19, 0x2, 0xe0, 0xe1, 0x7, 0x13, 0x2, 0x2, 0xe1, 0xe3, 0x5, 0x30,
\r
2754 0x19, 0x2, 0xe2, 0xe0, 0x3, 0x2, 0x2, 0x2, 0xe3, 0xe6, 0x3, 0x2,
\r
2755 0x2, 0x2, 0xe4, 0xe2, 0x3, 0x2, 0x2, 0x2, 0xe4, 0xe5, 0x3, 0x2, 0x2,
\r
2756 0x2, 0xe5, 0x39, 0x3, 0x2, 0x2, 0x2, 0xe6, 0xe4, 0x3, 0x2, 0x2, 0x2,
\r
2757 0xe7, 0xe8, 0x5, 0x46, 0x24, 0x2, 0xe8, 0x3b, 0x3, 0x2, 0x2, 0x2,
\r
2758 0xe9, 0xea, 0x7, 0x14, 0x2, 0x2, 0xea, 0x3d, 0x3, 0x2, 0x2, 0x2,
\r
2759 0xeb, 0xec, 0x5, 0x32, 0x1a, 0x2, 0xec, 0xed, 0x7, 0x10, 0x2, 0x2,
\r
2760 0xed, 0xee, 0x5, 0x2e, 0x18, 0x2, 0xee, 0xef, 0x7, 0x11, 0x2, 0x2,
\r
2761 0xef, 0x3f, 0x3, 0x2, 0x2, 0x2, 0xf0, 0xf1, 0x5, 0x3a, 0x1e, 0x2,
\r
2762 0xf1, 0xf2, 0x7, 0x12, 0x2, 0x2, 0xf2, 0xf3, 0x5, 0x3a, 0x1e, 0x2,
\r
2763 0xf3, 0x41, 0x3, 0x2, 0x2, 0x2, 0xf4, 0xf5, 0x7, 0x7, 0x2, 0x2, 0xf5,
\r
2764 0xf6, 0x5, 0x2e, 0x18, 0x2, 0xf6, 0xf7, 0x7, 0x8, 0x2, 0x2, 0xf7,
\r
2765 0x43, 0x3, 0x2, 0x2, 0x2, 0xf8, 0xf9, 0x7, 0x15, 0x2, 0x2, 0xf9,
\r
2766 0x45, 0x3, 0x2, 0x2, 0x2, 0xfa, 0xfb, 0x7, 0x15, 0x2, 0x2, 0xfb,
\r
2767 0x47, 0x3, 0x2, 0x2, 0x2, 0xfc, 0xfd, 0x7, 0x15, 0x2, 0x2, 0xfd,
\r
2768 0x49, 0x3, 0x2, 0x2, 0x2, 0xfe, 0xff, 0x7, 0x15, 0x2, 0x2, 0xff,
\r
2769 0x4b, 0x3, 0x2, 0x2, 0x2, 0x11, 0x4f, 0x56, 0x61, 0x75, 0x78, 0x83,
\r
2770 0x8e, 0x95, 0xa1, 0xbd, 0xc5, 0xcb, 0xd4, 0xd7, 0xe4,
\r
2773 _serializedATN.insert(_serializedATN.end(), serializedATNSegment0,
\r
2774 serializedATNSegment0 + sizeof(serializedATNSegment0) / sizeof(serializedATNSegment0[0]));
\r
2777 atn::ATNDeserializer deserializer;
\r
2778 _atn = deserializer.deserialize(_serializedATN);
\r
2780 size_t count = _atn.getNumberOfDecisions();
\r
2781 _decisionToDFA.reserve(count);
\r
2782 for (size_t i = 0; i < count; i++) {
\r
2783 _decisionToDFA.emplace_back(_atn.getDecisionState(i), i);
\r
2787 TocParser::Initializer TocParser::_init;
\r