parseSepBy method

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

Implementation

@experimental
@protected
Tuple1<List<E>>? parseSepBy(ParseState state, Parser sep) {
  final r1 = 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 = parse(state);
    if (r2 == null) {
      state.pos = pos;
      break;
    }

    list.add(r2.$0);
  }

  return Tuple1(list);
}