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

时间:2018-08-17 10:39:30

标签: java parsing antlr antlr4

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

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

我想访问两个不同的'E'值,但是我不能这样做。 我想区分3个“ E”规则,一个是基本规则,另一个是被调用的2个规则。

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

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

1 个答案:

答案 0 :(得分:2)

要在动作中引用同一规则的多种用法,可以向其添加标签,如下所示:

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