This specialization uses the Data parameter as a collection of transforms that can be indexed by the specified rule. More...
#include <when.hpp>
Classes | |
struct | impl |
Public Types | |
typedef Grammar | first |
typedef external_transform | second |
typedef Grammar::proto_grammar | proto_grammar |
typedef when< Grammar, external_transform > | transform_type |
Public Member Functions | |
BOOST_PROTO_CALLABLE () typedef X proto_is_transform_ | |
BOOST_FORCEINLINE boost::proto::detail::apply_transform < transform_type(Expr const &)> ::result_type | operator() (Expr &&e) const |
BOOST_FORCEINLINE boost::proto::detail::apply_transform < transform_type(Expr const &, State const &)> ::result_type | operator() (Expr &&e, State &&s) const |
BOOST_FORCEINLINE boost::proto::detail::apply_transform < transform_type(Expr const &, State const &, Data const &)> ::result_type | operator() (Expr &&e, State &&s, Data &&d) const |
This specialization uses the Data parameter as a collection of transforms that can be indexed by the specified rule.
Use when<T, external_transform>
in your code when you would like to define a grammar once and use it to evaluate expressions with many different sets of transforms. The transforms are found by using the Data parameter as a map from rules to transforms.
See action_map
for an example.
typedef Grammar boost::proto::when< Grammar, external_transform >::first |
typedef Grammar::proto_grammar boost::proto::when< Grammar, external_transform >::proto_grammar |
typedef external_transform boost::proto::when< Grammar, external_transform >::second |
|
inherited |
|
inherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |