parse method
Implementation
@override
Result<(List<O1>, O2)>? parse(State<I> state) {
final r1 = end.parse(state);
if (r1 != null) {
return Result(([], r1.value));
}
final pos = state.pos;
final r2 = p.parse(state);
if (r2 == null) {
return null;
}
final list = [r2.value];
while (true) {
final r1 = end.parse(state);
if (r1 != null) {
return Result((list, r1.value));
}
final r2 = p.parse(state);
if (r2 == null) {
state.pos = pos;
return null;
}
list.add(r2.value);
}
}