【问题标题】:Correct use of Syntactic Predicates in XText在 XText 中正确使用句法谓词
【发布时间】:2016-06-10 15:43:57
【问题描述】:

我的语法有一些歧义需要解决。 其中一条规则采用以下形式:

TArg:
    anys=Anys
    | rnumb1=PNumb ".." (rnumb2=PNumb)?
;

Or this image, if you prefer

规则Anys 有可能以PNumb 开头。我可以看到歧义在哪里,但是如果 XText 看到 PNumb 后跟双点,我该如何告诉它走第二条路径?

大概,如果我使用

TArg:
    (=>  rnumb1=PNumb ".." (rnumb2=PNumb)?)
    |anys=Anys
;

那么它看到一个数字总是选择第一个,不管它是否看到“..”,我会遇到问题。

句法谓词的正确用法/位置是什么,以允许 Antlr 向前看以查看“..”是否存在?

提前干杯。

【问题讨论】:

    标签: antlr grammar dsl xtext


    【解决方案1】:

    您还需要包含“..”

    TArg:
      =>(rnumb1=PNumb "..") (rnumb2=PNumb)?
      | anys=Anys
    ;
    

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多