forBlock function
Implementation
Parser forBlock() =>
seq4(
ref0(forTag),
ref0(element).starLazy(ref0(elseTag).or(ref0(endForTag))),
ref0(elseBlockForFor).optional(),
ref0(endForTag),
)
.map((values) {
final forTag = values.$1 as Tag;
final forBody = (values.$2).cast<ASTNode>();
final elseBlockForFor = values.$3 as Tag?;
final List<ASTNode> allBodyNodes = [...forBody];
if (elseBlockForFor != null) {
allBodyNodes.add(elseBlockForFor);
}
return forTag.copyWith(body: allBodyNodes);
})
.labeled('forBlock');