private void readTokens(ImapResponse response) throws IOException {
    response.clear();

    Object firstToken = readToken(response);

    checkTokenIsString(firstToken);
    String symbol = (String) firstToken;

    response.add(symbol);

    if (isStatusResponse(symbol)) {
      parseResponseText(response);
    } else if (equalsIgnoreCase(symbol, Responses.LIST)
        || equalsIgnoreCase(symbol, Responses.LSUB)) {
      parseListResponse(response);
    } else {
      Object token;
      while ((token = readToken(response)) != null) {
        if (!(token instanceof ImapList)) {
          response.add(token);
        }
      }
    }
  }