【发布时间】:2015-01-31 20:42:58
【问题描述】:
我使用 ANTLR3 已经有一段时间了。我只是切换到 ANTLR 4。总的来说,我的编译器课上的学生更容易理解它。但是,从我找到的书和其他文档中并不清楚如何制作形成解析树自定义类的节点的标记和上下文。使用 ANTLR 3,我只是使用选项让生成的代码在生成的代码中重命名它们。在 ANTLR 4 中呢?是否有我应该能够找到的文档?
【问题讨论】:
标签: antlr4
我使用 ANTLR3 已经有一段时间了。我只是切换到 ANTLR 4。总的来说,我的编译器课上的学生更容易理解它。但是,从我找到的书和其他文档中并不清楚如何制作形成解析树自定义类的节点的标记和上下文。使用 ANTLR 3,我只是使用选项让生成的代码在生成的代码中重命名它们。在 ANTLR 4 中呢?是否有我应该能够找到的文档?
【问题讨论】:
标签: antlr4
实现TokenFactory<CustomTokenType>,其中CustomTokenType 扩展CommonToken。在调用解析器之前,在词法分析器(和需要的解析器)上设置 TokenFactory。
在“The Definitive ANTLR 4 Reference”一书的源代码的“附加”目录中查看一些简单的示例。这些在书中都有讨论。
查看GenPackage/GenPackageModel 的工作示例,特别是Converter.java 中的parse 方法。
Github 上还有其他示例——使用 'language:antlr' 作为搜索词。其他的被归类在他们的实现语言下,所以有点难找到——'language:java antlr' 会找到很多。
【讨论】: