anchor.diff:  
   query
       : prologue (selectQuery | constructQuery | describeQuery | askQuery) bindingsClause EOF -> ^(QUERY prologue selectQuery* constructQuery* describeQuery* askQuery*) bindingsClause*
  -    | update (SEMICOLON update)* EOF -> ^(UPDATE update+)
  +    | update (SEMICOLON update?)* EOF -> ^(UPDATE update+)
       ;
   
   prologue
  
positive.code:     ;
      		 
  groupCondition
      : builtInCall
      | functionCall
      | OPEN_BRACE expression (AS var)? CLOSE_BRACE -> ^(AS expression var*)
      | var
      ;
      
  havingClause
  
negative.code: 
  STRENDS : ('S'|'s')('T'|'t')('R'|'r')('E'|'e')('N'|'n')('D'|'d')('S'|'s');
  
  STRBEFORE : ('S'|'s')('T'|'t')('R'|'r')('B'|'b')('E'|'e')('F'|'f')('O'|'o')('R'|'r')('E'|'e');
  
  STRAFTER : ('S'|'s')('T'|'t')('R'|'r')('A'|'a')('F'|'f')('T'|'t')('E'|'e')('R'|'r');
  
  REPLACE : ('R'|'r')('E'|'e')('P'|'p')('L'|'l')('A'|'a')('C'|'c')('E'|'e');
  
  YEAR : ('Y'|'y')('E'|'e')('A'|'a')('R'|'r');
  
  MONTH : ('M'|'m')('O'|'o')('N'|'n')('T'|'t')('H'|'h');
  