Lexer Struct Template Reference
[Series]

Lexer class for the rational expression parser. More...

List of all members.

Public Types

typedef KRatExpToken< typename
Element< S, T >::monoid_elt_value_t,
typename Element< S, T
>::semiring_elt_value_t > 
krat_exp_token_t
typedef std::list< krat_exp_token_ttoken_stream_t

Public Member Functions

 Lexer (bool trace=false)
void lex_error (const std::string &msg="Lex error.")
 Put the lexer into an error state.
void lex (const std::string &in, const Element< S, T > &e)
 Perform lexing.
bool error () const
 Return true when an error occured.
const std::string & error_msg () const
 Return the error message.
krat_exp_token_t first () const
 Return the first token.
krat_exp_token_t second () const
 Return the second token.
void eat ()
 Shift tokens.
void set_trace (bool trace)

Protected Attributes

token_stream_t tokens_
bool trace_
std::string error_msg_
bool error_


Detailed Description

template<class S, class T>
struct vcsn::algebra::Lexer< S, T >

Lexer class for the rational expression parser.

See also:
Parser

Definition at line 237 of file krat_exp_parser.hxx.


Member Function Documentation

void lex const std::string &  in,
const Element< S, T > &  e
[inline]
 

Perform lexing.

Parameters:
in The rational expression to lex, as a string.
e The element which will be used later for parsing. It used to guess words and semiring types.

Definition at line 270 of file krat_exp_parser.hxx.

References Lexer::error_, vcsn::misc::escaped(), Lexer::lex_error(), vcsn::parse_weight(), vcsn::parse_word(), KRatExpToken::reset(), Element::structure(), Lexer::tokens_, and vcsn::misc::usual_escaped_characters().

Referenced by vcsn::algebra::parse().

void eat  )  [inline]
 

Shift tokens.

Remove the first token from the token stream. So second becames first, third becames second, and so on...

Definition at line 362 of file krat_exp_parser.hxx.

References Lexer::tokens_, and Lexer::trace_.


Generated on Sat Jul 29 17:31:38 2006 for Vaucanson by  doxygen 1.4.6