anchor.diff:      ;
   
   unpivot_clause
  -    : '(' expression FOR full_column_name IN '(' full_column_name_list ')' ')'
  +    : '(' unpivot_exp=expression FOR full_column_name IN '(' full_column_name_list ')' ')'
       ;
   
   full_column_name_list
  -    : full_column_name (',' full_column_name)*
  +    : column+=full_column_name (',' column+=full_column_name)*
       ;
   
   table_name_with_hint
  
positive.code:     ;
  
  table_source_item_joined
      : table_source_item join_part*
      ;
  
  table_source_item
      : table_name_with_hint        as_table_alias?
      | full_table_name             as_table_alias?
      | rowset_function             as_table_alias?
      | derived_table              (as_table_alias column_alias_list?)?
      | change_table                as_table_alias
      | function_call              (as_table_alias column_alias_list?)?
      | LOCAL_ID                    as_table_alias?
      | LOCAL_ID '.' function_call (as_table_alias column_alias_list?)?
      | open_xml
      | ':' ':' function_call       as_table_alias? // Build-in function (old syntax)
      ;
  
  // https://docs.microsoft.com/en-us/sql/t-sql/functions/openxml-transact-sql
  open_xml
      : OPENXML '(' expression ',' expression (',' expression)? ')'
      (WITH '(' schema_declaration ')' )?
      ;
  
  schema_declaration
      : column_declaration (',' column_declaration)*
      ;
  
  column_declaration
      : ID data_type (STRING)?
      ;
  
  change_table
      : CHANGETABLE '(' CHANGES table_name ',' (NULL | DECIMAL | LOCAL_ID) ')'
      ;
  
  // https://msdn.microsoft.com/en-us/library/ms191472.aspx
  join_part
      // https://msdn.microsoft.com/en-us/library/ms173815(v=sql.120).aspx
      : (INNER? |
         join_type=(LEFT | RIGHT | FULL) OUTER?) (join_hint=(LOOP | HASH | MERGE | REMOTE))?
         JOIN table_source ON search_condition
      | CROSS JOIN table_source
      | CROSS APPLY table_source
      | OUTER APPLY table_source
      | PIVOT pivot_clause as_table_alias
      | UNPIVOT unpivot_clause as_table_alias
      ;
  
  pivot_clause
  
negative.code: 
  // https://docs.microsoft.com/en-us/sql/t-sql/language-elements/try-catch-transact-sql
  try_catch_statement
      : BEGIN TRY ';'? try_clauses=sql_clauses+ END TRY ';'? BEGIN CATCH ';'? catch_clauses=sql_clauses* END CATCH ';'?
      ;
  
  // https://docs.microsoft.com/en-us/sql/t-sql/language-elements/waitfor-transact-sql
  