program method
Implementation
Parser<ProgramNode> program() =>
seq6(
ref1(token, 'program'),
ref0(identifier),
seq3(
ref1(token, '('),
ref0(identifier)
.plusSeparated(ref1(token, ','))
.map((sep) => sep.elements),
ref1(token, ')'),
).map3((_, params, _) => params).optionalWith(const <String>[]),
ref1(token, ';'),
ref0(block),
ref1(token, '.'),
).map6(
(_, name, params, _, block, _) =>
ProgramNode(name: name, parameters: params, block: block),
);