docs: protected final int read_string_char(ProhibitedCharacters prohibitedCharacters) throws IOException
      {
          int c = _stream.read();
          if (prohibitedCharacters.includes(c)) {
              error("invalid character [" + printCodePointAsString(c) + "]");
          }
          // the c == '\\' clause will cause us to eat ALL slash-newlines
          if (c == '\r' || c == '\n' || c == '\\') {
              c = line_count(c);
          }
          return c;
      }