statementFor method

Parser<ForStatementNode> statementFor()

Implementation

Parser<ForStatementNode> statementFor() =>
    seq8(
      ref1(token, 'for'),
      ref0(identifier),
      ref1(token, ':='),
      ref0(expression),
      [ref1(token, 'to'), ref1(token, 'downto')].toChoiceParser(),
      ref0(expression),
      ref1(token, 'do'),
      ref0(statement),
    ).map8(
      (_, variable, _, initVal, dir, finalVal, _, stmt) => ForStatementNode(
        variable: variable,
        initialValue: initVal,
        isDownTo: dir.toLowerCase() == 'downto',
        finalValue: finalVal,
        statement: stmt,
      ),
    );