anchor.diff:      : id
       | STRING
       ;
  +
  +table_value_constructor
  +    : VALUES '(' expression_list ')' (',' '(' expression_list ')')*
  +    ;
       
  -
   expression_list
       : expression (',' expression)*
       ;
   
  -// https://msdn.microsoft.com/en-us/library/ms181765.aspx
  -case_expr
  -    : CASE expression (WHEN expression THEN expression)+ (ELSE expression)? END
  -    | CASE (WHEN search_condition THEN expression)+ (ELSE expression)? END
  -    ;
  -
   // https://msdn.microsoft.com/en-us/library/ms189798.aspx
   ranking_windowed_function
  -    : RANK '(' ')' over_clause
  -    | DENSE_RANK '(' ')' over_clause
  +    : (RANK | DENSE_RANK | ROW_NUMBER) '(' ')' over_clause
       | NTILE '(' expression ')' over_clause
  -    | ROW_NUMBER '(' ')' over_clause
       ;
   
   // https://msdn.microsoft.com/en-us/library/ms173454.aspx
   aggregate_windowed_function
  -    : AVG '(' all_distinct_expression ')' over_clause?
  +    : (AVG | MAX | MIN | SUM | STDEV | STDEVP | VAR | VARP)
  +      '(' all_distinct_expression ')' over_clause?
  +    | (COUNT | COUNT_BIG)
  +      '(' ('*' | all_distinct_expression) ')' over_clause?
       | CHECKSUM_AGG '(' all_distinct_expression ')'
       | GROUPING '(' expression ')'
       | GROUPING_ID '(' expression_list ')'
  -    | MAX '(' all_distinct_expression ')' over_clause?
  -    | MIN '(' all_distinct_expression ')' over_clause?
  -    | SUM '(' all_distinct_expression ')' over_clause?
  -    | STDEV '(' all_distinct_expression ')' over_clause?
  -    | STDEVP '(' all_distinct_expression ')' over_clause?
  -    | VAR '(' all_distinct_expression ')' over_clause?
  -    | VARP '(' all_distinct_expression ')' over_clause?
  -    | COUNT '(' ('*' | all_distinct_expression) ')' over_clause?
  -    | COUNT_BIG '(' ('*' | all_distinct_expression) ')' over_clause?
       ;
   
   all_distinct_expression
  
positive.code: // Labels for better AST traverse.
  cfl_statement
      // https://msdn.microsoft.com/en-us/library/ms190487.aspx
      : BEGIN ';'? sql_clause* END ';'?                #begin_statement
      // https://msdn.microsoft.com/en-us/library/ms181271.aspx
      | BREAK ';'?                                     #break_statement
      // https://msdn.microsoft.com/en-us/library/ms174366.aspx
  
negative.code:     | PATH
      | PRECEDING
      | PRIOR
      | PRIVILEGES
      | RANGE
      | RANK
      | READONLY
  