diff --git a/vlib/v/parser/parser.v b/vlib/v/parser/parser.v index 05fd4991ba..defcb4db1e 100644 --- a/vlib/v/parser/parser.v +++ b/vlib/v/parser/parser.v @@ -52,7 +52,6 @@ pub fn parse_stmt(text string, table &table.Table, scope &ast.Scope) ast.Stmt { pref: &pref.Preferences{} scope: scope // scope: &ast.Scope{start_pos: 0, parent: 0} - } p.init_parse_fns() p.read_first_token() @@ -71,13 +70,13 @@ pub fn parse_file(path string, table &table.Table, comments_mode scanner.Comment table: table file_name: path pref: pref // &pref.Preferences{} - + scope: &ast.Scope{ start_pos: 0 parent: 0 } // comments_mode: comments_mode - + } p.read_first_token() // p.scope = &ast.Scope{start_pos: p.tok.position(), parent: 0} @@ -270,7 +269,7 @@ pub fn (p mut Parser) top_stmt() ast.Stmt { p.error('wrong pub keyword usage') return ast.Stmt{} } - } + } } .lsbr { return p.attribute() @@ -691,7 +690,7 @@ pub fn (p mut Parser) name_expr() ast.Expr { p.expr_mod = '' return ast.EnumVal{ enum_name: enum_name // lp.prepend_mod(enum_name) - + val: val pos: p.tok.position() mod: mod @@ -781,7 +780,6 @@ pub fn (p mut Parser) expr(precedence int) ast.Expr { node = ast.SizeOf{ typ: sizeof_type // type_name: type_name - } } .key_typeof { @@ -1052,7 +1050,6 @@ fn (p mut Parser) infix_expr(left ast.Expr) ast.Expr { left: left right: right // right_type: typ - op: op pos: pos } @@ -1457,7 +1454,6 @@ fn (p mut Parser) const_decl() ast.ConstDecl { fields << ast.Field{ name: name // typ: typ - } exprs << expr // TODO: once consts are fixed reg here & update in checker @@ -1851,6 +1847,13 @@ fn (p mut Parser) enum_decl() ast.EnumDecl { p.next() default_exprs << p.expr(0) } + // Allow commas after enum, helpful for + // enum Color { + // r,g,b + // } + if p.tok.kind == .comma { + p.next() + } } p.check(.rcbr) p.table.register_type_symbol(table.TypeSymbol{ diff --git a/vlib/v/tests/match_test.v b/vlib/v/tests/match_test.v index c0fb8108d7..a93884a588 100644 --- a/vlib/v/tests/match_test.v +++ b/vlib/v/tests/match_test.v @@ -25,7 +25,7 @@ fn test_match_integers() { assert match 0 { 1 { 2 } 2 { 3 } - else 5 + else { 5 } } == 5 assert match 1 {