Пример #1
0
        public virtual Expression VisitDepositBits(DepositBits d)
        {
            var src  = d.Source.Accept(this);
            var bits = d.InsertedBits.Accept(this);

            if (src == Constant.Invalid || bits == Constant.Invalid)
            {
                return(Constant.Invalid);
            }
            d = new DepositBits(src, bits, d.BitPosition);
            while (dpbdpbRule.Match(d))
            {
                Changed = true;
                d       = dpbdpbRule.Transform();
            }
            if (dpbConstantRule.Match(d))
            {
                Changed = true;
                return(dpbConstantRule.Transform());
            }
            if (selfdpbRule.Match(d))
            {
                Changed = true;
                return(selfdpbRule.Transform());
            }
            return(d);
        }
Пример #2
0
 public virtual Expression VisitDepositBits(DepositBits d)
 {
     d.Source       = d.Source.Accept(this);
     d.InsertedBits = d.InsertedBits.Accept(this);
     if (dpbConstantRule.Match(d))
     {
         Changed = true;
         return(dpbConstantRule.Transform());
     }
     if (dpbdpbRule.Match(d))
     {
         Changed = true;
         return(dpbdpbRule.Transform());
     }
     return(d);
 }