我尝试这个(它只是一个例子):
foo:
bar?
{ if ($bar == null) { ... } }
;
ANTLR4编译器说:
Message{errorType=ISOLATED_RULE_REF, args=[bar, $bar] ...
解决方法是什么?
答案 0 :(得分:2)
理想情况下,您在上面编写的操作将放在解析完成后使用的侦听器的exitFoo
方法中。
但是,如果您确实在语法中保留了操作,要引用上下文对象本身,请使用ctx
属性。例如,$bar.ctx
是您在此处尝试使用的表达式,$ctx
计算封闭规则的上下文对象。
答案 1 :(得分:2)