normalFormalParameter method

Parser<ParameterNode> normalFormalParameter()
inherited

Implementation

Parser<ParameterNode> normalFormalParameter() =>
    seq2(
      ref0(metadataList),
      [
        ref0(functionTypedFormalParameter),
        ref0(fieldFormalParameter),
        ref0(simpleFormalParameter),
      ].toChoiceParser(),
    ).map2((meta, param) {
      if (meta.isEmpty) return param;
      if (param is SimpleParameterNode) {
        return SimpleParameterNode(
          name: param.name,
          type: param.type,
          defaultValue: param.defaultValue,
          metadata: [...meta, ...param.metadata],
          isNamed: param.isNamed,
          isRequired: param.isRequired,
          isFinal: param.isFinal,
          isVar: param.isVar,
          isThis: param.isThis,
          isSuper: param.isSuper,
        );
      }
      if (param is FunctionTypedParameterNode) {
        return FunctionTypedParameterNode(
          name: param.name,
          type: param.type,
          parameters: param.parameters,
          defaultValue: param.defaultValue,
          metadata: [...meta, ...param.metadata],
          isNamed: param.isNamed,
          isRequired: param.isRequired,
        );
      }
      return param;
    });