wibble
1.1
|
#include <parse.h>
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 |
Context & | context () |
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 | |
Context * | ctx |
int | _position |
typedef ParseContext< Token, Stream > wibble::Parser< Token, Stream >::Context |
typedef Context::Fail wibble::Parser< Token, Stream >::Fail |
typedef Fail::Type wibble::Parser< Token, Stream >::FailType |
typedef Token::Id wibble::Parser< Token, Stream >::TokenId |
|
inline |
|
inline |
|
inline |
|
inline |
References assert, and wibble::Parser< Token, Stream >::ctx.
Referenced by wibble::Parser< Token, Stream >::eat(), wibble::Parser< Token, Stream >::fail(), wibble::Parser< Token, Stream >::list(), wibble::Parser< Token, Stream >::many(), wibble::Parser< Token, Stream >::position(), and wibble::Parser< Token, Stream >::rewind().
|
inline |
References wibble::Parser< Token, Stream >::_position, wibble::Parser< Token, Stream >::context(), wibble::Parser< Token, Stream >::fail(), wibble::ParseContext< Token, Stream >::position, wibble::ParseContext< Token, Stream >::remove(), wibble::Parser< Token, Stream >::rewind(), and wibble::Token< _Id >::valid().
|
inline |
References wibble::Parser< Token, Stream >::fail(), wibble::Token< _Id >::id, and wibble::Parser< Token, Stream >::rewind().
Referenced by wibble::Parser< Token, Stream >::colon(), wibble::Parser< Token, Stream >::list(), wibble::Parser< Token, Stream >::maybe(), wibble::Parser< Token, Stream >::next(), and wibble::Parser< Token, Stream >::semicolon().
|
inline |
References wibble::Parser< Token, Stream >::maybe().
|
inline |
References wibble::Parser< Token, Stream >::_position, wibble::Parser< Token, Stream >::context(), wibble::ParseContext< Token, Stream >::failures, and wibble::ParseContext< Token, Stream >::position.
Referenced by wibble::Parser< Token, Stream >::colon(), wibble::Parser< Token, Stream >::eat(), wibble::Parser< Token, Stream >::maybe(), and wibble::Parser< Token, Stream >::semicolon().
|
inline |
References wibble::Parser< Token, Stream >::eat().
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by wibble::Parser< Token, Stream >::either(), and wibble::Parser< Token, Stream >::maybe().
|
inline |
References wibble::Parser< Token, Stream >::maybe().
|
inline |
|
inline |
|
inline |
References wibble::Parser< Token, Stream >::eat(), wibble::Token< _Id >::id, and wibble::Parser< Token, Stream >::rewind().
Referenced by wibble::Parser< Token, Stream >::list().
|
inline |
|
inline |
References wibble::Parser< Token, Stream >::_position, wibble::Parser< Token, Stream >::context(), wibble::ParseContext< Token, Stream >::position, and wibble::ParseContext< Token, Stream >::rewind().
Referenced by wibble::Parser< Token, Stream >::colon(), wibble::Parser< Token, Stream >::eat(), wibble::Parser< Token, Stream >::list(), wibble::Parser< Token, Stream >::many(), wibble::Parser< Token, Stream >::maybe(), wibble::Parser< Token, Stream >::next(), and wibble::Parser< Token, Stream >::semicolon().
|
inline |
|
inline |
References wibble::Parser< Token, Stream >::ctx.
int wibble::Parser< Token, Stream >::_position |
Context* wibble::Parser< Token, Stream >::ctx |
Referenced by wibble::Parser< Token, Stream >::context(), and wibble::Parser< Token, Stream >::valid().