parseOn method

  1. @override
Result<R> 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<R> parseOn(Context context) {
  Failure<R>? failure;
  for (var i = 0; i < children.length; i++) {
    final result = children[i].parseOn(context);
    if (result is Failure<R>) {
      failure = failure == null ? result : failureJoiner(failure, result);
    } else {
      return result;
    }
  }
  return failure!;
}