如何在使用ParseTreeWalker时查找匹配的表达式

时间:2013-05-28 21:21:03

标签: antlr4

说我想在使用Java7语法时找到表达式的实例:

FoobarClass.getInstanceOfType("Bazz");

使用ParseTreeWalker并收听exitExpression()来电听起来像是一个很好的开始。让我感到惊讶的是查找此类表达式所需的Java7Parser.ExpressionContext的手动遍历级别。

找到与上述表达式匹配的合适方法是什么?此时使用正则表达式代替ANTLR4会产生更简单的代码,但这不会扩展。

1 个答案:

答案 0 :(得分:1)

ANTLR 4目前不包含允许您编写具体或抽象语法查询的功能。我们希望将来能够添加一些东西来帮助解决这类应用。

我需要为ANTLR 4解析树编写一些模式识别功能。我通过扩展BaseMyParserVisitor<Boolean>(此示例中的解析器称为MyParser)实现了谓词本身的相对成功。