parseOn method

  1. @override
Result<Sequence8<R1, R2, R3, R4, R5, R6, R7, R8>> 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<Sequence8<R1, R2, R3, R4, R5, R6, R7, R8>> parseOn(Context context) {
  final result1 = parser1.parseOn(context);
  if (result1.isFailure) return result1.failure(result1.message);
  final result2 = parser2.parseOn(result1);
  if (result2.isFailure) return result2.failure(result2.message);
  final result3 = parser3.parseOn(result2);
  if (result3.isFailure) return result3.failure(result3.message);
  final result4 = parser4.parseOn(result3);
  if (result4.isFailure) return result4.failure(result4.message);
  final result5 = parser5.parseOn(result4);
  if (result5.isFailure) return result5.failure(result5.message);
  final result6 = parser6.parseOn(result5);
  if (result6.isFailure) return result6.failure(result6.message);
  final result7 = parser7.parseOn(result6);
  if (result7.isFailure) return result7.failure(result7.message);
  final result8 = parser8.parseOn(result7);
  if (result8.isFailure) return result8.failure(result8.message);
  return result8.success(Sequence8<R1, R2, R3, R4, R5, R6, R7, R8>(
      result1.value,
      result2.value,
      result3.value,
      result4.value,
      result5.value,
      result6.value,
      result7.value,
      result8.value));
}