如何使用ANTLR4构建AST?

时间:2013-04-04 23:15:07

标签: antlr4 abstract-syntax-tree

我有一个构建抽象语法树的ANTLR3语法。我正在寻求升级到ANTLR4。但是,似乎ANTLR4只构建解析树而不是抽象语法树。例如,不再识别output=AST选项。此外“AST”“抽象语法”都不会出现在“The Definitive ANTLR4 reference”的文本中。

我想知道我是否遗漏了什么。

我的应用程序目前知道如何爬行ANTLR3生成的AST。更改它以处理解析树并非不可能,但这将是一项工作。在开始这条道路之前,我想确定这是必要的。

1 个答案:

答案 0 :(得分:7)

ANTLR 4基于语法而不是基于任意AST运算符和/或重写规则的AST生成解析树。这允许ANTLR 4自动生成可以使用语法在代码中实现的侦听器和访问者接口。

对于从版本3升级现有应用程序的用户而言,这种变化可能非常显着,但总体而言,新系统更易于使用和(尤其是)维护。