diff options
| author | czjstmax <jstmaxlol@disroot.org> | 2026-02-14 18:43:14 +0100 |
|---|---|---|
| committer | czjstmax <jstmaxlol@disroot.org> | 2026-02-14 18:43:14 +0100 |
| commit | 2b885f00df619b77bbfcee3ff209cefe4a277df2 (patch) | |
| tree | f2c5bf0452d350987cc668228d3588493090161d /src/heads/freeast.h | |
| parent | 9201d978d0c4d4f4bdffd4e686ef116d7fdaa982 (diff) | |
Cumulative update.
Signed-off-by: czjstmax <jstmaxlol@disroot.org>
Diffstat (limited to 'src/heads/freeast.h')
| -rw-r--r-- | src/heads/freeast.h | 34 |
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: |