Ejemplo n.º 1
0
 public ElaFun <T1, T2, T3, T4, R> ToDelegate <T1, T2, T3, T4, R>()
 {
     return((t1, t2, t3, t4) =>
     {
         var ret = Call(ElaValue.FromObject(t1), ElaValue.FromObject(t2), ElaValue.FromObject(t3), ElaValue.FromObject(t4));
         return ret.Convert <R>();
     });
 }
Ejemplo n.º 2
0
 public ElaFun <T, R> ToDelegate <T, R>()
 {
     return(t =>
     {
         var ret = Call(ElaValue.FromObject(t));
         return ret.Convert <R>();
     });
 }
Ejemplo n.º 3
0
 public ElaFun <T1, T2, T3, T4, T5, T6, T7, T8, R> ToDelegate <T1, T2, T3, T4, T5, T6, T7, T8, R>()
 {
     return((t1, t2, t3, t4, t5, t6, t7, t8) =>
     {
         var ret = Call(ElaValue.FromObject(t1), ElaValue.FromObject(t2), ElaValue.FromObject(t3), ElaValue.FromObject(t4),
                        ElaValue.FromObject(t5), ElaValue.FromObject(t6), ElaValue.FromObject(t7), ElaValue.FromObject(t8));
         return ret.Convert <R>();
     });
 }
Ejemplo n.º 4
0
        public override ElaValue Call(params ElaValue[] args)
        {
            var data = new object[args.Length];

            for (var i = 0; i < args.Length; i++)
            {
                data[i] = args[i].AsObject();
            }

            return(ElaValue.FromObject(func.DynamicInvoke(data)));
        }
Ejemplo n.º 5
0
        private ElaList BuildList(object[] array)
        {
            var vals = new List <ElaValue>();

            foreach (var o in array)
            {
                if (o is Dictionary <String, Object> )
                {
                    vals.Add(new ElaValue(BuildRecord((Dictionary <String, Object>)o)));
                }
                else
                {
                    vals.Add(ElaValue.FromObject(o));
                }
            }

            return(ElaList.FromEnumerable(vals));
        }
Ejemplo n.º 6
0
        private ElaRecord BuildRecord(Dictionary <String, Object> dict)
        {
            var fields = new List <ElaRecordField>();

            foreach (var kv in dict)
            {
                if (kv.Value is object[])
                {
                    fields.Add(new ElaRecordField(kv.Key, new ElaValue(BuildList((object[])kv.Value))));
                }
                else if (kv.Value is Dictionary <String, Object> )
                {
                    fields.Add(new ElaRecordField(kv.Key, new ElaValue(BuildRecord((Dictionary <String, Object>)kv.Value))));
                }
                else
                {
                    fields.Add(new ElaRecordField(kv.Key, ElaValue.FromObject(kv.Value)));
                }
            }

            return(new ElaRecord(fields.ToArray()));
        }
Ejemplo n.º 7
0
 public ElaLazyList(ElaLazy next, object value) : this(next, ElaValue.FromObject(value))
 {
 }
Ejemplo n.º 8
0
 public ElaRecordField(string field, object value)
 {
     Field = field;
     Value = ElaValue.FromObject(value);
 }
Ejemplo n.º 9
0
 internal void AddArgument(string name, object value)
 {
     Add(name, ElaValue.FromObject(value));
 }