Puma Reference Manual Puma::TokenProvider Class Reference



Puma::TokenProvider Class Reference

Reads tokens from a token source. More...

#include <Puma/TokenProvider.h>

Inheritance diagram for Puma::TokenProvider:
Inheritance graph

List of all members.

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.
PumaTokenSourcesource () const
 Get the token source.
Tokennext ()
 Read the next token from the token source.
Tokencurrent () 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 Tokentoken () const
 Get the current token.

Protected Attributes

PumaTokenSource_source
TokenStore _tokens
TokenStore::Iterator _read_pos

Detailed Description

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.


Member Typedef Documentation

typedef TokenStore::Iterator Puma::TokenProvider::State

Read position.

typedef BCList<void*, 8192> Puma::TokenProvider::TokenStore [protected]

Constructor & Destructor Documentation

Constructor.

Parameters:
sThe 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.


Member Function Documentation

Token* Puma::TokenProvider::current ( ) const [inline]

Get the last token read from the token source.

Get the current read position.

void Puma::TokenProvider::init ( ) [inline]

Initialize the token provider by reading the first token.

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.

Parameters:
restored_posThe new read position.

Get the token source.

virtual Token* Puma::TokenProvider::token ( ) const [inline, protected, virtual]

Get the current token.

Reimplemented in Puma::InstantiationTokenProvider.


Member Data Documentation

TokenStore::Iterator Puma::TokenProvider::_read_pos [protected]