From 1dfa2971999b4adf36a33866b0b07af07188da08 Mon Sep 17 00:00:00 2001 From: Carson Fleming Date: Tue, 31 Mar 2026 16:30:29 -1000 Subject: math n shi --- ast.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'ast.c') diff --git a/ast.c b/ast.c index 7837cf8..7f97948 100644 --- a/ast.c +++ b/ast.c @@ -75,6 +75,19 @@ static void call_destroy(struct call_node* node) { } } +static void unary_destroy(struct unary_node* node) { + expr_destroy(node->expr); + free(node->expr); +} + +static void binary_destroy(struct binary_node* node) { + expr_destroy(node->lhs); + free(node->lhs); + + expr_destroy(node->rhs); + free(node->rhs); +} + static void expr_destroy(struct expr_node* node) { switch (node->type) { case EXPR_INT_LIT: @@ -93,6 +106,12 @@ static void expr_destroy(struct expr_node* node) { case EXPR_CALL: call_destroy(&node->as._call); break; + case EXPR_UNARY: + unary_destroy(&node->as._unary); + break; + case EXPR_BINARY: + binary_destroy(&node->as._binary); + break; } } -- cgit v1.2.3