From deed096e783fca21b1773fa84c28be139a3c57ad Mon Sep 17 00:00:00 2001 From: hachem Date: Sun, 30 Aug 2026 13:42:31 +0200 Subject: add: parse conditional expressions --- src/parser/ast.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/parser/ast.c') diff --git a/src/parser/ast.c b/src/parser/ast.c index 97cdb6d..9bdf4d1 100644 --- a/src/parser/ast.c +++ b/src/parser/ast.c @@ -25,8 +25,20 @@ void free_expr(struct Expr* expr) static void free_statement(struct Statement* statement) { - if (statement->kind == STATEMENT_ASSIGN) - free_expr(statement->assign.value); + switch (statement->kind) + { + case STATEMENT_ASSIGN: + free_expr(statement->assign.value); + break; + case STATEMENT_IF: + free_expr(statement->branch.left); + free_expr(statement->branch.right); + free_statement(statement->branch.body); + free(statement->branch.body); + break; + default: + break; + } } void free_proc(struct ProcDecl* proc) -- cgit v1.3