Xtext,定义情节

时间:2017-03-28 18:44:47

标签: eclipse dsl xtext xbase xcore

我必须制作一个曲线图,曲线图,数据由CSV文件给出(解释器是谁读取数据文件)。我有两种类型的值,x轴,时间(我认为INT:INT)分钟:秒格式;和y轴电压(双)。我的语法数据类型如下:

Model:
elements+=Element*;

Element:
     DataType /* | Operation | Control*/ ;

DataType : 
     Text | Real 
;
Text: 
    ("String" | "Text") name=ID (value=STRING)?
;
Double returns ecore::EDouble:
     INT ('.' INT)?
;
Real: 
     ("Double" | "Real") name=ID (value=Double)?
;

我正在用这种格式制作我的语法中的地图:曲线(双电压,时间INT:INT),但我不知道为什么它不起作用。你们觉得怎么样 ?我应该为类型时间定义一个新类型吗?或者如何使地图正确?谢谢你的时间

   CurveCollection : 
        'Curve['keys+=[Real]*','values+=Time*']'
;
 Time: 
     INT':'INT
 ;

我试图定义结构,但我不知道是否会像(java,Map)中的数组(键,值)一样工作

1 个答案:

答案 0 :(得分:1)

您可以通过取消注释并重新运行语言工作流程来启用默认的唯一名称验证

validator = {
    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}

或者,您可以在<YourDsl>Validator

中实施自己唯一的名称验证