anchor.diff:      ;
   
   conditionalOrExpression
  -    : conditionalAndExpression ( OR ^conditionalAndExpression )*
  +    : (c1=conditionalAndExpression -> $c1) (OR c2=conditionalAndExpression -> ^(OR $conditionalOrExpression $c2))*
       ;
   
   conditionalAndExpression
  -    : valueLogical ( AND ^valueLogical )*
  +    : (v1=valueLogical -> $v1) (AND v2=valueLogical -> ^(AND $conditionalAndExpression $v2))*
       ;
   
   valueLogical
  
positive.code:     ;
  
  groupOrUnionGraphPattern
      : groupGraphPattern (UNION ^groupGraphPattern)*
      ;
  
  filter
  
negative.code:     ; 
      
  multiplicativeExpression
      : (u1=unaryExpression -> $u1) (multiplicativeOperator u2=unaryExpression -> ^(multiplicativeOperator $multiplicativeExpression $u2))*
      ;
      
  multiplicativeOperator
      : ASTERISK | DIVIDE
      ;
  
  unaryExpression
  