parse method
Implementation
@override
Result<O1>? parse(State<I> state) {
O1? l;
final r1 = left.parse(state);
if (r1 != null) {
l = r1.value;
while (true) {
final pos = state.pos;
final r2 = op.parse(state);
if (r2 == null) {
break;
}
final r3 = right.parse(state);
if (r3 == null) {
state.pos = pos;
break;
}
final o = r2.value;
final r = r3.value;
// ignore: null_check_on_nullable_type_parameter
l = f(l!, o, r);
}
}
if (l != null) {
return Result(l);
}
return null;
}