我试图在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
答案 0 :(得分:0)
终端规则依赖于订单。第一场比赛通常获胜。你的语法似乎包含另一个已经匹配INT.INT的规则,但是从你提供的信息中无法判断。一般来说,使用data type规则来描述浮点数的语法是个好主意。
那会读(注意缺少的终端关键字):
Float returns ecore::EFloat: INT '.' INT;