如何转换递归表达式?

时间:2014-06-09 16:34:00

标签: antlr4

在anltr4 java语法(https://github.com/antlr/grammars-v4/blob/master/java/Java.g4)中我想知道什么时候我有完整的表达式。在这个例子中,我试图进行类似于以下的转换:

from: String foo = bar + ", " + baz + "; are true";
to:   String foo = String.format("{0}, {1}; are true", bar, baz);

问题始于语法声明:

expression ('+'|'-') expression" 

也是表达的孩子。鉴于上面的示例,回调将类似于以下内容:

0: exp0:bar, exp1:","
1: exp0:bar ",", exp1:baz
2: exp0:bar "," baz, exp1:"; are true"

我使用#alias btw定位该行。所以我尴尬地说的是 - 当递归表达规则以转换整个表达式时,如何使用侦听器来捕获整个表达式?或者还有另一种我尚未见过的方式吗?

0 个答案:

没有答案