diff options
| author | hachem <im@hachem.wtf> | 2026-09-09 05:43:06 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-09-09 05:43:06 +0200 |
| commit | bf3bd19f79936fa519a5285701763da58935592a (patch) | |
| tree | 9f854e50405a6fabd28d783232360c2c0b26e2f9 /src/ast.c | |
| parent | 8b76d35b0a045e0a3277be422513b938ef33dcce (diff) | |
refactor: split code gen into arch seam
Diffstat (limited to 'src/ast.c')
| -rw-r--r-- | src/ast.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -58,6 +58,11 @@ void free_statement(struct Statement* statement) free_expr(statement->call.args[i]); free(statement->call.args); break; + case STATEMENT_INSTRUCTION: + for (size_t i = 0; i < statement->instruction.operand_count; i += 1) + free_expr(statement->instruction.operands[i]); + free(statement->instruction.operands); + break; case STATEMENT_STACK: free_expr(statement->stack.size); break; @@ -81,6 +86,9 @@ struct Program create_program(void) program.config.bits = 64; program.config.has_entry = false; program.config.logical_registers = false; + program.config.format = OUTPUT_ELF; + program.config.has_org = false; + program.config.boot = false; program.consts = NULL; program.const_count = 0; program.const_capacity = 0; |
