- 添加 .gitignore 文件,忽略编译器生成的二进制文件 - 重构 lexer.c 文件,改进了关键字处理和字符串处理 - 更新前端的前端、解析器和 AST 相关文件,以适应新的词法分析器 - 优化了 token 相关的定义和函数,引入了新的 token 类型
-
ast.c 作为抽象语法树的定义
-
block.c 作为块的实现主要用于处理作用域,需要符号表
-
decl.c 作为声明的实现,其中主要携带变量声明,函数声明见 func.c ,需要符号表
-
func.c 作为函数的实现,其中主要携带函数声明,以及函数定义,需要符号表
-
expr.c 作为表达式的实现。需要符号表
-
stmt.c 作为语句的实现。需要表达式类型判断合法性
-
term.c 作为终结符的实现。需要表达式类型判断合法性
-
program.c 作为词法分析(语义分析)入口函数,可以根据parser结构生成AST
其中stmt参考cppreference 其中expr参考AI以及CParser