Esempio n. 1
0
        public IInterpetedOperation <IInterpetedAnyType> LastCallOperation(ILastCallOperation co)
        {
            var methodType = co.Left.Returns().Cast <IMethodType>();
            var method     = GetMethod(new Type[] { TypeMap.MapType(methodType.InputType), TypeMap.MapType(methodType.OutputType) }, nameof(LastCallOperation));

            return(method.Invoke(this, new object[] { co }).Cast <IInterpetedOperation <IInterpetedAnyType> >());
        }
Esempio n. 2
0
 public IInterpetedOperation LastCallOperation(ILastCallOperation co)
 {
     if (backing.TryGetValue(co, out var res))
     {
         return(res);
     }
     else
     {
         var op = new InterpetedLastCallOperation();
         backing.Add(co, op);
         op.Init(
             co.Left.Convert(this),
             co.Right.Convert(this));
         return(op);
     }
 }
Esempio n. 3
0
 public IReadOnlyList <IMemberDefinition> LastCallOperation(ILastCallOperation co)
 {
     return(Walk(co.Operands));
 }
Esempio n. 4
0
 private IInterpetedOperation <IInterpetedAnyType> LastCallOperation <TIn, TOut>(ILastCallOperation co)
     where TIn : class, IInterpetedAnyType
     where TOut : class, IInterpetedAnyType
 {
     if (backing.TryGetValue(co, out var res))
     {
         return(res);
     }
     else
     {
         var op = new InterpetedLastCallOperation <TIn, TOut>();
         backing.Add(co, op);
         op.Init(
             co.Left.Convert(this).Cast <IInterpetedOperation <IInterpetedCallable <TIn, TOut> > >(),
             co.Right.Convert(this).Cast <IInterpetedOperation <TIn> >());
         return(op);
     }
 }
Esempio n. 5
0
 public Nothing LastCallOperation(ILastCallOperation co)
 {
     Push(co).Walk(co.Operands);
     return(new Nothing());
 }