- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# Lexer Struct Template Reference
[Series]

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

List of all members.

## Public Member Functions
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.

## 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 238 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 271 of file krat_exp_parser.hxx.

References vcsn::misc::escaped(), Lexer::lex_error(), vcsn::parse_weight(), vcsn::parse_word(), KRatExpToken::reset(), Element::structure(), 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 363 of file krat_exp_parser.hxx.