anchor.diff:    ;
   
   LIT_STR
  -  : '"' ('\\\n' | '\\\r\n' | '\\' CHAR_ESCAPE | .)*? '"'
  +  : '"' ('\\\n' | '\\\r\n' | '\\' CHAR_ESCAPE | .)*? ('"' | EOF)
     ;
   
   LIT_BINARY : 'b' LIT_STR ;
  
positive.code: LINE_COMMENT      : '//' ~[\r\n]* -> type(COMMENT) ;
  
  DOC_BLOCK_COMMENT
    : ('/**' ~[*] | '/*!') (DOC_BLOCK_COMMENT | .)*? '*/' -> type(DOC_COMMENT)
    ;
  
  BLOCK_COMMENT : '/*' (BLOCK_COMMENT | .)*? '*/' -> type(COMMENT) ;
  
negative.code:   ;
  
  LIT_CHAR
    : '\'' ( '\\' CHAR_ESCAPE | ~[\\'\n\t\r] ) ('\'' | '\r\n' | EOF)
    ;
  
  LIT_BYTE
    : 'b\'' ( '\\' ( [xX] HEXIT HEXIT | [nrt\\'"0] ) | ~[\\'\n\t\r] ) ('\'' | '\r\n' | EOF)
    ;
  
  fragment INT_SUFFIX
  