可能重复:
如何用C编写编译器?
我该如何开始用C从头开始编写编译器(没有Flex、Bison、Lex或Yacc(?我有一种语言,我写了一个翻译,这有点像福斯。有点。它接收符号并使用堆栈一次解释一个符号。
我该如何制作编译器?
这并不是一个特别垃圾的部分;只是为了向人们展示语法和简单性。
http://github.com/tekknolagi/StackBased
简单!
- 您将输入标记化
- 你构建了一个合适的表示,通常这是一个抽象语法树,但这不是必需的
- 您可以执行任何可能需要的树转换(可选(
- 通过遍历树生成代码
- 将任何不同的部分链接在一起(可选(
Flex和Bison在第1阶段和第2阶段提供帮助,其他一切由您决定。如果你仍然被困,我建议你去读《编程语言语用学》或《龙书》。