【文件属性】:
文件名称:WiredC:用Rust为我的C版本的WiredC编写的编译器
文件大小:19KB
文件格式:ZIP
更新时间:2021-02-13 10:30:07
Rust
有线C
用Rust为我的C版本WiredC编写的编译器。
为什么?
该项目的目的是学习编译器的工作原理,并更好地理解底层内容。
脚步
读入文件
编写可获取代码并返回词素(令牌)列表的词法分析器
定义抽象语法树(AST)
编写使用令牌并返回AST的解析器(还会引发编译错误)
为汇编中的给定AST生成代码(x86_64)
将程序集写入文件
使用GCC将程序集转换为可执行文件
目前的进展
当前,该程序能够从提供的文件中识别标记,并分离其中的哪些标记是功能主体的一部分。 然后,它解析函数主体并识别其中包含哪种类型的语句。 我目前在第3步和第4步之间。
内部示例/simple_exp.wc
$ cat examples/simple_exp.wc
int main(int a, int b)
{
print("Hello World! 2+2 is ");
int a
【文件预览】:
WiredC-main
----Cargo.lock(137B)
----LICENSE(34KB)
----src()
--------ast.rs(759B)
--------main.rs(377B)
--------token.rs(6KB)
--------parser.rs(6KB)
----Cargo.toml(198B)
----examples()
--------return_0.wc(45B)
--------data_types.wc(90B)
--------simple_exp.wc(125B)
--------concat.wc(85B)
----.gitignore(8B)
----README.md(2KB)