我正在使用ANTLR4构建AST树,我从以下位置下载g4文件:https://github.com/antlr/grammars-v4/tree/master/sqlite在g4文件的头部添加选项:
options{
output=AST;
ASTLabelType=CommonTree;
language=Java;
}但在编译g4文件时,它会输出:
ANTLR Tool v4.6 (D:\antlr-4.6-complete.jar)
SQLite.g4 -o C:\Users\macro\workspace\tdsql\target\generated-sources\antlr4 -listener -no-visitor -encoding UTF-8
warning(83): SQLite.g4:34:4: unsupported option output
warning(83): SQLite.g4:35:4: unsupported option ASTLabelType是否支持使用ASTLabelType构建antlr4树?我如何用antlr4构建一棵树呢?
发布于 2017-02-22 23:10:16
我自己也是一个Antlr新手,所以有更好的人可以回答这个问题。也就是说,在Antlr3和Antlr4之间不推荐使用AST output选项。Antlr3会生成一个AST,但Antlr4不会。
在Antlr4中,您可以选择使用侦听器模式(遍历解析树)或访问者模式(访问和评估节点)。在运行词法分析器和解析器之后,可以使用这两种方法中的一种或两种。
通过一些搜索可以找到许多示例。这里有一个是给Visitor pattern的。此页面为compares Listeners and Visitors。
https://stackoverflow.com/questions/42394731
复制相似问题