【发布时间】:2016-06-10 15:43:57
【问题描述】:
我的语法有一些歧义需要解决。 其中一条规则采用以下形式:
TArg:
anys=Anys
| rnumb1=PNumb ".." (rnumb2=PNumb)?
;
规则Anys 有可能以PNumb 开头。我可以看到歧义在哪里,但是如果 XText 看到 PNumb 后跟双点,我该如何告诉它走第二条路径?
大概,如果我使用
TArg:
(=> rnumb1=PNumb ".." (rnumb2=PNumb)?)
|anys=Anys
;
那么它看到一个数字总是选择第一个,不管它是否看到“..”,我会遇到问题。
句法谓词的正确用法/位置是什么,以允许 Antlr 向前看以查看“..”是否存在?
提前干杯。
【问题讨论】: