public override void Visit(IPointerCall pointerCall) { if (Process(pointerCall)) { visitor.Visit(pointerCall); } base.Visit(pointerCall); }
public override void TraverseChildren(IPointerCall pointerCall) { IFunctionPointerTypeReference pointerType = (IFunctionPointerTypeReference)pointerCall.Pointer.Type; this.Traverse(pointerCall.Pointer); ((Expression)pointerCall.Pointer).Type = pointerType; this.Traverse(pointerCall.Arguments); ((PointerCall)pointerCall).Type = pointerType.Type; }
/// <summary> /// /// </summary> /// <param name="pointerCall"></param> public PointerCall(IPointerCall pointerCall) : base(pointerCall) { Contract.Requires(pointerCall != null); this.arguments = new List<IExpression>(pointerCall.Arguments); this.pointer = pointerCall.Pointer; }
public void Visit(IPointerCall pointerCall) { Contract.Requires(pointerCall != null); throw new NotImplementedException(); }
public void Visit(IPointerCall pointerCall) { this.traverser.Traverse(pointerCall); }
/// <summary> /// Traverses the pointer call. /// </summary> public void Traverse(IPointerCall pointerCall) { Contract.Requires(pointerCall != null); if (this.preorderVisitor != null) this.preorderVisitor.Visit(pointerCall); if (this.StopTraversal) return; this.TraverseChildren(pointerCall); if (this.StopTraversal) return; if (this.postorderVisitor != null) this.postorderVisitor.Visit(pointerCall); }
//^ ensures this.path.Count == old(this.path.Count); /// <summary> /// Traverses the given pointer call. /// </summary> /// <param name="pointerCall"></param> public virtual void Visit(IPointerCall pointerCall) { if (this.stopTraversal) return; //^ int oldCount = this.path.Count; this.path.Push(pointerCall); this.Visit(pointerCall.Arguments); this.Visit(pointerCall.Pointer); //^ assume this.path.Count == oldCount+1; //True because all of the virtual methods of this class promise not decrease this.path.Count. this.path.Pop(); }
public override void TraverseChildren(IPointerCall pointerCall) { MethodEnter(pointerCall); base.TraverseChildren(pointerCall); MethodExit(); }
/// <summary> /// Visits the specified pointer call. /// </summary> /// <param name="pointerCall">The pointer call.</param> public override void Visit(IPointerCall pointerCall) { base.Visit(pointerCall); this.AddAssertion(this.GetPointerValidationCall(pointerCall.Pointer)); }
/// <summary> /// Rewrites the given pointer call. /// </summary> /// <param name="pointerCall"></param> public virtual IExpression Rewrite(IPointerCall pointerCall) { return pointerCall; }
public override void Visit(IPointerCall pointerCall) { allElements.Add(new InvokInfo(Traverser, "IPointerCall", pointerCall)); }
/// <summary> /// Generates IL for the specified pointer call. /// </summary> /// <param name="pointerCall">The pointer call.</param> public override void TraverseChildren(IPointerCall pointerCall) { this.Traverse(pointerCall.Arguments); this.Traverse(pointerCall.Pointer); this.generator.Emit(OperationCode.Calli, pointerCall.Pointer.Type); this.StackSize -= (ushort)IteratorHelper.EnumerableCount(pointerCall.Arguments); if (pointerCall.Type.TypeCode == PrimitiveTypeCode.Void) this.StackSize--; }
public override void Visit(IPointerCall pointerCall) { if(Process(pointerCall)){visitor.Visit(pointerCall);} base.Visit(pointerCall); }
public void Visit(IPointerCall pointerCall) { this.result = this.rewriter.Rewrite(pointerCall); }
public virtual void onASTElement(IPointerCall pointerCall) { }
/// <summary> /// Rewrites the given pointer call. /// </summary> /// <param name="pointerCall"></param> public virtual IExpression Rewrite(IPointerCall pointerCall) { var mutablePointerCall = pointerCall as PointerCall; if (mutablePointerCall == null) return pointerCall; this.RewriteChildren(mutablePointerCall); return mutablePointerCall; }
/// <summary> /// Returns a shallow copy of the given pointer call. /// </summary> /// <param name="pointerCall"></param> public PointerCall Copy(IPointerCall pointerCall) { Contract.Requires(pointerCall != null); Contract.Ensures(Contract.Result<PointerCall>() != null); return new PointerCall(pointerCall); }
/// <summary> /// Returns a deep copy of the given pointer call. /// </summary> /// <param name="pointerCall"></param> public PointerCall Copy(IPointerCall pointerCall) { Contract.Requires(pointerCall != null); Contract.Ensures(Contract.Result<PointerCall>() != null); var mutableCopy = this.shallowCopier.Copy(pointerCall); this.CopyChildren((Expression)mutableCopy); mutableCopy.Pointer = this.Copy(mutableCopy.Pointer); mutableCopy.Arguments = this.Copy(mutableCopy.Arguments); return mutableCopy; }
/// <summary> /// Performs some computation with the given pointer call. /// </summary> /// <param name="pointerCall"></param> public virtual void Visit(IPointerCall pointerCall) { }
/// <summary> /// Traverses the children of the pointer call. /// </summary> public virtual void TraverseChildren(IPointerCall pointerCall) { Contract.Requires(pointerCall != null); this.TraverseChildren((IExpression)pointerCall); if (this.StopTraversal) return; this.Traverse(pointerCall.Pointer); if (this.StopTraversal) return; this.Traverse(pointerCall.Arguments); }
/// <summary> /// Visits the specified pointer call. /// </summary> /// <param name="pointerCall">The pointer call.</param> public override void Visit(IPointerCall pointerCall) { PointerCall mutablePointerCall = new PointerCall(pointerCall); this.resultExpression = this.myCodeCopier.DeepCopy(mutablePointerCall); }
/// <summary> /// Performs some computation with the given pointer call. /// </summary> /// <param name="pointerCall"></param> public virtual void Visit(IPointerCall pointerCall) { this.Visit((IExpression)pointerCall); }
/// <summary> /// Returns a deep copy of the given pointer call. /// </summary> /// <param name="pointerCall"></param> public PointerCall Copy(IPointerCall pointerCall) { var mutableCopy = this.shallowCopier.Copy(pointerCall); this.CopyChildren((Expression)mutableCopy); mutableCopy.Pointer = this.Copy(mutableCopy.Pointer); mutableCopy.Arguments = this.Copy(mutableCopy.Arguments); return mutableCopy; }
public void Visit(IPointerCall pointerCall) { throw new NotImplementedException(); }
/// <summary> /// Returns a shallow copy of the given pointer call. /// </summary> /// <param name="pointerCall"></param> public PointerCall Copy(IPointerCall pointerCall) { return new PointerCall(pointerCall); }
public override void TraverseChildren(IPointerCall pointerCall) { base.TraverseChildren(pointerCall); }
public void Visit(IPointerCall pointerCall) { this.result = this.copier.Copy(pointerCall); }
/// <summary> /// Visits the specified pointer call. /// </summary> /// <param name="pointerCall">The pointer call.</param> public override void Visit(IPointerCall pointerCall) { PointerCall mutablePointerCall = pointerCall as PointerCall; if (alwaysMakeACopy || mutablePointerCall == null) mutablePointerCall = new PointerCall(pointerCall); this.resultExpression = this.myCodeMutator.Visit(mutablePointerCall); }