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_t > | token_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_ |
Parser
Definition at line 237 of file krat_exp_parser.hxx.
| void lex | ( | const std::string & | in, | |
| const Element< S, T > & | e | |||
| ) | [inline] |
Perform lexing.
| 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_.
1.4.7