fieldFormalParameter method
Implementation
Parser<SimpleParameterNode> fieldFormalParameter() =>
seq5(
[ref0(finalToken), ref0(varToken)].toChoiceParser().optional(),
ref0(type).optional(),
[
ref0(thisToken) & ref1(token, '.'),
ref0(superToken) & ref1(token, '.'),
].toChoiceParser(),
ref0(identifier),
(ref1(token, '=') & ref0(expression))
.map((l) => l[1] as ExpressionNode)
.optional(),
).map5((finalOrVar, type, prefix, name, defaultVal) {
final isThis = prefix[0].value == 'this';
return SimpleParameterNode(
name: name,
type: type,
defaultValue: defaultVal,
isFinal: finalOrVar?.value == 'final',
isVar: finalOrVar?.value == 'var',
isThis: isThis,
isSuper: !isThis,
);
});