X-Git-Url: https://gitweb.ps.run/toc/blobdiff_plain/9f5457a18f551d261e4bd380ea16a52dc5b04cf9..c2ba7425955ae538e220cec79d9124756d1b4c8b:/gen/TocParser.h diff --git a/gen/TocParser.h b/gen/TocParser.h index 0157c9c..35798a1 100644 --- a/gen/TocParser.h +++ b/gen/TocParser.h @@ -20,24 +20,22 @@ public: T__32 = 33, T__33 = 34, T__34 = 35, T__35 = 36, T__36 = 37, T__37 = 38, T__38 = 39, T__39 = 40, T__40 = 41, T__41 = 42, T__42 = 43, T__43 = 44, T__44 = 45, T__45 = 46, T__46 = 47, T__47 = 48, T__48 = 49, T__49 = 50, - T__50 = 51, T__51 = 52, T__52 = 53, T__53 = 54, INT_LIT = 55, DECIMAL_LIT = 56, - STRING_LIT = 57, BOOL_LIT = 58, NAME = 59, WS = 60, NEWLINE = 61, NUMBER = 62 + T__50 = 51, T__51 = 52, T__52 = 53, T__53 = 54, T__54 = 55, T__55 = 56, + T__56 = 57, INT_LIT = 58, DECIMAL_LIT = 59, BOOL_LIT = 60, StringLit = 61, + NAME = 62, WS = 63, NEWLINE = 64 }; enum { - RuleProg = 0, RuleDecl = 1, RuleVarDecl = 2, RuleVar = 3, RuleVarInit = 4, - RuleType = 5, RuleTypeModifier = 6, RuleFuncDecl = 7, RuleFunc = 8, - RuleParameter = 9, RuleBody = 10, RuleStructDecl = 11, RuleStructMember = 12, - RuleStructVar = 13, RuleStructMethod = 14, RuleStmt = 15, RuleIfStmt = 16, - RuleElseIfStmt = 17, RuleElseStmt = 18, RuleSwitchStmt = 19, RuleSwitchBody = 20, - RuleSwitchCase = 21, RuleForStmt = 22, RuleWhileStmt = 23, RuleAssignStmt = 24, - RuleReturnStmt = 25, RuleExpr = 26, RuleNonOpExpr = 27, RuleNonAccessExpr = 28, - RuleFuncExpr = 29, RuleOpExpr = 30, RuleBinaryOp = 31, RulePrefixOp = 32, - RulePostfixOp = 33, RuleTernaryOp = 34, RuleIdentifierExpr = 35, RuleLitExpr = 36, - RuleAccessExpr = 37, RuleAccessSubExpr = 38, RuleAccessMember = 39, - RuleAccessBrackets = 40, RuleParenExpr = 41, RuleFuncName = 42, RuleVarName = 43, - RuleTypeName = 44, RuleStructName = 45, RulePostfix_op = 46, RulePrefix_op = 47, - RuleBinary_op = 48 + RuleProg = 0, RuleDecl = 1, RuleNamespaceDecl = 2, RuleVarDecl = 3, + RuleVar = 4, RuleVarInit = 5, RuleType = 6, RuleTypeModifier = 7, RuleNamespaceSpecifier = 8, + RuleFuncDecl = 9, RuleFunc = 10, RuleParameter = 11, RuleBody = 12, + RuleStructDecl = 13, RuleStructMember = 14, RuleStructVar = 15, RuleStructMethod = 16, + RulePrivateDecl = 17, RuleGenericDecl = 18, RuleStmt = 19, RuleIfStmt = 20, + RuleElseIfStmt = 21, RuleElseStmt = 22, RuleSwitchStmt = 23, RuleSwitchBody = 24, + RuleSwitchCase = 25, RuleForStmt = 26, RuleWhileStmt = 27, RuleAssignStmt = 28, + RuleReturnStmt = 29, RuleExpr = 30, RuleLiteral = 31, RuleFuncName = 32, + RuleVarName = 33, RuleTypeName = 34, RuleStructName = 35, RulePostfix_op = 36, + RulePrefix_op = 37, RuleBinary_op = 38 }; explicit TocParser(antlr4::TokenStream *input); @@ -52,11 +50,13 @@ public: class ProgContext; class DeclContext; + class NamespaceDeclContext; class VarDeclContext; class VarContext; class VarInitContext; class TypeContext; class TypeModifierContext; + class NamespaceSpecifierContext; class FuncDeclContext; class FuncContext; class ParameterContext; @@ -65,6 +65,8 @@ public: class StructMemberContext; class StructVarContext; class StructMethodContext; + class PrivateDeclContext; + class GenericDeclContext; class StmtContext; class IfStmtContext; class ElseIfStmtContext; @@ -77,21 +79,7 @@ public: class AssignStmtContext; class ReturnStmtContext; class ExprContext; - class NonOpExprContext; - class NonAccessExprContext; - class FuncExprContext; - class OpExprContext; - class BinaryOpContext; - class PrefixOpContext; - class PostfixOpContext; - class TernaryOpContext; - class IdentifierExprContext; - class LitExprContext; - class AccessExprContext; - class AccessSubExprContext; - class AccessMemberContext; - class AccessBracketsContext; - class ParenExprContext; + class LiteralContext; class FuncNameContext; class VarNameContext; class TypeNameContext; @@ -108,8 +96,6 @@ public: std::vector decl(); DeclContext* decl(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -122,22 +108,32 @@ public: VarDeclContext *varDecl(); FuncDeclContext *funcDecl(); StructDeclContext *structDecl(); + NamespaceDeclContext *namespaceDecl(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; DeclContext* decl(); + class NamespaceDeclContext : public antlr4::ParserRuleContext { + public: + NamespaceDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + TypeNameContext *typeName(); + std::vector decl(); + DeclContext* decl(size_t i); + + + }; + + NamespaceDeclContext* namespaceDecl(); + class VarDeclContext : public antlr4::ParserRuleContext { public: VarDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; VarContext *var(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -151,8 +147,6 @@ public: TypeContext *type(); ExprContext *expr(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -166,8 +160,6 @@ public: TypeContext *type(); ExprContext *expr(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -178,11 +170,11 @@ public: TypeContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; TypeNameContext *typeName(); + std::vector namespaceSpecifier(); + NamespaceSpecifierContext* namespaceSpecifier(size_t i); std::vector typeModifier(); TypeModifierContext* typeModifier(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -192,23 +184,30 @@ public: public: TypeModifierContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *NUMBER(); + antlr4::tree::TerminalNode *INT_LIT(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; TypeModifierContext* typeModifier(); + class NamespaceSpecifierContext : public antlr4::ParserRuleContext { + public: + NamespaceSpecifierContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + TypeNameContext *typeName(); + + + }; + + NamespaceSpecifierContext* namespaceSpecifier(); + class FuncDeclContext : public antlr4::ParserRuleContext { public: FuncDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; FuncContext *func(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -220,11 +219,10 @@ public: virtual size_t getRuleIndex() const override; FuncNameContext *funcName(); ParameterContext *parameter(); - BodyContext *body(); TypeContext *type(); + BodyContext *body(); + GenericDeclContext *genericDecl(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -237,8 +235,6 @@ public: std::vector var(); VarContext* var(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -251,8 +247,6 @@ public: std::vector stmt(); StmtContext* stmt(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -263,11 +257,10 @@ public: StructDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; StructNameContext *structName(); + GenericDeclContext *genericDecl(); std::vector structMember(); StructMemberContext* structMember(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -278,10 +271,9 @@ public: StructMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; StructVarContext *structVar(); + PrivateDeclContext *privateDecl(); StructMethodContext *structMethod(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -293,8 +285,6 @@ public: virtual size_t getRuleIndex() const override; VarContext *var(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -306,13 +296,33 @@ public: virtual size_t getRuleIndex() const override; FuncContext *func(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; StructMethodContext* structMethod(); + class PrivateDeclContext : public antlr4::ParserRuleContext { + public: + PrivateDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + + + }; + + PrivateDeclContext* privateDecl(); + + class GenericDeclContext : public antlr4::ParserRuleContext { + public: + GenericDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector typeName(); + TypeNameContext* typeName(size_t i); + + + }; + + GenericDeclContext* genericDecl(); + class StmtContext : public antlr4::ParserRuleContext { public: StmtContext(antlr4::ParserRuleContext *parent, size_t invokingState); @@ -326,8 +336,6 @@ public: ReturnStmtContext *returnStmt(); ExprContext *expr(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -343,8 +351,6 @@ public: ElseIfStmtContext* elseIfStmt(size_t i); ElseStmtContext *elseStmt(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -357,8 +363,6 @@ public: ExprContext *expr(); BodyContext *body(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -370,8 +374,6 @@ public: virtual size_t getRuleIndex() const override; BodyContext *body(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -381,11 +383,9 @@ public: public: SwitchStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - IdentifierExprContext *identifierExpr(); + ExprContext *expr(); SwitchBodyContext *switchBody(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -398,8 +398,6 @@ public: std::vector switchCase(); SwitchCaseContext* switchCase(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -412,8 +410,6 @@ public: ExprContext *expr(); BodyContext *body(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -423,14 +419,11 @@ public: public: ForStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; + VarInitContext *varInit(); std::vector expr(); ExprContext* expr(size_t i); BodyContext *body(); - VarInitContext *varInit(); - AssignStmtContext *assignStmt(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -443,8 +436,6 @@ public: ExprContext *expr(); BodyContext *body(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -454,11 +445,9 @@ public: public: AssignStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - IdentifierExprContext *identifierExpr(); - ExprContext *expr(); + std::vector expr(); + ExprContext* expr(size_t i); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -470,8 +459,6 @@ public: virtual size_t getRuleIndex() const override; ExprContext *expr(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -480,239 +467,123 @@ public: class ExprContext : public antlr4::ParserRuleContext { public: ExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - FuncExprContext *funcExpr(); - LitExprContext *litExpr(); - IdentifierExprContext *identifierExpr(); - ParenExprContext *parenExpr(); - AccessExprContext *accessExpr(); - OpExprContext *opExpr(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - }; - - ExprContext* expr(); + ExprContext() = default; + void copyFrom(ExprContext *context); + using antlr4::ParserRuleContext::copyFrom; - class NonOpExprContext : public antlr4::ParserRuleContext { - public: - NonOpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - FuncExprContext *funcExpr(); - LitExprContext *litExpr(); - IdentifierExprContext *identifierExpr(); - ParenExprContext *parenExpr(); - AccessExprContext *accessExpr(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; - NonOpExprContext* nonOpExpr(); - - class NonAccessExprContext : public antlr4::ParserRuleContext { + class DotExprContext : public ExprContext { public: - NonAccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - FuncExprContext *funcExpr(); - IdentifierExprContext *identifierExpr(); - ParenExprContext *parenExpr(); + DotExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + ExprContext *expr(); + VarNameContext *varName(); }; - NonAccessExprContext* nonAccessExpr(); - - class FuncExprContext : public antlr4::ParserRuleContext { + class FuncExprContext : public ExprContext { public: - FuncExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; + FuncExprContext(ExprContext *ctx); + FuncNameContext *funcName(); + std::vector namespaceSpecifier(); + NamespaceSpecifierContext* namespaceSpecifier(size_t i); std::vector expr(); ExprContext* expr(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - }; - FuncExprContext* funcExpr(); - - class OpExprContext : public antlr4::ParserRuleContext { + class BracketExprContext : public ExprContext { public: - OpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - BinaryOpContext *binaryOp(); - PrefixOpContext *prefixOp(); - PostfixOpContext *postfixOp(); - TernaryOpContext *ternaryOp(); + BracketExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + std::vector expr(); + ExprContext* expr(size_t i); }; - OpExprContext* opExpr(); - - class BinaryOpContext : public antlr4::ParserRuleContext { + class PrefixOpExprContext : public ExprContext { public: - BinaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - std::vector nonOpExpr(); - NonOpExprContext* nonOpExpr(size_t i); - std::vector binary_op(); - Binary_opContext* binary_op(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - }; + PrefixOpExprContext(ExprContext *ctx); - BinaryOpContext* binaryOp(); - - class PrefixOpContext : public antlr4::ParserRuleContext { - public: - PrefixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; Prefix_opContext *prefix_op(); - NonOpExprContext *nonOpExpr(); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + ExprContext *expr(); }; - PrefixOpContext* prefixOp(); - - class PostfixOpContext : public antlr4::ParserRuleContext { + class MethodExprContext : public ExprContext { public: - PostfixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - NonOpExprContext *nonOpExpr(); - Postfix_opContext *postfix_op(); + MethodExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - - }; - - PostfixOpContext* postfixOp(); - - class TernaryOpContext : public antlr4::ParserRuleContext { - public: - TernaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - NonOpExprContext *nonOpExpr(); std::vector expr(); ExprContext* expr(size_t i); - - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + FuncNameContext *funcName(); }; - TernaryOpContext* ternaryOp(); - - class IdentifierExprContext : public antlr4::ParserRuleContext { + class PostfixOpExprContext : public ExprContext { public: - IdentifierExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - VarNameContext *varName(); + PostfixOpExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + ExprContext *expr(); + Postfix_opContext *postfix_op(); }; - IdentifierExprContext* identifierExpr(); - - class LitExprContext : public antlr4::ParserRuleContext { + class BinaryOpExprContext : public ExprContext { public: - LitExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - antlr4::tree::TerminalNode *INT_LIT(); - antlr4::tree::TerminalNode *DECIMAL_LIT(); - antlr4::tree::TerminalNode *STRING_LIT(); - antlr4::tree::TerminalNode *BOOL_LIT(); + BinaryOpExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + std::vector expr(); + ExprContext* expr(size_t i); + Binary_opContext *binary_op(); }; - LitExprContext* litExpr(); - - class AccessExprContext : public antlr4::ParserRuleContext { + class TernaryOpExprContext : public ExprContext { public: - AccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - NonAccessExprContext *nonAccessExpr(); - std::vector accessSubExpr(); - AccessSubExprContext* accessSubExpr(size_t i); + TernaryOpExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + std::vector expr(); + ExprContext* expr(size_t i); }; - AccessExprContext* accessExpr(); - - class AccessSubExprContext : public antlr4::ParserRuleContext { + class LitExprContext : public ExprContext { public: - AccessSubExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - AccessMemberContext *accessMember(); - AccessBracketsContext *accessBrackets(); + LitExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + LiteralContext *literal(); }; - AccessSubExprContext* accessSubExpr(); - - class AccessMemberContext : public antlr4::ParserRuleContext { + class ParenExprContext : public ExprContext { public: - AccessMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - IdentifierExprContext *identifierExpr(); + ParenExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + ExprContext *expr(); }; - AccessMemberContext* accessMember(); - - class AccessBracketsContext : public antlr4::ParserRuleContext { + class IdentifierExprContext : public ExprContext { public: - AccessBracketsContext(antlr4::ParserRuleContext *parent, size_t invokingState); - virtual size_t getRuleIndex() const override; - ExprContext *expr(); + IdentifierExprContext(ExprContext *ctx); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; - + VarNameContext *varName(); + std::vector namespaceSpecifier(); + NamespaceSpecifierContext* namespaceSpecifier(size_t i); }; - AccessBracketsContext* accessBrackets(); - - class ParenExprContext : public antlr4::ParserRuleContext { + ExprContext* expr(); + ExprContext* expr(int precedence); + class LiteralContext : public antlr4::ParserRuleContext { public: - ParenExprContext(antlr4::ParserRuleContext *parent, size_t invokingState); + LiteralContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - ExprContext *expr(); + antlr4::tree::TerminalNode *INT_LIT(); + antlr4::tree::TerminalNode *DECIMAL_LIT(); + antlr4::tree::TerminalNode *StringLit(); + antlr4::tree::TerminalNode *BOOL_LIT(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; - ParenExprContext* parenExpr(); + LiteralContext* literal(); class FuncNameContext : public antlr4::ParserRuleContext { public: @@ -720,8 +591,6 @@ public: virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *NAME(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -733,8 +602,6 @@ public: virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *NAME(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -746,8 +613,6 @@ public: virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *NAME(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -759,8 +624,6 @@ public: virtual size_t getRuleIndex() const override; antlr4::tree::TerminalNode *NAME(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -771,8 +634,6 @@ public: Postfix_opContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -784,8 +645,6 @@ public: virtual size_t getRuleIndex() const override; Postfix_opContext *postfix_op(); - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; @@ -796,14 +655,15 @@ public: Binary_opContext(antlr4::ParserRuleContext *parent, size_t invokingState); virtual size_t getRuleIndex() const override; - virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; - virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; }; Binary_opContext* binary_op(); + virtual bool sempred(antlr4::RuleContext *_localctx, size_t ruleIndex, size_t predicateIndex) override; + bool exprSempred(ExprContext *_localctx, size_t predicateIndex); + private: static std::vector _decisionToDFA; static antlr4::atn::PredictionContextCache _sharedContextCache;