anchor.diff:   | K_SKYLINE
    | K_SUMRANK
    | K_BESTRANK
  + | K_MORE
  + | K_IMPORTANT
  + | K_THAN
    ;
   
   
  
positive.code:  | 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
  
   ;
  
  
negative.code: order_by
  	: K_ORDER K_BY op=(K_SUMRANK|K_BESTRANK) '(' + ')'			#orderBySpecial
  	| K_ORDER K_BY ordering_term ( ',' ordering_term )*	 		#orderByDefault
  ;
  
  select_or_values
   : K_SELECT  ( K_DISTINCT | K_ALL )? (top_keyword)? select_List_Item ( ',' select_List_Item  )*
     ( K_FROM ( table_List_Item ( ',' table_List_Item )* | join_clause ) )?
     ( K_WHERE expr )?
     ( K_SKYLINE K_OF exprSkyline )?
   ;
  
  type_name : name+ ( '(' signed_number ')' | '(' signed_number ',' signed_number ')' )?
  