我如何引用在 ANTLR 中多次调用的同一规则?

How can I reference to same Rule being called more than once in ANTLR?

我有一个类似于下面的语法

E returns [String vals] : 
    E '+' E {$vals = $E.vals+$E.vals}|
    E '-' E {$vals = $E.vals+$E.vals}

我想访问两个不同的 'E' 值,但我无法这样做。 我想区分 3 个 'E' 规则,一个是基础规则,另一个是被调用的规则。

我正在创建一个语法,我将使用它来评估某些表达式。

运算符'+'和'-'是一些任意运算符。

要在操作中引用同一规则的多次使用,您可以像这样为它们添加标签:

e1=exp op=('+'|'-') e2=exp {
  // code that uses $e1 and $e2
}