blockStatement method

Parser<CompoundStatementNode> blockStatement()

Implementation

Parser<CompoundStatementNode> blockStatement() =>
    seq3(
      ref1(token, 'begin'),
      ref0(statement)
          .plusSeparated(ref1(token, ';'))
          .map((sep) => sep.elements),
      ref1(token, 'end'),
    ).map3((_, stmts, _) {
      final list = stmts.where((s) => s is! EmptyStatementNode).toList();
      return CompoundStatementNode(statements: list.isEmpty ? stmts : list);
    });