anchor.diff:  keyMAPPINGS                     : {isKeyword(input, "MAPPINGS")}? ID;
   keyMAX                          : {isKeyword(input, "MAX")}? ID;
   keyNONE                         : {isKeyword(input, "NONE")}? ID;
  -keyNOT                          : {isKeyword(input, "NOT")}? ID;
   keyNULL                         : {isKeyword(input, "NULL")}? ID;
   keyON                           : {isKeyword(input, "ON")}? ID;
   keyOR                           : {isKeyword(input, "OR")}? ID;
  
positive.code: keySERVER                       : {isKeyword(input, "SERVER")}? ID;
  keySET                          : {isKeyword(input, "SET")}? ID;
  keySHOW                         : {isKeyword(input, "SHOW")}? ID;
  keySYSTEM                       : {isKeyword(input, "SYSTEM")}? ID;
  keyTABLE                        : {isKeyword(input, "TABLE")}? ID;
  keyTABLES                       : {isKeyword(input, "TABLES")}? ID;
  keyTEMP                         : {isKeyword(input, "TEMP")}? ID;
  keyTHEN                         : {isKeyword(input, "THEN")}? ID;
  keyTIMESTAMP                    : {isKeyword(input, "TIMESTAMP")}? ID;
  keyTO                           : {isKeyword(input, "TO")}? ID;
  keyTRUE                         : {isKeyword(input, "TRUE")}? ID;
  keyUNMAPPED                     : {isKeyword(input, "UNMAPPED")}? ID;
  keyVALUES                       : {isKeyword(input, "VALUES")}? ID;
  keyVERSION                      : {isKeyword(input, "VERSION")}? ID;
  keyVERSIONS                     : {isKeyword(input, "VERSIONS")}? ID;
  
negative.code: booleanFunctions returns [BooleanValue retval]
  options {backtrack=true; memoize=true;}	
  	: s1=calcExpr n=keyNOT? keyCONTAINS s2=calcExpr		
  							{retval = new ContainsStmt($s1.retval, ($n.retval!=null), $s2.retval);}
  	| s1=calcExpr n=keyNOT? keyLIKE s2=calcExpr 	{retval = new LikeStmt($s1.retval, ($n.retval!=null), $s2.retval);}
  	| s1=calcExpr n=keyNOT? keyBETWEEN s2=calcExpr keyAND s3=calcExpr		
  							{retval = new DelegateBetweenStmt($s1.retval, ($n.retval!=null), $s2.retval, $s3.retval);}
  	| s1=calcExpr n=keyNOT? keyIN LPAREN l=exprList RPAREN			
  							{retval = new DelegateInStmt($s1.retval, ($n.retval!=null), $l.retval);} 
  	| s1=calcExpr keyIS n=keyNOT? keyNULL		{retval = new DelegateNullCompare(($n.retval!=null), $s1.retval);}	
  	;
  
  valueFunctions returns [GenericValue retval]
  