我正在构建一个Java语言解析工具,我想捕获if和else-if的所有条件表达式。
所以,我写了listen并覆盖了enterStatement()。
public void enterStatement(@NotNull apexParser.StatementContext ctx) {
if( ctx.IF() != null ) {
// System.out.println(ctx.IF().getSourceInterval());
TokenStream tokens = parser.getTokenStream();
System.out.println(tokens.getText(ctx.IF().getSourceInterval()));
System.out.println(parser.getTokenStream().getText(ctx));
//System.out.println(ctx.IF().getText());
//System.out.println(ctx.toStringTree(parser));
//System.out.println(ctx.IF().getSymbol().getText());
}
}
我不确定如何遍历此处使用的每个条件。
实施例: if(a> 1&& b< 0)
只想知道如何遍历条件树。
注意:我是ANTLR工具的新手,如果需要更多信息,请与我们联系。
答案 0 :(得分:0)
非常感谢您的跟进,我使用的是Java语法文件。
最后,我能够找到使用以下代码遍历各个节点的解决方案。
{{1}}
只需在此处发布,以便可以帮助其他人。
注意:我知道我的代码没有经过优化,这只是一个进一步的提示。