我的听众有问题:
我正在使用 ParseTreeProperty 存储“任何内容”(基本上是Map
我将变量存储在 enterEveryRule 方法中: parseTreeProperty.put(ctx,myObject);
我通过 exitEveryRule 方法重新获得它: MyObject myObject = parseTreeProperty.get(ctx);
除了带有标签的标签外,此方法非常有效。
任何带有标签的语法:
general_rule
: rule_1 #label_1
| rule_2 #label_2
;
问题:
由于 enterEveryRule和exitEveryRule之间的上下文不同,因此 ParseTreeProperty不能按标签的预期目的工作。 为什么进入上下文不是“标签规则”或离开上下文是“主规则”?
我该如何解决?
谢谢。
答案 0 :(得分:0)
在您的情况下,在生成的侦听器中,“ general_rule”的树漫步者替代方案的结果将使用相同的enterGeneral_rule()
和exitGeneral_rule()
方法。
但是使用您所使用方法的标签将类似于:
void enterLabel_1();
void exitLabel_1();
void enterLabel_2();
void exitLabel_2();