dynamically-sized buffer of elements
Track object returned by nextElement upon end of stream; Return it later when they ask for LT passed end of input.
index of next element to fill
Skip tokens on any channel but this one; this is how we skip whitespace...
How deep have we gone?
Size of entire stream is unknown; we only know buffer size from FastQueue
Get and remove first element in queue; override {@link FastQueue#remove()}; it's the same, just checks for backtracking.
add n elements to buffer
Implement nextElement to supply a stream of elements to this lookahead buffer. Return EOF upon end of the stream we're pulling from.
Seek to a 0-indexed absolute token index. Normally used to seek backwards in the buffer. Does not force loading of nodes. To preserve backward compatibility, this method allows seeking past the end of the currently buffered data. In this case, the input pointer will be moved but the data will only actually be loaded upon the next call to {@link #consume} or {@link #LT} for {@code k>0}.
Make sure we have 'need' elements from current position p. Last valid p index is data.size()-1. p+need-1 is the data index 'need' elements ahead. If we need 1 element, (p+1-1)==p must be < data.size().
Return string of current buffer contents; non-destructive
Generated using TypeDoc
A token stream that pulls tokens from the code source on-demand and without tracking a complete buffer of the tokens. This stream buffers the minimum number of tokens possible. It's the same as OnDemandTokenStream except that OnDemandTokenStream buffers all tokens.
You can't use this stream if you pass whitespace or other off-channel tokens to the parser. The stream can't ignore off-channel tokens.
You can only look backwards 1 token: LT(-1).
Use this when you need to read from a socket or other infinite stream.
BufferedTokenStream
CommonTokenStream