我有一个语法类似于下面的语法
E returns [String vals] :
E '+' E {$vals = $E.vals+$E.vals}|
E '-' E {$vals = $E.vals+$E.vals}
我想访问两个不同的'E'值,但是我不能这样做。 我想区分3个“ E”规则,一个是基本规则,另一个是被调用的2个规则。
我正在创建一个语法,将用于评估某些表达式。
运算符'+'和'-'是一些任意运算符。
答案 0 :(得分:2)
要在动作中引用同一规则的多种用法,可以向其添加标签,如下所示:
e1=exp op=('+'|'-') e2=exp {
// code that uses $e1 and $e2
}