在C中从头开始编写编译器

tek*_*agi 1 c compiler-construction forth

可能重复:
如何在C中编译编译器?

我将如何从头开始编写编译器(没有FlexBisonLexYacc)?我有一种语言,我为他写了一个翻译,它有点像Forth.有点.它接受符号并使用堆栈一次解释一个符号.

我如何制作编译器?

那不是特别垃圾; 只是为了向人们展示语法和简洁性.

http://github.com/tekknolagi/StackBased

Yan*_*min 5

简单!

  1. 您标记输入.
  2. 您构建了它的正确表示,通常这是一个抽象语法树,但这不是必需的.
  3. 您可以执行您可能需要的任何树转换(可选).
  4. 您可以通过遍历树来生成代码.
  5. 您将任何不同的部分链接在一起(可选)

Flex和Bison帮助第1阶段和第2阶段,其他一切都取决于您.如果你仍然卡住了,我建议你阅读"编程语言语用学"或"龙书".