code: private char readEscapeCharacter() throws IOException {
          if (pos == limit && !fillBuffer(1)) {
              throw syntaxError("Unterminated escape sequence");
          }
  
          char escaped = buffer[pos++];
          switch (escaped) {
              case 'u':
                  if (pos + 4 > limit && !fillBuffer(4)) {
                      throw syntaxError("Unterminated escape sequence");
                  }
                  String hex = stringPool.get(buffer, pos, 4);
                  pos += 4;
                  return (char) Integer.parseInt(hex, 16);
  
              case 't':
                  return '\t';
  
              case 'b':
                  return '\b';
  
              case 'n':
                  return '\n';
  
              case 'r':
                  return '\r';
  
              case 'f':
                  return '\f';
  
              case '\'':
              case '"':
              case '\\':
              default:
                  return escaped;
          }
      }
docs: Unescapes the character identified by the character or characters that
  immediately follow a backslash. The backslash '\' should have already
  been read. This supports both unicode escapes "u000A" and two-character
  escapes "\n".
  
  @throws NumberFormatException if any unicode escape sequences are
  malformed.