2 // Generated from Toc.g4 by ANTLR 4.9.2
\r
7 #include "antlr4-runtime.h"
\r
12 class TocParser : public antlr4::Parser {
\r
15 T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7,
\r
16 T__7 = 8, T__8 = 9, T__9 = 10, T__10 = 11, T__11 = 12, T__12 = 13, T__13 = 14,
\r
17 T__14 = 15, T__15 = 16, T__16 = 17, T__17 = 18, T__18 = 19, T__19 = 20,
\r
18 T__20 = 21, T__21 = 22, T__22 = 23, T__23 = 24, T__24 = 25, T__25 = 26,
\r
19 T__26 = 27, T__27 = 28, T__28 = 29, T__29 = 30, T__30 = 31, T__31 = 32,
\r
20 T__32 = 33, T__33 = 34, T__34 = 35, T__35 = 36, T__36 = 37, T__37 = 38,
\r
21 T__38 = 39, T__39 = 40, T__40 = 41, T__41 = 42, T__42 = 43, T__43 = 44,
\r
22 T__44 = 45, T__45 = 46, T__46 = 47, T__47 = 48, T__48 = 49, T__49 = 50,
\r
23 T__50 = 51, T__51 = 52, T__52 = 53, T__53 = 54, INT_LIT = 55, DECIMAL_LIT = 56,
\r
24 STRING_LIT = 57, BOOL_LIT = 58, NAME = 59, WS = 60, NEWLINE = 61, NUMBER = 62
\r
28 RuleProg = 0, RuleDecl = 1, RuleVarDecl = 2, RuleVar = 3, RuleVarInit = 4,
\r
29 RuleType = 5, RuleTypeModifier = 6, RuleFuncDecl = 7, RuleFunc = 8,
\r
30 RuleParameter = 9, RuleBody = 10, RuleStructDecl = 11, RuleStructMember = 12,
\r
31 RuleStructVar = 13, RuleStructMethod = 14, RuleStmt = 15, RuleIfStmt = 16,
\r
32 RuleElseIfStmt = 17, RuleElseStmt = 18, RuleSwitchStmt = 19, RuleSwitchBody = 20,
\r
33 RuleSwitchCase = 21, RuleForStmt = 22, RuleWhileStmt = 23, RuleAssignStmt = 24,
\r
34 RuleReturnStmt = 25, RuleExpr = 26, RuleNonOpExpr = 27, RuleNonAccessExpr = 28,
\r
35 RuleFuncExpr = 29, RuleOpExpr = 30, RuleBinaryOp = 31, RulePrefixOp = 32,
\r
36 RulePostfixOp = 33, RuleTernaryOp = 34, RuleIdentifierExpr = 35, RuleLitExpr = 36,
\r
37 RuleAccessExpr = 37, RuleAccessSubExpr = 38, RuleAccessMember = 39,
\r
38 RuleAccessBrackets = 40, RuleParenExpr = 41, RuleFuncName = 42, RuleVarName = 43,
\r
39 RuleTypeName = 44, RuleStructName = 45, RulePostfix_op = 46, RulePrefix_op = 47,
\r
43 explicit TocParser(antlr4::TokenStream *input);
\r
46 virtual std::string getGrammarFileName() const override;
\r
47 virtual const antlr4::atn::ATN& getATN() const override { return _atn; };
\r
48 virtual const std::vector<std::string>& getTokenNames() const override { return _tokenNames; }; // deprecated: use vocabulary instead.
\r
49 virtual const std::vector<std::string>& getRuleNames() const override;
\r
50 virtual antlr4::dfa::Vocabulary& getVocabulary() const override;
\r
55 class VarDeclContext;
\r
57 class VarInitContext;
\r
59 class TypeModifierContext;
\r
60 class FuncDeclContext;
\r
62 class ParameterContext;
\r
64 class StructDeclContext;
\r
65 class StructMemberContext;
\r
66 class StructVarContext;
\r
67 class StructMethodContext;
\r
69 class IfStmtContext;
\r
70 class ElseIfStmtContext;
\r
71 class ElseStmtContext;
\r
72 class SwitchStmtContext;
\r
73 class SwitchBodyContext;
\r
74 class SwitchCaseContext;
\r
75 class ForStmtContext;
\r
76 class WhileStmtContext;
\r
77 class AssignStmtContext;
\r
78 class ReturnStmtContext;
\r
80 class NonOpExprContext;
\r
81 class NonAccessExprContext;
\r
82 class FuncExprContext;
\r
83 class OpExprContext;
\r
84 class BinaryOpContext;
\r
85 class PrefixOpContext;
\r
86 class PostfixOpContext;
\r
87 class TernaryOpContext;
\r
88 class IdentifierExprContext;
\r
89 class LitExprContext;
\r
90 class AccessExprContext;
\r
91 class AccessSubExprContext;
\r
92 class AccessMemberContext;
\r
93 class AccessBracketsContext;
\r
94 class ParenExprContext;
\r
95 class FuncNameContext;
\r
96 class VarNameContext;
\r
97 class TypeNameContext;
\r
98 class StructNameContext;
\r
99 class Postfix_opContext;
\r
100 class Prefix_opContext;
\r
101 class Binary_opContext;
\r
103 class ProgContext : public antlr4::ParserRuleContext {
\r
105 ProgContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
106 virtual size_t getRuleIndex() const override;
\r
107 antlr4::tree::TerminalNode *EOF();
\r
108 std::vector<DeclContext *> decl();
\r
109 DeclContext* decl(size_t i);
\r
111 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
112 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
116 ProgContext* prog();
\r
118 class DeclContext : public antlr4::ParserRuleContext {
\r
120 DeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
121 virtual size_t getRuleIndex() const override;
\r
122 VarDeclContext *varDecl();
\r
123 FuncDeclContext *funcDecl();
\r
124 StructDeclContext *structDecl();
\r
126 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
127 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
131 DeclContext* decl();
\r
133 class VarDeclContext : public antlr4::ParserRuleContext {
\r
135 VarDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
136 virtual size_t getRuleIndex() const override;
\r
139 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
140 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
144 VarDeclContext* varDecl();
\r
146 class VarContext : public antlr4::ParserRuleContext {
\r
148 VarContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
149 virtual size_t getRuleIndex() const override;
\r
150 VarNameContext *varName();
\r
151 TypeContext *type();
\r
152 ExprContext *expr();
\r
154 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
155 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
161 class VarInitContext : public antlr4::ParserRuleContext {
\r
163 VarInitContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
164 virtual size_t getRuleIndex() const override;
\r
165 VarNameContext *varName();
\r
166 TypeContext *type();
\r
167 ExprContext *expr();
\r
169 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
170 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
174 VarInitContext* varInit();
\r
176 class TypeContext : public antlr4::ParserRuleContext {
\r
178 TypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
179 virtual size_t getRuleIndex() const override;
\r
180 TypeNameContext *typeName();
\r
181 std::vector<TypeModifierContext *> typeModifier();
\r
182 TypeModifierContext* typeModifier(size_t i);
\r
184 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
185 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
189 TypeContext* type();
\r
191 class TypeModifierContext : public antlr4::ParserRuleContext {
\r
193 TypeModifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
194 virtual size_t getRuleIndex() const override;
\r
195 antlr4::tree::TerminalNode *NUMBER();
\r
197 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
198 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
202 TypeModifierContext* typeModifier();
\r
204 class FuncDeclContext : public antlr4::ParserRuleContext {
\r
206 FuncDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
207 virtual size_t getRuleIndex() const override;
\r
208 FuncContext *func();
\r
210 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
211 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
215 FuncDeclContext* funcDecl();
\r
217 class FuncContext : public antlr4::ParserRuleContext {
\r
219 FuncContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
220 virtual size_t getRuleIndex() const override;
\r
221 FuncNameContext *funcName();
\r
222 ParameterContext *parameter();
\r
223 BodyContext *body();
\r
224 TypeContext *type();
\r
226 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
227 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
231 FuncContext* func();
\r
233 class ParameterContext : public antlr4::ParserRuleContext {
\r
235 ParameterContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
236 virtual size_t getRuleIndex() const override;
\r
237 std::vector<VarContext *> var();
\r
238 VarContext* var(size_t i);
\r
240 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
241 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
245 ParameterContext* parameter();
\r
247 class BodyContext : public antlr4::ParserRuleContext {
\r
249 BodyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
250 virtual size_t getRuleIndex() const override;
\r
251 std::vector<StmtContext *> stmt();
\r
252 StmtContext* stmt(size_t i);
\r
254 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
255 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
259 BodyContext* body();
\r
261 class StructDeclContext : public antlr4::ParserRuleContext {
\r
263 StructDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
264 virtual size_t getRuleIndex() const override;
\r
265 StructNameContext *structName();
\r
266 std::vector<StructMemberContext *> structMember();
\r
267 StructMemberContext* structMember(size_t i);
\r
269 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
270 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
274 StructDeclContext* structDecl();
\r
276 class StructMemberContext : public antlr4::ParserRuleContext {
\r
278 StructMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
279 virtual size_t getRuleIndex() const override;
\r
280 StructVarContext *structVar();
\r
281 StructMethodContext *structMethod();
\r
283 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
284 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
288 StructMemberContext* structMember();
\r
290 class StructVarContext : public antlr4::ParserRuleContext {
\r
292 StructVarContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
293 virtual size_t getRuleIndex() const override;
\r
296 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
297 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
301 StructVarContext* structVar();
\r
303 class StructMethodContext : public antlr4::ParserRuleContext {
\r
305 StructMethodContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
306 virtual size_t getRuleIndex() const override;
\r
307 FuncContext *func();
\r
309 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
310 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
314 StructMethodContext* structMethod();
\r
316 class StmtContext : public antlr4::ParserRuleContext {
\r
318 StmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
319 virtual size_t getRuleIndex() const override;
\r
320 VarDeclContext *varDecl();
\r
321 IfStmtContext *ifStmt();
\r
322 SwitchStmtContext *switchStmt();
\r
323 ForStmtContext *forStmt();
\r
324 WhileStmtContext *whileStmt();
\r
325 AssignStmtContext *assignStmt();
\r
326 ReturnStmtContext *returnStmt();
\r
327 ExprContext *expr();
\r
329 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
330 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
334 StmtContext* stmt();
\r
336 class IfStmtContext : public antlr4::ParserRuleContext {
\r
338 IfStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
339 virtual size_t getRuleIndex() const override;
\r
340 ExprContext *expr();
\r
341 BodyContext *body();
\r
342 std::vector<ElseIfStmtContext *> elseIfStmt();
\r
343 ElseIfStmtContext* elseIfStmt(size_t i);
\r
344 ElseStmtContext *elseStmt();
\r
346 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
347 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
351 IfStmtContext* ifStmt();
\r
353 class ElseIfStmtContext : public antlr4::ParserRuleContext {
\r
355 ElseIfStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
356 virtual size_t getRuleIndex() const override;
\r
357 ExprContext *expr();
\r
358 BodyContext *body();
\r
360 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
361 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
365 ElseIfStmtContext* elseIfStmt();
\r
367 class ElseStmtContext : public antlr4::ParserRuleContext {
\r
369 ElseStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
370 virtual size_t getRuleIndex() const override;
\r
371 BodyContext *body();
\r
373 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
374 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
378 ElseStmtContext* elseStmt();
\r
380 class SwitchStmtContext : public antlr4::ParserRuleContext {
\r
382 SwitchStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
383 virtual size_t getRuleIndex() const override;
\r
384 IdentifierExprContext *identifierExpr();
\r
385 SwitchBodyContext *switchBody();
\r
387 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
388 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
392 SwitchStmtContext* switchStmt();
\r
394 class SwitchBodyContext : public antlr4::ParserRuleContext {
\r
396 SwitchBodyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
397 virtual size_t getRuleIndex() const override;
\r
398 std::vector<SwitchCaseContext *> switchCase();
\r
399 SwitchCaseContext* switchCase(size_t i);
\r
401 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
402 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
406 SwitchBodyContext* switchBody();
\r
408 class SwitchCaseContext : public antlr4::ParserRuleContext {
\r
410 SwitchCaseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
411 virtual size_t getRuleIndex() const override;
\r
412 ExprContext *expr();
\r
413 BodyContext *body();
\r
415 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
416 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
420 SwitchCaseContext* switchCase();
\r
422 class ForStmtContext : public antlr4::ParserRuleContext {
\r
424 ForStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
425 virtual size_t getRuleIndex() const override;
\r
426 std::vector<ExprContext *> expr();
\r
427 ExprContext* expr(size_t i);
\r
428 BodyContext *body();
\r
429 VarInitContext *varInit();
\r
430 AssignStmtContext *assignStmt();
\r
432 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
433 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
437 ForStmtContext* forStmt();
\r
439 class WhileStmtContext : public antlr4::ParserRuleContext {
\r
441 WhileStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
442 virtual size_t getRuleIndex() const override;
\r
443 ExprContext *expr();
\r
444 BodyContext *body();
\r
446 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
447 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
451 WhileStmtContext* whileStmt();
\r
453 class AssignStmtContext : public antlr4::ParserRuleContext {
\r
455 AssignStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
456 virtual size_t getRuleIndex() const override;
\r
457 IdentifierExprContext *identifierExpr();
\r
458 ExprContext *expr();
\r
460 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
461 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
465 AssignStmtContext* assignStmt();
\r
467 class ReturnStmtContext : public antlr4::ParserRuleContext {
\r
469 ReturnStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
470 virtual size_t getRuleIndex() const override;
\r
471 ExprContext *expr();
\r
473 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
474 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
478 ReturnStmtContext* returnStmt();
\r
480 class ExprContext : public antlr4::ParserRuleContext {
\r
482 ExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
483 virtual size_t getRuleIndex() const override;
\r
484 FuncExprContext *funcExpr();
\r
485 LitExprContext *litExpr();
\r
486 IdentifierExprContext *identifierExpr();
\r
487 ParenExprContext *parenExpr();
\r
488 AccessExprContext *accessExpr();
\r
489 OpExprContext *opExpr();
\r
491 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
492 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
496 ExprContext* expr();
\r
498 class NonOpExprContext : public antlr4::ParserRuleContext {
\r
500 NonOpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
501 virtual size_t getRuleIndex() const override;
\r
502 FuncExprContext *funcExpr();
\r
503 LitExprContext *litExpr();
\r
504 IdentifierExprContext *identifierExpr();
\r
505 ParenExprContext *parenExpr();
\r
506 AccessExprContext *accessExpr();
\r
508 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
509 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
513 NonOpExprContext* nonOpExpr();
\r
515 class NonAccessExprContext : public antlr4::ParserRuleContext {
\r
517 NonAccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
518 virtual size_t getRuleIndex() const override;
\r
519 FuncExprContext *funcExpr();
\r
520 IdentifierExprContext *identifierExpr();
\r
521 ParenExprContext *parenExpr();
\r
523 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
524 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
528 NonAccessExprContext* nonAccessExpr();
\r
530 class FuncExprContext : public antlr4::ParserRuleContext {
\r
532 FuncExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
533 virtual size_t getRuleIndex() const override;
\r
534 FuncNameContext *funcName();
\r
535 std::vector<ExprContext *> expr();
\r
536 ExprContext* expr(size_t i);
\r
538 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
539 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
543 FuncExprContext* funcExpr();
\r
545 class OpExprContext : public antlr4::ParserRuleContext {
\r
547 OpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
548 virtual size_t getRuleIndex() const override;
\r
549 BinaryOpContext *binaryOp();
\r
550 PrefixOpContext *prefixOp();
\r
551 PostfixOpContext *postfixOp();
\r
552 TernaryOpContext *ternaryOp();
\r
554 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
555 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
559 OpExprContext* opExpr();
\r
561 class BinaryOpContext : public antlr4::ParserRuleContext {
\r
563 BinaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
564 virtual size_t getRuleIndex() const override;
\r
565 std::vector<NonOpExprContext *> nonOpExpr();
\r
566 NonOpExprContext* nonOpExpr(size_t i);
\r
567 std::vector<Binary_opContext *> binary_op();
\r
568 Binary_opContext* binary_op(size_t i);
\r
570 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
571 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
575 BinaryOpContext* binaryOp();
\r
577 class PrefixOpContext : public antlr4::ParserRuleContext {
\r
579 PrefixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
580 virtual size_t getRuleIndex() const override;
\r
581 Prefix_opContext *prefix_op();
\r
582 NonOpExprContext *nonOpExpr();
\r
584 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
585 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
589 PrefixOpContext* prefixOp();
\r
591 class PostfixOpContext : public antlr4::ParserRuleContext {
\r
593 PostfixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
594 virtual size_t getRuleIndex() const override;
\r
595 NonOpExprContext *nonOpExpr();
\r
596 Postfix_opContext *postfix_op();
\r
598 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
599 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
603 PostfixOpContext* postfixOp();
\r
605 class TernaryOpContext : public antlr4::ParserRuleContext {
\r
607 TernaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
608 virtual size_t getRuleIndex() const override;
\r
609 NonOpExprContext *nonOpExpr();
\r
610 std::vector<ExprContext *> expr();
\r
611 ExprContext* expr(size_t i);
\r
613 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
614 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
618 TernaryOpContext* ternaryOp();
\r
620 class IdentifierExprContext : public antlr4::ParserRuleContext {
\r
622 IdentifierExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
623 virtual size_t getRuleIndex() const override;
\r
624 VarNameContext *varName();
\r
626 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
627 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
631 IdentifierExprContext* identifierExpr();
\r
633 class LitExprContext : public antlr4::ParserRuleContext {
\r
635 LitExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
636 virtual size_t getRuleIndex() const override;
\r
637 antlr4::tree::TerminalNode *INT_LIT();
\r
638 antlr4::tree::TerminalNode *DECIMAL_LIT();
\r
639 antlr4::tree::TerminalNode *STRING_LIT();
\r
640 antlr4::tree::TerminalNode *BOOL_LIT();
\r
642 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
643 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
647 LitExprContext* litExpr();
\r
649 class AccessExprContext : public antlr4::ParserRuleContext {
\r
651 AccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
652 virtual size_t getRuleIndex() const override;
\r
653 NonAccessExprContext *nonAccessExpr();
\r
654 std::vector<AccessSubExprContext *> accessSubExpr();
\r
655 AccessSubExprContext* accessSubExpr(size_t i);
\r
657 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
658 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
662 AccessExprContext* accessExpr();
\r
664 class AccessSubExprContext : public antlr4::ParserRuleContext {
\r
666 AccessSubExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
667 virtual size_t getRuleIndex() const override;
\r
668 AccessMemberContext *accessMember();
\r
669 AccessBracketsContext *accessBrackets();
\r
671 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
672 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
676 AccessSubExprContext* accessSubExpr();
\r
678 class AccessMemberContext : public antlr4::ParserRuleContext {
\r
680 AccessMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
681 virtual size_t getRuleIndex() const override;
\r
682 IdentifierExprContext *identifierExpr();
\r
684 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
685 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
689 AccessMemberContext* accessMember();
\r
691 class AccessBracketsContext : public antlr4::ParserRuleContext {
\r
693 AccessBracketsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
694 virtual size_t getRuleIndex() const override;
\r
695 ExprContext *expr();
\r
697 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
698 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
702 AccessBracketsContext* accessBrackets();
\r
704 class ParenExprContext : public antlr4::ParserRuleContext {
\r
706 ParenExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
707 virtual size_t getRuleIndex() const override;
\r
708 ExprContext *expr();
\r
710 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
711 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
715 ParenExprContext* parenExpr();
\r
717 class FuncNameContext : public antlr4::ParserRuleContext {
\r
719 FuncNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
720 virtual size_t getRuleIndex() const override;
\r
721 antlr4::tree::TerminalNode *NAME();
\r
723 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
724 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
728 FuncNameContext* funcName();
\r
730 class VarNameContext : public antlr4::ParserRuleContext {
\r
732 VarNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
733 virtual size_t getRuleIndex() const override;
\r
734 antlr4::tree::TerminalNode *NAME();
\r
736 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
737 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
741 VarNameContext* varName();
\r
743 class TypeNameContext : public antlr4::ParserRuleContext {
\r
745 TypeNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
746 virtual size_t getRuleIndex() const override;
\r
747 antlr4::tree::TerminalNode *NAME();
\r
749 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
750 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
754 TypeNameContext* typeName();
\r
756 class StructNameContext : public antlr4::ParserRuleContext {
\r
758 StructNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
759 virtual size_t getRuleIndex() const override;
\r
760 antlr4::tree::TerminalNode *NAME();
\r
762 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
763 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
767 StructNameContext* structName();
\r
769 class Postfix_opContext : public antlr4::ParserRuleContext {
\r
771 Postfix_opContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
772 virtual size_t getRuleIndex() const override;
\r
774 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
775 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
779 Postfix_opContext* postfix_op();
\r
781 class Prefix_opContext : public antlr4::ParserRuleContext {
\r
783 Prefix_opContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
784 virtual size_t getRuleIndex() const override;
\r
785 Postfix_opContext *postfix_op();
\r
787 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
788 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
792 Prefix_opContext* prefix_op();
\r
794 class Binary_opContext : public antlr4::ParserRuleContext {
\r
796 Binary_opContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
797 virtual size_t getRuleIndex() const override;
\r
799 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
800 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
804 Binary_opContext* binary_op();
\r
808 static std::vector<antlr4::dfa::DFA> _decisionToDFA;
\r
809 static antlr4::atn::PredictionContextCache _sharedContextCache;
\r
810 static std::vector<std::string> _ruleNames;
\r
811 static std::vector<std::string> _tokenNames;
\r
813 static std::vector<std::string> _literalNames;
\r
814 static std::vector<std::string> _symbolicNames;
\r
815 static antlr4::dfa::Vocabulary _vocabulary;
\r
816 static antlr4::atn::ATN _atn;
\r
817 static std::vector<uint16_t> _serializedATN;
\r
820 struct Initializer {
\r
823 static Initializer _init;
\r