parseOn method
Primitive method doing the actual parsing.
The method is overridden in concrete subclasses to implement the
parser specific logic. The methods takes a parse context
and
returns the resulting context, which is either a Success or
Failure context.
Implementation
@override
Result<(R1, R2, R3, R4)> parseOn(Context context) {
final result1 = parser1.parseOn(context);
if (result1 is Failure) return result1;
final result2 = parser2.parseOn(result1);
if (result2 is Failure) return result2;
final result3 = parser3.parseOn(result2);
if (result3 is Failure) return result3;
final result4 = parser4.parseOn(result3);
if (result4 is Failure) return result4;
return result4
.success((result1.value, result2.value, result3.value, result4.value));
}