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, POSTFIX_OP = 24, PREFIX_OP = 25,
\r
19 BINARY_OP = 26, INT_LIT = 27, DECIMAL_LIT = 28, STRING_LIT = 29, BOOL_LIT = 30,
\r
20 NAME = 31, WS = 32, NEWLINE = 33, NUMBER = 34
\r
24 RuleProg = 0, RuleDecl = 1, RuleVarDecl = 2, RuleVar = 3, RuleVarInit = 4,
\r
25 RuleType = 5, RuleTypeModifier = 6, RuleFuncDecl = 7, RuleFunc = 8,
\r
26 RuleParameter = 9, RuleBody = 10, RuleStructDecl = 11, RuleStructMember = 12,
\r
27 RuleStructVar = 13, RuleStructMethod = 14, RuleStmt = 15, RuleIfStmt = 16,
\r
28 RuleSwitchStmt = 17, RuleSwitchBody = 18, RuleForStmt = 19, RuleWhileStmt = 20,
\r
29 RuleAssignStmt = 21, RuleReturnStmt = 22, RuleExpr = 23, RuleNonOpExpr = 24,
\r
30 RuleNonAccessExpr = 25, RuleFuncExpr = 26, RuleOpExpr = 27, RuleBinaryOp = 28,
\r
31 RulePrefixOp = 29, RulePostfixOp = 30, RuleTernaryOp = 31, RuleIdentifierExpr = 32,
\r
32 RuleLitExpr = 33, RuleAccessExpr = 34, RuleParenExpr = 35, RuleFuncName = 36,
\r
33 RuleVarName = 37, RuleTypeName = 38, RuleStructName = 39
\r
36 explicit TocParser(antlr4::TokenStream *input);
\r
39 virtual std::string getGrammarFileName() const override;
\r
40 virtual const antlr4::atn::ATN& getATN() const override { return _atn; };
\r
41 virtual const std::vector<std::string>& getTokenNames() const override { return _tokenNames; }; // deprecated: use vocabulary instead.
\r
42 virtual const std::vector<std::string>& getRuleNames() const override;
\r
43 virtual antlr4::dfa::Vocabulary& getVocabulary() const override;
\r
48 class VarDeclContext;
\r
50 class VarInitContext;
\r
52 class TypeModifierContext;
\r
53 class FuncDeclContext;
\r
55 class ParameterContext;
\r
57 class StructDeclContext;
\r
58 class StructMemberContext;
\r
59 class StructVarContext;
\r
60 class StructMethodContext;
\r
62 class IfStmtContext;
\r
63 class SwitchStmtContext;
\r
64 class SwitchBodyContext;
\r
65 class ForStmtContext;
\r
66 class WhileStmtContext;
\r
67 class AssignStmtContext;
\r
68 class ReturnStmtContext;
\r
70 class NonOpExprContext;
\r
71 class NonAccessExprContext;
\r
72 class FuncExprContext;
\r
73 class OpExprContext;
\r
74 class BinaryOpContext;
\r
75 class PrefixOpContext;
\r
76 class PostfixOpContext;
\r
77 class TernaryOpContext;
\r
78 class IdentifierExprContext;
\r
79 class LitExprContext;
\r
80 class AccessExprContext;
\r
81 class ParenExprContext;
\r
82 class FuncNameContext;
\r
83 class VarNameContext;
\r
84 class TypeNameContext;
\r
85 class StructNameContext;
\r
87 class ProgContext : public antlr4::ParserRuleContext {
\r
89 ProgContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
90 virtual size_t getRuleIndex() const override;
\r
91 antlr4::tree::TerminalNode *EOF();
\r
92 std::vector<DeclContext *> decl();
\r
93 DeclContext* decl(size_t i);
\r
95 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
96 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
100 ProgContext* prog();
\r
102 class DeclContext : public antlr4::ParserRuleContext {
\r
104 DeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
105 virtual size_t getRuleIndex() const override;
\r
106 VarDeclContext *varDecl();
\r
107 FuncDeclContext *funcDecl();
\r
108 StructDeclContext *structDecl();
\r
110 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
111 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
115 DeclContext* decl();
\r
117 class VarDeclContext : public antlr4::ParserRuleContext {
\r
119 VarDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
120 virtual size_t getRuleIndex() const override;
\r
123 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
124 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
128 VarDeclContext* varDecl();
\r
130 class VarContext : public antlr4::ParserRuleContext {
\r
132 VarContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
133 virtual size_t getRuleIndex() const override;
\r
134 VarNameContext *varName();
\r
135 TypeContext *type();
\r
136 ExprContext *expr();
\r
138 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
139 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
145 class VarInitContext : public antlr4::ParserRuleContext {
\r
147 VarInitContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
148 virtual size_t getRuleIndex() const override;
\r
149 VarNameContext *varName();
\r
150 TypeContext *type();
\r
151 ExprContext *expr();
\r
153 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
154 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
158 VarInitContext* varInit();
\r
160 class TypeContext : public antlr4::ParserRuleContext {
\r
162 TypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
163 virtual size_t getRuleIndex() const override;
\r
164 TypeNameContext *typeName();
\r
165 std::vector<TypeModifierContext *> typeModifier();
\r
166 TypeModifierContext* typeModifier(size_t i);
\r
168 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
169 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
173 TypeContext* type();
\r
175 class TypeModifierContext : public antlr4::ParserRuleContext {
\r
177 TypeModifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
178 virtual size_t getRuleIndex() const override;
\r
179 antlr4::tree::TerminalNode *NUMBER();
\r
181 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
182 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
186 TypeModifierContext* typeModifier();
\r
188 class FuncDeclContext : public antlr4::ParserRuleContext {
\r
190 FuncDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
191 virtual size_t getRuleIndex() const override;
\r
192 FuncContext *func();
\r
194 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
195 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
199 FuncDeclContext* funcDecl();
\r
201 class FuncContext : public antlr4::ParserRuleContext {
\r
203 FuncContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
204 virtual size_t getRuleIndex() const override;
\r
205 FuncNameContext *funcName();
\r
206 ParameterContext *parameter();
\r
207 BodyContext *body();
\r
208 TypeContext *type();
\r
210 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
211 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
215 FuncContext* func();
\r
217 class ParameterContext : public antlr4::ParserRuleContext {
\r
219 ParameterContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
220 virtual size_t getRuleIndex() const override;
\r
221 std::vector<VarContext *> var();
\r
222 VarContext* var(size_t i);
\r
224 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
225 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
229 ParameterContext* parameter();
\r
231 class BodyContext : public antlr4::ParserRuleContext {
\r
233 BodyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
234 virtual size_t getRuleIndex() const override;
\r
235 std::vector<StmtContext *> stmt();
\r
236 StmtContext* stmt(size_t i);
\r
238 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
239 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
243 BodyContext* body();
\r
245 class StructDeclContext : public antlr4::ParserRuleContext {
\r
247 StructDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
248 virtual size_t getRuleIndex() const override;
\r
249 StructNameContext *structName();
\r
250 std::vector<StructMemberContext *> structMember();
\r
251 StructMemberContext* structMember(size_t i);
\r
253 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
254 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
258 StructDeclContext* structDecl();
\r
260 class StructMemberContext : public antlr4::ParserRuleContext {
\r
262 StructMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
263 virtual size_t getRuleIndex() const override;
\r
264 StructVarContext *structVar();
\r
265 StructMethodContext *structMethod();
\r
267 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
268 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
272 StructMemberContext* structMember();
\r
274 class StructVarContext : public antlr4::ParserRuleContext {
\r
276 StructVarContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
277 virtual size_t getRuleIndex() const override;
\r
280 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
281 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
285 StructVarContext* structVar();
\r
287 class StructMethodContext : public antlr4::ParserRuleContext {
\r
289 StructMethodContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
290 virtual size_t getRuleIndex() const override;
\r
291 FuncContext *func();
\r
293 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
294 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
298 StructMethodContext* structMethod();
\r
300 class StmtContext : public antlr4::ParserRuleContext {
\r
302 StmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
303 virtual size_t getRuleIndex() const override;
\r
304 VarDeclContext *varDecl();
\r
305 IfStmtContext *ifStmt();
\r
306 SwitchStmtContext *switchStmt();
\r
307 ForStmtContext *forStmt();
\r
308 WhileStmtContext *whileStmt();
\r
309 AssignStmtContext *assignStmt();
\r
310 ReturnStmtContext *returnStmt();
\r
311 ExprContext *expr();
\r
313 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
314 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
318 StmtContext* stmt();
\r
320 class IfStmtContext : public antlr4::ParserRuleContext {
\r
322 IfStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
323 virtual size_t getRuleIndex() const override;
\r
324 std::vector<ExprContext *> expr();
\r
325 ExprContext* expr(size_t i);
\r
326 std::vector<BodyContext *> body();
\r
327 BodyContext* body(size_t i);
\r
329 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
330 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
334 IfStmtContext* ifStmt();
\r
336 class SwitchStmtContext : public antlr4::ParserRuleContext {
\r
338 SwitchStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
339 virtual size_t getRuleIndex() const override;
\r
340 IdentifierExprContext *identifierExpr();
\r
341 SwitchBodyContext *switchBody();
\r
343 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
344 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
348 SwitchStmtContext* switchStmt();
\r
350 class SwitchBodyContext : public antlr4::ParserRuleContext {
\r
352 SwitchBodyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
353 virtual size_t getRuleIndex() const override;
\r
354 std::vector<ExprContext *> expr();
\r
355 ExprContext* expr(size_t i);
\r
356 std::vector<BodyContext *> body();
\r
357 BodyContext* body(size_t i);
\r
359 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
360 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
364 SwitchBodyContext* switchBody();
\r
366 class ForStmtContext : public antlr4::ParserRuleContext {
\r
368 ForStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
369 virtual size_t getRuleIndex() const override;
\r
370 std::vector<ExprContext *> expr();
\r
371 ExprContext* expr(size_t i);
\r
372 BodyContext *body();
\r
373 VarInitContext *varInit();
\r
374 AssignStmtContext *assignStmt();
\r
376 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
377 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
381 ForStmtContext* forStmt();
\r
383 class WhileStmtContext : public antlr4::ParserRuleContext {
\r
385 WhileStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
386 virtual size_t getRuleIndex() const override;
\r
387 ExprContext *expr();
\r
388 BodyContext *body();
\r
390 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
391 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
395 WhileStmtContext* whileStmt();
\r
397 class AssignStmtContext : public antlr4::ParserRuleContext {
\r
399 AssignStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
400 virtual size_t getRuleIndex() const override;
\r
401 IdentifierExprContext *identifierExpr();
\r
402 ExprContext *expr();
\r
404 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
405 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
409 AssignStmtContext* assignStmt();
\r
411 class ReturnStmtContext : public antlr4::ParserRuleContext {
\r
413 ReturnStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
414 virtual size_t getRuleIndex() const override;
\r
415 ExprContext *expr();
\r
417 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
418 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
422 ReturnStmtContext* returnStmt();
\r
424 class ExprContext : public antlr4::ParserRuleContext {
\r
426 ExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
427 virtual size_t getRuleIndex() const override;
\r
428 FuncExprContext *funcExpr();
\r
429 LitExprContext *litExpr();
\r
430 IdentifierExprContext *identifierExpr();
\r
431 ParenExprContext *parenExpr();
\r
432 AccessExprContext *accessExpr();
\r
433 OpExprContext *opExpr();
\r
435 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
436 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
440 ExprContext* expr();
\r
442 class NonOpExprContext : public antlr4::ParserRuleContext {
\r
444 NonOpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
445 virtual size_t getRuleIndex() const override;
\r
446 FuncExprContext *funcExpr();
\r
447 LitExprContext *litExpr();
\r
448 IdentifierExprContext *identifierExpr();
\r
449 ParenExprContext *parenExpr();
\r
450 AccessExprContext *accessExpr();
\r
452 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
453 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
457 NonOpExprContext* nonOpExpr();
\r
459 class NonAccessExprContext : public antlr4::ParserRuleContext {
\r
461 NonAccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
462 virtual size_t getRuleIndex() const override;
\r
463 FuncExprContext *funcExpr();
\r
464 IdentifierExprContext *identifierExpr();
\r
465 ParenExprContext *parenExpr();
\r
467 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
468 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
472 NonAccessExprContext* nonAccessExpr();
\r
474 class FuncExprContext : public antlr4::ParserRuleContext {
\r
476 FuncExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
477 virtual size_t getRuleIndex() const override;
\r
478 FuncNameContext *funcName();
\r
479 std::vector<ExprContext *> expr();
\r
480 ExprContext* expr(size_t i);
\r
482 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
483 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
487 FuncExprContext* funcExpr();
\r
489 class OpExprContext : public antlr4::ParserRuleContext {
\r
491 OpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
492 virtual size_t getRuleIndex() const override;
\r
493 BinaryOpContext *binaryOp();
\r
494 PrefixOpContext *prefixOp();
\r
495 PostfixOpContext *postfixOp();
\r
496 TernaryOpContext *ternaryOp();
\r
498 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
499 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
503 OpExprContext* opExpr();
\r
505 class BinaryOpContext : public antlr4::ParserRuleContext {
\r
507 BinaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
508 virtual size_t getRuleIndex() const override;
\r
509 std::vector<NonOpExprContext *> nonOpExpr();
\r
510 NonOpExprContext* nonOpExpr(size_t i);
\r
511 std::vector<antlr4::tree::TerminalNode *> BINARY_OP();
\r
512 antlr4::tree::TerminalNode* BINARY_OP(size_t i);
\r
514 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
515 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
519 BinaryOpContext* binaryOp();
\r
521 class PrefixOpContext : public antlr4::ParserRuleContext {
\r
523 PrefixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
524 virtual size_t getRuleIndex() const override;
\r
525 antlr4::tree::TerminalNode *PREFIX_OP();
\r
526 NonOpExprContext *nonOpExpr();
\r
528 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
529 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
533 PrefixOpContext* prefixOp();
\r
535 class PostfixOpContext : public antlr4::ParserRuleContext {
\r
537 PostfixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
538 virtual size_t getRuleIndex() const override;
\r
539 NonOpExprContext *nonOpExpr();
\r
540 antlr4::tree::TerminalNode *POSTFIX_OP();
\r
542 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
543 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
547 PostfixOpContext* postfixOp();
\r
549 class TernaryOpContext : public antlr4::ParserRuleContext {
\r
551 TernaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
552 virtual size_t getRuleIndex() const override;
\r
553 NonOpExprContext *nonOpExpr();
\r
554 std::vector<ExprContext *> expr();
\r
555 ExprContext* expr(size_t i);
\r
557 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
558 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
562 TernaryOpContext* ternaryOp();
\r
564 class IdentifierExprContext : public antlr4::ParserRuleContext {
\r
566 IdentifierExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
567 virtual size_t getRuleIndex() const override;
\r
568 VarNameContext *varName();
\r
570 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
571 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
575 IdentifierExprContext* identifierExpr();
\r
577 class LitExprContext : public antlr4::ParserRuleContext {
\r
579 LitExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
580 virtual size_t getRuleIndex() const override;
\r
581 antlr4::tree::TerminalNode *INT_LIT();
\r
582 antlr4::tree::TerminalNode *DECIMAL_LIT();
\r
583 antlr4::tree::TerminalNode *STRING_LIT();
\r
584 antlr4::tree::TerminalNode *BOOL_LIT();
\r
586 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
587 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
591 LitExprContext* litExpr();
\r
593 class AccessExprContext : public antlr4::ParserRuleContext {
\r
595 AccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
596 virtual size_t getRuleIndex() const override;
\r
597 NonAccessExprContext *nonAccessExpr();
\r
598 std::vector<IdentifierExprContext *> identifierExpr();
\r
599 IdentifierExprContext* identifierExpr(size_t i);
\r
600 std::vector<ExprContext *> expr();
\r
601 ExprContext* expr(size_t i);
\r
603 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
604 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
608 AccessExprContext* accessExpr();
\r
610 class ParenExprContext : public antlr4::ParserRuleContext {
\r
612 ParenExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
613 virtual size_t getRuleIndex() const override;
\r
614 ExprContext *expr();
\r
616 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
617 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
621 ParenExprContext* parenExpr();
\r
623 class FuncNameContext : public antlr4::ParserRuleContext {
\r
625 FuncNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
626 virtual size_t getRuleIndex() const override;
\r
627 antlr4::tree::TerminalNode *NAME();
\r
629 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
630 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
634 FuncNameContext* funcName();
\r
636 class VarNameContext : public antlr4::ParserRuleContext {
\r
638 VarNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
639 virtual size_t getRuleIndex() const override;
\r
640 antlr4::tree::TerminalNode *NAME();
\r
642 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
643 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
647 VarNameContext* varName();
\r
649 class TypeNameContext : public antlr4::ParserRuleContext {
\r
651 TypeNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
652 virtual size_t getRuleIndex() const override;
\r
653 antlr4::tree::TerminalNode *NAME();
\r
655 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
656 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
660 TypeNameContext* typeName();
\r
662 class StructNameContext : public antlr4::ParserRuleContext {
\r
664 StructNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
\r
665 virtual size_t getRuleIndex() const override;
\r
666 antlr4::tree::TerminalNode *NAME();
\r
668 virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
\r
669 virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
\r
673 StructNameContext* structName();
\r
677 static std::vector<antlr4::dfa::DFA> _decisionToDFA;
\r
678 static antlr4::atn::PredictionContextCache _sharedContextCache;
\r
679 static std::vector<std::string> _ruleNames;
\r
680 static std::vector<std::string> _tokenNames;
\r
682 static std::vector<std::string> _literalNames;
\r
683 static std::vector<std::string> _symbolicNames;
\r
684 static antlr4::dfa::Vocabulary _vocabulary;
\r
685 static antlr4::atn::ATN _atn;
\r
686 static std::vector<uint16_t> _serializedATN;
\r
689 struct Initializer {
\r
692 static Initializer _init;
\r