anchor.diff:      | (CUME_DIST_ | PERCENT_RANK_) OPEN_PAR CLOSE_PAR OVER_ OPEN_PAR partition_by? order_by_expr? CLOSE_PAR
       | (DENSE_RANK_ | RANK_ | ROW_NUMBER_) OPEN_PAR CLOSE_PAR OVER_ OPEN_PAR partition_by? order_by_expr_asc_desc
           CLOSE_PAR
  -    | (LAG_ | LEAD_) OPEN_PAR expr of_OF_fset? default_DEFAULT__value? CLOSE_PAR OVER_ OPEN_PAR partition_by?
  +    | (LAG_ | LEAD_) OPEN_PAR expr offset? default_value? CLOSE_PAR OVER_ OPEN_PAR partition_by?
           order_by_expr_asc_desc CLOSE_PAR
       | NTH_VALUE_ OPEN_PAR expr COMMA signed_number CLOSE_PAR OVER_ OPEN_PAR partition_by? order_by_expr_asc_desc
           frame_clause? CLOSE_PAR
       | NTILE_ OPEN_PAR expr CLOSE_PAR OVER_ OPEN_PAR partition_by? order_by_expr_asc_desc CLOSE_PAR
   ;
   
  -of_OF_fset:
  +offset:
       COMMA signed_number
   ;
   
  -default_DEFAULT__value:
  +default_value:
       COMMA signed_number
   ;
   
  
positive.code: ;
  
  recursive_cte:
      cte_table_name AS_ OPEN_PAR initial_select UNION_ ALL_? recursive__select CLOSE_PAR
  ;
  
  common_table_expression:
  
negative.code:     select_stmt
  ;
  
  recursive_select:
      select_stmt
  ;
  
  