anchor.diff:   | column_term op=(K_LOW | K_HIGH | K_LOWDATE | K_HIGHDATE)	(signed_number (K_EQUAL | K_INCOMPARABLE))?	#preferenceLOWHIGH
    | column_term ('(' exprCategory ')')																	#preferenceCategory
    | column_term op=(K_AROUND | K_FAVOUR | K_DISFAVOUR) (signed_number|geocoordinate|column_term)			#preferenceAROUND
  + | exprSkyline K_IS K_MORE K_IMPORTANT K_THAN exprSkyline												#preferenceMoreImportant
   
    ;
   
  
positive.code: 
  table_name : any_name;
  
  
  new_table_name : any_name;
  
  column_name : any_name;
  
  table_alias : any_name;
  
  top_keyword :  K_TOP expr;
  
  any_name : IDENTIFIER 
   | keyword
  
negative.code: column_term : ( ( database_name '.' )? table_name '.' )? column_name;
  ordering_term : expr ( K_ASC | K_DESC )? ;
  
  select_List_Item  : '*' | table_name '.' '*'  | expr ( K_AS? column_alias )?;
  
  table_List_Item
   : ( database_name '.' )? table_name ( K_AS? table_alias )?
   | '(' ( table_List_Item ( ',' table_List_Item )*
         | join_clause )
     ')' ( K_AS? table_alias )?
   | '(' select_stmt ')' ( K_AS? table_alias )?
   ;
  
  join_clause : table_List_Item ( join_operator table_List_Item join_constraint )* ;
  
  join_operator: ',' | ( K_LEFT K_OUTER? | K_INNER | K_CROSS )? K_JOIN;
  
  