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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
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