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
@noBoundsChecks
Result<String> parseOn(Context context) {
  final buffer = context.buffer;
  final position = context.position;
  if (position < buffer.length &&
      predicate.test(buffer.codeUnitAt(position))) {
    return context.success(buffer[position], position + 1);
  }
  return context.failure(message);
}