antlr

Class TokenStreamSelector

public class TokenStreamSelector extends Object implements TokenStream, IASDebugStream

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.
Field Summary
protected TokenStreaminput
The currently-selected token stream input
protected HashtableinputStreamNames
The set of inputs to the MUX
protected StackstreamStack
Used to track stack of input streams
Constructor Summary
TokenStreamSelector()
Method Summary
voidaddInputStream(TokenStream stream, String key)
TokenStreamgetCurrentStream()
Return the stream from tokens are being pulled at the moment.
StringgetEntireText()
TokenOffsetInfogetOffsetInfo(Token token)
TokenStreamgetStream(String sname)
TokennextToken()
TokenStreampop()
voidpush(TokenStream stream)
voidpush(String sname)
voidretry()
Abort recognition of current Token and try again.
voidselect(TokenStream stream)
Set the stream without pushing old stream
voidselect(String sname)

Field Detail

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

Constructor Detail

TokenStreamSelector

public TokenStreamSelector()

Method Detail

addInputStream

public void addInputStream(TokenStream stream, String key)

getCurrentStream

public TokenStream getCurrentStream()
Return the stream from tokens are being pulled at the moment.

getEntireText

public String getEntireText()

getOffsetInfo

public TokenOffsetInfo getOffsetInfo(Token token)

getStream

public TokenStream getStream(String sname)

nextToken

public Token nextToken()

pop

public TokenStream pop()

push

public void push(TokenStream stream)

push

public void push(String sname)

retry

public void retry()
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(TokenStream stream)
Set the stream without pushing old stream

select

public void select(String sname)