早上好,我是新来的xtext。我为我的dsl编写了语法,在genrator中,在模型中生成的方法给出了错误的结果:错误的语法片段是:特性:
'Feature' name=ID '{'
'verb' verb= [Activity]
'objects' '('(classes+=[Class] (','classes+=[Class])*)?')'
'common' '('(common+=[Feature] (','common+=[Feature])*)?')'
'optional' '('(optional+=[Feature] (','optional+=[Feature])*)?')'
'variabilities' '(' (variabilities+=[FeatureVariability] (','variabilities+=FeatureVariability])*)?')'
'generalization' '('(generalization+=[Feature] (','generalization+=Feature])*)?')'
'}';然后具有以下特性的have模型:
特征f2{
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‘size,可选
大小选项大小,选项包含,我有以下结果:
特征名称:F2,通用大小:2通用featuresf32,f31
特征名称:F2,大小可选:2个可选的featuresf32,f31
特征名称:f3,通用大小:2通用featuresf31,f32
特征名称:f3,大小可选:2可选featuresf31,f32
特征名称:f31,通用大小:0
特征名称:f31,可选大小:0可选功能
特征名称:f32,通用大小:0
特征名称:f32,可选大小:0可选功能
特征名称:f4,通用大小:2通用featuresf32,f31
特征名称:f4,大小可选:2可选featuresf32,f31
特征名称:f1,通用大小:2通用featuresf2,f31
特征名称:f1,大小可选:2个可选的featuresf2,f31
但当我用Junit测试的时候,一切都没问题。谢谢你的帮忙
发布于 2018-08-31 15:11:36
如果您使用验证器和生成器中的功能列表,请确保不实际执行model2model转换。
feature.common + feature.optional
https://stackoverflow.com/questions/52096597
复制相似问题