anchor.diff:  SPACES: [ \t\r\n]+ -> skip;
   
       
  -//{ Rule #504 <SIMPLE_LETTER> - simple_latin _letter was generalised into SIMPLE_LETTER
  +// Rule #504 <SIMPLE_LETTER> - simple_latin _letter was generalised into SIMPLE_LETTER
   //  Unicode is yet to be implemented - see NSF0
   fragment
   SIMPLE_LETTER
       : [A-Z]
       ;
  -//}
  -
  -
  -//  Rule #176 <DIGIT> was incorporated by <UNSIGNED_INTEGER> 
  -//{ Rule #615 <UNSIGNED_INTEGER> - subtoken typecast in <EXACT_NUM_LIT> 
  -fragment
  -UNSIGNED_INTEGER_FRAGMENT: [0-9]+ ;
   
   fragment
   FLOAT_FRAGMENT
       : UNSIGNED_INTEGER* '.'? UNSIGNED_INTEGER+
       ;
   
  -//{ Rule #097 <COMMENT>
  +// Rule #097 <COMMENT>
  +
   SINGLE_LINE_COMMENT: '--' ~('\r' | '\n')* (NEWLINE | EOF)   -> channel(HIDDEN);
  -MULTI_LINE_COMMENT: '/*' .*? '*/'                           -> channel(HIDDEN);
  +MULTI_LINE_COMMENT:  '/*' .*? '*/'                          -> channel(HIDDEN);
   
   // SQL*Plus prompt
   // TODO should be grammar rule, but tricky to implement
  +
   PROMPT
       : 'prompt' SPACE ( ~('\r' | '\n') )* (NEWLINE|EOF)
       ;
  
positive.code: 
  // Rule #358 <NATIONAL_CHAR_STRING_LIT> - subtoken typecast in <REGULAR_ID>, it also incorporates <character_representation>
  //  Lowercase 'n' is a usual addition to the standard
  NATIONAL_CHAR_STRING_LIT: 'N' '\'' (~('\'' | '\r' | '\n' ) | '\'' '\'' | NEWLINE)* '\'';
  
  //  Rule #040 <BIT_STRING_LIT> - subtoken typecast in <REGULAR_ID>
  //  Lowercase 'b' is a usual addition to the standard
  BIT_STRING_LIT: 'B' ('\'' [01]* '\'')+;
  
  //  Rule #284 <HEX_STRING_LIT> - subtoken typecast in <REGULAR_ID>
  //  Lowercase 'x' is a usual addition to the standard
  HEX_STRING_LIT: 'X' ('\'' [A-F0-9]* '\'')+;
  DOUBLE_PERIOD: '..';
  PERIOD:        '.';
  
  //{ Rule #238 <EXACT_NUM_LIT>
  //  This rule is a bit tricky - it resolves the ambiguity with <PERIOD> 
  
negative.code: fragment QS_PAREN   : QUOTE '(' .*? ')' QUOTE ;
  fragment QS_OTHER_CH: ~('<' | '{' | '[' | '(' | ' ' | '\t' | '\n' | '\r');
  
  DELIMITED_ID: '"' (~('"' | '\r' | '\n') | '"' '"')+ '"' ;
  
  // SQL_SPECIAL_CHAR was split into single rules
  
  PERCENT:                   '%';
  AMPERSAND:                 '&';
  LEFT_PAREN:                '(';
  RIGHT_PAREN:               ')';
  DOUBLE_ASTERISK:           '**';
  ASTERISK:                  '*';
  PLUS_SIGN:                 '+';
  MINUS_SIGN:                '-';
  COMMA:                     ',';
  SOLIDUS:                   '/';
  AT_SIGN:                   '@';
  ASSIGN_OP:                 ':=';
  
  // See OCI reference for more information about this
  
  BINDVAR
      : ':' SIMPLE_LETTER  (SIMPLE_LETTER | [0-9] | '_')*
      | ':' DELIMITED_ID  // not used in SQL but spotted in v$sqltext when using cursor_sharing
  