ANTLR 4:如何知道规则中子部分的存在

时间:2013-05-06 04:50:51

标签: antlr4

我有这段代码:

varDeclaration
    :   type ID ('=' expression)? ';' 
    ;

因此,并非总是('=' expression)存在。但是,有时候,我想处理这个部分,但在这种情况下不知道它是否存在。我正在使用ANTLR 4(并经常使用Listener),我怎么知道这一点。

谢谢:)

1 个答案:

答案 0 :(得分:4)

在您的听众(exitVarDeclaration)或访问者(visitVarDeclaration)中检查ctx.expression() == null。如果为null,则('=' expression)不存在。如果非null,那么它确实存在。