wibble  1.1
Public Types | Public Member Functions | Public Attributes | List of all members
wibble::Parser< Token, Stream > Struct Template Reference

#include <parse.h>

Collaboration diagram for wibble::Parser< Token, Stream >:
Collaboration graph
[legend]

Public Types

typedef Token::Id TokenId
 
typedef ParseContext< Token,
Stream > 
Context
 
typedef Context::Fail Fail
 
typedef Fail::Type FailType
 

Public Member Functions

bool valid () const
 
Contextcontext ()
 
int position ()
 
void rewind (int i)
 
void fail (const char *what, FailType type=FailType::Syntax) __attribute__((noreturn))
 
void semicolon ()
 
void colon ()
 
Token eat (TokenId id)
 
template<typename F , typename G >
void either (F f, void(G::*g)())
 
template<typename F , typename G >
bool maybe (F f, G g)
 
template<typename F , typename G , typename H >
bool maybe (F f, G g, H h)
 
template<typename F >
bool maybe (void(F::*f)())
 
bool maybe (TokenId id)
 
template<typename T , typename I >
void many (I i)
 
template<typename T , typename I >
void list (I i, TokenId sep)
 
template<typename T , typename I , typename F >
void list (I i, void(F::*sep)())
 
template<typename T , typename I >
void list (I i, TokenId first, TokenId sep, TokenId last)
 
Token eat (bool _fail=true)
 
bool next (TokenId id)
 
 Parser (Context &c)
 
 Parser ()
 

Public Attributes

Contextctx
 
int _position
 

Member Typedef Documentation

template<typename Token , typename Stream >
typedef ParseContext< Token, Stream > wibble::Parser< Token, Stream >::Context
template<typename Token , typename Stream >
typedef Context::Fail wibble::Parser< Token, Stream >::Fail
template<typename Token , typename Stream >
typedef Fail::Type wibble::Parser< Token, Stream >::FailType
template<typename Token , typename Stream >
typedef Token::Id wibble::Parser< Token, Stream >::TokenId

Constructor & Destructor Documentation

template<typename Token , typename Stream >
wibble::Parser< Token, Stream >::Parser ( Context c)
inline
template<typename Token , typename Stream >
wibble::Parser< Token, Stream >::Parser ( )
inline

Member Function Documentation

template<typename Token , typename Stream >
void wibble::Parser< Token, Stream >::colon ( )
inline
template<typename Token , typename Stream >
Context& wibble::Parser< Token, Stream >::context ( )
inline
template<typename Token , typename Stream >
Token wibble::Parser< Token, Stream >::eat ( TokenId  id)
inline
template<typename Token , typename Stream >
Token wibble::Parser< Token, Stream >::eat ( bool  _fail = true)
inline
template<typename Token , typename Stream >
template<typename F , typename G >
void wibble::Parser< Token, Stream >::either ( f,
void(G::*)()  g 
)
inline
template<typename Token , typename Stream >
void wibble::Parser< Token, Stream >::fail ( const char *  what,
FailType  type = FailType::Syntax 
)
inline
template<typename Token , typename Stream >
template<typename T , typename I >
void wibble::Parser< Token, Stream >::list ( i,
TokenId  sep 
)
inline
template<typename Token , typename Stream >
template<typename T , typename I , typename F >
void wibble::Parser< Token, Stream >::list ( i,
void(F::*)()  sep 
)
inline
template<typename Token , typename Stream >
template<typename T , typename I >
void wibble::Parser< Token, Stream >::list ( i,
TokenId  first,
TokenId  sep,
TokenId  last 
)
inline
template<typename Token , typename Stream >
template<typename T , typename I >
void wibble::Parser< Token, Stream >::many ( i)
inline
template<typename Token , typename Stream >
template<typename F , typename G >
bool wibble::Parser< Token, Stream >::maybe ( f,
g 
)
inline
template<typename Token , typename Stream >
template<typename F , typename G , typename H >
bool wibble::Parser< Token, Stream >::maybe ( f,
g,
h 
)
inline
template<typename Token , typename Stream >
template<typename F >
bool wibble::Parser< Token, Stream >::maybe ( void(F::*)()  f)
inline
template<typename Token , typename Stream >
bool wibble::Parser< Token, Stream >::maybe ( TokenId  id)
inline
template<typename Token , typename Stream >
bool wibble::Parser< Token, Stream >::next ( TokenId  id)
inline
template<typename Token , typename Stream >
int wibble::Parser< Token, Stream >::position ( )
inline
template<typename Token , typename Stream >
void wibble::Parser< Token, Stream >::rewind ( int  i)
inline
template<typename Token , typename Stream >
void wibble::Parser< Token, Stream >::semicolon ( )
inline
template<typename Token , typename Stream >
bool wibble::Parser< Token, Stream >::valid ( ) const
inline

Member Data Documentation

template<typename Token , typename Stream >
int wibble::Parser< Token, Stream >::_position
template<typename Token , typename Stream >
Context* wibble::Parser< Token, Stream >::ctx

The documentation for this struct was generated from the following file: