A representation of a token. The body field points to the underlying string
from which the characters in this token come. The indices field contains
a range representing which contiguous characters are used. The tags field is
a vector of borrowed strings with user-defined values.
Represents the possible shapes of a vector of tokens. A vector of tokens could
contain multiple tokens, a single token (a common special case), or none at
all (a rare corner case).
Processes a rule across a vector of tokens. Starting from the first token,
iteratively applies the rule on a single token. If that application returns
None, continues applying the rule on the token and the next, then the next,
and so on until the function returns Some or there are no tokens left to
process. This process is explained more thoroughly with examples in the
readme.
Chops up a string slice into a vector of owned tokens. Also appends an empty
token to the tail of the vector to enable certain lexing functions like
scanning for words.