public interface TokenStream extends IntStream
EOF, UNKNOWN_SOURCE_NAME
Modifier and Type | Method and Description |
---|---|
Token |
get(int index)
Gets the
Token at the specified index in the stream. |
String |
getText()
Return the text of all tokens in the stream.
|
String |
getText(Interval interval)
Return the text of all tokens within the specified
interval . |
String |
getText(RuleContext ctx)
Return the text of all tokens in the source interval of the specified
context.
|
String |
getText(Token start,
Token stop)
Return the text of all tokens in this stream between
start and
stop (inclusive). |
TokenSource |
getTokenSource()
Gets the underlying
TokenSource which provides tokens for this
stream. |
Token |
LT(int k)
|
Token LT(int k)
Token
instance associated with the value returned by
LA(k)
. This method has the same pre- and post-conditions as
IntStream.LA(int)
. In addition, when the preconditions of this method
are met, the return value is non-null and the value of
LT(k).getType()==LA(k)
.IntStream.LA(int)
Token get(int index)
Token
at the specified index
in the stream. When
the preconditions of this method are met, the return value is non-null.
The preconditions for this method are the same as the preconditions of
IntStream.seek(int)
. If the behavior of seek(index)
is
unspecified for the current state and given index
, then the
behavior of this method is also unspecified.
The symbol referred to by index
differs from seek()
only
in the case of filtering streams where index
lies before the end
of the stream. Unlike seek()
, this method does not adjust
index
to point to a non-ignored symbol.
IllegalArgumentException
- if {code index} is less than 0UnsupportedOperationException
- if the stream does not support
retrieving the token at the specified indexTokenSource getTokenSource()
TokenSource
which provides tokens for this
stream.String getText(Interval interval)
interval
. This
method behaves like the following code (including potential exceptions
for violating preconditions of get(int)
, but may be optimized by the
specific implementation.
TokenStream stream = ...; String text = ""; for (int i = interval.a; i <= interval.b; i++) { text += stream.get(i).getText(); }
interval
- The interval of tokens within this stream to get text
for.NullPointerException
- if interval
is null
String getText()
IntStream.size()
and getText(Interval)
, but may be
optimized by the specific implementation.
TokenStream stream = ...; String text = stream.getText(new Interval(0, stream.size()));
String getText(RuleContext ctx)
getText(Interval)
, but may be
optimized by the specific implementation.
If ctx.getSourceInterval()
does not return a valid interval of
tokens provided by this stream, the behavior is unspecified.
TokenStream stream = ...; String text = stream.getText(ctx.getSourceInterval());
ctx
- The context providing the source interval of tokens to get
text for.ctx
.String getText(Token start, Token stop)
start
and
stop
(inclusive).
If the specified start
or stop
token was not provided by
this stream, or if the stop
occurred before the start
token, the behavior is unspecified.
For streams which ensure that the Token.getTokenIndex()
method is
accurate for all of its provided tokens, this method behaves like the
following code. Other streams may implement this method in other ways
provided the behavior is consistent with this at a high level.
TokenStream stream = ...; String text = ""; for (int i = start.getTokenIndex(); i <= stop.getTokenIndex(); i++) { text += stream.get(i).getText(); }
start
- The first token in the interval to get text for.stop
- The last token in the interval to get text for (inclusive).start
and stop
tokens.UnsupportedOperationException
- if this stream does not support
this method for the specified tokensCopyright © 1992-2016 ANTLR. All Rights Reserved.