classOrCapturePattern method
Class pattern Point(x, y) or simple capture name.
Implementation
Parser<PatternNode> classOrCapturePattern() =>
seq2(
ref0(dottedName),
seq3(
ref1(token, '('),
ignore(ref0(patternArguments).optional()),
ref1(token, ')'),
).map3((_, args, _) => args).optional(),
).map2((name, args) {
if (args == null) {
if (!name.contains('.')) {
return MatchAsNode(name: name);
}
return MatchValueNode(NameNode(name));
}
final parsedArgs = args;
return MatchClassNode(
cls: NameNode(name),
patterns: parsedArgs.pos,
kwdAttrs: parsedArgs.kwdNames,
kwdPatterns: parsedArgs.kwdPatterns,
);
});