我想知道创建语法树的最佳方法是什么。
答案 0 :(得分:3)
以下是LLVM项目中abstract syntax trees(AST)的一些解释。
预告片:
程序的AST以这样的方式捕获其行为,即编译器的后续阶段(例如代码生成)很容易解释。我们基本上希望语言中每个构造都有一个对象,AST应该对语言进行密切建模。
答案 1 :(得分:3)
用于学习编写编译器和解释器的标准Stack Overflow资源是Learning to write a compiler
答案 2 :(得分:2)
真的,与其他任何语言都没有什么不同。解释语言和编译语言之间的区别主要在后端,而不是前端。特定语言可能具有特定的解析要求,但您无法在两种语言之间的解析技术方面进行有意义的比较。
答案 3 :(得分:1)
您没有列出解析器的语言要求,因此如果有可能使用C或C ++,您应该首先查看yacc:http://en.wikipedia.org/wiki/Yacc
Yacc为您的特定语法生成C解析器。开始使用它可能需要一些额外的工作,但是一旦你完成并且滚动,它应该更容易维护。
免责声明:我在一个项目中只使用了yacc,而且是10年以前,所以你的milage可能会有所不同。