anchor.diff:    
   //
   operation :
  - equalityop | locationop | containsop;
  + '('! expression ')'! | equalityop | locationop | containsop;
   
   //negations of operations
   notexp :
  
positive.code: 
  q = query;
  
  };
  
  //
  
negative.code: 
  //root level boolean expression
  expression:
    orexp;
  
  //direction for ordering
  direction  : ('asc' | 'desc');
  
  //order cause
  order
    : (property direction?);
  
  