forStatement method

Parser<StatementNode> forStatement()
inherited

Implementation

Parser<StatementNode> forStatement() =>
    seq5(
      ref0(asyncToken).optional(),
      ref0(forToken),
      seq3(ref0(starTargets), ref0(inToken), ref0(expressionList)),
      seq2(ref1(token, ':'), ref0(suite)).map2((_, s) => s),
      ref0(elseClause).optional(),
    ).map5((isAsync, _, inSeq, body, orelse) {
      if (isAsync != null) {
        return AsyncForNode(
          target: inSeq.$1,
          iter: inSeq.$3,
          body: body,
          orelse: orelse ?? const [],
        );
      }
      return ForNode(
        target: inSeq.$1,
        iter: inSeq.$3,
        body: body,
        orelse: orelse ?? const [],
      );
    });