【发布时间】:2014-03-06 00:37:18
【问题描述】:
我在 ANTLR3 中有一个表达式
num_addition
: num_multi ((plus^|minus^) num_multi)*
;
我想将标记“加号”和“减号”更改为不同的标记所以我尝试制定这个重写规则。
num_addition
: num_multi (plus num_multi)* -> ^(num_multi ^(plus_special num_multi)*)
| num_multi (minus num_multi)* -> ^(num_multi ^(minus_special num_multi)*)
;
如果我这样做,ANTLRWORKS 中的生成似乎需要更长的时间,但它生成了正确的语法和标记。如果我将此样式应用于其他规则,例如“multi”、“divide”和“equalequal”等。它最终会达到当我按下 Generate 时 ANTLRWORKS 不会做任何事情的地步。
根据 ANTLRWORKS 没有错误,但是当我预生成时没有任何反应。
我是否错误地重写了我想要实现的目标?
【问题讨论】: