anchor.diff:      ;
       
   expression returns [Expression element]
  +@after{check_null(retval.element);}
       :   ex=conditionalExpression {retval.element=ex.element;} (op=assignmentOperator exx=expression 
           {String txt = $op.text; 
            if(txt.equals("=")) {
  
positive.code:     ;
  
  inclusiveOrExpression returns [Expression element]
      :   ex=exclusiveOrExpression {retval.element = ex.element;} ( '|' exx=exclusiveOrExpression 
         {
           retval.element = new InfixOperatorInvocation("|", retval.element);
  
negative.code:     ;
  
  conditionalExpression returns [Expression element]
  @after{check_null(retval.element);}
      :   ex=conditionalOrExpression {retval.element = ex.element;}( '?' exx=expression ':' exxx=expression 
          {retval.element = new ConditionalExpression(retval.element,exx.element,exxx.element);
           setLocation(retval.element,retval.start,exxx.stop);
  