我在 Xtext 中有闲置的 DSL:我想验证,如果 ObjectB 有 Element,则包含的对象(ObjectA)没有 Element。我收到了对 ObjectB 的警告,但没有收到对 Object A 的警告。
Domainmodel:
ObjectA | ObjectB
;
ObjectB:
'ObjectB'
'{'
(element = Element)?
(objects += ObjectA)*
'}'
;
ObjectA:
'ObjectA'
'{'
(element = Element)?
'}'
;
Element:
'Element' name=ID
;
我也想在 ObjectA 中发出类似休耕的警告:
@check
def ObjectinObject(ObjectB object)
{
if(object.element != null)
{
for (ObjectA e : object.objects)
{
if(e.element != null)
{//The fallowing Code will make Warning at the element and the subelement
warning('warning', DomainmodelPackage$Literals::DOMAINMODEL__ELEMENT)
warning('warning2',e.element ,DomainmodelPackage$Literals::ELEMENT__NAME)
}
}
}
}