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); }
public void Visit(IOnesComplement onesComplement) { Contract.Requires(onesComplement != null); throw new NotImplementedException(); }
public void Visit(IOnesComplement onesComplement) { this.traverser.Traverse(onesComplement); }
/// <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); }
//^ 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(); }
public virtual void onASTElement(IOnesComplement onesComplement) { }
public void Visit(IOnesComplement onesComplement) { this.result = this.copier.Copy(onesComplement); }
/// <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); }
/// <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); }
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 void Visit(IOnesComplement onesComplement) { this.result = this.rewriter.Rewrite(onesComplement); }
/// <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; }
/// <summary> /// /// </summary> /// <param name="onesComplement"></param> public OnesComplement(IOnesComplement onesComplement) : base(onesComplement) { }
public virtual void onASTElement(IOnesComplement onesComplement) { }
public override void TraverseChildren(IOnesComplement onesComplement) { base.TraverseChildren(onesComplement); ((OnesComplement)onesComplement).Type = onesComplement.Operand.Type; }
/// <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); }
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; }
public override void TraverseChildren(IOnesComplement onesComplement) { MethodEnter(onesComplement); base.TraverseChildren(onesComplement); MethodExit(); }
public override void TraverseChildren(IOnesComplement onesComplement) { base.TraverseChildren(onesComplement); ((OnesComplement)onesComplement).Type = onesComplement.Operand.Type; }
/// <summary> /// Performs some computation with the given one's complement expression. /// </summary> /// <param name="onesComplement"></param> public virtual void Visit(IOnesComplement onesComplement) { }
/// <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); }
/// <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); }
/// <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; }
/// <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) { }
public void Visit(IOnesComplement onesComplement) { throw new NotImplementedException(); }
/// <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); }
/// <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; }
public override void TraverseChildren(IOnesComplement onesComplement) { MethodEnter(onesComplement); base.TraverseChildren(onesComplement); MethodExit(); }
/// <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); }