From 4c0e9f1f8902be071a0ccc711e04305406e49345 Mon Sep 17 00:00:00 2001 From: hchac Date: Tue, 11 Jul 2023 16:15:06 -0400 Subject: [PATCH] Match CPP parser behavior in allowing newlines before a closing brace. --- core/odin/parser/parser.odin | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin index 15a33d86b..06902b9ce 100644 --- a/core/odin/parser/parser.odin +++ b/core/odin/parser/parser.odin @@ -420,7 +420,7 @@ expect_closing_brace_of_field_list :: proc(p: ^Parser) -> tokenizer.Token { if allow_token(p, .Close_Brace) { return token } - if allow_token(p, .Semicolon) { + if allow_token(p, .Semicolon) && !tokenizer.is_newline(token) { str := tokenizer.token_to_string(token) error(p, end_of_line_pos(p, p.prev_tok), "expected a comma, got %s", str) } @@ -1836,7 +1836,9 @@ parse_field_list :: proc(p: ^Parser, follow: tokenizer.Token_Kind, allowed_flags return true } if allow_token(p, .Semicolon) { - error(p, tok.pos, "expected a comma, got a semicolon") + if !tokenizer.is_newline(tok) { + error(p, tok.pos, "expected a comma, got a semicolon") + } return true } return false