- 重命名和重构了多个文件,包括 lexer、parser 和 AST 相关代码 - 添加了日志功能,使用 LOG_* 宏替代原有的 error 和 warn 函数 - 优化了错误处理和内存分配方式 - 调整了代码结构,提高了模块化和可读性
21 lines
436 B
C
21 lines
436 B
C
#include <lib/core.h>
|
|
#include "frontend.h"
|
|
#include "parser/symtab/symtab.h"
|
|
|
|
ast_node_t* frontend(const char* file, void* stream, sread_fn sread) {
|
|
init_lib_core();
|
|
|
|
lexer_t lexer;
|
|
init_lexer(&lexer, file, stream, sread);
|
|
|
|
symtab_t symtab;
|
|
init_symtab(&symtab);
|
|
|
|
parser_t parser;
|
|
init_parser(&parser, &lexer, &symtab);
|
|
parse_prog(&parser);
|
|
|
|
// TODO Free the resourse
|
|
return parser.root;
|
|
}
|