Initial support for generic funcs

This commit is contained in:
2018-12-05 17:20:28 +01:00
parent 587c8dfff3
commit 520cd1ffcc
7 changed files with 88 additions and 4 deletions

View File

@@ -2,7 +2,7 @@ using Upsilon.Evaluator;
namespace Upsilon.BaseTypes.ScriptFunction
{
internal abstract class ScriptFunction : ScriptType
public abstract class ScriptFunction : ScriptType
{
public override Type Type => Type.Function;
public override object ToCSharpObject()

View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Upsilon.Evaluator;
namespace Upsilon.BaseTypes.ScriptFunction
{
public class ScriptGenericFunction : ScriptFunction
{
public ScriptGenericFunction(Func<object, IEnumerable<object>> function)
{
Function = function;
}
public ScriptGenericFunction(object o)
{
var type = o.GetType();
var generics = type.GetGenericArguments();
Function.GetMethodInfo();
}
public Func<object, IEnumerable<object>> Function { get; }
public override ScriptType Run(Diagnostics diagnostics, ScriptType[] variables, Script script,
EvaluationScope scope)
{
return Function.Invoke(variables.Select(x => x.ToCSharpObject())).ToScriptType();
}
}
}