RuleProg = 0, RuleDecl = 1, RuleVarDecl = 2, RuleVar = 3, RuleVarInit = 4, \r
RuleType = 5, RuleTypeModifier = 6, RuleFuncDecl = 7, RuleFunc = 8, \r
RuleParameter = 9, RuleBody = 10, RuleStructDecl = 11, RuleStructMember = 12, \r
- RuleStructVar = 13, RuleStructMethod = 14, RuleStmt = 15, RuleIfStmt = 16, \r
- RuleElseIfStmt = 17, RuleElseStmt = 18, RuleSwitchStmt = 19, RuleSwitchBody = 20, \r
- RuleSwitchCase = 21, RuleForStmt = 22, RuleWhileStmt = 23, RuleAssignStmt = 24, \r
- RuleReturnStmt = 25, RuleExpr = 26, RuleNonOpExpr = 27, RuleNonAccessExpr = 28, \r
- RuleFuncExpr = 29, RuleOpExpr = 30, RuleBinaryOp = 31, RulePrefixOp = 32, \r
- RulePostfixOp = 33, RuleTernaryOp = 34, RuleIdentifierExpr = 35, RuleLitExpr = 36, \r
- RuleAccessExpr = 37, RuleAccessSubExpr = 38, RuleAccessMember = 39, \r
- RuleAccessBrackets = 40, RuleParenExpr = 41, RuleFuncName = 42, RuleVarName = 43, \r
- RuleTypeName = 44, RuleStructName = 45, RulePostfix_op = 46, RulePrefix_op = 47, \r
- RuleBinary_op = 48\r
+ RuleStructVar = 13, RuleStructMethod = 14, RuleGenericDecl = 15, RuleStmt = 16, \r
+ RuleIfStmt = 17, RuleElseIfStmt = 18, RuleElseStmt = 19, RuleSwitchStmt = 20, \r
+ RuleSwitchBody = 21, RuleSwitchCase = 22, RuleForStmt = 23, RuleWhileStmt = 24, \r
+ RuleAssignStmt = 25, RuleReturnStmt = 26, RuleExpr = 27, RuleNonOpExpr = 28, \r
+ RuleNonAccessExpr = 29, RuleFuncExpr = 30, RuleOpExpr = 31, RuleBinaryOp = 32, \r
+ RulePrefixOp = 33, RulePostfixOp = 34, RuleTernaryOp = 35, RuleIdentifierExpr = 36, \r
+ RuleLitExpr = 37, RuleAccessExpr = 38, RuleAccessSubExpr = 39, RuleAccessMember = 40, \r
+ RuleAccessBrackets = 41, RuleParenExpr = 42, RuleFuncName = 43, RuleVarName = 44, \r
+ RuleTypeName = 45, RuleStructName = 46, RulePostfix_op = 47, RulePrefix_op = 48, \r
+ RuleBinary_op = 49\r
};\r
\r
explicit TocParser(antlr4::TokenStream *input);\r
class StructMemberContext;\r
class StructVarContext;\r
class StructMethodContext;\r
+ class GenericDeclContext;\r
class StmtContext;\r
class IfStmtContext;\r
class ElseIfStmtContext;\r
ParameterContext *parameter();\r
BodyContext *body();\r
TypeContext *type();\r
+ GenericDeclContext *genericDecl();\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
\r
StructMethodContext* structMethod();\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