From 773a766b83c327069f3634ad982e29e9e06119e9 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 31 Aug 2021 23:47:20 +0100 Subject: Strip semicolon if followed by a `}` or `)` on the same line --- src/parser.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/parser.cpp') diff --git a/src/parser.cpp b/src/parser.cpp index fe421f7db..4433a0a7f 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -1497,7 +1497,19 @@ void assign_removal_flag_to_semicolon(AstFile *f) { Token *curr_token = &f->tokens[f->curr_token_index]; GB_ASSERT(prev_token->kind == Token_Semicolon); if (prev_token->string == ";") { + bool ok = false; if (curr_token->pos.line > prev_token->pos.line) { + ok = true; + } else if (curr_token->pos.line == prev_token->pos.line) { + switch (curr_token->kind) { + case Token_CloseBrace: + case Token_CloseParen: + ok = true; + break; + } + } + + if (ok) { if (build_context.strict_style) { syntax_error(*prev_token, "Found unneeded semicolon"); } -- cgit v1.2.3