parseOn method

  1. @override
Result<(R1, R2, R3, R4, R5, R6, R7)> parseOn(
  1. Context context
)
override

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, R5, R6, R7)> 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;
  final result5 = parser5.parseOn(result4);
  if (result5 is Failure) return result5;
  final result6 = parser6.parseOn(result5);
  if (result6 is Failure) return result6;
  final result7 = parser7.parseOn(result6);
  if (result7 is Failure) return result7;
  return result7.success((
    result1.value,
    result2.value,
    result3.value,
    result4.value,
    result5.value,
    result6.value,
    result7.value
  ));
}