fieldFormalParameter method

Parser<SimpleParameterNode> fieldFormalParameter()
inherited

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,
      );
    });