add break and continue statements to El
This commit is contained in:
@@ -135,8 +135,9 @@ fn emit_blank() -> Void {
|
||||
fn binop_to_c(op: String) -> String {
|
||||
if op == "Plus" { return "+" }
|
||||
if op == "Minus" { return "-" }
|
||||
if op == "Star" { return "*" }
|
||||
if op == "Slash" { return "/" }
|
||||
if op == "Star" { return "*" }
|
||||
if op == "Slash" { return "/" }
|
||||
if op == "Percent" { return "%" }
|
||||
if op == "EqEq" { return "==" }
|
||||
if op == "NotEq" { return "!=" }
|
||||
if op == "Lt" { return "<" }
|
||||
@@ -1078,6 +1079,16 @@ fn cg_stmt(stmt: Map<String, Any>, indent: String, declared: [String]) -> [Strin
|
||||
return declared
|
||||
}
|
||||
|
||||
if kind == "Break" {
|
||||
emit_line(indent + "break;")
|
||||
return declared
|
||||
}
|
||||
|
||||
if kind == "Continue" {
|
||||
emit_line(indent + "continue;")
|
||||
return declared
|
||||
}
|
||||
|
||||
// Bare reassignment: `name = expr`. Always emits a plain C assignment
|
||||
// (no `el_val_t` prefix) - by construction the parser only produces
|
||||
// Assign for an existing identifier. If the name happens NOT to be in
|
||||
|
||||
Reference in New Issue
Block a user