Package antlr
Class InputBuffer
java.lang.Object
antlr.InputBuffer
- Direct Known Subclasses:
ByteBuffer
,CharBuffer
,DebuggingInputBuffer
A Stream of characters fed to the lexer from a InputStream that can
be rewound via mark()/rewind() methods.
A dynamic array is used to buffer up all the input characters. Normally, "k" characters are stored in the buffer. More characters may be stored during guess mode (testing syntactic predicate), or when LT(i>k) is referenced. Consumption of characters is deferred. In other words, reading the next character is not done by conume(), but deferred until needed by LA or LT.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
commit()
This method updates the state of the input buffer so that the text matched since the most recent mark() is no longer held by the buffer.void
consume()
Mark another character for deferred consumptionabstract void
fill
(int amount) Ensure that the input buffer is sufficiently fullboolean
isMarked()
char
LA
(int i) Get a lookahead characterint
mark()
Return an integer marker that can be used to rewind the buffer to its current state.void
reset()
Reset the input buffervoid
rewind
(int mark) Rewind the character buffer to a marker.protected void
Sync up deferred consumption
-
Field Details
-
nMarkers
protected int nMarkers -
markerOffset
protected int markerOffset -
numToConsume
protected int numToConsume -
queue
-
-
Constructor Details
-
InputBuffer
public InputBuffer()Create an input buffer
-
-
Method Details
-
commit
public void commit()This method updates the state of the input buffer so that the text matched since the most recent mark() is no longer held by the buffer. So, you either do a mark/rewind for failed predicate or mark/commit to keep on parsing without rewinding the input. -
consume
public void consume()Mark another character for deferred consumption -
fill
Ensure that the input buffer is sufficiently full- Throws:
CharStreamException
-
getLAChars
-
getMarkedChars
-
isMarked
public boolean isMarked() -
LA
Get a lookahead character- Throws:
CharStreamException
-
mark
public int mark()Return an integer marker that can be used to rewind the buffer to its current state. -
rewind
public void rewind(int mark) Rewind the character buffer to a marker.- Parameters:
mark
- Marker returned previously from mark()
-
reset
public void reset()Reset the input buffer -
syncConsume
protected void syncConsume()Sync up deferred consumption
-