public abstract class AbstractLexer extends java.lang.Object implements Lexer
AbstractLexer is a basic abstract implementation
which takes care of common functionality across all Lexers, such
as the buffer and offset issues, and for providing a basic
LexerToken object which just stores token and offset
information. Lexer,
LexerToken| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractLexer.DefaultLexerToken
The
DefaultLexerToken just implements a basic
LexerToken which stores a token and start/end offsets. |
| Modifier and Type | Field and Description |
|---|---|
protected int |
currentPos
The current position in the buffer where the next lex operation
will occur (assuming that
backup() has not been
called.) |
protected ReadTextBuffer |
textBuffer
The underlying text buffer we are lexing.
|
TK_EOF, TK_NOT_FOUND| Constructor and Description |
|---|
AbstractLexer() |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
backup()
Unlexes the last found token.
|
LexerToken |
createLexerToken()
Creates an empty
LexerToken for a specific
Lexer implementation to be passed in to the
lex() call to be filled in. |
ReadTextBuffer |
getTextBuffer()
Gets the text buffer that is being used by this Lexer.
|
abstract int |
lex(LexerToken lexedToken)
Scans the text buffer at the current position and returns the
token that was found.
|
void |
setPosition(int offset)
Sets the current lex (read) position to the given offset in the
buffer.
|
void |
setTextBuffer(ReadTextBuffer buffer)
Sets the text buffer that is to be used by this Lexer.
|
protected ReadTextBuffer textBuffer
protected int currentPos
backup() has not been
called.)public void setTextBuffer(ReadTextBuffer buffer)
setTextBuffer in interface Lexerbuffer - the text buffer to usepublic ReadTextBuffer getTextBuffer()
getTextBuffer in interface Lexerpublic void setPosition(int offset)
setPosition in interface Lexeroffset - the offset for the next lex() operation.public LexerToken createLexerToken()
LexerToken for a specific
Lexer implementation to be passed in to the
lex() call to be filled in.createLexerToken in interface Lexerpublic abstract int lex(LexerToken lexedToken)
lexedToken instance passed in to the
call.