ifStatement method

Parser<IfStatementNode> ifStatement()
inherited

Implementation

Parser<IfStatementNode> ifStatement() =>
    seq6(
      ref0(ifToken),
      ref1(token, '('),
      ref0(ifCondition),
      ref1(token, ')'),
      ref0(statement),
      (ref0(elseToken) & ref0(statement))
          .map((l) => l[1] as StatementNode)
          .optional(),
    ).map6(
      (_, _, cond, _, thenBranch, elseBranch) => IfStatementNode(
        condition: cond.$1,
        casePattern: cond.$2,
        whenGuard: cond.$3,
        thenBranch: thenBranch,
        elseBranch: elseBranch,
      ),
    );