forElement method
Implementation
Parser<CollectionElementNode> forElement() =>
seq5(
ref0(awaitToken).optional(),
ref0(forToken),
ref1(token, '('),
ref0(forLoopParts),
seq2(ref1(token, ')'), ref0(collectionElement)),
).map5((awaitKw, _, _, parts, closeAndBody) {
if (parts is ForPartsClassic) {
return ForElementNode(
initialization: parts.init,
condition: parts.condition,
updates: parts.updates,
body: closeAndBody.$2,
);
} else if (parts is ForPartsIn) {
return ForInElementNode(
variable: parts.variable,
pattern: parts.pattern,
iterable: parts.iterable,
body: closeAndBody.$2,
isAsync: awaitKw != null,
);
}
throw StateError('Invalid for loop parts');
});