anchor.diff:  grammar Hql;
   
  -options {superClass=HBaseParser;}
  +options {superClass=HBaseParser;backtrack=true;}
   
   tokens {
   	DOT = '.';
   	COLON = ':';
   	STAR = '*';
  +	DIV = '/';
   	COMMA = ',';
   	PLUS = '+';
   	MINUS = '-';
  
positive.code: 	;
  
  simple_cond_expr
  	: comp_expr
  	| between_expr
  	| like_expr
  	| in_expr
  	| null_comp_expr
  	;
  
  between_expr
  	: attr_field (keyNOT)? keyBETWEEN 
  	  ((arithmetic_expr keyAND arithmetic_expr)
  	  | (string_expr keyAND string_expr)
  	  | (datetime_expr keyAND datetime_expr)
  	  )
  	;
  
  in_expr	: attr_field (keyNOT)? keyIN LPAREN (in_item (COMMA in_item)*) RPAREN;
  
  in_item : string_literal | numeric_literal;
  
  like_expr
  	: string_expr keyNOT? keyLIKE pattern_value=string_literal; // ('ESCAPE' escape_character=string_literal)?;
  
  null_comp_expr
  	: attr_field keyIS (keyNOT)? keyNULL;
  
  comp_expr
  	: (attr_field comp_op string_expr)
  	| (string_expr comp_op attr_field)
  	| (attr_field comp_op datetime_expr)
  	| (datetime_expr comp_op attr_field)
  	| (attr_field comp_op arithmetic_expr)
  	| (arithmetic_expr comp_op attr_field)
  	;
  
  comp_op	: EQ | GT | GTEQ | LT | LTEQ | LTGT;
  
  arithmetic_expr
  
negative.code: 	;
  
  arithmetic_term
  	: arithmetic_factor ((STAR | DIV) arithmetic_term)?
  	//| arithmetic_term (STAR | DIV) arithmetic_factor
  	;
  
  arithmetic_factor
  