[#repeated1] [section repeated1] [h1 Synopsis] template struct repeated1; This is a [link parser_combinator parser combinator]. [table Arguments [[Name] [Type]] [[`P`] [[link parser parser]]] ] [h1 Description] It applies `P` on the input string repeatedly as long as the parser accepts the input. The result of parsing is a sequence of the results of the individual applications of `P`. When `P` rejects the input for the first time, `repeated1` rejects it as well. At least one successful application of `P` is required for `repeated1` to accept the input. [h1 Header] #include [h1 Expression semantics] For any `p` parser the following are equivalent: repeated1

last_of, repeated

> [h1 Example] #include #include #include #include #include #include #include #include #include using namespace boost::metaparse; using digits = repeated1; static_assert( boost::mpl::equal< get_result>::type, boost::mpl::vector< boost::mpl::int_<1>, boost::mpl::int_<2>, boost::mpl::int_<3>, boost::mpl::int_<4> > >::type::value, "the result of parsing should be the list of digit values" ); static_assert( is_error>::type::value, "repeated1 should reject the input when it can't parse anything with digit_val" ); [endsect]