我想知道如何是最好的方式来创建的语法树。

有帮助吗?

解决方案 2

有关学习书写编译器和解释的标准堆栈溢出资源是学习编写编译器

其他提示

下面是有关抽象语法树(AST)

预告:

  

有关的程序的AST捕获其以这样的方式行为,它很容易适合编译器(例如,代码生成)来解释的后期阶段。我们基本上要在语言中的每个构造一个对象,而AST应的语言准确地模拟。

这是任何其他语言没有什么不同,真的。解释和编译语言之间的差别主要在后端,而不是前端。具体的语言可能有具体的解析要求,但你不能让一个有意义的比较在这两类语言之间的解析技术。

你不清单的语言要求你解析,因此,如果C或C++的可能性,您应该先看看yacc: http://en.wikipedia.org/wiki/Yacc

Yacc产生的C分析器为你的特定语法。开始使用,可能是一个小小的额外工作,但一旦你得到的东西和轧制,应该更容易维护。

免责声明:我只有用yacc在一个项目,这是10年以前,所以你的里程数可能有所不同。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top