Beispiel #1
0
 public IInterpetedOperation AssignOperation(IAssignOperation co)
 {
     if (backing.TryGetValue(co, out var res))
     {
         return(res);
     }
     else
     {
         var op = new InterpetedAssignOperation();
         backing.Add(co, op);
         op.Init(
             co.Left.Convert(this),
             co.Right.Convert(this));
         return(op);
     }
 }
Beispiel #2
0
 public IReadOnlyList <IMemberDefinition> AssignOperation(IAssignOperation co)
 {
     return(Walk(co.Operands));
 }
Beispiel #3
0
 private IInterpetedOperation <IInterpetedAnyType> AssignOperation <TLeft, TRight>(IAssignOperation co)
     where TRight : class, IInterpetedAnyType
     where TLeft : class, TRight
 {
     if (backing.TryGetValue(co, out var res))
     {
         return(res);
     }
     else
     {
         var op = new InterpetedAssignOperation <TLeft, TRight>();
         backing.Add(co, op);
         op.Init(
             co.Left.Convert(this).Cast <IInterpetedOperation <TLeft> >(),
             co.Right.Convert(this).Cast <IInterpetedOperation <TRight> >());
         return(op);
     }
 }
Beispiel #4
0
        public IInterpetedOperation <IInterpetedAnyType> AssignOperation(IAssignOperation co)
        {
            var method = GetMethod(new Type[] { TypeMap.MapType(co.Left.Returns()), TypeMap.MapType(co.Right.Returns()) }, nameof(AssignOperation));

            return(method.Invoke(this, new object[] { co }).Cast <IInterpetedOperation <IInterpetedAnyType> >());
        }
Beispiel #5
0
 public Nothing AssignOperation(IAssignOperation co)
 {
     Push(co).Walk(co.Operands);
     return(new Nothing());
 }
Beispiel #6
0
 public Nothing AssignOperation(IAssignOperation co)
 {
     Walk(co.Operands, co);
     return(new Nothing());
 }