parenthesizedOrRecordPattern method
Parenthesized or record pattern (...).
Implementation
Parser<PatternNode> parenthesizedOrRecordPattern() =>
seq3(
ref1(token, '('),
ref0(patternField)
.plusSeparated(ref1(token, ','))
.map((l) => l.elements)
.optionalWith(const <PatternFieldNode>[]),
seq2(ref1(token, ',').optional(), ref1(token, ')')),
).map3((_, fields, commaAndClose) {
if (fields.length == 1 &&
fields.first.name == null &&
commaAndClose.$1 == null) {
return ParenthesizedPatternNode(fields.first.pattern);
}
return RecordPatternNode(fields: fields);
});