parse method
Implementation
@override
Result<List<O>>? parse(State<I> state) {
if (m > n) {
throw RangeError.range(m, 0, n, 'm');
}
final r1 = p.parse(state);
if (r1 == null) {
return m == 0 ? Result([]) : null;
}
final list = [r1.value];
while (list.length < n) {
final r2 = p.parse(state);
if (r2 == null) {
break;
}
list.add(r2.value);
}
if (list.length >= m) {
return Result(list);
}
return null;
}