Top Description Methods
org.antlr.v4.runtime

public Interface TokenSource

Known Direct Implementers
org.antlr.v4.runtime.Lexer, org.antlr.v4.runtime.ListTokenSource

A source of tokens must provide a sequence of tokens via 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.

Method Summary

Modifier and TypeMethod and Description
public int

Returns:

The line number for the current position in the input stream, or -1 if the current token source does not track character positions.
getCharPositionInLine
()

Get the index into the current line for the current position in the input stream.

public CharStream

Returns:

The CharStream associated with the current position in the input, or null if no input stream is available for the token source.
getInputStream
()

Get the CharStream from which this token source is currently providing tokens.

public int

Returns:

The line number for the current position in the input stream, or 0 if the current token source does not track line numbers.
getLine
()

Get the line number for the current position in the input stream.

public String
getSourceName()

Gets the name of the underlying input source.

public TokenFactory<?>

Returns:

The TokenFactory currently used by this token source.
getTokenFactory
()

Gets the TokenFactory this token source is currently using for creating Token objects from the input.

public Token
nextToken()

Return a Token object from your input stream (usually a CharStream).

public void
setTokenFactory(TokenFactory<?>
The TokenFactory to use for creating tokens.
factory
)

Set the TokenFactory this token source should use for creating Token objects from the input.

Method Detail

getCharPositionInLineback to summary
public int getCharPositionInLine()

Get the index into the current line for the current position in the input stream. The first character on a line has position 0.

Returns:int

The line number for the current position in the input stream, or -1 if the current token source does not track character positions.

getInputStreamback to summary
public CharStream getInputStream()

Get the CharStream from which this token source is currently providing tokens.

Returns:CharStream

The CharStream associated with the current position in the input, or null if no input stream is available for the token source.

getLineback to summary
public int getLine()

Get the line number for the current position in the input stream. The first line in the input is line 1.

Returns:int

The line number for the current position in the input stream, or 0 if the current token source does not track line numbers.

getSourceNameback to summary
public String getSourceName()

Gets the name of the underlying input source. This method returns a non-null, non-empty string. If such a name is not known, this method returns IntStream#UNKNOWN_SOURCE_NAME.

getTokenFactoryback to summary
public TokenFactory<?> getTokenFactory()

Gets the TokenFactory this token source is currently using for creating Token objects from the input.

Returns:TokenFactory<?>

The TokenFactory currently used by this token source.

nextTokenback to summary
public Token nextToken()

Return a 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.

setTokenFactoryback to summary
public void setTokenFactory(TokenFactory<?> factory)

Set the TokenFactory this token source should use for creating Token objects from the input.

Parameters
factory:TokenFactory<?>

The TokenFactory to use for creating tokens.