123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- ///////////////////////////////////////////////////////////////////////////////
- namespace boost { namespace spirit { namespace repository
- {
- ///////////////////////////////////////////////////////////////////////////
- // subrule_context: special context used with subrules, to pass around
- // the current set of subrule definitions (subrule_group)
- ///////////////////////////////////////////////////////////////////////////
- template <typename Group, typename Attributes, typename Locals>
- struct subrule_context
- : context<Attributes, Locals>
- {
- typedef context<Attributes, Locals> base_type;
- typedef Group group_type;
- subrule_context(
- Group const& group
- , typename Attributes::car_type attribute
- ) : base_type(attribute), group(group)
- {
- }
- template <typename Args, typename Context>
- subrule_context(
- Group const& group
- , typename Attributes::car_type attribute
- , Args const& args
- , Context& caller_context
- ) : base_type(attribute, args, caller_context), group(group)
- {
- }
- subrule_context(Group const& group, Attributes const& attributes)
- : base_type(attributes), group(group)
- {
- }
- Group const& group;
- };
- }}}
|