enum {\r
T__0 = 1, T__1 = 2, T__2 = 3, T__3 = 4, T__4 = 5, T__5 = 6, T__6 = 7, \r
T__7 = 8, T__8 = 9, T__9 = 10, T__10 = 11, T__11 = 12, T__12 = 13, T__13 = 14, \r
- T__14 = 15, T__15 = 16, BINARY_OPERATOR = 17, INTLIT = 18, NAME = 19, \r
- WS = 20, NEWLINE = 21\r
+ T__14 = 15, T__15 = 16, T__16 = 17, T__17 = 18, T__18 = 19, T__19 = 20, \r
+ T__20 = 21, T__21 = 22, T__22 = 23, T__23 = 24, T__24 = 25, T__25 = 26, \r
+ T__26 = 27, T__27 = 28, T__28 = 29, T__29 = 30, T__30 = 31, T__31 = 32, \r
+ T__32 = 33, T__33 = 34, T__34 = 35, T__35 = 36, T__36 = 37, T__37 = 38, \r
+ T__38 = 39, T__39 = 40, T__40 = 41, T__41 = 42, T__42 = 43, T__43 = 44, \r
+ T__44 = 45, T__45 = 46, T__46 = 47, T__47 = 48, T__48 = 49, T__49 = 50, \r
+ T__50 = 51, T__51 = 52, T__52 = 53, T__53 = 54, T__54 = 55, T__55 = 56, \r
+ T__56 = 57, INT_LIT = 58, DECIMAL_LIT = 59, STRING_LIT = 60, BOOL_LIT = 61, \r
+ NAME = 62, WS = 63, NEWLINE = 64\r
};\r
\r
enum {\r
- RuleProg = 0, RuleDecl = 1, RuleVarDecl = 2, RuleVar = 3, RuleType = 4, \r
- RuleFuncDecl = 5, RuleFunc = 6, RuleParameter = 7, RuleBody = 8, RuleStructDecl = 9, \r
- RuleStructMember = 10, RuleStructVar = 11, RuleStructMethod = 12, RuleStmt = 13, \r
- RuleConditional = 14, RuleIfCond = 15, RuleLoop = 16, RuleWhileLoop = 17, \r
- RuleAssignment = 18, RuleReturnStmt = 19, RuleExpr = 20, RuleNonOpExpr = 21, \r
- RuleNonSubscriptExpr = 22, RuleNonAccessExpr = 23, RuleFuncCall = 24, \r
- RuleOperatorExpr = 25, RuleBinaryOperator = 26, RuleIdentifier = 27, \r
- RuleLiteral = 28, RuleSubscript = 29, RuleMemberAccess = 30, RuleParenExpr = 31, \r
- RuleFuncName = 32, RuleVarName = 33, RuleTypeName = 34, RuleStructName = 35\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
};\r
\r
explicit TocParser(antlr4::TokenStream *input);\r
\r
class ProgContext;\r
class DeclContext;\r
+ class NamespaceDeclContext;\r
class VarDeclContext;\r
class VarContext;\r
+ class VarInitContext;\r
class TypeContext;\r
+ class TypeModifierContext;\r
class FuncDeclContext;\r
class FuncContext;\r
class ParameterContext;\r
class StructMemberContext;\r
class StructVarContext;\r
class StructMethodContext;\r
+ class PrivateDeclContext;\r
+ class GenericDeclContext;\r
class StmtContext;\r
- class ConditionalContext;\r
- class IfCondContext;\r
- class LoopContext;\r
- class WhileLoopContext;\r
- class AssignmentContext;\r
+ class IfStmtContext;\r
+ class ElseIfStmtContext;\r
+ class ElseStmtContext;\r
+ class SwitchStmtContext;\r
+ class SwitchBodyContext;\r
+ class SwitchCaseContext;\r
+ class ForStmtContext;\r
+ class WhileStmtContext;\r
+ class AssignStmtContext;\r
class ReturnStmtContext;\r
class ExprContext;\r
class NonOpExprContext;\r
- class NonSubscriptExprContext;\r
class NonAccessExprContext;\r
- class FuncCallContext;\r
- class OperatorExprContext;\r
- class BinaryOperatorContext;\r
- class IdentifierContext;\r
- class LiteralContext;\r
- class SubscriptContext;\r
- class MemberAccessContext;\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 FuncNameContext;\r
class VarNameContext;\r
class TypeNameContext;\r
- class StructNameContext; \r
+ class StructNameContext;\r
+ class Postfix_opContext;\r
+ class Prefix_opContext;\r
+ class Binary_opContext; \r
\r
class ProgContext : public antlr4::ParserRuleContext {\r
public:\r
std::vector<DeclContext *> decl();\r
DeclContext* decl(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
VarDeclContext *varDecl();\r
FuncDeclContext *funcDecl();\r
StructDeclContext *structDecl();\r
+ NamespaceDeclContext *namespaceDecl();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
DeclContext* decl();\r
\r
+ class NamespaceDeclContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ NamespaceDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ TypeNameContext *typeName();\r
+ std::vector<DeclContext *> decl();\r
+ DeclContext* decl(size_t i);\r
+\r
+ \r
+ };\r
+\r
+ NamespaceDeclContext* namespaceDecl();\r
+\r
class VarDeclContext : public antlr4::ParserRuleContext {\r
public:\r
VarDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
VarContext *var();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
TypeContext *type();\r
ExprContext *expr();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
VarContext* var();\r
\r
+ class VarInitContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ VarInitContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ VarNameContext *varName();\r
+ TypeContext *type();\r
+ ExprContext *expr();\r
+\r
+ \r
+ };\r
+\r
+ VarInitContext* varInit();\r
+\r
class TypeContext : public antlr4::ParserRuleContext {\r
public:\r
TypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
TypeNameContext *typeName();\r
+ std::vector<TypeModifierContext *> typeModifier();\r
+ TypeModifierContext* typeModifier(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
TypeContext* type();\r
\r
+ class TypeModifierContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ TypeModifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ antlr4::tree::TerminalNode *INT_LIT();\r
+\r
+ \r
+ };\r
+\r
+ TypeModifierContext* typeModifier();\r
+\r
class FuncDeclContext : public antlr4::ParserRuleContext {\r
public:\r
FuncDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
FuncContext *func();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
ParameterContext *parameter();\r
BodyContext *body();\r
TypeContext *type();\r
+ GenericDeclContext *genericDecl();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
std::vector<VarContext *> var();\r
VarContext* var(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
std::vector<StmtContext *> stmt();\r
StmtContext* stmt(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
StructDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
StructNameContext *structName();\r
+ GenericDeclContext *genericDecl();\r
std::vector<StructMemberContext *> structMember();\r
StructMemberContext* structMember(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
StructMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
StructVarContext *structVar();\r
+ PrivateDeclContext *privateDecl();\r
StructMethodContext *structMethod();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
virtual size_t getRuleIndex() const override;\r
VarContext *var();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
virtual size_t getRuleIndex() const override;\r
FuncContext *func();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
StructMethodContext* structMethod();\r
\r
+ class PrivateDeclContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ PrivateDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+\r
+ \r
+ };\r
+\r
+ PrivateDeclContext* privateDecl();\r
+\r
+ class GenericDeclContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ GenericDeclContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ std::vector<TypeNameContext *> typeName();\r
+ TypeNameContext* typeName(size_t i);\r
+\r
+ \r
+ };\r
+\r
+ GenericDeclContext* genericDecl();\r
+\r
class StmtContext : public antlr4::ParserRuleContext {\r
public:\r
StmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
VarDeclContext *varDecl();\r
- ConditionalContext *conditional();\r
- LoopContext *loop();\r
- AssignmentContext *assignment();\r
+ IfStmtContext *ifStmt();\r
+ SwitchStmtContext *switchStmt();\r
+ ForStmtContext *forStmt();\r
+ WhileStmtContext *whileStmt();\r
+ AssignStmtContext *assignStmt();\r
ReturnStmtContext *returnStmt();\r
ExprContext *expr();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
StmtContext* stmt();\r
\r
- class ConditionalContext : public antlr4::ParserRuleContext {\r
+ class IfStmtContext : public antlr4::ParserRuleContext {\r
public:\r
- ConditionalContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ IfStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- IfCondContext *ifCond();\r
+ ExprContext *expr();\r
+ BodyContext *body();\r
+ std::vector<ElseIfStmtContext *> elseIfStmt();\r
+ ElseIfStmtContext* elseIfStmt(size_t i);\r
+ ElseStmtContext *elseStmt();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- ConditionalContext* conditional();\r
+ IfStmtContext* ifStmt();\r
\r
- class IfCondContext : public antlr4::ParserRuleContext {\r
+ class ElseIfStmtContext : public antlr4::ParserRuleContext {\r
public:\r
- IfCondContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ ElseIfStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
ExprContext *expr();\r
BodyContext *body();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- IfCondContext* ifCond();\r
+ ElseIfStmtContext* elseIfStmt();\r
+\r
+ class ElseStmtContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ ElseStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ BodyContext *body();\r
+\r
+ \r
+ };\r
+\r
+ ElseStmtContext* elseStmt();\r
+\r
+ class SwitchStmtContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ SwitchStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ IdentifierExprContext *identifierExpr();\r
+ SwitchBodyContext *switchBody();\r
+\r
+ \r
+ };\r
+\r
+ SwitchStmtContext* switchStmt();\r
\r
- class LoopContext : public antlr4::ParserRuleContext {\r
+ class SwitchBodyContext : public antlr4::ParserRuleContext {\r
public:\r
- LoopContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ SwitchBodyContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- WhileLoopContext *whileLoop();\r
+ std::vector<SwitchCaseContext *> switchCase();\r
+ SwitchCaseContext* switchCase(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- LoopContext* loop();\r
+ SwitchBodyContext* switchBody();\r
\r
- class WhileLoopContext : public antlr4::ParserRuleContext {\r
+ class SwitchCaseContext : public antlr4::ParserRuleContext {\r
public:\r
- WhileLoopContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ SwitchCaseContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
ExprContext *expr();\r
BodyContext *body();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- WhileLoopContext* whileLoop();\r
+ SwitchCaseContext* switchCase();\r
+\r
+ class ForStmtContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ ForStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ std::vector<ExprContext *> expr();\r
+ ExprContext* expr(size_t i);\r
+ BodyContext *body();\r
+ VarInitContext *varInit();\r
+ AssignStmtContext *assignStmt();\r
+\r
+ \r
+ };\r
+\r
+ ForStmtContext* forStmt();\r
\r
- class AssignmentContext : public antlr4::ParserRuleContext {\r
+ class WhileStmtContext : public antlr4::ParserRuleContext {\r
public:\r
- AssignmentContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ WhileStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- IdentifierContext *identifier();\r
ExprContext *expr();\r
+ BodyContext *body();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- AssignmentContext* assignment();\r
+ WhileStmtContext* whileStmt();\r
+\r
+ class AssignStmtContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ AssignStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ IdentifierExprContext *identifierExpr();\r
+ ExprContext *expr();\r
+\r
+ \r
+ };\r
+\r
+ AssignStmtContext* assignStmt();\r
\r
class ReturnStmtContext : public antlr4::ParserRuleContext {\r
public:\r
virtual size_t getRuleIndex() const override;\r
ExprContext *expr();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
public:\r
ExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- FuncCallContext *funcCall();\r
- LiteralContext *literal();\r
- IdentifierContext *identifier();\r
- SubscriptContext *subscript();\r
- MemberAccessContext *memberAccess();\r
+ FuncExprContext *funcExpr();\r
+ LitExprContext *litExpr();\r
+ IdentifierExprContext *identifierExpr();\r
ParenExprContext *parenExpr();\r
- OperatorExprContext *operatorExpr();\r
+ AccessExprContext *accessExpr();\r
+ OpExprContext *opExpr();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
public:\r
NonOpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- FuncCallContext *funcCall();\r
- LiteralContext *literal();\r
- IdentifierContext *identifier();\r
- SubscriptContext *subscript();\r
- MemberAccessContext *memberAccess();\r
+ FuncExprContext *funcExpr();\r
+ LitExprContext *litExpr();\r
+ IdentifierExprContext *identifierExpr();\r
ParenExprContext *parenExpr();\r
+ AccessExprContext *accessExpr();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
NonOpExprContext* nonOpExpr();\r
\r
- class NonSubscriptExprContext : public antlr4::ParserRuleContext {\r
- public:\r
- NonSubscriptExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
- virtual size_t getRuleIndex() const override;\r
- FuncCallContext *funcCall();\r
- LiteralContext *literal();\r
- IdentifierContext *identifier();\r
- MemberAccessContext *memberAccess();\r
- ParenExprContext *parenExpr();\r
-\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
- \r
- };\r
-\r
- NonSubscriptExprContext* nonSubscriptExpr();\r
-\r
class NonAccessExprContext : public antlr4::ParserRuleContext {\r
public:\r
NonAccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- FuncCallContext *funcCall();\r
- LiteralContext *literal();\r
- IdentifierContext *identifier();\r
- SubscriptContext *subscript();\r
+ FuncExprContext *funcExpr();\r
+ IdentifierExprContext *identifierExpr();\r
ParenExprContext *parenExpr();\r
- OperatorExprContext *operatorExpr();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
NonAccessExprContext* nonAccessExpr();\r
\r
- class FuncCallContext : public antlr4::ParserRuleContext {\r
+ class FuncExprContext : public antlr4::ParserRuleContext {\r
public:\r
- FuncCallContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ FuncExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
FuncNameContext *funcName();\r
std::vector<ExprContext *> expr();\r
ExprContext* expr(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- FuncCallContext* funcCall();\r
+ FuncExprContext* funcExpr();\r
\r
- class OperatorExprContext : public antlr4::ParserRuleContext {\r
+ class OpExprContext : public antlr4::ParserRuleContext {\r
public:\r
- OperatorExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ OpExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- BinaryOperatorContext *binaryOperator();\r
+ BinaryOpContext *binaryOp();\r
+ PrefixOpContext *prefixOp();\r
+ PostfixOpContext *postfixOp();\r
+ TernaryOpContext *ternaryOp();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- OperatorExprContext* operatorExpr();\r
+ OpExprContext* opExpr();\r
\r
- class BinaryOperatorContext : public antlr4::ParserRuleContext {\r
+ class BinaryOpContext : public antlr4::ParserRuleContext {\r
public:\r
- BinaryOperatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);\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<antlr4::tree::TerminalNode *> BINARY_OPERATOR();\r
- antlr4::tree::TerminalNode* BINARY_OPERATOR(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
+\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
+ };\r
+\r
+ PrefixOpContext* prefixOp();\r
+\r
+ class PostfixOpContext : public antlr4::ParserRuleContext {\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
+\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
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- BinaryOperatorContext* binaryOperator();\r
+ TernaryOpContext* ternaryOp();\r
\r
- class IdentifierContext : public antlr4::ParserRuleContext {\r
+ class IdentifierExprContext : public antlr4::ParserRuleContext {\r
public:\r
- IdentifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ IdentifierExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
VarNameContext *varName();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- IdentifierContext* identifier();\r
+ IdentifierExprContext* identifierExpr();\r
\r
- class LiteralContext : public antlr4::ParserRuleContext {\r
+ class LitExprContext : public antlr4::ParserRuleContext {\r
public:\r
- LiteralContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ LitExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- antlr4::tree::TerminalNode *INTLIT();\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
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- LiteralContext* literal();\r
+ LitExprContext* litExpr();\r
\r
- class SubscriptContext : public antlr4::ParserRuleContext {\r
+ class AccessExprContext : public antlr4::ParserRuleContext {\r
public:\r
- SubscriptContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ AccessExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- NonSubscriptExprContext *nonSubscriptExpr();\r
- ExprContext *expr();\r
+ NonAccessExprContext *nonAccessExpr();\r
+ std::vector<AccessSubExprContext *> accessSubExpr();\r
+ AccessSubExprContext* accessSubExpr(size_t i);\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- SubscriptContext* subscript();\r
+ AccessExprContext* accessExpr();\r
\r
- class MemberAccessContext : public antlr4::ParserRuleContext {\r
+ class AccessSubExprContext : public antlr4::ParserRuleContext {\r
public:\r
- MemberAccessContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ AccessSubExprContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
- std::vector<IdentifierContext *> identifier();\r
- IdentifierContext* identifier(size_t i);\r
+ AccessMemberContext *accessMember();\r
+ AccessBracketsContext *accessBrackets();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
- MemberAccessContext* memberAccess();\r
+ AccessSubExprContext* accessSubExpr();\r
+\r
+ class AccessMemberContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ AccessMemberContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ IdentifierExprContext *identifierExpr();\r
+\r
+ \r
+ };\r
+\r
+ AccessMemberContext* accessMember();\r
+\r
+ class AccessBracketsContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ AccessBracketsContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ ExprContext *expr();\r
+\r
+ \r
+ };\r
+\r
+ AccessBracketsContext* accessBrackets();\r
\r
class ParenExprContext : public antlr4::ParserRuleContext {\r
public:\r
virtual size_t getRuleIndex() const override;\r
ExprContext *expr();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
virtual size_t getRuleIndex() const override;\r
antlr4::tree::TerminalNode *NAME();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
virtual size_t getRuleIndex() const override;\r
antlr4::tree::TerminalNode *NAME();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
virtual size_t getRuleIndex() const override;\r
antlr4::tree::TerminalNode *NAME();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
virtual size_t getRuleIndex() const override;\r
antlr4::tree::TerminalNode *NAME();\r
\r
- virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;\r
- virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;\r
\r
};\r
\r
StructNameContext* structName();\r
\r
+ class Postfix_opContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ Postfix_opContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+\r
+ \r
+ };\r
+\r
+ Postfix_opContext* postfix_op();\r
+\r
+ class Prefix_opContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ Prefix_opContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ Postfix_opContext *postfix_op();\r
+\r
+ \r
+ };\r
+\r
+ Prefix_opContext* prefix_op();\r
+\r
+ class Binary_opContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ Binary_opContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+\r
+ \r
+ };\r
+\r
+ Binary_opContext* binary_op();\r
+\r
\r
private:\r
static std::vector<antlr4::dfa::DFA> _decisionToDFA;\r