- 重命名和重构了多个文件,包括 lexer、parser 和 AST 相关代码 - 添加了日志功能,使用 LOG_* 宏替代原有的 error 和 warn 函数 - 优化了错误处理和内存分配方式 - 调整了代码结构,提高了模块化和可读性
21 lines
546 B
C
21 lines
546 B
C
#include <lib/core.h>
|
|
#include "parser.h"
|
|
#include "type.h"
|
|
|
|
void init_parser(parser_t* parser, lexer_t* lexer, symtab_t* symtab) {
|
|
init_lib_core();
|
|
|
|
parser->cur_node = NULL;
|
|
parser->root = NULL;
|
|
|
|
parser->lexer = lexer;
|
|
parser->symtab = symtab;
|
|
init_tokbuf(&parser->tokbuf, lexer, (tok_stream_get_func)get_valid_token);
|
|
parser->tokbuf.cap = sizeof(parser->TokenBuffer) / sizeof(parser->TokenBuffer[0]);
|
|
parser->tokbuf.buf = parser->TokenBuffer;
|
|
}
|
|
|
|
void run_parser(parser_t* parser) {
|
|
parse_prog(parser);
|
|
}
|