我有这段代码:
varDeclaration
: type ID ('=' expression)? ';'
;
因此,并非总是('=' expression)
存在。但是,有时候,我想处理这个部分,但在这种情况下不知道它是否存在。我正在使用ANTLR 4(并经常使用Listener),我怎么知道这一点。
谢谢:)
答案 0 :(得分:4)
在您的听众(exitVarDeclaration
)或访问者(visitVarDeclaration
)中检查ctx.expression() == null
。如果为null,则('=' expression)
不存在。如果非null,那么它确实存在。