diff options
Diffstat (limited to 'ast.c')
| -rw-r--r-- | ast.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -5,7 +5,7 @@ static void expr_destroy(struct expr_node* node); static void stmt_destroy(struct stmt_node* node); static void type_destroy(struct type_node* node) { - free(node->type); + free(node->name); } static void var_decl_destroy(struct var_decl_node* node) { @@ -14,6 +14,10 @@ static void var_decl_destroy(struct var_decl_node* node) { free(node->ident); } +static void var_ref_destroy(struct var_ref_node* node) { + free(node->ident); +} + static void group_destroy(struct group_node* node) { struct stmt_node* body_node = node->body_head; while (body_node != NULL) { @@ -52,6 +56,9 @@ static void expr_destroy(struct expr_node* node) { case EXPR_EMPTY: case EXPR_INT_LIT: break; + case EXPR_VAR_REF: + var_ref_destroy(&node->as._var_ref); + break; } } |
