【问题标题】:Xtext terminal rule for float浮动的 Xtext 终端规则
【发布时间】:2014-06-24 03:54:26
【问题描述】:

我尝试在 Xtext 中定义浮点类型,但是在生成工件时收到错误消息:

    The following token definitions can never be matched because prior tokens match the same input:RULE_FLOAT,RULE_INT

我的浮动终端如下:

    terminal FLOAT returns ecore::EFloat: INT '.' INT;

我的浮点数是复制一个能够被 Java 接受的浮点数: 1.1 , 1、 0.1

【问题讨论】:

    标签: dsl xtext


    【解决方案1】:

    终端规则取决于顺序。第一场比赛通常会获胜。您的语法似乎包含另一个已经与 INT.INT 匹配的规则,但从您提供的信息中无法分辨。一般来说,使用data type 规则来描述浮点数的语法是个好主意。

    这样写(注意缺少的终端关键字):

    Float returns ecore::EFloat: INT '.' INT;
    

    【讨论】:

    • 非常感谢。您的博客是有用的 xtext 资源档案之一!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多