anchor.diff:        )?
       ;
   
  -specifiedConditionVariable returns [Variable variable]
  -    : v=variable 
  -      { $variable = $v.variable; }
  -      (
  -        conditionSpecifier
  -        { $variable.setSpecifierExpression($conditionSpecifier.specifierExpression); }
  -      )?
  -    ;
  -
   variable returns [Variable variable]
       : compilerAnnotations
         var
  
positive.code:         de2=disjunctionExpression
          { $thenElseOperator.operator.setRightTerm($de2.term); }
        )*
      | 
        ( existsCondition | nonemptyCondition | isCondition | 
          TYPE_CONSTRAINT specifiedConditionVariable )+
        THEN_CLAUSE disjunctionExpression 
        (ELSE_CLAUSE disjunctionExpression)?
      ;
  
  thenElseOperator returns [BinaryOperatorExpression operator]
  
negative.code:       e2=EXISTS 
        { ec = new ExistsCondition($e2); 
          $condition = ec; }
        specifiedVariable 
        { ec.setVariable($specifiedVariable.variable); }
      //-> ^(EXISTS_CONDITION[$EXISTS] specifiedVariable2)
      | //(EXISTS LIDENTIFIER (RPAREN|COMMA)) =>
        e1=EXISTS
  