fastParse method

  1. @override
bool fastParse(
  1. State<I> state
)
override

Implementation

@override
bool fastParse(State<I> state) {
  if (m > n) {
    throw RangeError.range(m, 0, n, 'm');
  }

  final r1 = p.parse(state);
  if (r1 == null) {
    return m == 0;
  }

  final list = [r1.value];
  while (list.length < n) {
    final r2 = sep.fastParse(state);
    if (!r2) {
      break;
    }

    final r3 = p.parse(state);
    if (r3 == null) {
      return false;
    }

    list.add(r3.value);
  }

  if (list.length >= m) {
    return true;
  }

  return false;
}