parseAsync method
Implementation
@override
void parseAsync(
State<ChunkedData<I>> state, ResultCallback<(List<O1>, O2)> onDone) {
final input = state.input;
final pos = state.pos;
final list = <O1>[];
void parse3() {
void parse4() {
p.parseAsync(state, (result) {
if (result == null) {
state.pos = pos;
onDone(null);
} else {
list.add(result.value);
input.handle(parse3);
}
});
}
end.parseAsync(state, (result) {
if (result == null) {
input.handle(parse4);
} else {
onDone(Result((list, result.value)));
}
});
}
void parse2() {
p.parseAsync(state, (result) {
if (result == null) {
onDone(null);
} else {
list.add(result.value);
input.handle(parse3);
}
});
}
void parse() {
end.parseAsync(state, (result) {
if (result == null) {
input.handle(parse2);
} else {
onDone(Result(([], result.value)));
}
});
}
parse();
}