0

我想知道如何创建语法树的最佳方法。

4

4 回答 4

3

The standard Stack Overflow resource for learning to write compilers and interpreters is Learning to write a compiler

于 2009-12-17T13:19:28.893 回答
3

这是LLVM 项目中关于抽象语法树(AST) 的一些解释。

预告片:

程序的 AST 以这样一种方式捕获其行为,以便编译器的后期阶段(例如代码生成)易于解释。我们基本上希望语言中的每个构造都有一个对象,并且 AST 应该对语言进行密切建模。

于 2009-12-17T13:12:12.213 回答
2

真的,与任何其他语言没有什么不同。解释语言和编译语言之间的区别主要在于后端,而不是前端。特定的语言可能有特定的解析要求,但您无法对两类语言的解析技术进行有意义的比较。

于 2009-12-17T13:08:27.167 回答
1

您没有列出解析器的语言要求,因此如果可以使用 C 或 C++,您应该首先查看 yacc:http ://en.wikipedia.org/wiki/Yacc

Yacc 为您的特定语法生成一个 C 解析器。开始使用它可能需要做一些额外的工作,但是一旦你启动并滚动它,它应该更容易维护。

免责声明:我只在一个项目中使用过 yacc,那是 10 多年前的事了,所以你的里程可能会有所不同。

于 2009-12-17T13:11:49.823 回答