code: @Override
      public Iterator<String> iterator() {
          this.reset();
          Iterator<String> ret = new Iterator<String>() {
              @Override
              public boolean hasNext() {
                  return BasicLineIterator.this.hasNext();
              }
  
              @Override
              public String next() {
                  return BasicLineIterator.this.nextSentence();
              }
  
              @Override
              public void remove() {
                  throw new UnsupportedOperationException();
              }
          };
  
          return ret;
      }
docs: Implentation for Iterable interface.
  Please note: each call for iterator() resets underlying SentenceIterator to the beginning;
  
  @return