Some interlinear commentary on the doc.
* Resets this stream to the beginning.
To me this implies a rewind. As previously noted, I don't see how this
works for the existing implementations.
* As all TokenStreams must be reusable,
* any implementations which have state that needs to be reset between
usages
* of the TokenStream, must implement this method. Note that if your
TokenStream
* caches tokens and feeds them back again after a reset,
What's the alternative? What happens with all the existing Tokenizers that
have no special implementation of #reset()?
* it is imperative
* that you clone the tokens when you store them away (on the first pass)
as
* well as when you return them (on future passes after {@link #reset()}).