Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Phoenix

Boost.Phoenix makes it easier to attach semantic actions. You just inline your lambda expressions:

l[phoenix-lambda-expression]

Spirit.Lex provides some Boost.Phoenix placeholders to access important information from the Context that are otherwise difficult to extract.

Spirit.Lex specific Phoenix placeholders

_start, _end

Iterators pointing to the begin and the end of the matched input sequence.

_pass

Assign lex::pass_flags::pass_fail to _pass to force the current match to fail.

_tokenid

The token id of the matched token.

_val

The token value of the matched token.

_state

The lexer state the token has been matched in.

_eoi

Iterator referring to the current end of the input sequence.

[Tip] Tip

All of the placeholders in the list above (except _eoi) can be changed from the inside of the semantic action allowing to modify the lexer behavior. They are defined in the namespace boost::spirit::lex.

For more information see Lexer Semantic Actions.


PrevUpHomeNext