Return a token. If tokens have been stacked using
push_token(), pop a token off the stack. Otherwise, read one
from the input stream. If reading encounters an immediate
end-of-file, an empty string is returned.
The string of characters that are recognized as comment beginners.
All characters from the comment beginner to end of line are ignored.
Includes just "#" by default.
Characters that will be considered string quotes. The token
accumulates until the same quote is encountered again (thus, different
quote types protect each other as in the shell.) By default, includes
ASCII single and double quotes.
Note that any character not declared to be a word character,
whitespace, or a quote will be returned as a single-character token.
Quote and comment characters are not recognized within words. Thus,
the bare words "ain't" and "ain#t" would be returned as single
tokens by the default parser.