...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
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 | |
---|---|
All of the placeholders in the list above (except |
For more information see Lexer Semantic Actions.