Phoenix

| Home | Libraries | People | FAQ | More

#### 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
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.