浮点数的Xtext终端规则

时间:2014-06-24 03:54:26

标签: dsl xtext

我试图在Xtext中定义一个float类型,但是在生成aritifact时我收到一条错误消息:

    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

1 个答案:

答案 0 :(得分:0)

终端规则依赖于订单。第一场比赛通常获胜。你的语法似乎包含另一个已经匹配INT.INT的规则,但是从你提供的信息中无法判断。一般来说,使用data type规则来描述浮点数的语法是个好主意。

那会读(注意缺少的终端关键字):

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