From 2b885f00df619b77bbfcee3ff209cefe4a277df2 Mon Sep 17 00:00:00 2001 From: czjstmax Date: Sat, 14 Feb 2026 18:43:14 +0100 Subject: Cumulative update. Signed-off-by: czjstmax --- src/heads/freeast.h | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'src/heads/freeast.h') diff --git a/src/heads/freeast.h b/src/heads/freeast.h index 544d183..c52e4e8 100644 --- a/src/heads/freeast.h +++ b/src/heads/freeast.h @@ -1,5 +1,5 @@ -#ifndef CRBC_FREEAST -#define CRBC_FREEAST +#ifndef CRBC_FREEAST_H +#define CRBC_FREEAST_H // Free memory functions, utilize after having used the AST @@ -10,19 +10,21 @@ void FreeExpr(Expr *expr) if (!expr) return; switch (expr->kind) { - case EXPR_INT: - free(expr->as); - break; - case EXPR_BOOL: - break; - case EXPR_CHAR: - break; - case EXPR_STRING: - break; - case EXPR_IDENT: - break; - default: - break; + case EXPR_INT: + free(expr->as.intLiteral); + break; + case EXPR_BOOL: + free(expr->as.boolLiteral); + break; + case EXPR_CHAR: + free(expr->as.charLiteral); + break; + case EXPR_STRING: + free(expr->as.stringLiteral); + break; + case EXPR_IDENT: + free(expr->as.ident); + break; } free(expr); @@ -44,7 +46,7 @@ void FreeDecl(Decl *decl) switch (decl->kind) { case DECL_VAR: - FreeDeclVar((DeclVar *)decl->as); + FreeDeclVar(decl->as.var); break; case DECL_FUNC: -- cgit v1.3.1