antlr
Class TokenStreamSelector
- TokenStream
public class TokenStreamSelector
A token stream MUX (multiplexor) knows about n token streams
and can multiplex them onto the same channel for use by token
stream consumer like a parser. This is a way to have multiple
lexers break up the same input stream for a single parser.
Or, you can have multiple instances of the same lexer handle
multiple input streams; this works great for includes.
input
protected TokenStream input
The currently-selected token stream input
inputStreamNames
protected Hashtable inputStreamNames
The set of inputs to the MUX
streamStack
protected Stack streamStack
Used to track stack of input streams
TokenStreamSelector
public TokenStreamSelector()
addInputStream
public void addInputStream(TokenStream stream,
String key)
getCurrentStream
public TokenStream getCurrentStream()
Return the stream from tokens are being pulled at
the moment.
push
public void push(String sname)
retry
public void retry()
throws TokenStreamRetryException
Abort recognition of current Token and try again.
A stream can push a new stream (for include files
for example, and then retry(), which will cause
the current stream to abort back to this.nextToken().
this.nextToken() then asks for a token from the
current stream, which is the new "substream."
select
public void select(String sname)
throws IllegalArgumentException
select
public void select(TokenStream stream)
Set the stream without pushing old stream