作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个关于 Antlr 的问题,我正在用它构建一个简单的解析器,但我无法遍历树。我找到了许多在线教程,它们使用了 Parser 类的 getAst();
函数。有人对这个有经验么?我感觉每个版本的做法都不一样。
grammar SimpleCalc;
options
{
output=AST;
}
tokens {
PLUS = '+' ;
MINUS = '-' ;
MULT = '*' ;
DIV = '/' ;
SEMICOLON = ';';
EQUAL = '=';
COMMA = ',';
BRACKETL = '(';
BRACKETR = ')';
}
有人对如何以替代方式遍历树有任何想法或建议吗?
最佳答案
getAST()
是 CommonAST
中的一个方法,在 ANTLR v2.x 中使用。
ANTLR v3.x 使用 CommonTree
代替。定义 output=AST
时,所有解析器规则都返回一个 RuleReturnScope
的实例它有一个 getTree()
方法,您可以使用它来获取树。
另请参阅之前的问答,其中显示了如何在解析一些输入后掌握 AST:How to output the AST built using ANTLR?
关于java - 使用 Java 遍历 Antlr 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8856342/
我是一名优秀的程序员,十分优秀!