parseSepBy method

  1. @override
Tuple1<List<E>>? parseSepBy(
  1. ParseState state,
  2. Parser sep
)
override

Implementation

@override
Tuple1<List<E>>? parseSepBy(ParseState state, Parser sep) {
  final r1 = _p.parse(state);
  if (r1 == null) {
    return Tuple1(<E>[]);
  }

  final list = [r1.$0];
  while (true) {
    final pos = state.pos;
    if (!sep.fastParse(state)) {
      break;
    }

    final r2 = _p.parse(state);
    if (r2 == null) {
      state.pos = pos;
      break;
    }

    list.add(r2.$0);
  }

  return Tuple1(list);
}