Ejemplo n.º 1
0
 public FunctionWildcardOverload(
     string name,
     string genericDescription,
     string description,
     Regex wildcardRegex,
     ResultBuilderDelegate resultBuilder,
     TypeSymbol returnType,
     IEnumerable <FixedFunctionParameter> fixedArgumentTypes,
     VariableFunctionParameter?variableArgumentType,
     EvaluatorDelegate?evaluator,
     VariableGeneratorDelegate?variableGenerator = null,
     FunctionFlags flags = FunctionFlags.Default)
     : base(name, genericDescription, description, resultBuilder, returnType, fixedArgumentTypes, variableArgumentType, evaluator, variableGenerator, flags)
 {
     WildcardRegex = wildcardRegex;
 }
Ejemplo n.º 2
0
        public FunctionOverload(string name, string genericDescription, string description, ResultBuilderDelegate resultBuilder, TypeSymbol signatureType, IEnumerable <FixedFunctionParameter> fixedParameters, VariableFunctionParameter?variableParameter, EvaluatorDelegate?evaluator, VariableGeneratorDelegate?variableGenerator, FunctionFlags flags = FunctionFlags.Default)
        {
            Name = name;
            GenericDescription = genericDescription;
            Description        = description;
            ResultBuilder      = resultBuilder;
            Evaluator          = evaluator;
            VariableGenerator  = variableGenerator;
            FixedParameters    = fixedParameters.ToImmutableArray();
            VariableParameter  = variableParameter;
            Flags = flags;

            MinimumArgumentCount = FixedParameters.Count(fp => fp.Required) + (VariableParameter?.MinimumCount ?? 0);
            MaximumArgumentCount = VariableParameter == null ? FixedParameters.Length : (int?)null;

            TypeSignature       = $"({string.Join(", ", ParameterTypeSignatures)}): {signatureType}";
            TypeSignatureSymbol = signatureType;
        }