parseStart method

List<List<String>>? parseStart(
  1. State<String> state
)

@event Start = v:Rows Eol? @eof() ;

Implementation

List<List<String>>? parseStart(State<String> state) {
  beginEvent(CsvParserEvent.startEvent);
  List<List<String>>? $0;
  // v:Rows Eol? @eof()
  final $2 = state.pos;
  List<List<String>>? $1;
  // Rows
  $1 = parseRows(state);
  if (state.ok) {
    final $3 = state.ignoreErrors;
    state.ignoreErrors = true;
    // Eol
    fastParseEol(state);
    state.ignoreErrors = $3;
    if (!state.ok) {
      state.setOk(true);
    }
    if (state.ok) {
      if (state.pos >= state.input.length) {
        state.setOk(true);
      } else {
        state.fail(const ErrorExpectedEndOfInput());
      }
      if (state.ok) {
        $0 = $1;
      }
    }
  }
  if (!state.ok) {
    state.backtrack($2);
  }
  $0 = endEvent<List<List<String>>>(CsvParserEvent.startEvent, $0, state.ok);
  return $0;
}