public override IConcreteFunction CreateConcrete(FunnyType[] concreteTypes)
        {
            FunctionWithSingleArg result = concreteTypes[0].BaseType switch
            {
                BaseFunnyType.Int16 => new Int16Function(),
                BaseFunnyType.Int32 => new Int32Function(),
                BaseFunnyType.Int64 => new Int64Function(),
                BaseFunnyType.Real => new RealFunction(),
                _ => throw new ArgumentOutOfRangeException()
            };

            result.Name       = CoreFunNames.Negate;
            result.ArgTypes   = concreteTypes;
            result.ReturnType = concreteTypes[0];
            return(result);
        }
Exemplo n.º 2
0
 public FunOfSingleArgExpressionNode(FunctionWithSingleArg fun, IExpressionNode argsNode, Interval interval)
 {
     _fun     = fun;
     _arg1    = argsNode;
     Interval = interval;
 }