1

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)
              }
     }
  }
}
4

1 に答える 1