添加了 scc_sema_drop 函数用于清理语义分析回调结构, 并在主程序中正确初始化和释放语义分析回调, 确保资源得到适当管理。 同时修复了AST转储中的缩进问题,在函数调用括号前添加正确的缩进, 并修正了测试代码中的结构体字段初始化顺序。
19 lines
519 B
C
19 lines
519 B
C
#include <scc_sema.h>
|
|
#include <sema_symtab.h>
|
|
|
|
void scc_sema_init(scc_sema_callbacks_t *callbacks) {
|
|
scc_sema_symtab_t *sema_symtab = scc_malloc(sizeof(scc_sema_symtab_t));
|
|
if (sema_symtab == null) {
|
|
LOG_FATAL("out of memory");
|
|
return;
|
|
}
|
|
callbacks->context = sema_symtab;
|
|
callbacks->on_decl = null;
|
|
callbacks->on_expr = null;
|
|
callbacks->on_stmt = null;
|
|
callbacks->on_type = null;
|
|
callbacks->got_type = null;
|
|
}
|
|
|
|
void scc_sema_drop(scc_sema_callbacks_t *callbacks) {}
|