bool parse_sequence( Left const& left, Right const& right , Iterator& first, Iterator const& last , Context const& context, Attribute& attr, traits::container_attribute) { Iterator save = first; if (parse_into_container(left, first, last, context, attr) && parse_into_container(right, first, last, context, attr)) return true; first = save; return false; }
static bool call( expect_directive<Subject> const& parser , Iterator& first, Iterator const& last , Context const& context, RContext& rcontext, Attribute& attr) { bool r = parse_into_container( parser.subject, first, last, context, rcontext, attr); if (!r) { boost::throw_exception( expectation_failure<Iterator>( first, what(parser.subject))); } return r; }