CParser
**本项目是CMiniLang**的VS编译版本。
自己做的toys,纯属娱乐 :)
本项目中的Lexer由我自己编写,参考了CEval中的部分代码。Parser和VM暂时是使用write-a-C-interpreter项目中的代码,自举文件xc.txt也是。
后期:Parser自己实现生成AST,VM改善指令与VMM兼容,xc.txt中尽量实现AST。
主要功能
- 解析C文件
- 生成语法树
- 构造指令集
- 建立虚拟机
进度
- Lexer(LL手写识别,比regex库高效)
- 识别数字(科学计数+十六进制)
- 识别变量名
- 识别空白字符
- 识别字符(支持所有转义)
- 识别字符串(支持所有转义)
- 识别注释
- 识别关键字
- 识别操作符
- 错误处理(快速失败)
- Parser
- 识别函数
- 识别枚举
- 识别表达式
- 识别基本结构
- 虚拟机
- 实现虚页(已实现,分代码段,数据段,栈,堆)
- 实现MALLOC(已实现,参考CLib::memory.h)