Header lexy/dsl/times.hpp
The times
and twice
rules.
Rule lexy::dsl::times
lexy/dsl/times.hpp
namespace lexy::dsl
{
template <std::size_t N>
constexpr rule auto times(rule auto rule);
template <std::size_t N>
constexpr rule auto times(rule auto rule, separator auto sep);
}
times
is a rule that parses rule
exactly N
times in sequence, with an optional separator in between.
 Parsing

Parses
rule
exactlyN
times insequence
. If aseparator
has been specified, parses it in between. After the last rule, handles a trailing separator as necessary.  Errors


All errors raised by parsing
rule
orsep
. The rule then fails. 
lexy::unexpected_trailing_separator
: if a trailing separator can be matched after the last item and that is not allowed; at the position of the separator. It then recovers by simply consuming the separator.

 Values

All values produced by each
rule
invocation in order.
Example 1. Parse and sum three integers separated by comma
Note

See lexy::dsl::repeat if the number of repetitions should be determined by the input.

Rule lexy::dsl::twice
lexy/dsl/times.hpp
namespace lexy::dsl
{
constexpr rule auto twice(rule auto rule)
{
return times<2>(rule);
}
constexpr rule auto twice(rule auto rule, separator auto sep)
{
return times<2>(rule, sep);
}
}
twice
is a rule that is an alias for times
where N == 2
.