statementIf method

Parser<IfStatementNode> statementIf()

Implementation

Parser<IfStatementNode> statementIf() =>
    seq5(
      ref1(token, 'if'),
      ref0(expression),
      ref1(token, 'then'),
      ref0(statement),
      seq2(ref1(token, 'else'), ref0(statement)).map2((_, s) => s).optional(),
    ).map5(
      (_, cond, _, thenStmt, elseStmt) => IfStatementNode(
        condition: cond,
        thenStatement: thenStmt,
        elseStatement: elseStmt,
      ),
    );