anchor.diff:      ;
   
   conditionalAndExpression returns [Expression element]
  +@after{check_null(retval.element);}
       :   ex=inclusiveOrExpression {retval.element = ex.element;} ( '&&' exx=inclusiveOrExpression 
           {retval.element = new ConditionalAndExpression(retval.element, exx.element);
            setLocation(retval.element,retval.start,exx.stop);
  
positive.code:     ;
  
  inclusiveOrExpression returns [Expression element]
      :   ex=exclusiveOrExpression {retval.element = ex.element;} ( '|' exx=exclusiveOrExpression 
         {
           retval.element = new InfixOperatorInvocation("|", retval.element);
  
negative.code:     ;
  
  exclusiveOrExpression returns [Expression element]
  @after{check_null(retval.element);}
      :   ex=andExpression {retval.element = ex.element;} ( '^' exx=andExpression
      {
           retval.element = new InfixOperatorInvocation("^", retval.element);
  