8

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

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

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

4

1 回答 1

7

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

对于从版本 3 升级现有应用程序的用户来说,这种变化可能是巨大的,但作为一个整体,新系统更易于使用和(尤其是)维护。

于 2013-04-04T23:48:52.073 回答