java.lang.Objectantlr.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.
Constructor Summary | |
TokenStreamSelector()
|
Method Summary | |
void |
addInputStream(TokenStream stream,
java.lang.String key)
|
TokenStream |
getCurrentStream()
Return the stream from tokens are being pulled at the moment. |
TokenStream |
getStream(java.lang.String sname)
|
Token |
nextToken()
|
TokenStream |
pop()
|
void |
push(java.lang.String sname)
|
void |
push(TokenStream stream)
|
void |
retry()
Abort recognition of current Token and try again. |
void |
select(java.lang.String sname)
|
void |
select(TokenStream stream)
Set the stream without pushing old stream |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public TokenStreamSelector()
Method Detail |
public void addInputStream(TokenStream stream, java.lang.String key)
public TokenStream getCurrentStream()
public TokenStream getStream(java.lang.String sname)
public Token nextToken() throws TokenStreamException
nextToken
in interface TokenStream
TokenStreamException
public TokenStream pop()
public void push(TokenStream stream)
public void push(java.lang.String sname)
public void retry() throws TokenStreamRetryException
TokenStreamRetryException
public void select(TokenStream stream)
public void select(java.lang.String sname) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException