anchor.diff:  // Byte String Literals according to Python 3.4.2 grammar
   // Bytes are always prefixed with 'b' or 'B', and can only contain ASCII
   // Any byte with a numeric value of >= 128 must be escaped
  +//
  +// Also implemented code refactoring to reduce runtime size of parser
   
   STRING
       : (STRPREFIX)? (SLSTRING)+
  
positive.code: SLBYTESTRING
      : '\'' (BYTES_CHAR_SQ | BYTES_ESC)* '\''
      | '"' (BYTES_CHAR_DQ | BYTES_ESC)* '"'
      ;
  
  fragment
  
negative.code:     : ('0'..'9'|'a'..'f'|'A'..'F')
      ;
  
  fragment
  DIGIT
      : ('0'..'9')
      ;
  
  fragment
  FLOAT_NO_EXP
      : INT_PART? FRAC_PART
      | INT_PART '.'
      ;
  
  fragment
  FLOAT_EXP
      : ( INT_PART | FLOAT_NO_EXP ) EXPONENT
      ;
  
  fragment
  INT_PART
      : DIGIT+
      ;
  
  fragment
  FRAC_PART
      : '.' DIGIT+
      ;
  
  // The following fragments are for string handling
  
  // any form of 'ur' is illegal
  fragment
  STRPREFIX
      : 'r' | 'R' | 'u' | 'U'
  