code: public String next() throws IOException {
          if (done) {
              return null;
          }
          for (;;) {
              if (line == null) {
                  line = reader.readLineSkippingComments();
                  if (line == null) {
                      done = true;
                      return null;
                  }
                  pos = 0;
              }
              buf.setLength(0);
              lastpos = pos;
              pos = nextToken(pos);
              if (pos < 0) {
                  line = null;
                  continue;
              }
              return buf.toString();
          }
      }
docs: Return the next token from this iterator, or null if the last
  token has been returned.