parse method

  1. @override
Result<O>? parse(
  1. State<I> state
)
override

Implementation

@override
Result<O>? parse(State<I> state) {
  final pos = state.pos;
  final r = p.parse(state);
  if (r == null) {
    return null;
  }

  final v = f(r.value);
  if (v) {
    return Result(r.value);
  }

  final error = h(pos, state.pos, r.value);
  state.pos = pos;
  return state.failAt(pos, error);
}