就像标题说的,就只是一个很简单很迷你的编译器。
事情的起因就是我看到了一篇博客,Write your own compiler,于是就有了这个项目。
这个项目分成 3 个部分:
- #1 词法分析器 tokenizer
- #2 语法分析器 parser
- #3 代码生成器 emitter
这个仓库一共有 7 个分支:
master
: 所有代码tokenizer
: 词法分析器的任务说明tokenizer-ans
: 完成的词法分析器代码parser
: 语法分析器的任务说明parser-ans
: 完成的语法分析器代码emitter
: 代码生成器的任务说明emitter-ans
: 完成的代码生成器代码
建议食用指南:
- 切换到
tokenizer
分支,阅读README.md
的内容 - 补充完成
src/index.ts
的代码 - 运行
npm t
测试你的代码 - 切换到
tokenizer-ans
查看参考代码
由于我本人 TypeScript 的水平非常有限,所以大家 be critical。如果有路过的大神希望能指点一二。