- 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, 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