From d3b54b411436a25004b49d554f4a5576a9d7c9ff Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Thu, 4 Jun 2026 17:57:12 +0200 Subject: [PATCH] Fix else if statements #49 --- crates/codegen/src/statement.rs | 4 +++- crates/parser/src/grammar.pest | 2 +- mist-test/src/main.mist | 2 -- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/codegen/src/statement.rs b/crates/codegen/src/statement.rs index b3c6901..fb2d3aa 100644 --- a/crates/codegen/src/statement.rs +++ b/crates/codegen/src/statement.rs @@ -90,12 +90,14 @@ impl GenRust for Statement { else_branch, } => { cg.add("if "); + ctx.expr_ensure_semicolon = false; initial.condition.gen_rust(ctx, cg); cg.add(" "); cg.ensure_brackets_body(ctx, &initial.body); for else_if_branch in else_if { - cg.add("else if"); + cg.add(" else if "); + ctx.expr_ensure_semicolon = false; else_if_branch.condition.gen_rust(ctx, cg); cg.add(" "); cg.ensure_brackets_body(ctx, &else_if_branch.body); diff --git a/crates/parser/src/grammar.pest b/crates/parser/src/grammar.pest index 4e5bfa5..4853f83 100644 --- a/crates/parser/src/grammar.pest +++ b/crates/parser/src/grammar.pest @@ -399,7 +399,7 @@ control_flow = { statement_branch = { "(" ~ expr ~ ")" ~ statement_body } -else_if = { +else_if = _{ "else" ~ "if" ~ statement_branch } diff --git a/mist-test/src/main.mist b/mist-test/src/main.mist index 73abdcb..1a14ec9 100644 --- a/mist-test/src/main.mist +++ b/mist-test/src/main.mist @@ -1,5 +1,3 @@ void main() { test_package::hello(); - - let idk = Bro::new(); }