我的语法有一些我需要解决的问题。 其中一条规则采用以下形式:
TArg:
anys=Anys
| rnumb1=PNumb ".." (rnumb2=PNumb)?
;
规则Anys
有可能以PNumb
开头。我可以看到模糊性的位置,但是如果它看到一个PNumb后跟双点,我怎么告诉XText采取第二条路径?
据推测,如果我使用
TArg:
(=> rnumb1=PNumb ".." (rnumb2=PNumb)?)
|anys=Anys
;
然后,如果它看到一个数字,它将始终选择第一个,如果它看到" ...",我会遇到问题。
这里语法谓词的正确用法/位置是什么,以允许Antlr展望未来,看看" .."在场?
提前干杯。
答案 0 :(得分:1)
您还需要包含'..'
TArg:
=>(rnumb1=PNumb "..") (rnumb2=PNumb)?
| anys=Anys
;