fastParse method

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

Parses the input and returns true if successful, false otherwise.

Implementation

@override
bool fastParse(State<StringReader> state) {
  final input = state.input;
  final length = input.length;
  while (true) {
    final start = state.pos;
    final r = p.parse(state);
    if (r != null) {
      final s = input.substring(start, state.pos);
      f(s);
    }

    if (state.pos >= length) {
      break;
    }

    if (state.pos == start) {
      input.readChar(state.pos);
      state.pos += input.count;
    }
  }

  return true;
}