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
+ T__56 = 57, T__57 = 58, INT_LIT = 59, DECIMAL_LIT = 60, BOOL_LIT = 61, \r
+ StringLit = 62, NAME = 63, WS = 64, NEWLINE = 65, COMMENT = 66\r
};\r
\r
enum {\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
+ RulePrivateDecl = 17, RuleGenericDecl = 18, RuleGenericInstantiation = 19, \r
+ RuleStmt = 20, RuleIfStmt = 21, RuleElseIfStmt = 22, RuleElseStmt = 23, \r
+ RuleSwitchStmt = 24, RuleSwitchBody = 25, RuleSwitchCase = 26, RuleForStmt = 27, \r
+ RuleWhileStmt = 28, RuleAssignStmt = 29, RuleReturnStmt = 30, RuleExpr = 31, \r
+ RuleDot = 32, RuleArrow = 33, RuleLiteral = 34, RuleFuncName = 35, RuleVarName = 36, \r
+ RuleTypeName = 37, RuleStructName = 38, RulePostfix_op = 39, RulePrefix_op = 40, \r
+ RuleBinary_op = 41\r
};\r
\r
explicit TocParser(antlr4::TokenStream *input);\r
class StructMethodContext;\r
class PrivateDeclContext;\r
class GenericDeclContext;\r
+ class GenericInstantiationContext;\r
class StmtContext;\r
class IfStmtContext;\r
class ElseIfStmtContext;\r
class AssignStmtContext;\r
class ReturnStmtContext;\r
class ExprContext;\r
+ class DotContext;\r
+ class ArrowContext;\r
class LiteralContext;\r
class FuncNameContext;\r
class VarNameContext;\r
TypeNameContext *typeName();\r
std::vector<NamespaceSpecifierContext *> namespaceSpecifier();\r
NamespaceSpecifierContext* namespaceSpecifier(size_t i);\r
+ GenericInstantiationContext *genericInstantiation();\r
std::vector<TypeModifierContext *> typeModifier();\r
TypeModifierContext* typeModifier(size_t i);\r
\r
virtual size_t getRuleIndex() const override;\r
FuncNameContext *funcName();\r
ParameterContext *parameter();\r
- BodyContext *body();\r
TypeContext *type();\r
+ BodyContext *body();\r
GenericDeclContext *genericDecl();\r
\r
\r
\r
GenericDeclContext* genericDecl();\r
\r
+ class GenericInstantiationContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ GenericInstantiationContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+ std::vector<TypeContext *> type();\r
+ TypeContext* type(size_t i);\r
+\r
+ \r
+ };\r
+\r
+ GenericInstantiationContext* genericInstantiation();\r
+\r
class StmtContext : public antlr4::ParserRuleContext {\r
public:\r
StmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
public:\r
ForStmtContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
virtual size_t getRuleIndex() const override;\r
+ VarInitContext *varInit();\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
ExprContext *expr();\r
VarNameContext *varName();\r
+ DotContext *dot();\r
+ ArrowContext *arrow();\r
};\r
\r
class FuncExprContext : public ExprContext {\r
FuncNameContext *funcName();\r
std::vector<NamespaceSpecifierContext *> namespaceSpecifier();\r
NamespaceSpecifierContext* namespaceSpecifier(size_t i);\r
+ GenericInstantiationContext *genericInstantiation();\r
std::vector<ExprContext *> expr();\r
ExprContext* expr(size_t i);\r
};\r
std::vector<ExprContext *> expr();\r
ExprContext* expr(size_t i);\r
FuncNameContext *funcName();\r
+ GenericInstantiationContext *genericInstantiation();\r
};\r
\r
class PostfixOpExprContext : public ExprContext {\r
\r
ExprContext* expr();\r
ExprContext* expr(int precedence);\r
+ class DotContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ DotContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+\r
+ \r
+ };\r
+\r
+ DotContext* dot();\r
+\r
+ class ArrowContext : public antlr4::ParserRuleContext {\r
+ public:\r
+ ArrowContext(antlr4::ParserRuleContext *parent, size_t invokingState);\r
+ virtual size_t getRuleIndex() const override;\r
+\r
+ \r
+ };\r
+\r
+ ArrowContext* arrow();\r
+\r
class LiteralContext : public antlr4::ParserRuleContext {\r
public:\r
LiteralContext(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 *StringLit();\r
antlr4::tree::TerminalNode *BOOL_LIT();\r
\r
\r