- 添加 .gitignore 文件,忽略编译器生成的二进制文件 - 重构 lexer.c 文件,改进了关键字处理和字符串处理 - 更新前端的前端、解析器和 AST 相关文件,以适应新的词法分析器 - 优化了 token 相关的定义和函数,引入了新的 token 类型
23 lines
496 B
C
23 lines
496 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();
|
|
strpool_t strpool;
|
|
init_strpool(&strpool);
|
|
|
|
lexer_t lexer;
|
|
init_lexer(&lexer, file, stream, sread, &strpool);
|
|
|
|
symtab_t symtab;
|
|
init_symtab(&symtab);
|
|
|
|
parser_t parser;
|
|
init_parser(&parser, &lexer, &symtab);
|
|
parse_prog(&parser);
|
|
|
|
// TODO Free the resourse
|
|
return parser.root;
|
|
}
|