diff options
| author | Carson Fleming <cflems@cflems.net> | 2026-03-31 16:30:29 -1000 |
|---|---|---|
| committer | Carson Fleming <cflems@cflems.net> | 2026-03-31 16:30:29 -1000 |
| commit | 1dfa2971999b4adf36a33866b0b07af07188da08 (patch) | |
| tree | 7d65b9a5780a95bf519fed6d435bdade264aac62 /ast.c | |
| parent | 7cf2065be92855b5b1db31a4bb7afbb4af29a817 (diff) | |
| download | ccc-1dfa2971999b4adf36a33866b0b07af07188da08.tar.gz | |
math n shi
Diffstat (limited to 'ast.c')
| -rw-r--r-- | ast.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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; } } |
