]> gitweb.ps.run Git - toc/blobdiff - gen/TocParser.h
pre change
[toc] / gen / TocParser.h
index 51d1e89fc45b98a8249a4868e4889e3da974ade7..cbecf46011ea9e234e5c02770d41d68d17e1a99b 100644 (file)
@@ -27,18 +27,15 @@ public:
 \r
   enum {\r
     RuleProg = 0, RuleDecl = 1, RuleNamespaceDecl = 2, RuleVarDecl = 3, \r
-    RuleVar = 4, RuleVarInit = 5, RuleType = 6, RuleTypeModifier = 7, RuleFuncDecl = 8, \r
-    RuleFunc = 9, RuleParameter = 10, RuleBody = 11, RuleStructDecl = 12, \r
-    RuleStructMember = 13, RuleStructVar = 14, RuleStructMethod = 15, RulePrivateDecl = 16, \r
-    RuleGenericDecl = 17, RuleStmt = 18, RuleIfStmt = 19, RuleElseIfStmt = 20, \r
-    RuleElseStmt = 21, RuleSwitchStmt = 22, RuleSwitchBody = 23, RuleSwitchCase = 24, \r
-    RuleForStmt = 25, RuleWhileStmt = 26, RuleAssignStmt = 27, RuleReturnStmt = 28, \r
-    RuleExpr = 29, RuleNonOpExpr = 30, RuleNonAccessExpr = 31, RuleFuncExpr = 32, \r
-    RuleOpExpr = 33, RuleBinaryOp = 34, RulePrefixOp = 35, RulePostfixOp = 36, \r
-    RuleTernaryOp = 37, RuleIdentifierExpr = 38, RuleLitExpr = 39, RuleAccessExpr = 40, \r
-    RuleAccessSubExpr = 41, RuleAccessMember = 42, RuleAccessBrackets = 43, \r
-    RuleParenExpr = 44, RuleFuncName = 45, RuleVarName = 46, RuleTypeName = 47, \r
-    RuleStructName = 48, RulePostfix_op = 49, RulePrefix_op = 50, RuleBinary_op = 51\r
+    RuleVar = 4, RuleVarInit = 5, RuleType = 6, RuleTypeModifier = 7, RuleNamespaceSpecifier = 8, \r
+    RuleFuncDecl = 9, RuleFunc = 10, RuleParameter = 11, RuleBody = 12, \r
+    RuleStructDecl = 13, RuleStructMember = 14, RuleStructVar = 15, RuleStructMethod = 16, \r
+    RulePrivateDecl = 17, RuleGenericDecl = 18, RuleStmt = 19, RuleIfStmt = 20, \r
+    RuleElseIfStmt = 21, RuleElseStmt = 22, RuleSwitchStmt = 23, RuleSwitchBody = 24, \r
+    RuleSwitchCase = 25, RuleForStmt = 26, RuleWhileStmt = 27, RuleAssignStmt = 28, \r
+    RuleReturnStmt = 29, RuleExpr = 30, RuleLiteral = 31, RuleFuncName = 32, \r
+    RuleVarName = 33, RuleTypeName = 34, RuleStructName = 35, RulePostfix_op = 36, \r
+    RulePrefix_op = 37, RuleBinary_op = 38\r
   };\r
 \r
   explicit TocParser(antlr4::TokenStream *input);\r
@@ -59,6 +56,7 @@ public:
   class VarInitContext;\r
   class TypeContext;\r
   class TypeModifierContext;\r
+  class NamespaceSpecifierContext;\r
   class FuncDeclContext;\r
   class FuncContext;\r
   class ParameterContext;\r
@@ -81,21 +79,7 @@ public:
   class AssignStmtContext;\r
   class ReturnStmtContext;\r
   class ExprContext;\r
-  class NonOpExprContext;\r
-  class NonAccessExprContext;\r
-  class FuncExprContext;\r
-  class OpExprContext;\r
-  class BinaryOpContext;\r
-  class PrefixOpContext;\r
-  class PostfixOpContext;\r
-  class TernaryOpContext;\r
-  class IdentifierExprContext;\r
-  class LitExprContext;\r
-  class AccessExprContext;\r
-  class AccessSubExprContext;\r
-  class AccessMemberContext;\r
-  class AccessBracketsContext;\r
-  class ParenExprContext;\r
+  class LiteralContext;\r
   class FuncNameContext;\r
   class VarNameContext;\r
   class TypeNameContext;\r
@@ -186,6 +170,8 @@ public:
     TypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
     virtual size_t getRuleIndex() const override;\r
     TypeNameContext *typeName();\r
+    std::vector<NamespaceSpecifierContext *> namespaceSpecifier();\r
+    NamespaceSpecifierContext* namespaceSpecifier(size_t i);\r
     std::vector<TypeModifierContext *> typeModifier();\r
     TypeModifierContext* typeModifier(size_t i);\r
 \r
@@ -205,6 +191,17 @@ public:
 \r
   TypeModifierContext* typeModifier();\r
 \r
+  class  NamespaceSpecifierContext : public antlr4::ParserRuleContext {\r
+  public:\r
+    NamespaceSpecifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+    virtual size_t getRuleIndex() const override;\r
+    TypeNameContext *typeName();\r
+\r
+   \r
+  };\r
+\r
+  NamespaceSpecifierContext* namespaceSpecifier();\r
+\r
   class  FuncDeclContext : public antlr4::ParserRuleContext {\r
   public:\r
     FuncDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
@@ -386,7 +383,7 @@ public:
   public:\r
     SwitchStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
     virtual size_t getRuleIndex() const override;\r
-    IdentifierExprContext *identifierExpr();\r
+    ExprContext *expr();\r
     SwitchBodyContext *switchBody();\r
 \r
    \r
@@ -449,8 +446,8 @@ public:
   public:\r
     AssignStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
     virtual size_t getRuleIndex() const override;\r
-    IdentifierExprContext *identifierExpr();\r
-    ExprContext *expr();\r
+    std::vector<ExprContext *> expr();\r
+    ExprContext* expr(size_t i);\r
 \r
    \r
   };\r
@@ -471,207 +468,123 @@ public:
   class  ExprContext : public antlr4::ParserRuleContext {\r
   public:\r
     ExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    FuncExprContext *funcExpr();\r
-    LitExprContext *litExpr();\r
-    IdentifierExprContext *identifierExpr();\r
-    ParenExprContext *parenExpr();\r
-    AccessExprContext *accessExpr();\r
-    OpExprContext *opExpr();\r
-\r
    \r
-  };\r
+    ExprContext() = default;\r
+    void copyFrom(ExprContext *context);\r
+    using antlr4::ParserRuleContext::copyFrom;\r
 \r
-  ExprContext* expr();\r
-\r
-  class  NonOpExprContext : public antlr4::ParserRuleContext {\r
-  public:\r
-    NonOpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
     virtual size_t getRuleIndex() const override;\r
-    FuncExprContext *funcExpr();\r
-    LitExprContext *litExpr();\r
-    IdentifierExprContext *identifierExpr();\r
-    ParenExprContext *parenExpr();\r
-    AccessExprContext *accessExpr();\r
 \r
    \r
   };\r
 \r
-  NonOpExprContext* nonOpExpr();\r
-\r
-  class  NonAccessExprContext : public antlr4::ParserRuleContext {\r
+  class  DotExprContext : public ExprContext {\r
   public:\r
-    NonAccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    FuncExprContext *funcExpr();\r
-    IdentifierExprContext *identifierExpr();\r
-    ParenExprContext *parenExpr();\r
+    DotExprContext(ExprContext *ctx);\r
 \r
-   \r
+    ExprContext *expr();\r
+    VarNameContext *varName();\r
   };\r
 \r
-  NonAccessExprContext* nonAccessExpr();\r
-\r
-  class  FuncExprContext : public antlr4::ParserRuleContext {\r
+  class  FuncExprContext : public ExprContext {\r
   public:\r
-    FuncExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
+    FuncExprContext(ExprContext *ctx);\r
+\r
     FuncNameContext *funcName();\r
+    std::vector<NamespaceSpecifierContext *> namespaceSpecifier();\r
+    NamespaceSpecifierContext* namespaceSpecifier(size_t i);\r
     std::vector<ExprContext *> expr();\r
     ExprContext* expr(size_t i);\r
-\r
-   \r
   };\r
 \r
-  FuncExprContext* funcExpr();\r
-\r
-  class  OpExprContext : public antlr4::ParserRuleContext {\r
+  class  BracketExprContext : public ExprContext {\r
   public:\r
-    OpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    BinaryOpContext *binaryOp();\r
-    PrefixOpContext *prefixOp();\r
-    PostfixOpContext *postfixOp();\r
-    TernaryOpContext *ternaryOp();\r
+    BracketExprContext(ExprContext *ctx);\r
 \r
-   \r
+    std::vector<ExprContext *> expr();\r
+    ExprContext* expr(size_t i);\r
   };\r
 \r
-  OpExprContext* opExpr();\r
-\r
-  class  BinaryOpContext : public antlr4::ParserRuleContext {\r
+  class  PrefixOpExprContext : public ExprContext {\r
   public:\r
-    BinaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    std::vector<NonOpExprContext *> nonOpExpr();\r
-    NonOpExprContext* nonOpExpr(size_t i);\r
-    std::vector<Binary_opContext *> binary_op();\r
-    Binary_opContext* binary_op(size_t i);\r
-\r
-   \r
-  };\r
-\r
-  BinaryOpContext* binaryOp();\r
+    PrefixOpExprContext(ExprContext *ctx);\r
 \r
-  class  PrefixOpContext : public antlr4::ParserRuleContext {\r
-  public:\r
-    PrefixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
     Prefix_opContext *prefix_op();\r
-    NonOpExprContext *nonOpExpr();\r
-\r
-   \r
+    ExprContext *expr();\r
   };\r
 \r
-  PrefixOpContext* prefixOp();\r
-\r
-  class  PostfixOpContext : public antlr4::ParserRuleContext {\r
+  class  MethodExprContext : public ExprContext {\r
   public:\r
-    PostfixOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    NonOpExprContext *nonOpExpr();\r
-    Postfix_opContext *postfix_op();\r
-\r
-   \r
-  };\r
-\r
-  PostfixOpContext* postfixOp();\r
+    MethodExprContext(ExprContext *ctx);\r
 \r
-  class  TernaryOpContext : public antlr4::ParserRuleContext {\r
-  public:\r
-    TernaryOpContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    NonOpExprContext *nonOpExpr();\r
     std::vector<ExprContext *> expr();\r
     ExprContext* expr(size_t i);\r
-\r
-   \r
+    FuncNameContext *funcName();\r
   };\r
 \r
-  TernaryOpContext* ternaryOp();\r
-\r
-  class  IdentifierExprContext : public antlr4::ParserRuleContext {\r
+  class  PostfixOpExprContext : public ExprContext {\r
   public:\r
-    IdentifierExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    VarNameContext *varName();\r
+    PostfixOpExprContext(ExprContext *ctx);\r
 \r
-   \r
+    ExprContext *expr();\r
+    Postfix_opContext *postfix_op();\r
   };\r
 \r
-  IdentifierExprContext* identifierExpr();\r
-\r
-  class  LitExprContext : public antlr4::ParserRuleContext {\r
+  class  BinaryOpExprContext : public ExprContext {\r
   public:\r
-    LitExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    antlr4::tree::TerminalNode *INT_LIT();\r
-    antlr4::tree::TerminalNode *DECIMAL_LIT();\r
-    antlr4::tree::TerminalNode *STRING_LIT();\r
-    antlr4::tree::TerminalNode *BOOL_LIT();\r
+    BinaryOpExprContext(ExprContext *ctx);\r
 \r
-   \r
+    std::vector<ExprContext *> expr();\r
+    ExprContext* expr(size_t i);\r
+    Binary_opContext *binary_op();\r
   };\r
 \r
-  LitExprContext* litExpr();\r
-\r
-  class  AccessExprContext : public antlr4::ParserRuleContext {\r
+  class  TernaryOpExprContext : public ExprContext {\r
   public:\r
-    AccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    NonAccessExprContext *nonAccessExpr();\r
-    std::vector<AccessSubExprContext *> accessSubExpr();\r
-    AccessSubExprContext* accessSubExpr(size_t i);\r
+    TernaryOpExprContext(ExprContext *ctx);\r
 \r
-   \r
+    std::vector<ExprContext *> expr();\r
+    ExprContext* expr(size_t i);\r
   };\r
 \r
-  AccessExprContext* accessExpr();\r
-\r
-  class  AccessSubExprContext : public antlr4::ParserRuleContext {\r
+  class  LitExprContext : public ExprContext {\r
   public:\r
-    AccessSubExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    AccessMemberContext *accessMember();\r
-    AccessBracketsContext *accessBrackets();\r
+    LitExprContext(ExprContext *ctx);\r
 \r
-   \r
+    LiteralContext *literal();\r
   };\r
 \r
-  AccessSubExprContext* accessSubExpr();\r
-\r
-  class  AccessMemberContext : public antlr4::ParserRuleContext {\r
+  class  ParenExprContext : public ExprContext {\r
   public:\r
-    AccessMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    IdentifierExprContext *identifierExpr();\r
+    ParenExprContext(ExprContext *ctx);\r
 \r
-   \r
+    ExprContext *expr();\r
   };\r
 \r
-  AccessMemberContext* accessMember();\r
-\r
-  class  AccessBracketsContext : public antlr4::ParserRuleContext {\r
+  class  IdentifierExprContext : public ExprContext {\r
   public:\r
-    AccessBracketsContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
-    virtual size_t getRuleIndex() const override;\r
-    ExprContext *expr();\r
+    IdentifierExprContext(ExprContext *ctx);\r
 \r
-   \r
+    VarNameContext *varName();\r
+    std::vector<NamespaceSpecifierContext *> namespaceSpecifier();\r
+    NamespaceSpecifierContext* namespaceSpecifier(size_t i);\r
   };\r
 \r
-  AccessBracketsContext* accessBrackets();\r
-\r
-  class  ParenExprContext : public antlr4::ParserRuleContext {\r
+  ExprContext* expr();\r
+  ExprContext* expr(int precedence);\r
+  class  LiteralContext : public antlr4::ParserRuleContext {\r
   public:\r
-    ParenExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+    LiteralContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
     virtual size_t getRuleIndex() const override;\r
-    ExprContext *expr();\r
+    antlr4::tree::TerminalNode *INT_LIT();\r
+    antlr4::tree::TerminalNode *DECIMAL_LIT();\r
+    antlr4::tree::TerminalNode *STRING_LIT();\r
+    antlr4::tree::TerminalNode *BOOL_LIT();\r
 \r
    \r
   };\r
 \r
-  ParenExprContext* parenExpr();\r
+  LiteralContext* literal();\r
 \r
   class  FuncNameContext : public antlr4::ParserRuleContext {\r
   public:\r
@@ -749,6 +662,9 @@ public:
   Binary_opContext* binary_op();\r
 \r
 \r
+  virtual bool sempred(antlr4::RuleContext *_localctx, size_t ruleIndex, size_t predicateIndex) override;\r
+  bool exprSempred(ExprContext *_localctx, size_t predicateIndex);\r
+\r
 private:\r
   static std::vector<antlr4::dfa::DFA> _decisionToDFA;\r
   static antlr4::atn::PredictionContextCache _sharedContextCache;\r