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