extensionDeclaration method
Implementation
Parser<ExtensionDeclarationNode> extensionDeclaration() =>
seq6(
ref0(extensionToken),
ref0(identifier).where((id) => id != 'on').optional(),
ref0(typeParameters).optionalWith(const <TypeParameterNode>[]),
ref0(onToken),
ref0(type),
[
ref1(token, ';').map((_) => const <DeclarationNode>[]),
seq3(
ref1(token, '{'),
ref0(classMemberDefinition).star(),
ref1(token, '}'),
).map3((_, members, _) => members),
].toChoiceParser(),
).map6(
(_, name, typeParams, _, onType, members) => ExtensionDeclarationNode(
name: name,
typeParameters: typeParams,
onType: onType,
members: members,
),
);