code: def _readResponse(self):
          
          traps = []
          reply_word = None
          while reply_word != '!done':
              reply_word, words = self._readSentence()
              if reply_word == '!trap':
                  traps.append(TrapError(**words))
              elif reply_word in ('!re', '!done') and words:
                  yield words
  
          if len(traps) > 1:
              raise MultiTrapError(*traps)
          elif len(traps) == 1:
              raise traps[0]
docs: Yield each row of response untill !done is received.
  
          :throws TrapError: If one !trap is received.
          :throws MultiTrapError: If > 1 !trap is received.