Eclipse 生成器中的xtext生成方法错误
早上好, 我是xtext的新手。我为我的dsl编写了一个语法,在generator中,模型中生成的一个方法给出了错误的结果: 错误的语法是: 特色: 然后,您将拥有具有以下功能的模型: 特征f2{Eclipse 生成器中的xtext生成方法错误,eclipse,xtext,emf,xtend,Eclipse,Xtext,Emf,Xtend,早上好, 我是xtext的新手。我为我的dsl编写了一个语法,在generator中,模型中生成的一个方法给出了错误的结果: 错误的语法是: 特色: 然后,您将拥有具有以下功能的模型: 特征f2{ verb act1 objects (C4, C3) common() optional(f32, f31) variabilities() generalization()
verb act1
objects (C4, C3)
common()
optional(f32, f31)
variabilities()
generalization()
}
特征f3{
verb act1
objects (C1, C2, C3)
common()
optional(f31, f32)
variabilities()
generalization()
}
Feature f31{
verb act2
objects (C3)
common()
optional()
variabilities()
generalization()
}
Feature f32{
verb act1
objects (C1, C2, C3)
common()
optional()
variabilities()
generalization()
}
功能f4{
verb act1
objects (C1, C2, C3)
common()
optional(f32, f31)
variabilities()
generalization()
}
特征f1{
verb act1
objects (C1, C4)
common(f2)
optional(f31)
variabilities()
generalization()}
当我显示功能名称时,common的大小common的包含,可选
大小可选大小,可选包含,我有以下结果:
特征名称:f2,通用尺寸:2个通用特征F32,f31
特征名称:f2,可选尺寸:2个可选特征F32,f31
特征名称:f3,公共尺寸:2个公共特征F31,f32
特征名称:f3,可选尺寸:2个可选特征F31,f32
要素名称:f31,公共要素的大小:0公共要素
功能名称:f31,可选功能的大小:0可选功能
要素名称:f32,公共要素的大小:0公共要素
功能名称:f32,可选功能的大小:0可选功能
功能名称:f4,通用尺寸:2个通用功能F32,f31
特征名称:f4,可选尺寸:2个可选特征f32,f31
要素名称:f1,公共要素的大小:2个公共要素F2,f31
要素名称:f1,可选尺寸:2个可选要素F2,f31
但当我使用Junit进行测试时,一切都正常。
感谢您的帮助如果您在validator and generator中使用功能列表,请确保您不会意外地进行Model2模型转换,例如
feature.common+feature.optional
您能说明您在生成器中做了什么,单元测试是如何完成的,实际错误是什么吗?实际错误是,在生成器中,当我得到特性的“common”字段时,大小并不总是它应该的大小。例如,在文章中,对于特性f1 common是(f2)因此,大小是1,但当我显示f1.common.size()时,它会显示2,当我显示功能时,我有f2和f31,而不是f2Junit。测试的目的是确保功能的所有字段都包含我在字段中使用每个功能的生成器所期望的内容(通用、可选、通用化)推断语言的另一个概念。如果发现特定“f1”的错误,则会生成三个概念,其中一个对应于f2,两个对应于f31。然后我想到显示这些字段的内容。我发现“common”是将f2和f31作为特征和“可选”在没有beeing的情况下使用f31sorry可以实际复制。没有变化。顺便说一句:通常的m2m方式不是在generator中完成的,而是在iderivedstatecomputer中完成的
verb act1
objects (C1, C4)
common(f2)
optional(f31)
variabilities()
generalization()}