operatorDeclaration method
Implementation
Parser<FunctionDeclarationNode> operatorDeclaration() => [
seq6(
ref0(methodModifier).star(),
ref0(operatorToken),
ref0(userDefinableOperator),
ref0(formalParameters),
ref0(asyncOrSyncModifier).optional(),
ref0(methodBody),
).map6(
(modifiers, _, opName, params, asyncMod, body) => FunctionDeclarationNode(
name: opName,
parameters: params,
body: body,
isStatic: modifiers.contains('static'),
isAbstract: modifiers.contains('abstract'),
isExternal: modifiers.contains('external'),
isOperator: true,
),
),
seq7(
ref0(methodModifier).star(),
ref0(type),
ref0(operatorToken),
ref0(userDefinableOperator),
ref0(formalParameters),
ref0(asyncOrSyncModifier).optional(),
ref0(methodBody),
).map7(
(modifiers, returnType, _, opName, params, asyncMod, body) =>
FunctionDeclarationNode(
name: opName,
returnType: returnType,
parameters: params,
body: body,
isStatic: modifiers.contains('static'),
isAbstract: modifiers.contains('abstract'),
isExternal: modifiers.contains('external'),
isOperator: true,
),
),
].toChoiceParser();