docs: public char expectSymbol(String message, char... symbols) throws IOException, JsonException {
          if (symbols.length == 0) {
              throw new IllegalArgumentException("No symbols to match.");
          }
          if (!hasNext()) {
              if (symbols.length == 1) {
                  throw newParseException("Expected %s ('%c'): Got end of file",
                                          message,
                                          symbols[0]);
              }
  
              throw newParseException("Expected %s (one of ['%s']): Got end of file",
                                      message,
                                      Strings.joinP("', '", symbols));
          } else {
              for (char symbol : symbols) {
                  if (unreadToken.isSymbol(symbol)) {
                      unreadToken = null;
                      return symbol;
                  }
              }
  
              if (symbols.length == 1) {
                  throw newMismatchException("Expected %s ('%c'): but found '%s'",
                                             message,
                                             symbols[0],
                                             unreadToken.asString());
              }
  
              throw newMismatchException("Expected %s (one of ['%s']): but found '%s'",
                                         message,
                                         Strings.joinP("', '", symbols),
                                         unreadToken.asString());
          }
      }