Xtext ,为绘图定义结构
Xtext , Defining a Structure for a plot
我必须制作一个类型曲线,即曲线图,数据由 CSV 文件给出(解释器是读取数据文件的人)。我有两种类型的值,x 轴,时间(我认为 INT:INT)minutes:seconds 格式;和 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 那样对(键,值)数组进行工作
您可以通过取消注释并重新运行语言工作流程来启用默认的唯一名称验证
validator = {
composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
或者,您可以在 <YourDsl>Validator
中实施自己的唯一名称验证
我必须制作一个类型曲线,即曲线图,数据由 CSV 文件给出(解释器是读取数据文件的人)。我有两种类型的值,x 轴,时间(我认为 INT:INT)minutes:seconds 格式;和 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 那样对(键,值)数组进行工作您可以通过取消注释并重新运行语言工作流程来启用默认的唯一名称验证
validator = {
composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
或者,您可以在 <YourDsl>Validator