Remove debug printf and fix stmt_t forward declaration

This commit is contained in:
Night Kaly 2025-01-16 23:01:37 +00:00
parent 7243d2057c
commit 8f122d3523
Signed by: night0721
SSH key fingerprint: SHA256:B/hgVwUoBpx5vdNsXl9w8XwZljA9766uk6T4ubZp5HM
2 changed files with 3 additions and 9 deletions
include
src

View file

@ -25,12 +25,12 @@ typedef enum {
typedef struct stmt_t stmt_t;
typedef struct {
struct stmt_t *statements;
stmt_t *statements;
int length;
int capacity;
} stmt_array_t;
typedef struct stmt_t {
struct stmt_t {
stmt_type_t type;
union {
struct {
@ -70,6 +70,6 @@ typedef struct stmt_t {
struct stmt_t *body;
} _while;
} as;
} stmt_t;
};
#endif

View file

@ -58,14 +58,12 @@ void free_expr(expr_t *expr)
break;
case EXPR_VARIABLE:
printf("hereR?\n");
free(expr->as.variable.name.value);
free(expr);
break;
case EXPR_ASSIGN:
free_expr(expr->as.assign.name);
printf("hiiii\n");
free_expr(expr->as.assign.value);
free(expr);
break;
@ -243,20 +241,16 @@ void free_statements(stmt_array_t *array)
{
for (int i = 0; i < array->length; i++) {
if (array->statements[i].type == STMT_PRINT) {
printf("this should go fifth\n");
free_expr(array->statements[i].as.print.expression);
}
if (array->statements[i].type == STMT_EXPR) {
printf("third\n");
free_expr(array->statements[i].as.expr.expression);
}
if (array->statements[i].type == STMT_VAR) {
printf("this should go second/forth\n");
free(array->statements[i].as.variable.name.value);
free_expr(array->statements[i].as.variable.initializer);
}
if (array->statements[i].type == STMT_BLOCK) {
printf("this should go first/third\n");
free_statements(array->statements[i].as.block.statements);
}
}