parse method

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

Implementation

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

  if (state.canHandleError(failPos, errorCount)) {
    if (state.pos == state.failPos) {
      state.clearErrors(failPos, errorCount);
      state.fail<Object?>(ErrorExpectedTag(tag));
    }
  }

  return null;
}