forBlock function

Parser forBlock()

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');