ANTLR Support Libraries 2.7.1+
|
#include <InputBuffer.hpp>
Public Member Functions | |
InputBuffer () | |
virtual | ~InputBuffer () |
virtual void | reset (void) |
Reset the input buffer to empty state. More... | |
void | commit (void) |
virtual void | consume () |
virtual void | fill (unsigned int amount) |
virtual int | getChar ()=0 |
virtual int | LA (unsigned int i) |
virtual unsigned int | mark () |
virtual bool | isMarked () const |
Are there any marks active in the InputBuffer. More... | |
virtual void | rewind (unsigned int mark) |
virtual unsigned int | entries () const |
std ::string | getLAChars () const |
std ::string | getMarkedChars () const |
Protected Member Functions | |
void | syncConsume () |
Protected Attributes | |
unsigned int | nMarkers |
unsigned int | markerOffset |
unsigned int | numToConsume |
CircularQueue< int > | queue |
Private Member Functions | |
InputBuffer (const InputBuffer &other) | |
InputBuffer & | operator= (const InputBuffer &other) |
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.
|
inline |
Create a character buffer
|
inlinevirtual |
|
private |
|
inline |
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.
|
inlinevirtual |
Mark another character for deferred consumption
|
virtual |
Get the number of non-consumed characters
|
virtual |
Ensure that the character buffer is sufficiently full
|
pure virtual |
Override this in subclasses to get the next character
Implemented in CharInputBuffer, and CharBuffer.
std::string InputBuffer::getLAChars | ( | void | ) | const |
get the current lookahead characters as a string
std::string InputBuffer::getMarkedChars | ( | void | ) | const |
get the current marked characters as a string
|
inlinevirtual |
Are there any marks active in the InputBuffer.
|
inlinevirtual |
Get a lookahead character
|
virtual |
Return an integer marker that can be used to rewind the buffer to its current state.
|
private |
|
inlinevirtual |
Reset the input buffer to empty state.
Reimplemented in CharInputBuffer.
|
virtual |
Rewind the character buffer to a marker.
mark | Marker returned previously from mark() |
|
inlineprotected |
Sync up deferred consumption
|
protected |
|
protected |
|
protected |
|
protected |