summaryrefslogtreecommitdiff
path: root/src/heads/freeast.h
diff options
context:
space:
mode:
authorczjstmax <jstmaxlol@disroot.org>2026-02-14 18:43:14 +0100
committerczjstmax <jstmaxlol@disroot.org>2026-02-14 18:43:14 +0100
commit2b885f00df619b77bbfcee3ff209cefe4a277df2 (patch)
treef2c5bf0452d350987cc668228d3588493090161d /src/heads/freeast.h
parent9201d978d0c4d4f4bdffd4e686ef116d7fdaa982 (diff)
Cumulative update.
Signed-off-by: czjstmax <jstmaxlol@disroot.org>
Diffstat (limited to 'src/heads/freeast.h')
-rw-r--r--src/heads/freeast.h34
1 files changed, 18 insertions, 16 deletions
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: