From 9283b46a08a1c58c321b6c7ebad1353725c3bc47 Mon Sep 17 00:00:00 2001 From: hachem Date: Fri, 4 Sep 2026 20:00:52 +0200 Subject: feat: add if/else blocks if now guards a { } block or bare statement with an optional else (and now else-if chaining). The branch body becomes a statement list; a bare guarded statement is a list of length one. --- src/parser/ast.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/parser/ast.h') diff --git a/src/parser/ast.h b/src/parser/ast.h index c439747..75d0bdd 100644 --- a/src/parser/ast.h +++ b/src/parser/ast.h @@ -135,6 +135,9 @@ struct IfStatement struct Token comparison; struct Expr* right; struct Statement* body; + size_t body_count; + struct Statement* else_body; + size_t else_count; }; struct CallStatement @@ -230,3 +233,4 @@ void add_statement(struct ProcDecl* proc, struct Statement statement); void add_proc(struct Program* program, struct ProcDecl decl); void free_expr(struct Expr* expr); +void free_statement(struct Statement* statement); -- cgit v1.3