public interface TokenSource
nextToken()
and also must reveal it's source of characters; CommonToken
's text is
computed from a CharStream
; it only store indices into the char
stream.
Errors from the lexer are never passed to the parser. Either you want to keep
going or you do not upon token recognition error. If you do not want to
continue lexing then you do not want to continue parsing. Just throw an
exception not under RecognitionException
and Java will naturally toss
you all the way out of the recognizers. If you want to continue lexing then
you should not throw an exception to the parser--it has already requested a
token. Keep lexing until you get a valid one. Just report errors and keep
going, looking for a valid token.
Modifier and Type | Method and Description |
---|---|
int |
getCharPositionInLine()
Get the index into the current line for the current position in the input
stream.
|
CharStream |
getInputStream()
Get the
CharStream from which this token source is currently
providing tokens. |
int |
getLine()
Get the line number for the current position in the input stream.
|
String |
getSourceName()
Gets the name of the underlying input source.
|
TokenFactory<?> |
getTokenFactory()
Gets the
TokenFactory this token source is currently using for
creating Token objects from the input. |
Token |
nextToken()
Return a
Token object from your input stream (usually a
CharStream ). |
void |
setTokenFactory(TokenFactory<?> factory)
Set the
TokenFactory this token source should use for creating
Token objects from the input. |
Token nextToken()
Token
object from your input stream (usually a
CharStream
). Do not fail/return upon lexing error; keep chewing
on the characters until you get a good one; errors are not passed through
to the parser.int getLine()
int getCharPositionInLine()
CharStream getInputStream()
CharStream
from which this token source is currently
providing tokens.CharStream
associated with the current position in
the input, or null
if no input stream is available for the token
source.String getSourceName()
IntStream.UNKNOWN_SOURCE_NAME
.void setTokenFactory(TokenFactory<?> factory)
TokenFactory
this token source should use for creating
Token
objects from the input.factory
- The TokenFactory
to use for creating tokens.TokenFactory<?> getTokenFactory()
TokenFactory
this token source is currently using for
creating Token
objects from the input.TokenFactory
currently used by this token source.Copyright © 1992-2015 ANTLR. All Rights Reserved.