我已经开始了我的第一个 Xtext 项目,但遇到了交叉引用的问题(我认为这可能是问题所在)。我有一个 DatType、InterfaceDescription 规则和一个枚举。我想做的是通过让用户从枚举中选择一种数据类型或定义一个新的数据类型来描述一个接口。
Enum 可以正常工作,但是当我使用“datatype test1”定义一个新的数据类型并在 InterfaceDescription 中使用它时,我收到以下错误:“XtextReconcilerJob”遇到了问题。在“XtextReconcileJon”期间发生内部错误。这就是错误堆栈: http: //pastebin.com/evFki2mB
DataType:
'datatype' name=ID ('mapto' mappedType = JAVAID)?
;
Interface:
interfaceType=InterfaceType name=ID datatype=([DataType]| DataTypeEnum)
;
enum InterfaceType:
INLET = 'inlet' |
OUTLET = 'outlet'
;
DataTypeEnum:
INT8 = 'int8' | INT16 = 'int16' | INT32 = 'int32' |
DOUBLE = 'double' | SINGLE = 'single' | REAL = 'real' |
BOOLEAN = 'boolean' | CHAR = 'char'
;
当我在另一个规则中使用 DataType Cross-Reference 时,它可以工作:
ParamList:
'param:' datatype=[DataType] name=ID
;
有谁知道有什么问题?