cascadeExpression method
Implementation
Parser<ValueNode> cascadeExpression() =>
seq2(
ref0(keywordExpression),
seq2(ref1(token, ';'), ref0(message)).star(),
).map2((first, rest) {
if (rest.isEmpty) return first;
final cascade = CascadeNode();
cascade.messages.add(first as MessageNode);
final receiver = cascade.receiver;
for (final (semicolon, (tokens, args)) in rest) {
final msg = MessageNode(receiver);
msg.selectorToken.addAll(tokens);
msg.arguments.addAll(args);
cascade.messages.add(msg);
cascade.semicolons.add(semicolon);
}
return cascade;
});