functionDefinition method
Implementation
Parser<StatementNode> functionDefinition() =>
seq2(
ref0(decorators).optional(),
[ref0(syncFunctionDef), ref0(asyncFunctionDef)].toChoiceParser(),
).map2((decs, fn) {
if (decs == null || decs.isEmpty) return fn;
if (fn is FunctionDefNode) {
return FunctionDefNode(
name: fn.name,
args: fn.args,
body: fn.body,
decoratorList: decs,
returns: fn.returns,
typeParams: fn.typeParams,
);
} else if (fn is AsyncFunctionDefNode) {
return AsyncFunctionDefNode(
name: fn.name,
args: fn.args,
body: fn.body,
decoratorList: decs,
returns: fn.returns,
typeParams: fn.typeParams,
);
}
return fn;
});