Exemplo n.º 1
0
        private HLLocation ProcessOnesComplementExpression(IOnesComplement pExpression)
        {
            HLLocation locationOperand   = ProcessExpression(pExpression.Operand);
            HLLocation locationTemporary = HLTemporaryLocation.Create(CreateTemporary(HLDomain.GetOrCreateType(pExpression.Type)));

            mCurrentBlock.EmitBitwiseNot(locationTemporary, locationOperand);
            return(locationTemporary);
        }
 public override void Visit(IOnesComplement onesComplement)
 {
     if (Process(onesComplement))
     {
         visitor.Visit(onesComplement);
     }
     base.Visit(onesComplement);
 }
Exemplo n.º 3
0
 public void Visit(IOnesComplement onesComplement)
 {
     Contract.Requires(onesComplement != null);
       throw new NotImplementedException();
 }
Exemplo n.º 4
0
 public void Visit(IOnesComplement onesComplement)
 {
     this.traverser.Traverse(onesComplement);
 }
Exemplo n.º 5
0
 /// <summary>
 /// Traverses the one's complement expression.
 /// </summary>
 public void Traverse(IOnesComplement onesComplement)
 {
     Contract.Requires(onesComplement != null);
       if (this.preorderVisitor != null) this.preorderVisitor.Visit(onesComplement);
       if (this.StopTraversal) return;
       this.TraverseChildren(onesComplement);
       if (this.StopTraversal) return;
       if (this.postorderVisitor != null) this.postorderVisitor.Visit(onesComplement);
 }
Exemplo n.º 6
0
 //^ ensures this.path.Count == old(this.path.Count);
 /// <summary>
 /// Traverses the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public virtual void Visit(IOnesComplement onesComplement)
 {
     if (this.stopTraversal) return;
       //^ int oldCount = this.path.Count;
       this.path.Push(onesComplement);
       this.Visit(onesComplement.Operand);
       //^ assume this.path.Count == oldCount+1; //True because all of the virtual methods of this class promise not to decrease this.path.Count.
       this.path.Pop();
 }
Exemplo n.º 7
0
 public virtual void onASTElement(IOnesComplement onesComplement)
 {
 }
Exemplo n.º 8
0
 public void Visit(IOnesComplement onesComplement)
 {
     this.result = this.copier.Copy(onesComplement);
 }
Exemplo n.º 9
0
 /// <summary>
 /// Visits the specified ones complement.
 /// </summary>
 /// <param name="onesComplement">The ones complement.</param>
 public override void Visit(IOnesComplement onesComplement)
 {
     OnesComplement mutableOnesComplement = onesComplement as OnesComplement;
     if (alwaysMakeACopy || mutableOnesComplement == null) mutableOnesComplement = new OnesComplement(onesComplement);
     this.resultExpression = this.myCodeMutator.Visit(mutableOnesComplement);
 }
Exemplo n.º 10
0
 /// <summary>
 /// Generates IL for the specified ones complement.
 /// </summary>
 /// <param name="onesComplement">The ones complement.</param>
 public override void TraverseChildren(IOnesComplement onesComplement)
 {
     this.Traverse(onesComplement.Operand);
       this.generator.Emit(OperationCode.Not);
 }
 public override void Visit(IOnesComplement onesComplement)
 {
     if(Process(onesComplement)){visitor.Visit(onesComplement);}
     base.Visit(onesComplement);
 }
Exemplo n.º 12
0
 private HLLocation ProcessOnesComplementExpression(IOnesComplement pExpression)
 {
     HLLocation locationOperand = ProcessExpression(pExpression.Operand);
     HLLocation locationTemporary = HLTemporaryLocation.Create(CreateTemporary(HLDomain.GetOrCreateType(pExpression.Type)));
     mCurrentBlock.EmitBitwiseNot(locationTemporary, locationOperand);
     return locationTemporary;
 }
Exemplo n.º 13
0
 public void Visit(IOnesComplement onesComplement)
 {
     this.result = this.rewriter.Rewrite(onesComplement);
 }
Exemplo n.º 14
0
 /// <summary>
 /// Rewrites the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public virtual IExpression Rewrite(IOnesComplement onesComplement)
 {
     var mutableOnesComplement = onesComplement as OnesComplement;
       if (mutableOnesComplement == null) return onesComplement;
       this.RewriteChildren(mutableOnesComplement);
       return mutableOnesComplement;
 }
Exemplo n.º 15
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="onesComplement"></param>
 public OnesComplement(IOnesComplement onesComplement)
     : base(onesComplement)
 {
 }
Exemplo n.º 16
0
 public virtual void onASTElement(IOnesComplement onesComplement) { }
Exemplo n.º 17
0
 public override void TraverseChildren(IOnesComplement onesComplement)
 {
     base.TraverseChildren(onesComplement);
     ((OnesComplement)onesComplement).Type = onesComplement.Operand.Type;
 }
Exemplo n.º 18
0
 /// <summary>
 /// Returns a shallow copy of the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public OnesComplement Copy(IOnesComplement onesComplement)
 {
     return new OnesComplement(onesComplement);
 }
Exemplo n.º 19
0
 public override void Visit(IOnesComplement onesComplement)
 {
     allElements.Add(new InvokInfo(Traverser, "IOnesComplement", onesComplement));
 }
 public override void TraverseChildren(IOnesComplement onesComplement) {
   base.TraverseChildren(onesComplement);
   var exp = TranslatedExpressions.Pop();
   var e = new Bpl.NAryExpr(
     onesComplement.Token(),
     new Bpl.FunctionCall(this.sink.Heap.BitwiseNegation),
     new List<Bpl.Expr>(new Bpl.Expr[] {exp})
     );
   TranslatedExpressions.Push(e);
 }
 /// <summary>
 /// Rewrites the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public virtual IExpression Rewrite(IOnesComplement onesComplement)
 {
     return onesComplement;
 }
Exemplo n.º 22
0
        public override void TraverseChildren(IOnesComplement onesComplement)
{ MethodEnter(onesComplement);
            base.TraverseChildren(onesComplement);
     MethodExit();   }
Exemplo n.º 23
0
 public override void TraverseChildren(IOnesComplement onesComplement) {
   base.TraverseChildren(onesComplement);
   ((OnesComplement)onesComplement).Type = onesComplement.Operand.Type;
 }
Exemplo n.º 24
0
 /// <summary>
 /// Performs some computation with the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public virtual void Visit(IOnesComplement onesComplement)
 {
 }
Exemplo n.º 25
0
    /// <summary>
    /// Returns a shallow copy of the given one's complement expression.
    /// </summary>
    /// <param name="onesComplement"></param>
    public OnesComplement Copy(IOnesComplement onesComplement) {
      Contract.Requires(onesComplement != null);
      Contract.Ensures(Contract.Result<OnesComplement>() != null);

      return new OnesComplement(onesComplement);
    }
Exemplo n.º 26
0
 /// <summary>
 /// Traverses the children of the one's complement expression.
 /// </summary>
 public virtual void TraverseChildren(IOnesComplement onesComplement)
 {
     Contract.Requires(onesComplement != null);
       this.TraverseChildren((IUnaryOperation)onesComplement);
 }
Exemplo n.º 27
0
    /// <summary>
    /// Returns a deep copy of the given one's complement expression.
    /// </summary>
    /// <param name="onesComplement"></param>
    public OnesComplement Copy(IOnesComplement onesComplement) {
      Contract.Requires(onesComplement != null);
      Contract.Ensures(Contract.Result<OnesComplement>() != null);

      var mutableCopy = this.shallowCopier.Copy(onesComplement);
      this.CopyChildren((UnaryOperation)mutableCopy);
      return mutableCopy;
    }
Exemplo n.º 28
0
 /// <summary>
 /// Performs some computation with the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public virtual void Visit(IOnesComplement onesComplement)
 {
     this.Visit((IUnaryOperation)onesComplement);
 }
 /// <summary>
 /// Performs some computation with the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public virtual void Visit(IOnesComplement onesComplement)
 {
 }
Exemplo n.º 30
0
 public void Visit(IOnesComplement onesComplement)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 31
0
 /// <summary>
 /// Visits the specified ones complement.
 /// </summary>
 /// <param name="onesComplement">The ones complement.</param>
 public override void Visit(IOnesComplement onesComplement)
 {
     OnesComplement mutableOnesComplement = new OnesComplement(onesComplement);
     this.resultExpression = this.myCodeCopier.DeepCopy(mutableOnesComplement);
 }
 public override void TraverseChildren(IOnesComplement onesComplement) {
   base.TraverseChildren(onesComplement);
 }
Exemplo n.º 33
0
 /// <summary>
 /// Returns a deep copy of the given one's complement expression.
 /// </summary>
 /// <param name="onesComplement"></param>
 public OnesComplement Copy(IOnesComplement onesComplement)
 {
     var mutableCopy = this.shallowCopier.Copy(onesComplement);
       this.CopyChildren((UnaryOperation)mutableCopy);
       return mutableCopy;
 }
Exemplo n.º 34
0
 public override void TraverseChildren(IOnesComplement onesComplement)
 {
     MethodEnter(onesComplement);
     base.TraverseChildren(onesComplement);
     MethodExit();
 }
Exemplo n.º 35
0
 /// <summary>
 /// Visits the specified ones complement.
 /// </summary>
 /// <param name="onesComplement">The ones complement.</param>
 public override void Visit(IOnesComplement onesComplement)
 {
     OnesComplement mutableOnesComplement = onesComplement as OnesComplement;
     if (mutableOnesComplement == null) {
       this.resultExpression = onesComplement;
       return;
     }
     this.resultExpression = this.myCodeMutator.Visit(mutableOnesComplement);
 }