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

#include <parse.h>

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

Public Types

typedef std::deque< char > Window
 

Public Member Functions

void shift ()
 
bool eof ()
 
std::string window (unsigned n)
 
bool ensure_window (unsigned n)
 
void consume (int n)
 
void consume (const std::string &s)
 
void consume (const Token &t)
 
void keep (typename Token::Id id, const std::string &data)
 
template<typename I >
bool match (I begin, I end)
 
void match (const std::string &data, typename Token::Id id)
 
void match (Regexp &r, typename Token::Id id)
 
void match (int(*first)(int), int(*rest)(int), typename Token::Id id)
 
void match (const std::string &from, const std::string &to, typename Token::Id id)
 
void skipWhitespace ()
 
Token decide ()
 
 Lexer (Stream &s)
 

Public Attributes

Stream & stream
 
Window _window
 
Position current
 
Token _match
 

Member Typedef Documentation

template<typename Token, typename Stream>
typedef std::deque< char > wibble::Lexer< Token, Stream >::Window

Constructor & Destructor Documentation

template<typename Token, typename Stream>
wibble::Lexer< Token, Stream >::Lexer ( Stream &  s)
inline

Member Function Documentation

template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::consume ( int  n)
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::consume ( const std::string &  s)
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::consume ( const Token t)
inline
template<typename Token, typename Stream>
Token wibble::Lexer< Token, Stream >::decide ( )
inline
template<typename Token, typename Stream>
bool wibble::Lexer< Token, Stream >::ensure_window ( unsigned  n)
inline
template<typename Token, typename Stream>
bool wibble::Lexer< Token, Stream >::eof ( )
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::keep ( typename Token::Id  id,
const std::string &  data 
)
inline
template<typename Token, typename Stream>
template<typename I >
bool wibble::Lexer< Token, Stream >::match ( begin,
end 
)
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::match ( const std::string &  data,
typename Token::Id  id 
)
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::match ( Regexp r,
typename Token::Id  id 
)
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::match ( int(*)(int)  first,
int(*)(int)  rest,
typename Token::Id  id 
)
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::match ( const std::string &  from,
const std::string &  to,
typename Token::Id  id 
)
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::shift ( )
inline
template<typename Token, typename Stream>
void wibble::Lexer< Token, Stream >::skipWhitespace ( )
inline
template<typename Token, typename Stream>
std::string wibble::Lexer< Token, Stream >::window ( unsigned  n)
inline

Member Data Documentation

template<typename Token, typename Stream>
Token wibble::Lexer< Token, Stream >::_match
template<typename Token, typename Stream>
Window wibble::Lexer< Token, Stream >::_window
template<typename Token, typename Stream>
Position wibble::Lexer< Token, Stream >::current
template<typename Token, typename Stream>
Stream& wibble::Lexer< Token, Stream >::stream

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