Puma Reference Manual | Puma::TokenProvider Class Reference |
Reads tokens from a token source. More...
#include <Puma/TokenProvider.h>
Public Types | |
typedef TokenStore::Iterator | State |
Read position. | |
Public Member Functions | |
TokenProvider (PumaTokenSource &s) | |
Constructor. | |
virtual | ~TokenProvider () |
Destructor. | |
void | init () |
Initialize the token provider by reading the first token. | |
PumaTokenSource & | source () const |
Get the token source. | |
Token * | next () |
Read the next token from the token source. | |
Token * | current () const |
Get the last token read from the token source. | |
State | get_state () |
Get the current read position. | |
void | set_state (State restored_pos) |
Restore the read position. | |
Protected Types | |
typedef BCList< void *, 8192 > | TokenStore |
Protected Member Functions | |
virtual void * | read () |
Read next token. | |
virtual Token * | token () const |
Get the current token. | |
Protected Attributes | |
PumaTokenSource & | _source |
TokenStore | _tokens |
TokenStore::Iterator | _read_pos |
Reads tokens from a token source.
Supports unlimited look ahead. A token source can be a file, a string, a token preprocessor, and so on.
typedef TokenStore::Iterator Puma::TokenProvider::State |
Read position.
typedef BCList<void*, 8192> Puma::TokenProvider::TokenStore [protected] |
Puma::TokenProvider::TokenProvider | ( | PumaTokenSource & | s | ) | [inline] |
Constructor.
s | The token source from which to read the tokens. |
virtual Puma::TokenProvider::~TokenProvider | ( | ) | [inline, virtual] |
Destructor.
The compiler complains if we done define a virtual destrcutor.
Token* Puma::TokenProvider::current | ( | ) | const [inline] |
Get the last token read from the token source.
State Puma::TokenProvider::get_state | ( | ) | [inline] |
Get the current read position.
void Puma::TokenProvider::init | ( | ) | [inline] |
Initialize the token provider by reading the first token.
Token* Puma::TokenProvider::next | ( | ) | [inline] |
Read the next token from the token source.
virtual void* Puma::TokenProvider::read | ( | ) | [inline, protected, virtual] |
Read next token.
Reimplemented in Puma::InstantiationTokenProvider.
void Puma::TokenProvider::set_state | ( | State | restored_pos | ) | [inline] |
Restore the read position.
restored_pos | The new read position. |
PumaTokenSource& Puma::TokenProvider::source | ( | ) | const [inline] |
Get the token source.
virtual Token* Puma::TokenProvider::token | ( | ) | const [inline, protected, virtual] |
Get the current token.
Reimplemented in Puma::InstantiationTokenProvider.
TokenStore::Iterator Puma::TokenProvider::_read_pos [protected] |
PumaTokenSource& Puma::TokenProvider::_source [protected] |
TokenStore Puma::TokenProvider::_tokens [protected] |