diff options
| author | czjstmax <jstmaxlol@disroot.org> | 2025-12-19 23:32:31 +0100 |
|---|---|---|
| committer | czjstmax <jstmaxlol@disroot.org> | 2025-12-19 23:32:31 +0100 |
| commit | 1c11d915a68e60bd191d43e348d56b9eab71b107 (patch) | |
| tree | 0b79d8ce3f47bc7ead2143e6f6e10e3f7df9075e /headers/freeast.h | |
| parent | fe0479de0c0305eafb1d3aa1456850af9e3b4fca (diff) | |
Created `src` dir for code, added Makefile
Diffstat (limited to 'headers/freeast.h')
| -rw-r--r-- | headers/freeast.h | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/headers/freeast.h b/headers/freeast.h deleted file mode 100644 index 544d183..0000000 --- a/headers/freeast.h +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef CRBC_FREEAST -#define CRBC_FREEAST - -// Free memory functions, utilize after having used the AST - -#include <stdlib.h> - -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; - } - - free(expr); -} - -static inline void FreeDeclVar(DeclVar *var) -{ - if (!var) return; - - free(var->ident); - free(var->type); - - free(var); -} - -void FreeDecl(Decl *decl) -{ - if (!decl) return; - - switch (decl->kind) { - case DECL_VAR: - FreeDeclVar((DeclVar *)decl->as); - break; - - case DECL_FUNC: - /* FreeDeclFunc(...) later */ - break; - - case DECL_TYPE_STRUCT: - /* FreeDeclTypeStruct(...) later */ - break; - - case DECL_TYPE_ENUM: - /* ... */ - break; - - case DECL_TYPE_UNION: - /* ... */ - break; - } - - free(decl); -} - -#endif |