anchor.diff:   ;
   
   simple_select_stmt
  - : ( K_WITH K_RECURSIVE? common_table_expression ( ',' common_table_expression )* )?
  + : with_clause?
      select_core ( K_ORDER K_BY ordering_term ( ',' ordering_term )* )?
      ( K_LIMIT expr ( ( K_OFFSET | ',' ) expr )? )?
    ;
   
   select_stmt
  - : ( K_WITH K_RECURSIVE? common_table_expression ( ',' common_table_expression )* )?
  + : with_clause?
      select_or_values ( compound_operator select_or_values )*
      ( K_ORDER K_BY ordering_term ( ',' ordering_term )* )?
      ( K_LIMIT expr ( ( K_OFFSET | ',' ) expr )? )?
  
positive.code:  | K_UNION K_ALL
   | K_INTERSECT
   | K_EXCEPT
   ;
  
  cte_table_name
   : table_name ( '(' column_name ( ',' column_name )* ')' )?
   ;
  
  signed_number
  
negative.code:  ;
  
  with_clause
   : K_WITH K_RECURSIVE? common_table_expression ( ',' common_table_expression )*
   ;
  
  qualified_table_name
  