parseAsync method
Implementation
@override
void parseAsync(
State<ChunkedData<StringReader>> state, ResultCallback<String> onDone) {
if (!backtrack(state)) {
onDone(null);
return;
}
final input = state.input;
final start = input.start;
final pos = state.pos;
input.buffering++;
void parse() {
final data = input.data;
final source = data.source!;
final end = input.end;
var ok = true;
int? c;
while (state.pos < end) {
c = source.runeAt(state.pos - start);
if (!(c >= 0x41 && c <= 0x5A || c >= 0x61 && c <= 0x7A)) {
ok = false;
break;
}
state.pos++;
}
if (ok && !input.isClosed) {
input.sleep = true;
input.handle(parse);
return;
}
input.buffering--;
if (state.pos != pos) {
onDone(Result(source.substring(pos - start, state.pos - start)));
} else {
onDone(const Result(''));
}
}
parse();
}