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, INT_LIT = 56, \r
- DECIMAL_LIT = 57, STRING_LIT = 58, BOOL_LIT = 59, NAME = 60, WS = 61, \r
- NEWLINE = 62\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, 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
+ 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 StructMemberContext;\r
class StructVarContext;\r
class StructMethodContext;\r
+ class PrivateDeclContext;\r
+ class GenericDeclContext;\r
class StmtContext;\r
class IfStmtContext;\r
class ElseIfStmtContext;\r
VarDeclContext *varDecl();\r
FuncDeclContext *funcDecl();\r
StructDeclContext *structDecl();\r
+ NamespaceDeclContext *namespaceDecl();\r
\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
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
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
\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